Java教程

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. 四字真言

主从一致

这篇关于Modbus_RTU的通讯方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!