MCGS与Modbus应用总结 下载本文

内容发布更新时间 : 2024/6/21 13:54:41星期一 下面是文章的全部内容请认真阅读。

1. Modbus是MODICON公司于1979年开发的一种通讯协议,是一种工业现场总线协议标准。1996年施耐德公司推出了基于以太网TCP/IP的Modbus协议——ModbusTCP。

2.Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型,协议本身并没有定义物理层,只是定义了控制器能够认识和使用的消息结构,而不管他们是经过何种网络进行通信的。

3.标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网口。采用Master/Slave(主/从)方式通信。 4. Modbus是一种简单客户机/服务器应用协议,客户机能够向服务器发送请求,服务器分析请求,处理请求,向客

户机发送应答。 当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。对于一个正常响应来说,服务器仅复制原始功能码。对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回。

5.Modbus协议帧格式:

Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。在特定总线或网络上的Modbus协议映射能够在应用数据单元(ADU)上引入一些附加域。Modbus通用帧格式如下:

6.

串行链路上的Modbus地址规则:

? 主要是在RS485和RS232等物理接口上实现Modbus协议。 ? Modbus串行链路协议是一个主/从协议

? 在Modbus链路层上客户机的功能由主站提供而服务器的功能由从站实现。 ? 地址0为广播地址,Modbus主节点没有地址,子节点必须有一个唯一的地址

? Modbus通信由主节点发起,子节点在没有收到来自主节点的请求时,从不会发送数据。 ? 子节点之间互不通信。

? 主节点在同一时刻只会发起一个Modbus事务处理。

7.ModbusTCP简介

? ModbusTCP是运行在TCP/IP上的Modbus 报文传输协议。通过此协议,控制器相互之间通过网络(例如以太

网)和其它设备之间可以通信。

? ModbusTCP是开放的协议,IANA(Internet Assigned Numbers Authority,互联网编号分配管理机构)给

Modbus协议赋予TCP编口号为502,这是目前在仪表与自动化行业中唯一分配到的端口号。

8. ModbusRTU,TCP和ASCII三者协议格式区别对比如下:

说明:1、组网方式中:N表示从站个数,不大于247,从站地址范围为1~247。M表示主站个数,对于ModbusTCP从站,同时连接主站的个数M一般限制不超过8个。

2、有效数据长度:是指进行通讯时,通讯帧单元中所能包含的真正有效的数据的长度。例如:主站使用03功能码读取从站4区保持寄存器的数据,一次最多可以读取124个最小单位为字的数据,即:124字(248字节)。

3. 由以上协议格式及对比可以看出:RTU和TCP由于使用16进制进行传输,效率较高。而ModbusASCII格式通讯时,传送一个字节数据需要两个ASCII字符,通讯效率较前两个低。

4. :1个RS232串口接1个RS232设备。 9. PLC地址与协议地址区别:

MCGS的Modbus驱动在内部属性中添加通道时,寄存器起始地址均为1,这是遵从Modbus协议的,即所说的“协议地址”,而其实际寄存器地址(即所谓的“PLC地址”)则为协议地址减1,也就是说:以协议地址方式添加的地址为1时,实际寄存器地址为0。

10-1.数据转发设备(从站)与主站的配合使用

数据转发设备(从站)驱动,可用于将MCGS的TPC触摸屏作为Modbus从站,与其他第三方软件或HMI等Modbus主站通讯并提供数据交互,此时TPC相当于从站终端设备,驱动通过关联的实时数据库变量,实现TPC触摸屏与第三方Modbus主站的数据交互:

数据转发设备(从站)添加通道的只读、只写、读写属性是相对于主站而言的,即:被主站进行只读、只写和读写操作。与Modbus主站通讯数据交互时,相对于主站,可被视为设备。此时,主站和从站设备地址、通讯参数等设置也要保持一致:串口数据转发要保证串口波特率、数据位、校验位等通讯参数相同;TCPIP数据转发则要保证主站的远程IP地址、端口号和从站的本地IP地址、端口号相同,否则无法正常通讯。

10-2. 数据转发设备(从站)驱动,也可用于将MCGS的TPC触摸屏作为Modbus从站,与MCGS的TPC触摸屏或通网

版软件的Modbus主站通讯实现数据交互。

11.Modbus的寄存器区和MCGS支持的常用功能码如下表所示:

寄存器 [1区]输入继电器 [0区]输出继电器 读取功能码 02 01 写入功能码 — 05 15 — 06 16 功能码说明 02: 读取输入状态 01: 读取线圈状态 05: 强制单个线圈 15: 强制多个线圈 04: 读输入寄存器 示例 10001 输入继电器,地址1 00002 输出线圈,地址2 [3区]输入寄存器 [4区]输出寄存器 04 03 30005 输入寄存器,地址5 40001 保持寄存器,地址1 03: 读保持寄存器 06: 预置单个寄存器 16: 预置多个寄存器 注:其中输出继电器也称作线圈,输出寄存器也称保持寄存器。