[西门子] Modbus RTU通信教程连载(2)-主站的配置

[复制链接]
查看285 | 回复0 | 2024-8-10 21:14:49 | 显示全部楼层 |阅读模式
上一篇文章我们介绍了Modbus RTU通信的原理、例程中需要的硬件及网络拓扑结构,今天这篇文章,我们来介绍Modbus主站——S7-1200 CPU1215C的配置。


本例程使用的开发环境是博途V13,硬件组态如下图:

在CM1241-RS485模块的属性窗口中,对通信参数进行设置:波特率9.6Kbps、无奇偶校验、8位字符数据位、1位停止位,其它保持默认值。如下图:

查看CM1241-RS485模块的硬件标识符:

回到项目树的界面,添加启动组织块(Startup)OB100。该组织块中的代码仅在系统每次启动时执行一次,用于Modbus通信参数的配置。如下图:

在指令列表中找到Modbus_Comm_Load,将其拖放到组织块OB100(Startup)中,系统会自动为其创建背景数据块,如下图:


Modbus_Comm_Load指令中:
   1) 参数“REQ”需要上升沿触发。由于该指令放在启动组织块OB100中,因此这里可以直接复制“TRUE”;
   2)参数“PORT”填写CM1241-RS485的硬件标识符;
   3) 参数“BAUD”为传输的波特率,默认为9600;
   4)参数“MB_DB”为指令Modbus_Master的背景数据块,添加Modbus_Master指令后系统会自动创建;

更多参数的详细含义见下面的表格:

Modbus_Comm_Load指令在OB100的完整代码如下图:

代码中的“Modbus_Master_DB”是指令Modbus_Master的背景数据块,该指令将在下一篇文章讲解。

另外,还可以将Modbus_Comm_Load指令放在组织块OB1中,这种情况下要使用系统的首次扫描位来保证该指令仅在第一个扫描周期执行一次。
如下图:

关于系统首次扫描位的设置,请参考文章:如何使用S7-1200/1500的系统位与时钟位?
好了,关于Modbus-RTU主站的配置就先介绍到这里。如果你喜欢这篇文章,可以去官网(www.founderchip.com)下载本文PDF版本。
小程序【李工谈工控】提供方便的文章检索功能,欢迎体验:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则