文档详情

推荐-TM220通信协议-最新版

pu****.1
实名认证
店铺
DOC
186.50KB
约11页
文档ID:480693437
推荐-TM220通信协议-最新版_第1页
1/11

TM220通信协议一、 通信规格1. 规格 NO.项目规格1接口EIA规格 RS4852传送线路2线制 多从机3传送距离最大500m4传送速度(bps)2400, 4800, 96005通信方式半双工6数据形式起始位:1 位数据位: 8 位校验位: 1位(有奇偶校验时);无(无奇偶校验时)停止位: 1位(有校验时);2位(无校验时)7传输模式HEX值( MODBUS RTU 格式)8数据校验方式CRC-169最大连机台数1:N(31台)10信号逻辑V(T/RA) > V(T/TB) 0V(T/RA) < V(T/RB) 12. 端子编号和信号名称端子编号信号名称内容21SG信号接地用22T/R(A)传送数据23T/R(B)传送数据 3. 通信参数 代码名称设定范围内容出厂值Add仪表地址号0~247设定调节器的机器地址0bps通讯速率(pbs)2400、4800、9600设定通讯速率9600bit数据形式8n28 O 18 E 18位、无奇偶校验 2终止位8位、 奇校验 1终止位8位、 偶校验 1终止位8n2int发送延时(ms)0~1000设定两次通信最小间隔时间10注:1) 在通信参数变更后,仪表请重新通电,如果不重新通电,变更后的值不能通信。

2) 传送速度要同上位机设定一致 3)数据形式要同上位机设定一致推荐精选4、通信命令构成本通信协议使用主—从技术,即仅一设备(上位机)能发起通信(查询/设定参数)其它设备(从机)根据主设备查询提供的数据作出相应反应通信中使用RTU数据模式,所有数据使用二进制形式传输,不使用ASCII码通信过程如下:l 主机发出命令,在命令的开始用地址表明发送目的l 所有的子机均进行接收,并判断地址与自己的地址是否相同l 地址相符的子机,依据命令的功能码执行不同的操作,如命令要求发回应答时,子机发回相应应答l 地址不相符的子机,舍弃本次命令帧,等待下一个命令帧的到来 命令帧的构成(最大256字节)从机地址功能码数据校验字节(CRC)一字节一字节0~252字节二字节1) 地址说明从机地址指仪表的通信地址,在1~247范围内自由指定在同一个网络中,所有的地址必须是唯一的主机可以与网络中的任何子机进行通信地址0作为广播地址,用于广播通信当命令中出现广播地址时,所有的子机均接受命令,执行操作,但不返回任何应答2) 功能码说明本协议采用标准的MODBUS功能码具体通信中采用以下三个指令值名称功能作用范围03HRead Holding Registers读出寄存器中的值。

连续寄存器可一次读出多个)1~125字节06HWrite Single Register向一个寄存器内写入数值1字节08HDiagnostic通信诊断1字节相应命令长度功能码命令长度(字节)正常应答长度(字节)备注最小最大最小最大03H88725506H888808H88883) 数据根据功能码的不同,数据内容有不同的解释,详细可参阅后面的命令格式、数据一览表4) 错误检测域检测命令错误的方式采用CRC_16,具体算法可以参照CRC计算详解 5、 应答命令格式推荐精选1) 命令的正常应答地址功能码数据长度数据错误检测域本机地址同上位机命令数据项目的字节数CRC_161字节1字节1字节N个字节2字节命令的非正常应答l 当子机接受到不合适的命令时(不可识别的命令除外),子机不执行任何操作,只发回应答l 当子机处于通信诊断状态,子机判断通信出错时,子机对收到的任何命令只返回错误代码地址功能码错误代码错误检测域本机地址指令+80HCRC_161字节1字节1字节2字节错误代码表错误代码值内容1本协议不支持的功能代码2指定的寄存器不支持此功能如试图设定只读寄存器,或读取寄存器数据时使用不存在的地址作为起始地址。

3在写入寄存器时数据超限或读取寄存器数值时最大寄存器地址超限4自诊断错误8子机系统忙<无应答〉l 当命令中的地址与子机地址不一致时,子机不返回任何应答l 指令中的CRC和子机计算出的CRC不一致,或检测出传送出错(超时,桢错误、奇偶校验错误)当出现以上错误时,子机不返回任何应答l 在一个命令帧传送过程中,相邻俩个字节的时间间隔超过正常间隔的1.5字符时间时,通信双方认为出现超时错误,此次命令传送结束2) 传送时序《主机命令发送时序》l 每次命令发送至少要以3.5个字符时间的停顿间隔开始l 整个命令作为一个连续的流传输,命令中的各个字节之间的间隔不能超过正常传输时间的1.5倍有超过1.5个字符时间的停顿时间,子机将刷新不完整的命令并假定下一字节是一个新命令的地址域推荐精选l 在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了命令的结束一个新的命令可在此停顿后开始 对于子机可能出现应答的情况要有超时判断来进行处理,避免无限等待对于停顿时间要有必要的余量如 9600bps → 3.5倍时间间隔=4.01ms : 余量可以调大为10ms. 1.5倍时间间隔=1.72ms : 发送中时间间隔可以控制在1ms.《子机传输时序》l 通信中当子机检测到3.5个字符时间后,可以认为此次命令传递结束。

