您好,欢迎访问三七文档
page1TM220通信协议一、通信规格1.规格NO.项目规格1接口EIA规格RS4852传送线路2线制多从机3传送距离最大500m4传送速度(bps)2400,4800,96005通信方式半双工6数据形式起始位:1位数据位:8位校验位:1位(有奇偶校验时);无(无奇偶校验时)停止位:1位(有校验时);2位(无校验时)7传输模式HEX值(MODBUSRTU格式)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数据形式8n28O18E18位、无奇偶校验2终止位8位、奇校验1终止位8位、偶校验1终止位8n2int发送延时(ms)0~1000设定两次通信最小间隔时间10注:1)在通信参数变更后,仪表请重新通电,如果不重新通电,变更后的值不能通信。2)传送速度要同上位机设定一致。3)数据形式要同上位机设定一致。4、通信命令构成本通信协议使用主—从技术,即仅一设备(上位机)能发起通信(查询/设定参数)。其它设备(从机)根据主设备查询提供的数据作出相应反应。通信中使用RTU数据模式,所有数据使用二进制形式传输,不使用ASCII码。page2通信过程如下:主机发出命令,在命令的开始用地址表明发送目的。所有的子机均进行接收,并判断地址与自己的地址是否相同。地址相符的子机,依据命令的功能码执行不同的操作,如命令要求发回应答时,子机发回相应应答。地址不相符的子机,舍弃本次命令帧,等待下一个命令帧的到来。命令帧的构成(最大256字节)从机地址功能码数据校验字节(CRC)一字节一字节0~252字节二字节1)地址说明从机地址指仪表的通信地址,在1~247范围内自由指定。在同一个网络中,所有的地址必须是唯一的。主机可以与网络中的任何子机进行通信。地址0作为广播地址,用于广播通信。当命令中出现广播地址时,所有的子机均接受命令,执行操作,但不返回任何应答。2)功能码说明本协议采用标准的MODBUS功能码。具体通信中采用以下三个指令值名称功能作用范围03HReadHoldingRegisters读出寄存器中的值。(连续寄存器可一次读出多个)1~125字节06HWriteSingleRegister向一个寄存器内写入数值1字节08HDiagnostic通信诊断1字节相应命令长度功能码命令长度(字节)正常应答长度(字节)备注最小最大最小最大03H88725506H888808H88883)数据根据功能码的不同,数据内容有不同的解释,详细可参阅后面的命令格式、数据一览表。4)错误检测域检测命令错误的方式采用CRC_16,具体算法可以参照CRC计算详解。5、应答命令格式1)命令的正常应答地址功能码数据长度数据错误检测域本机地址同上位机命令数据项目的字节数CRC_161字节1字节1字节N个字节2字节page3命令的非正常应答当子机接受到不合适的命令时(不可识别的命令除外),子机不执行任何操作,只发回应答。当子机处于通信诊断状态,子机判断通信出错时,子机对收到的任何命令只返回错误代码。地址功能码错误代码错误检测域本机地址指令+80HCRC_161字节1字节1字节2字节错误代码表错误代码值内容1本协议不支持的功能代码。2指定的寄存器不支持此功能。如试图设定只读寄存器,或读取寄存器数据时使用不存在的地址作为起始地址。3在写入寄存器时数据超限或读取寄存器数值时最大寄存器地址超限4自诊断错误。8子机系统忙无应答〉当命令中的地址与子机地址不一致时,子机不返回任何应答。指令中的CRC和子机计算出的CRC不一致,或检测出传送出错(超时,桢错误、奇偶校验错误)当出现以上错误时,子机不返回任何应答。在一个命令帧传送过程中,相邻俩个字节的时间间隔超过正常间隔的1.5字符时间时,通信双方认为出现超时错误,此次命令传送结束。2)传送时序《主机命令发送时序》每次命令发送至少要以3.5个字符时间的停顿间隔开始。整个命令作为一个连续的流传输,命令中的各个字节之间的间隔不能超过正常传输时间的1.5倍。有超过1.5个字符时间的停顿时间,子机将刷新不完整的命令并假定下一字节是一个新命令的地址域。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了命令的结束。一个新的命令可在此停顿后开始。**对于子机可能出现应答的情况要有超时判断来进行处理,避免无限等待。**对于停顿时间要有必要的余量。如9600bps→3.5倍时间间隔=4.01ms:余量可以调大为10ms.1.5倍时间间隔=1.72ms:发送中时间间隔可以控制在1ms.《子机传输时序》通信中当子机检测到3.5个字符时间后,可以认为此次命令传递结束。page4当子机解析完命令后,依据解析情况决定是否执行命令和发回相应应答。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第二字节page5子机应答(正常应答)子机地址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第二字节page6CRC-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第一字节E9HECH第二字节子机应答(非正常应答)子机地址01H功能代码+80H88H错误代号03HCRC-16第一字节06H01H第二字节9、数据构成1)数据范围本通信协议中的数据范围是(0000H~FFFFH),-1使用FFFFH来表示。page7小数点无法在数据中表示,通信中的小数变成整数形式发送,由上位机和子机自行判断具体的小数点位置。负数的表示方法例)-10.0℃-10.0→-100=0000H–0064H=FF9CH2)数据读写时的注意事项。在读数据时(功能代码03H),连续的寄存器地址中最大地址不可超过41(29H),否则会发回非正常应答,其错误代码是02H.在对寄存器进行写入过程中发生错误时,发生错误前已经写入的数据不受影响,但发生错误后的数据不会被写入。发生错误时错误代码含义:设定的数据超出数据范围:功能代码03H数据地址错误:功能代码02H(一种是对只读寄存器进行写入,另一种是指定的地址不存在)10、寄存器(参数)数据一览:属性R:只读,R/W:读出/写入地址代码名称数据属性0PV测量值表示范围的下限值—上限值R1o—1主控制输出0.0~100.0%R2o—2副控制输出0.0~100.0%R3Ct1加热器电流值0~100AR4Ct2加热器电流值0~100AR5AL—1报警1数据内容0002上限报警(偏差值)0004下限报警(偏差值)0008待机+上限报警(偏差值)0010待机+下限报警(偏差值)0020上下限范围报警(偏差值)Rpage86AL—2报警20040上下限报警(偏差值)0080上限待机+上下限报警(偏差值)0100下限待机+上下限报警(偏差值)0200待机+上下限报警(偏差值)0400上限绝对值报警0800下限绝对值报警1000待机+上限绝对值报警2000待机+下限绝对值报警R7Erro错数据内容0001存储器出错0002烧断错误4000回路断线8000加热器断线C000回路断线及加热器断线R8ESw事件开关0:开关开1:开关闭R9RomdEEPROM数据状态0:不一致1:一致R10RomEEPROM写入开关0:打开1:锁定R/W11Run运行0:停止1:运行R/W12Sv1主控制设定值设定范围的下限值~上限值R/W13Sv2副控制设定值设定范围的下限值~上限值R/W14Loc设定值闭锁数据内容0全部可以设定1仅SV和报警(AL1、AL2)可以设定2仅报警(AL1、AL2)不可设定3仅SV可以设定4仅SV不可以设定5仅报警(AL1、AL2)可以设定6仅SV和报警(AL1、AL2)不可设定7全部不可以设定R/W15P—1主控制比例度dp:1/0.10.0—999.9dp:0.0
本文标题:TM220通信协议
链接地址:https://www.777doc.com/doc-2852152 .html