资源描述:
《台达PLC通讯协议》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、台达PLC通讯协议V1.12通讯接口RS-232CRS-4852.通讯协议ASCH模式,9600(传输速率),偶同位,1个起始位,1个停止位9600,7©13.通讯资料格式STX起始字符':'(3AH)ADR1通讯地址:ADR08・bit地址包含了2个ASCH码CMD1命令码:CMD08-bit命令包含/2个ASCII码DATA(0)资料内容:DATA(1)n个8・bit资料包含了2n个ASCII码.n<=74个ASCII码DATA(n-1)LRCCHK1侦误值:LRCCHK08・bit侦误值包含了2个ASCII码END1结束字符:ENDOEND1=C
2、R(ODH),ENDO=LF(OAH)ADR(通讯地址)PLC通讯地址出厂设定值为0x01,因此(ADRLADR0)='O';1''O'=30HH=31HLRCCHK(侦误值)CMD(命令指令)及DATA(数据字符)LRCCHK(侦误值)侦错方式采用LRC(LongitudinalRedundancyCheck)侦误值。LRC侦误值乃是将ADR1至最”一个资料内容加总,将该值取2补码(2'sComplement)得到之结果即为LRC侦误值。附录-3例:STXZ'ADR「0'ADR0'1'CMDlO,CMD03起始资料地址'o',4,资料数‘0''0,,
3、01LRCCHK1FLRCCHKO'6'END1CRENDOLF01H+03H+04H+01H+00+01H=OAHOAH的2补码为F6H注12补码的求法:(1补码再加1)OA(H)=00001010(B)先取1补码(将b0~b7反相)得11110101(B),再加1为11110110(B)=F6(H)即为OA(H)的2补码。注2因此在收到•串完整的通讯命令,要检查这串通讯命令是否有误,只要将(ADR1,O)至(LRCL0)加总等于0,则通讯无误,否则表示命令中资料有些是错误的。通讯异常PLC的响应:附录-4PLC收到完整的通讯命令时,会判断命令是否有
4、效,造成无效的原因有:原因EXCEPTIONCODELRCCHKERROR07DEIVCEADDRESSINVALID02要求的资料超过范围03COMMANDCODEINVALID01通讯命令格式INVALID07例:使用命令码01读取X000~X017的状态FieldNameExample(Hex)Heading3ASlaveAddress01Function01StartingAddressHi04StartingAddressLo00NumberofPointsHi00NumberofPointsLo10ErrorCheck(LRC)EA附录-5
5、PLC响应:FieldNameExample(Hex)Heading3ASlaveAddress01Function81ExceptionCode02ErrorCheck(LRC)7C因为Address0400XjFunction01是不合法的,所以响应Exceptioncode=0x02»且Function01被设为81(b7被设为1),亦即由响应的Functioncode的MSB被设为1表示PLC响应ERRORMESSAGE,并且由Exceptioncode可得知是何种错误。可用之命令码叙述如下:(每个device的address,请参考最后•页)
6、CodeNameDescription01ReadCoilStatusS,Y,M,T,C02ReadInputStatusS,X,Y,MJZC03ReadHoldingRegistersT,C,D05ForceSingleCoilS,Y,MzT,C06PresetSingleRegisterT,C,D15ForceMultipleCoilsS,Y,M,T,C16PresetMultipleRegisterT,C,D17ReportSlaveIDNone附录-6资料字符之格式依命令码而定,依可用之命令码的资料内容分别叙述如下:FunctionCode:0
7、1,ReadCoilStatusFieldNameExample(Hex)Heading3ASlaveAddress01Function01StartingAddressHi06StartingAddressLo14NumberofPointsHi00NumberofPointsLo25ErrorCheck(LRC)BFNumberofPoints(max)=255=OxOOFF例:由从动装置(slavedevice)01读取线圈T2(TT56PC-PLC“:010106140025BFCRLFnPLC~PC“:010105CD6BB20EIBD6CR
8、LFFieldNameContentsSlaveAddress01Function01Byte