西门子S7-1200 作MODBUS TCP客户端配置方法补充

机型:S7-1200 1214C AC/DC/RLY(目前固件版本为V3.0)
软件版本:STEP7 Professional V13 SP1 Update9

说明:本博文是对西门子官方教程的补充:
MODBUS TCP V3 客户端
未详述的部分可在此文内查看。

PORTAL 配置

将S7-1200设做MODBUS TCP客户端,目前MODBUS库指令的最新版本为V4,但由于机型限制,只能使用V3版本。V3版本和V4版本的配置是有所区别的。

  1. 首先需要调用MB_CLIENT通信指令,调用时会自动生成背景DB 。
  2. 新建MB_DATA_PTR数据块,作为数据缓冲区,可以为DB块或M存储区。在其内部建立一个数组,用于在通信中存放数据。

缓冲区为数据块时需要选择“标准与S7- 300/400兼容” ,但实际上一些版本是没有这个选项的,只需要右键DB选择属性,去掉勾选“优化的块访问”,即可达到相同目的。
在这里插入图片描述
顺带一提,优化访问的块没有实际地址,所以只能符号寻址。必须去掉该选项,才能保持同例程的一致。

  1. 完成MB_CLIENT通信指令的填写。
    在这里插入图片描述
    图中左下角MB_DATA_PTR必须在创建数据块(并且不勾选优化的块访问)后输入数据才不会报错,填入格式为P#DB3.DBX0.0 WORD 20,不需要敲回车键。

在MB_CLIENT指令中,MB_MODE和MB_DATA_ADDR两个参数组合定义了当前Modbus消息中所用的功能代码;DATA_ADDR还决定了访问数据的起始地址;MB_DATA_LEN决定了数据访问的长度(位数或字数),接受的数据存放在缓冲区。
在这里插入图片描述

40001(有些是400001)前面的4并不代表实际数字,Modbus协议中的地址(规约中指的Starting Address)都是从0开始的。40001指的是Hold寄存器第0个,有时候还会写成4001或400001,它在协议中表示为低位0,高位0,40002在协议中为低位1,高位0。依次类推。

MODBUS SLAVE配置

Modbus Slave是从设备仿真器,在此处作为modbus服务器。

下载

在下载之前需配置PLC的IP地址,PLC的IP地址需要与电脑在同一子网。

可通过PROFINET通信口可以实现CPU与编程设备的通信。
编译硬件和软件后(若未编译,下载时也会自动编译),点击下载,在弹出的"扩展下载到设备"对话框中,设置PG/PC接口类型,并在"PG/PC接口"下拉选项中选择编程设备的网卡(此二者通常使用默认选项),点击"开始搜索"。
如果编程设备的IP地址和组态的PLC不在一个网段,会弹出“分配IP地址的选项框”,在弹出的对话框中分别点击"是"和"确定",可完成添加IP地址。
将工程下载进PLC,完成。

验证

在MODBUS SLAVE中填入测试用的变量值(需要预先创建数据块(并且不勾选优化的块访问)并进行编译)。
下载完成后,启动CPU,在portal中【转到在线】,点击【全部监视】,在监控表中可看到在SLAVE中设置的变量值。

参考资料

MODBUS TCP通信
MODBUS TCP V3 客户端
S7-1200项目的下载
Modbus测试工具ModbusPoll与Modbus Slave使用方法

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值