北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8638082

Modbus RTU通信教程连载(2)-主站的配置

上一篇文章我们介绍了Modbus RTU通信的原理、例程中需要的硬件及网络拓扑结构,今天这篇文章,我们来介绍Modbus主站——S7-1200 CPU1215C的配置。

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

hardware_config.png

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

port_config.png

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

hardware_ID.png

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

start_OB.png

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

modbus_comm_load_DB.png

Modbus_comm_load.png

Modbus_Comm_Load指令中:

   1) 参数“REQ”需要上升沿触发。由于该指令放在启动组织块OB100中,因此这里可以直接复制“TRUE”;

   2)参数“PORT”填写CM1241-RS485的硬件标识符;

   3) 参数“BAUD”为传输的波特率,默认为9600;

   4)参数“MB_DB”为指令Modbus_Master的背景数据块,添加Modbus_Master指令后系统会自动创建;

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

Modbus_comm_load_parameter.png

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

modbus_comm_load_ob100.png

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

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

如下图:

modbus_comm_load_ob1.png

关于系统首次扫描位的设置,请参考文章:如何使用S7-1200/1500的系统位与时钟位?

好了,关于Modbus-RTU主站的配置就先介绍到这里。欢迎扫描下方的二维码关注我们的微信公众号。

founderchip.png


已经过安全软件检测无毒,请您放心下载。

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论