大数跨境
0
0

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

Modbus RTU通信教程连载(3)-主站的编程 易维通
2018-10-10
1
导读:高级自动化工程师【北岛李工】编写系列技术文章对Modbus RTU通讯进行说明,希望对大家有帮助。

摘要

针对有朋友在易维通匠说提问的S7-1200与S7-200的Modbus通信问题,高级自动化工程师【北岛李工】编写系列技术文章对Modbus RTU通讯进行说明,希望对大家有帮助。北岛李工有丰富的PLC应用经验,工程师朋友们可进入工匠圈和李工多多交流。

来源:方正智芯

点击阅读原文,进入北岛李工的主页

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




新建一个全局数据块“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通信的步骤。


如下图:





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:添加Modbus_Master指令,系统会自动提示创建背景数据块,如下图:



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


新添加的Modbus_Master指令如下图:



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



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


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



步骤2的代码如下:



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



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




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


李工的个人介绍

— THE END —



目前,易维通正在积极构建虚拟团队,控制器、驱动器、执行机构、智能制造、配电系统、职业发展、心理学、外语等核心技术分享虚拟团队都已具雏形。能力出众的你,别再犹豫了,加入我们!




在易维通

你可以实现知识收费

你可以发现机会

你可以结交技术大牛

你也可以打造个人品牌


 点阅读原文,更有料

【声明】内容源于网络
0
0
易维通
易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
内容 1120
粉丝 0
易维通 易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
总阅读3.5k
粉丝0
内容1.1k