l 当子机解析完命令后,依据解析情况决定是否执行命令和发回相应应答6、CRC-16的计算方法 CRC为2字节(16位)的错误码在命令及应答中,使用CRC检测了整个命令的内容正确与否 发送方发送命令时,组织好命令数据后依据计算方法计算出CRC,并将它附加在命令数据后仪器发送当接收方接受完命令后,依照同样的方法计算CRC,如果算出的CRC和接收到的CRC一致时,认为命令数据正确,否则认为数据命令出错,接收方为子机时不对命令做出任何应答CRC在计算时,仅对每个字节中的8个数据位进行计算,起始位、停止位、奇偶校验位均不参与计算《CRC计算方法》1) 将一个16位寄存器作为CRC寄存器,初始值设为#FFFFH.2) CRC寄存器与命令中的第一个字节进行异或(XOR)计算结果存入CRC寄存器3) CRC寄存器中的值向右移一位4) 如果移出的位为1,则CRC寄存器的值和#A001H进行异或(XOR)计算,结果存入CRC寄存器如果移出的位是0,CRC寄存器的值不变5) 如果移出次数不足8次,返回3)4)再次计算6) 如果8次已经移完并且计算完毕取命令中的下一个字节和CRC进行移或(XOR)计算7) 返回3)进行移位计算。

直到命令中的全部数据计算完毕(校验命令时不包括接收到的CRC字节)8) 当全部数据计算完毕后,CRC寄存器中的数据就是所求的数据将CRC值附加在命令数据后面一起发送加入时低字节在前,高位字节在后7、参数设置(寄存器写入)时的注意事项本调节器的参数保存在调节器内部的EEPROM中,读写寄存器实质是对EEPROM的存储单元进行读写操作EEPROM中的数据可以在掉电后长期保存每个存储单元可提供最大100000次重写使用期限对调节器的参数设置次数必须少于EEPROM的写入次数限制并且需要子机的参数rom=1的情况下才能进行8、主机命令示例1) 读出寄存器数值命令(功能代码: 03H)本命令指定开始的寄存器地址和本次想读出的寄存器个数子机在接到命令后,按照寄存器地址的顺序,返回参数数值每个数值占两个字节,高位字节在前,低位字节在后例1) 从地址为「2」的子机的「0000H」号寄存器开始,连续读出3个寄存器的值主机命令子机地址02H功能代码03H推荐精选寄存器始地址第一字节00H00H第二字节要读出数据的个数第一字节00H03H第二字节CRC-16第一字节05HF8H第二字节子机应答(正常应答) 子机地址02H功能代码03H数据个数(*1)06H第一寄存器数值第一字节00H00H第二字节第二寄存器数值第一字节00H03H第二字节第三寄存器数值第一字节00H63H第二字节CRC-16第一字节75HACH第二字节(*1)数据个数= 寄存器个数*2子机应答(非正常应答)子机地址02H功能代码+80H83H错误代号03HCRC-16第一字节F1H31H第二字节2) 设定寄存器值(功能代码: 06H)本命令对指定的寄存器写入预定数据。

写入的数据占两个字节,高位字节在前,低位字节在后的顺序存放在写入前,必须确认该寄存器是可读写寄存器例1) 对地址为1的子机的0010号寄存器写入数据102H.主机命令子机地址01H功能代码06H寄存器地址第一字节00H10H推荐精选第二字节要设定的数据第一字节01H02H第二字节CRC-16第一字节08H5EH第二字节 子机应答(正常应答) :返回的数据和写入命令相同子机地址01H功能代码06H寄存器地址第一字节00H10H第二字节设定的数据第一字节01H02H第二字节CRC-16第一字节08H5EH第二字节 子机应答(非正常应答)子机地址01H功能代码+80H86H错误代号02HCRC-16第一字节C3HA1H第二字节3)诊断指令(功能代码:08H) 本命令用来对子机的通信状态进行测试测试时子机只返回测试数据 例1 ) 对地址为1的子机进行通信诊断 主机命令 主机命令子机地址01H功能代码08H测试地址(*1)第一字节00H01H第二字节测试数据第一字节1FH34H第二字节CRC-16第一字节E9HECH第二字节 (*1) 测试地址固定为0000H. 子机应答(正常应答) :返回的数据和写入命令相同子机地址01H功能代码08H测试地址第一字节00H00H第二字节CRC-16第一字节E9H推荐精选ECH第二字节 子机应答(非正常应答)子机地址01H功能代码+80H88H错误代号03HC。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档