6.通讯
6. 1 电气通讯界面
6. COMMUNICATIONS 6.1 ELECTRICAL INTERFACE 6.1.1 电气界面
电气界面通过下面两种方式:保护装置后面2个RS485接口中的一个或装置面盘上的RS232接口。两线连接的RS485接口数据传输是双向的,而对RS485和RS232接口数据传输都是半双向的,就是数据的传输和接受不能同时进行。RS485与终端网络应当采用菊链式联结(避免采星形式联结),当采用Belden 9841 RS485连线时连线的末端要跨接一个120Ohm电阻和1 nF电解电容串接的电路,连线末端的电阻应等于连线的特性阻抗值,对#22 AWG标准型双绞联结线,其特性阻抗约为120Ohm,联结线应采用屏蔽线缆以减低干扰。RS485联结线的极性是非常重要的,所有489的‘+’极端子必须在系统中连在一起,参看第2章INSTALLATION。
6-1
6.2 协议
6.2.1 MODBUS RTU 协议
在AEG Modicon Modbus RTU 串接通讯中,489执行一个子设备的功能,许多流行的直接支持这种协议程序控制器通过适当的界面卡与继电器直接相连,尽管Modbus协议在硬件上是相互独立的,但489仍然提供了两个两线联结的RS485和一个RS232界面接口。Modbus是单主机,多子设备的协议,适用于对由RS485硬件组成的多下位设备的设置,在单一的菊链式联结的通讯通道中最多可设置32个下位设备
489总是用作下位设备,不能用作主机,计算机或PLS通常被用作主机。Modbus协议由两个版本:远端通讯(RTU,二进制)协议和ASCII协议。只有RTU版本支持489的通讯。
6.2.2 数据结构形成和数据速率
489异步通讯的数据结构被缺省为:1bit开始、8bit数据和1bit停止,从而形成了10-bit 数据结构,这对通过Modem进行高速传输非常重要(当比特率超过300bps,Haye型Modem不支持11-bit数据结构),校验bit可选择奇校验或偶校验。如果选择奇校验或偶校验,数据结构为:1bit开始、8bit数据、1bit校验和1bit停止。
Modbus协议实现任何标准通讯速度,489的RS485支持1200、2400、4800、9600和19200波特的速率,盘前的RS232固定在9600波特。
6.2.3 数据打包结构
一个完整的申请/应答序列由以下字节组成(作为单独的数据结构传输)
主机申请传输:
下位地址 - 1 byte 功能码 - 1 byte
数据 - 由功能码决定字节数 循环冗余码校验CRC - 2 bytes
下位设备应答传输:
下位地址 - 1 byte 功能码 - 1 byte
数据 -由功能码决定字节数 循环冗余码校验CRC - 2 bytes
下位设备地址(SLAVE ADDRESS)——每次数据传输的第一个字节,这个字节代表了用户设定的下位设备的地址,每个下位地址必须是唯一的,而且只有该地址才对申请进行响应。在主机申请传输时,主机将申请传输到下位地址代表的下位设备;在下位设备响应传输中下位地址代表的下位设备发送响应信息。RS232通讯时不需要下位地址。注意:当如果主机向下位地址0传输数据时,表示这是条广播命令,该命令能用于特定功能。
功能码(FUNCTION CODE)——这是每次数据传输的第二个字节,Modbus的功能码定义是从1到127,489能执行其中的某一些功能。在主机申请传输中由功能码告诉下位设备去执行什么操作;在下位设备响应传输中,下位设备发出的功能码与收到主机的功能码相同,表示下位设备已执行了该操作。如果发送的功能码超出设定范围(比如>127),则下位设备不执行所申请的操作,并且发送一个错误或有异议的响应信号。
数据(DATA)——字节数依功能码而变化,可以是实际测值、定值设置、或者是由主机向下位设备发送的地址、亦或是由下位设备向主机发送的地址。数据首先以MSByte发送,接着以LSByte发送。
循环冗余码校验(CRC)——是2字节的错误检验码,CRC首先以LSByte发送,接着以LMByte发送。
6-2
6.2.4 错误检查
RTU版本的Modbus包含了2字节的循环冗余码校验(CRC)(16-bit循环冗余码校验),循环冗余码校验法则是将整个数据流(只对数据字节,忽略开始、停止和校验码)当作持续的二进制数,这个二进制数首先被左移16位,然后被特征多项式(11000000000000101B)去除,除剩下的余数附加到传输的末端—LSByte,检验结果包含了循环冗余码校验(CRC),当接收设备收到后被同一个多项式去除,余数为0,说明传输正确。
如果489Modbus下位设备接收到的数据经检查有错误时,489下位设备就不对传输进行响应。检查错误表明所传输的数据有一个或多个字节传输错误,因此整个传输的数据被忽略以避免489进行错误操作。
16-bit循环冗余码校验(CRC-16)是检查传输错误的工业标准方法。这里还有一个错误检查运算法以帮助在没有16-bit循环冗余码校验(CRC-16)标准运算法的情况下进行编程检查。
CRC-16 运算法则
一旦下述的的运算法则全部完成,工作寄存器“A”将保留要发送的CRC的值。注意这个运算法则需要按序颠倒的特征多项式。特征多项式中的Msbit被去掉,因为它不影响余数的值,下面的符号用于运算:
--> 数据传送r
A 16 bit 工作寄存器 AL 寄存器A的低8位 AH 寄存器A的高8位
CRC 116-bit循环冗余码校验值 i, j 循环计数器 (+) 逻辑运算器
Di 第I个数据字节 (i = 0 到 N-1)
G 16 bit 特征多项式 = 1010000000000001 曲调 MSbit 顺序颠倒
shr(x) 右移 (数据x 低8位的LSbit 右移到标志器,‘0’移到数据x 的高8位的Msbit,其它字节右移一位)。
运算法则:
1. FFFF hex --> A 2. 0 --> i 3. 0 --> j
4. Di (+) AL --> AL 5. j+1 --> j 6. shr(A)
7. is there a carry? No: go to 8.
Yes : G (+) A --> A
8. is j = 8? No: go to 5.
Yes: go to 9.
9. i+1 --> i
10. is i = N? No: go to 3.
Yes: go to 11.
11. A --> CRC
6.2.5 定时(TIMING)
数据包的同步由定时约束来维持,接收设备必须测量字符之间接收的时间,如果经过三个半的字符延时没有新字符收到或数据包结束,则通讯联结复位。这样对于9600波特速率的通讯,当延时为大于3.5 *1/9600 * 10 = 3.65 ms后通讯联结复位。
6-3
6.3 被支持的MODBUS功能
6.3 SUPPORTED MODBUS FUNCTIONS 6.3.1 被支持的MODBUS功能
489支持下面的功能
03 – 读取整定值和实际测值 04 - 读取整定值和实际测值 05 - 执行操作 06 – 存储单个定值 07 – 读取设备状态 08 – 回放试验 16 – 存储多个定值
6.3.2 功能码03和04 – 读取整定值和实际测值
Modbus 执行功能: 读取输入和保持寄存器内容 489执行功能: 读取整定值和实际测值
对489的Modbus执行功能,这些命令可被用来读取任何整定值(“保持寄存器”)或实际测值(“输入寄存器”),保持和输入寄存器是首先传输的高八位16bit(2字节)数值。所以489所有的整定值和实际测值均以两字节传输,在每次传输中能够读取寄存器的最大数是125。功能码03和04被分配轮替地读取整定值或实际测值,因为有些PLC不支持两个功能码。
下位设备对这些功能码的响应是下位地址、功能码、数据字节数的计数、数据和CRC。每条数据被以两个字节数用高八位首先发送,CRC以两个字节数用低八位首先发送。
信息结构和举例:
向下位地址11申请响应从地址0235开始的2个寄存器 此例中2个寄存器的数据为:
地址 数据 0235 0064 0236 000A
主机传输 字节 例 (16进制hex)
1 下位地址 0B 代表下位地址 11 1 功能码 03 读寄存器 2 数据开始地址 02 从0235地址开始2个寄存器
35
2 定值数 00 2 寄存器 (共4字节)
02 CRC 2 D5 CRC 由主机计算 17
下位响应
1 下位地址 0B 代表下位地址 11 1 功能码 03 读寄存器 1 字节记数 04 2 寄存器 = 4 字节 2 数据1 00 地址 0235的数据
64
2 数据 2 00 地址 0236的数据
0A CRC 2 EB CRC 由下位设备计算 91
6-4
相关推荐: