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

Modbus RTU通信教程连载(4)-从站的配置及编程

前面的文章我们介绍了Modbus RTU通信中主站S7-1200的配置和编程,今天这篇文章,我们来介绍从站S7-200 Smart的配置及编程。

cover.png

本例程从站使用S7-200 Smart的CPU ST40,通信端口使用CPU模块本体的RS485接口,modbus地址为2。

打开编程软件STEP 7-Micro/WIN SMART,在指令库中找到文件夹“Modbus_RTU_Slave”,里面有两个指令:MBUS_INIT和MBUS_SLAVE,如下图:

instruction.PNG

指令INIT用来初始化从站的地址、通信的波特率、存储器地址等相关信息。选中该指令将其拖放到主程序MAIN中,如下图:

MBUS_INIT.PNG

该指令的相关参数含义见下面的表格:

MBUS_INIT_Parameter.png

注意:

1)MaxIQ用于设置modbus参数地址0xxxx与1xxxx对应的PLC的输出Q与输入I的地址,在S7-200 Smart中,最大可设置为256(不同类型的PLC该值不同)。当设置为0时,将禁用输入及输出的读写操作;

2)MaxAI用于设置modbus参数地址3xxxx对应的PLC的字输入寄存器的地址,也就是模拟量输入(AI)的地址。对于S7-200 Smart紧凑型CPU(CR20s、CR30s、CR40s、CR60s)而言,建议设置为0;其它标准型CPU,建议设置为56;

3)MaxHold用于设置modbus地址4xxxx或4yyyyy对应的PLC的保持存储区的大小,以字为单位。例如,如果要允许modbus主站访问2000个字节的从站V存储区,则MaxHold应设置为1000;

4)MBUS_INIT仅在CPU启动后的第一个扫描周期执行一次即可;如果更改通信参数,则重新再执行一次;

MBUS_INIT指令的完整代码如下图:

MBUS_INIT_complete.png

接下来我们将MBUS_SLAVE指令添加到主程序块中,并设置其参数如下图:

MBUS_SLAVE.PNG

调用STEP 7 - Mciro/WIN SMART Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。

MBUS_SLAVE指令库需要一个781个字节的全局 V 存储区。 分配方法如下:

右键单击“程序块”,在弹出的菜单中单击“库存储器”,如下图:

lib.png

在弹出的库存储器分配对话框中,选择“Modbus RTU Slave”,如下图:

libary_address.png

点击“建议地址”,系统会自动分配可用的V存储区作为库存储区。

好了,关于Modbus RTU通信的最后一步也介绍完了,其它通信步骤可以查看之前的连载文章。

欢迎扫描下面的二维码关注我们的微信公众号。

founderchip.png


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

取消

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

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

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

发表评论