其他分享
首页 > 其他分享> > Modbus_RTU的通讯方式

Modbus_RTU的通讯方式

作者:互联网

Modbus_RTU的通讯方式

RTU 半双工通讯方式

本次使用的是 CPU:1215C DC/DC /RLY

通信模块:CM1241(RS232/RS485)硬件标识符:269(如图 1)

1

 

通信对象是ZNZS2 转速表。首先我们要收集到该转速表的波特率(9600)、功能码(03:保持型寄存器 40001)、地址(3)等信息。

创建通信指令

  1. 介绍

RTU通讯有两种通信指令:Modbus(RTU)是新版本,里面的内容更多。Modbus是老版本,本次我们就是用的该版本。(如图 2)

2

 

  1. 创建

组态端口我们就不再OB100中创建了,统一创建在OB1中,给FirstScan让他使能。拖入组态端口(MB_COMM_LOAD)和主站通信(MB_MASTER) (如图 3)

3

 

MB_COMM_LOAD:(如图 4)

REQ: 使能 (FirstScan)

PORT: 通信端口ID (硬件标识符位269的通信模块)

BAUD: 波特率 (9600)

PARITY:有无奇偶校验 (无奇偶校验)

MB_DB:“MB_MASTER”或“MB_SLAVE”指令的背景数据块的引用 ("MB_MASTER_DB")

4

 

后面的DONE、ERROR这些东西可以先不写,等我们有多块表需要轮询时在添加。

MB_MASTER:(如图 7)

REQ: 使能 (选择0.5HZ的时钟)

MB_ADDR: 从站的地址  (也就是我们表的地址:3)

MODE: 0:读 1:写    (读取:0)

DATA_ADDR:   寄存器起始地址   (40001)

DATA_LEN: 数据长度,我们需要读多长 (根据参数,我们只有1个数据:1)

DATA_PTP: CPU存储地址   (取到数据后放到我们PLC的什么地方:DB2 int数组中)   注:数据块需要取消优化访问。 (如图 5图 6)

5

 

6

 

7

 

  1. 成功

8

 

注意:如果报错请查看报错信息,检查波特率、地址、寄存初始地址、读取长度(不能多读,从站中只有一位,如果去读两位肯定报错)

  1. 四字真言

主从一致

标签:RTU,通讯,MB,Modbus,地址,MASTER,如图
来源: https://blog.csdn.net/weixin_61398412/article/details/121326170