MCGS与Modbus应用总结

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~247M表示主站个数,对于ModbusTCP从站,同时连接主站的个数M一般限制不超过8个。

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

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

4. :1个RS232串口接1个RS232设备。

9.
PLC地址与协议地址区别:

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

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

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

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

10-2. 数据转发设备(从站)驱动,也可用于将MCGSTPC触摸屏作为Modbus从站,与MCGSTPC触摸屏或通网版软件的Modbus主站通讯实现数据交互。


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

寄存器

读取功能码

写入功能码

功能码说明

示例

[1]输入继电器

02


02: 读取输入状态

10001 输入继电器,地址1

[0]输出继电器

01

05

15

01: 读取线圈状态

05: 强制单个线圈

15: 强制多个线圈

00002 输出线圈,地址2

[3]输入寄存器

04


04: 读输入寄存器

30005 输入寄存器,地址5

[4]输出寄存器

03

06

16

03: 读保持寄存器

06: 预置单个寄存器

16: 预置多个寄存器

40001 保持寄存器,地址1

注:其中输出继电器也称作线圈,输出寄存器也称保持寄存器。

通讯状态:

   "0":通讯成功;

  "1":发送数据校验错误;

  "2" 没有收到数据

  "3":接收数据校验错

抢沙发

评论已关闭!