通过GPRS实现组态软件与PLC的MODBUS通讯,实现无线远距离通讯。
PLC采用S7-1200 1212C CPU和CM1241 RS485通讯模块
宏电H7710SGS 485接口 GPRS DTU模块,组态软件为紫金桥

对于宏电H7710 的工作原理,是把采集数据的S71200经RS485 串口连接到GPRS模块上,之后通过模块上的SIM卡的网络,走流量连接到Internet网中的一个固定IP地址的数据中心Server,中心站采用紫金桥实时数据库.
CM1241接口的3和8为RS485通讯正负极,对应连接H7710的3和2端子
这个系统里PLC作为从站使用,组态软件为主站。
PLC OB1 里始终调用MB_SLAVE块 ,MB_ADDR 为从站地址,MB_HOLD_REG 为指向 Modbus 保持寄存器数据块的指针。

在MB_HOLD_REG指定的数据块DB4中建立要发送的数据
MB_COMM_LOAD块 用于组态端口使用 Modbus RTU 协议来通信,在OB100里调用一次即可。PORT 端口号,BAUD 波特率,PARITY 校验方式,MB_DB MB_SLAVE指令的背景数据块的引用。 在程序中插入MB_SLAVE之后,数据块标识符会显示在 MB_DB 框连接的下拉列表中。

通过以上指令从站PLC程序部分基本完成,具备通讯条件。
再简单描述一下上位机设置。
在紫金桥组态软件设备组态中配置所连接的从站设备1200。选择MODBUS串行通讯,数据读取周期时间设5秒,输入正确PLC通讯 地址,设置串口通讯格式,配置GPRS设备H7710,DTU标识输入手机卡的电话号码。


H7710的具体设置这里就不详细叙述了,不是本文重点。
在紫金桥组态软件点组态中添加MB_HOLD_REG指定的数据块DB4中的数据,这样在组态画面就可以读取从站的数据了。
这个案例主要用于实现无线远距离数据采集.
有错误不足之处欢迎指正吐槽。