WRC-626 GPRS RTU 应用模式说明 一 RTU 连接组态软件... 1 二 RTU 在低功耗工作模式下应用说明... 5 1. 低功耗工作模式的类型... 5 2. 定时上传数据的设置... 6 3. 短信远程唤醒 --- 遥测 :... 6 4. 微功耗工作模式 :... 7 三 短信查询 RTU 管脚状态和控制 DO 输出 :... 7 1. 短信查询 RTU 的管脚数据 :... 7 2. 短信控制 RTU 的 DO 输出... 8 四 RTU 涉及的 Modbus 通信协议帧格式说明... 9 一 RTU 连接组态软件 WRC-626 GPRS RTU 的服务器上传数据格式需设置为 modbus 协议, 上位机的组态 软件即可方便的实现远程数据采集和控制 如下图所示,WRC-626 的 modbus 从接口可以连接触摸屏, 实现用户现场监控 WRC-626 的 modbus 主接口可以连接更多 modbus 设备, 这些设备同样可以通过 RTU 的 gprs 通道和组态软件建立通信 1
系统示意图 以下应用实例中, 上位机软件采用亚控组态王软件, WRC-626 GPRS RTU 通过 comway 通信平台与上位机建立 gprs 数据通信 首先设置 RTU, 选择 comway 协议, 服务器地址 :ds.fusionunix.com, 端口号 :9000 计算机必须可以上网, 安装 comway 无线串口软件, 添加虚拟串口并映射到 RTU ID, 如下图所示, 具体过程详见 comway 无线串口说明 2
设备 在组态王软件中, 具体设置过程如下 : 首先在组态王设备列表中新建 IO 设备, 如下图选择莫迪康的 modbus rtu 的 com 口 在 IO 设备的通信端口列表中, 选择 comway 无线串口软件映射到 RTU 的虚拟串口, 如下图所示 : 在组态王 6.55 软件中运行示例程序, 显示如下图界面, 可以通过组态王的控件直观读 取模拟量数据和数字量输入信息, 并通过数字量输出的图形控件实现远程控制 3
具体各个模拟量 数字量输入和数字量输出的 I/0 变量在组态王的数据字典定义中, 如 下图所示 : 寄存器地址参考前文中各个管脚对应的 modbus 地址来设置, 如上图所示 AC 管脚 1 对应的寄存器地址为 :30001, 各个管脚的采集频率通常建议不低于 3000 毫秒 4
这里的最大和最小原始值为组态软件从 RTU 的 30001 寄存器读取的原始值, 如上图所 示, 如果电流输入值的范围是 0-20ma( 校准斜率为 5000), 即可设置最小原始值为 0, 最 大原始值为 20 在选择线性关系的条件下, 通过修改最小值和最大值, 确定模拟量对应的显示量程范 围, 则在组态王的画面工程中显示的数值, 为电流值经过线性变化计算后对应该量程的数值 二 RTU 在低功耗工作模式下应用说明 1. 低功耗工作模式的类型 针对部分应用现场需要电池或者太阳能供电的实际情况,WRC-626 支持三种低功耗工作模式 : 以串联 2 节 3.6v 高能电池供电为例, 其功耗数据如下表所示 : 工作模式休眠状态功耗数据采集状态功耗数据上传状态功耗适合应用场景 低功耗 ( 短信唤 醒 ) 工作模式 4~6mA@7.2V 20mA@7.2V 100ma@7.2v 太阳能 + 蓄电池 低功耗工作模式 4ma@7.2V 20mA@7.2V 100ma@7.2v 太阳能 + 蓄电池 微功耗工作模式 220uA@7.2 20mA@7.2V 100ma@7.2v 高能电池, 长期 工作 间歇工作是实现低功耗工作模式的唯一方式 省电的效果或者说能够持续的工作时间与 RTU 的休眠功耗直接相关 RTU 日功耗计算 : RTU 每日工作状态可分为 : 休眠状态 数据采集状态 数据上传状态 现以微功耗工作模式为例, 计算如下 :( 电流单位 : 安, 时间单位 : 小时 ) 时间 RTU 的每日功耗 = 休眠状态电流 x 时间 + 数据采集状态电流 x 时间 + 数据上传状态电流 x 以每天采集数据 24 次, 每天上传数据一次为例 休眠功耗 =220ua/1000000x24 小时 =0.00528AH 数据采集功耗 =20ma/1000*2( 分钟 )/60x24 次 =0.016AH 5
数据上传功耗 =100ma/1000*2( 分钟 )/60x1 次 =0.0033AH 日功耗 =0.02461AH 持续工作时间 ( 天 )= 电池总容量 / 每日功耗 28ah/(0.0246ah)=1130 天 即配合 2 节 14AH 3.6V 高能电池供电, 可以持续工作 1130 天 首先在配置软件中, 正确选择和设置 RTU 的供电模式, 并将 RTU 工作模式的拨键开 关置于如前图远离 485 接口方向 只有字符串模式可以实现 RTU 主动上传数据, 所以低功耗模式均需设置上传数据格式 为 : 字符串格式 2. 定时上传数据的设置 在如下图中, 可以设置采样时间间隔 数据保存时间间隔和数据上传时间间隔 如图设置, 即每 300 秒钟采样一次并保存在 flash 中 ( flash 存储空间 2MB, 先进先出 ), 到 3600 秒时 RTU 自动唤醒, 连接上位机, 将 12 组数据一并发送, 完成后切断 GPRS 连 接,RTU 重新进入低功耗工作模式 3. 短信远程唤醒 --- 遥测 : 在 RTU 配置软件的高级选项如下图栏目中, 勾选启用短信安全模式, 并输入手机号 6
只有使用此手机号发送的 AT 指令,RTU 方能执行 ; 如不启用短信安全模式, 则任何手 机发送正确的 AT 指令,RTU 均会执行 手机发送 AT 指令 AT^RTURPNW=1, 如 RTU 处于低功耗 ( 短信唤醒 ) 模式, 则会立 即被唤醒与上位机建立 GPRS 连接, 并将 flash 中的全部数据以字符串格式上传 手机再次发送 AT 指令 AT^RTURPNW=0,RTU 则恢复为低功耗工作模式 4. 微功耗工作模式 : 与低功耗工作模式设置方式类似, 而待机功耗更低 如果电池供电范围在 5-24V, 改变 RTU 的工作模式拨键即可 ; 如电源电压输入范围 :3.7v-4.2v( 锂电池电压范围 ) 设备需要选择产品型号 :WRC-626-W 才能支持 微功耗工作模式可以配合高能电池, 适当设置上传时间的情况下 ( 如一天上传一次数据 ), 可以持续工作 2-3 年 三 短信查询 RTU 管脚状态和控制 DO 输出 : 如上图, 在 RTU 配置软件的高级选项的短信安全模式中, 设置手机号码, 即此手机号 发送的查询,RTU 才给以回复 1. 短信查询 RTU 的管脚数据 : 短信查询指令 : +AT+RTURECORD 最前面的 + 不能省略, 有此符号 RTU 才会回复短信, 短信以西文字符编写短信返回结果如下图 : 7
如图所示, 模拟量输入管脚 1 的值为 5000 2. 短信控制 RTU 的 DO 输出 AT^RTUSETOUT=s 或 c 管脚号... 管脚号设置 DO 输出量 s: 输出管脚置 1 c: 输出管脚置 0 开关量输出对应的管脚号 开关量输出管脚 管脚号 DO-1 14 DO-2 15 DO-3 16 DO-4 17 DO-5 18 DO-6 19 要使得 DO-1 输出高电平, 发送 at 指令如下 : AT^RTUSETOUT=s 14 注意 s 为小写 要使得 DO-1 输出低电平, 发送 at 指令如下 : AT^RTUSETOUT=c 14 注意 c 为小写 8
四 RTU 涉及的 Modbus 通信协议帧格式说明 Modbus 协议查询指令的基本格式 : 字节序列 1 2 3 4 5 6 7 8 内容 01 04 00 00 00 10 F1 C6 名称 设备地址 功能码 寄存器地址 寄存器数量 CRC 校验码 RTU 缺省设备地址为 0x01 模拟量输入 : RTU 模拟量电压和电流输入使用相同的寄存器地址 读模拟量输入对应 MODBUS 读输入寄存器 功能码为 04 寄存器地址范围 :0x00--(rtu 设置的模拟管脚总数 -1) 示例指令 : 如查询所有模拟量输入通道的值的指令如下 : 指令 : 01 04 00 00 00 04 F1 C9 说明 : 寄存器起始地址 00 00, 查询四个寄存器的值 00 04 返回值 :01 04 08 00 01 00 02 00 03 00 04 BC CE 说明 :0-3 通道模拟量的值为 1,2,3,4 毫伏 读第 2 个模拟量管脚, 地址 0x01 指令 :01 04 00 01 00 01 60 0A 说明 : 查询寄存器地址 0x01, 查询一个寄存器的值 返回值 :01 04 02 00 02 38 F1 说明 :1 通道模拟量的值为 2 毫伏 数字量输入 : 数字 IO 输入对应 MODBUS 读输入离散量 功能码为 02 寄存器地址范围 :0x00 0x05(rtu 设置的开关输入管脚总数 -1) 示例指令 : 如查询所有数字量输入通道的值的指令如下 : 指令 :01 02 00 00 00 05 B8 09 说明 : 查询寄存器起始地址 00 00, 查询六个寄存器的值 00 05 返回值 :01 02 01 0F E1 8C 说明 :0-5 通道数字量输入的值为 111100 读第 1 个管脚, 地址 0x00 指令 :01 02 00 00 00 01 B9 CA 说明 : 查询寄存器地址 0x00, 读取一个寄存器的值 00 01 返回值 :01 02 01 01 60 48 说明 : 第 1 管脚的数字量的值为 1 9
脉冲量输入 : 脉冲量 ( 或者称计数量 ) 输入通道与数字输入通道复用, 二者是或的关系 读取脉冲量值对应 MODBUS 读多个寄存器 功能码为 03 写入脉冲量值对应 MODBUS 写多个寄存器 功能码为 10 寄存器地址范围 :0--(rtu 设置的计数管脚总数 -1)*2 示例指令 : 如读取所有脉冲量输入通道的值的指令如下 : 指令 :01 03 00 00 00 0C 45 CF 说明 : 因为每个脉冲量输入管脚的值由 4 个字节表示, 所以每个管脚占用 2 个寄 存器地址 查询寄存器起始地址 00 00, 查询 12 个寄存器的值 00 0C 返回值 :01 03 18 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 A6 44 说明 :0-5 脉冲量的值为 1,2,3,4,5,6 读第 2 个脉冲量管脚, 地址 0x02 指令 :01 03 00 02 00 02 65 CB 说明 : 读取寄存器地址 00 02, 读取两个寄存器的值 00 02 返回值 :01 03 04 00 00 00 02 7B F2 说明 : 第 2 管脚的脉冲量的值为 2 置第 2 个脉冲量管脚的值为 100, 地址 0x02 指令 :01 10 00 02 00 02 04 00 00 00 64 73 9D 说明 : 写入寄存器地址 00 02, 写入两个寄存器的值 00 02, 写入值 00 00 00 64 返回值 :01 10 00 02 00 02 E0 08 测速量输入 : 测速量 ( 或者称计数量 ) 输入通道与数字输入通道复用, 二者是或的关系 读取测速量值对应 MODBUS 功能码为 04 寄存器地址范围 :0x08--((rtu 设置的测速管脚总数 -1)*2+0x08) 示例指令 : 读取所有测速管脚的值 : 指令 :01 04 00 08 00 0C 71 CD 说明 : 因为每个脉冲量输入管脚的值由 4 个字节表示, 所以每个管脚占用 2 个寄 存器地址 读取寄存器起始地址 00 08, 查询 12 个寄存器的值 00 0C 返回值 :01 04 18 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 8C CC 说明 :0-5 测速管脚的值为 1,2,3,4,5,6 10
数字量输出 : 数字量输出的功能码 : 读指令功能码 0x01 写指令功能码有两种可能, 功能码 0x05( 设置一路输出 ) 功能码 0x0F( 设置多路输出 ) 寄存器地址范围 :0x00 0x05(rtu 设置的开关输出管脚总数 -1) 置第 2 个输出管脚为 0, 地址 0x01 指令 :01 05 00 01 00 00 9C 0A 说明 : 寄存器地址 00 02, 置寄存器的值 00 00 返回值 :01 05 00 02 00 00 6C 0A 置第 1 个输出管脚为 1, 地址 0x00 指令 :01 05 00 00 FF 00 8C 3A 说明 : 寄存器地址 00 00, 置寄存器的值 FF 00 返回值 :01 05 00 00 00 02 D4 0A 错误信息 : 误响应 如果 modbus 指令的地址范围不正确或不支持的指令,rtu 将会返回 modbus 协议中的错 错误响应的格式 : modbus 地址 (1byte)+( 接收的指令 0x80)(1byte)+ 错误码 (1byte)+CRC(2byte) 错误码 :0x01 表示不支持的指令,0x02 表示错误的地址范围,0x02 表示错误的寄存器个数 11