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

Modbus RTU通信教程连载(3)-主站的编程

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

cover.png

新建一个全局数据块"DB_MODBUS_COMM"。在该数据块中新建三个变量:COMM_DONE、COMM_ERROR和COMM_STATUS,用来保存指令“Modbus_Comm_Load”的运行状态,如下图:

modbus_comm_load_ob1.png

新建一个全局数据块“DB_MODBUS_MASTER”,用来保存读取及写入的数据。其中:

  • 字数组“Read_Data_Words”用来保存读取的40001~40010的数据;

  • 字数组“Write_Data_Words”是用于写入到从站Modbus地址40011~40016的数据;

  • 位数组“Read_Bits”用来保存读取从站Modbus地址10001~10008的数据;

  • 位数组“Write_Bits”是用于写入到从站Modbus地址00001~00008的数据;

  • 无符号短整型(USInt)变量“Step”用来记录Modbus通信的步骤。

如下图:

modbus_db_master.PNG

Step变量的值决定通信的步骤,具体定义如下:

1)Step==1时,Modbus主站读取从站Modbus参数地址40001开始的10个字长的数据;

2)Step==2时,Modbus主站将6个字长的数据写入到从站起始Modbus参数地址40011;

3)Step==3时,Modbus主站读取从站Modbus参数地址10001开始的8个位的数据;

4)Step==4时,Modbus主站将8个位写入到从站Modbus参数地址00001;

当Modbus_CommLoad初始化完成时,跳转到步骤1:

jump_step1.png

添加Modbus_Master指令,系统会自动提示创建背景数据块,如下图:

modbus_master_db.png

注:该数据块中的“MB_DB”就是指令“Modbus_Comm_Load”的“MB_DB”参数。

新添加的Modbus_Master指令如下图:

modbus_master_instrution.png

指令“Modbus_Master”各参数的定义如下:

modbus_maste_parameter.PNG

步骤1(Step1)的代码如下:

step1.png

当步骤1完成或者出错时,跳转到步骤2:

jump2step2.png

步骤2的代码如下:

step2.png

同样的,当步骤2完成或出错时,跳转到步骤3;跳转代码就不一一列出了,这里仅接触步骤3和步骤4的代码,如下图:

step3.png

step4.png

好了,关于Modbus RTU通信的主站S7-1200的编程就先介绍到这里,后续文章我们介绍从站S7-200 Smart的配置与编程。

相关参考文章:

Modbus RTU通信教程连载(1)-原理及网络拓扑

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

我是Modbus-RTU协议,我有两个兄弟

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


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

取消

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

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

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

发表评论