本实验使用S7-200 224XP DC/DC/DC(某国产兼容机)和Anylink IE-M 4G网关。
Anylink 4G网关可以实现PLC数据采集,手机远程控制,以及远程上传下载程序,远程调试等功能,咨询电话/微信:18037276890。
S7-200 Smart方法基本相同。
该方式只作为演示ModBus的用法,实际使用中Anylink网关内置PPI驱动和以太网驱动,可以更方便的和S7-200进行通讯,PLC不需要任何指令,也无需进行地址换算,直接输入I0.0,VD10这样的地址即可读取数据。
一、接线:
线路图
使用了一个DB9接头,红线接3脚,为485A,黑线接8脚,为485B。
S7-200只有Port0支持ModBus从站协议,所以要接在Port0上面。
黄色为PPI线,连接电脑Step 7软件。
网关连接485接口A、B(最右侧),最左侧为电源,中间网口连接电脑进行设置。
二、安装库文件:
西门子S7-200使用Modbus RTU协议,需要安装官方提供的库文件。
下载地址:Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
安装完成,在指令树中即可看到安装的库文件,可以看到作为主站时两个Port0口均支持,但是作为从站只有Port 0才可以。
三、初始化梯形图:
安装好库文件后我们需要进行程序的编写,只需要调用两个子程序即可。
具体的命令可以查看帮助文件,
以下约定串口参数为:波特率9600、无校验、从站地址为1。
然后别忘了给库分配内存空间,地址可以尽量靠后,不常用的部分。
四、S7-200 PLC ModBus地址说明
以下引用自Step7的帮助文件:

参照上面两部分可以得出:
PLC Q区属于读线圈状态,可写,功能码为1
PLC I区属于读离散输入状态,只读,功能码为2
PLC V区属于读保持寄存器,可写,功能码为3
PLC AIW区属于读输入寄存器,只读,功能码为4
五、网关配置
首先配置采集通道,参数如下,和PLC参数对应。
再配置设备,从站地址为1,和PLC对应
然后配置数据项:
在Anylink网关中,功能码即代表该区的起始地址,功能码1代表1,功能码2代表10001,功能码3代表40001,功能码4代表30001,所以如果是Q0.0,在PLC文档中地址是10001,在配置网关的时候就是10001-10001=0,Q0.1为10002-10001=1,同理VD0地址为40001-40001,也为0。
同时V区一个地址码代表一个字,也就是16位,所以一个VW代表一位,一个VD代表2位,VD0地址为0,但是占用了0、1两个地址位,因此VW4地址为2。
分别配置以下五个数据项
PLC地址 功能码 modbus地址
I0.0 2 0
Q0.0 1 0
VD0 3 0
VW4 3 3
AIW0 4 0
还要注意该地址对应的数据类型。
五、下发配置文件,测试。
测试结果,可以看到结果完全一致,其中Q区和V区都可以进行写操作。