台达PLC 通讯协议原文 1、通讯协议ASCII 模式,9600,7,e,1 2、通讯资料格式: STX 头码‘:’(3AH) ADR1 通讯地址: 8-bit位址包含了 2 个 ASCII 码 ADR0 CMD1 命令码: 8-bit命令包含了 2 个 ASCII 码 CMD0 DATA(0) 资料内容: n 个 8-bit资料包含了 2n 个 ASCII 码 n〈=74 个 ASCII 码 DATA(1) „„„ DATA(n-1) LRC CHK1 校验码: 8-bit校验码包含了 2 个 ASCII 码 LRC CHK0 END1 尾码: END1=CR(0DH),END0=LF(0AH) END0 ADR(通讯地址): PLC 通讯地址出厂设定为 0X01,因此(ADR1,ADR0)=‘0’,‘1’→=30H,31H 校验码: 校验码采用 LRC 方式,将 ADR1 至最后一个资料内容加总,将该值取 2 的补数,结果即为LRC 校验码。 例: STX ‘:’ ADR1 ADR0 ‘0’ ‘1’ CMD1 CMD0 ‘0’ ‘3’ 启始资料地址 ‘0’ ‘4’ ‘0’ ‘1’ 资料数 ‘0’ ‘0’ ‘0’ ‘1’ LRC CHK1 LRC CHK0 ‘F’ ‘6’ END1 END0 CR LF 01H+03H+04H+01H+00+01H=0AH 0AH 的 2 的补数为 F6H 注1: 2 补数的求法:(1 补数再加1) 0A(H)=00001010(B)先取1 补数(将b0-b7 反相)得11110101(B),再加1 为11110110(B)=F6(H)即为0A(H)的2 补数。 注2: 在收到一串完整的通讯命令,要检查这串通讯命令是否有误,只要将(ADR1,0)至(LRC1,0)加总等于 0,则通讯无误,否则表示命令中资料有些是错误的。 通讯异常 PLC 的回应: PLC 收到完整的通讯命令时,会判断命令是否有效,造成无效的原因有: 原 因 EXCEPTION CODE LRC CHK ERROR 07 DEIVCE ADDRESS INVALID 02 要求的资料超过范围 03 COMMAND CODE INVALID 01 通讯命令格式 INVALID 07 例:使用命令码 01 读取X000-X017 的状态 Field Name Ex ample (Hex ) Heading 3A Slav e Address 01 Fu nction 01 Starting Address Hi 04 Starting Address Lo 00 Nu mber of Points Hi 00 Nu mber of Points Lo 10 Error Check (LRC) EA PLC 回应: Field Name Ex ample (Hex ) Heading 3A Slav e Address 01 Fu nction 81 Ex ception Code 02 Error Check (LRC) 7C 因为Address 0400 对 Fu nction 01 是不合法的,所以回应 Ex ception Code=0X02,且 Fu ncti...