1 / 23
文档名称:

台达PLC通讯协议.doc

格式:doc   大小:379KB   页数:23页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

台达PLC通讯协议.doc

上传人:pppccc8 2020/2/18 文件大小:379 KB

下载得到文件列表

台达PLC通讯协议.doc

文档介绍

文档介绍:台达PLC通讯协议原文1、 通讯协议ASCII模式,9600,7,e,12、 通讯资料格式:STX头码(3AH)ADR1通讯地址:ADR08・bit位址包含了2个ASCII码CMD1命令码:CMD08-bit命令包含了2个ASCH码DATA(0)资料内容:DATA(1)n个8-bit资料包含了2n个ASCII码n〈=74个ASCII码DATA(n-1)HK1校验码:HKO8-bit校验码包含了2个ASCII码END1尾码:ENDOEND1=CR(ODH),ENDO=LF(0AH)ADR(通讯地址):PLC通讯地址出厂设定为0X01,因此(ADRI,ADR0)='O',T->=30H,31H校验码:校验码采用LRC方式,将ADR1至最后一个资料内容加总,将该值取2的补数,结果即为LRC校验码。例:STX4 ,■•ADRI,0'ADROTCMD1'O'CMDO'3'启始资料地址,0',4'<0,T资料数,0',0'HK1<F'HKO,6'END1CRENDOLF注1:2补数的求法:(1补数再加1)OA(H)=00001010(B)先取1补数(将b0・b7反相)得11110101(B),再加1为11110110(B)=F6(H)即为OA(H)的2补数。注2:在收到一串完敕的通讯命令,要检杳这串通讯命令是否有误,只要将(ADR1,0)至(LRC1,0)加总等于0,则通讯无误,否则表示命令中资料有些是错误的。通讯异常PLC的冋应:PLC收到完整的通讯命令时,会判断命令是否有效,造成无效的原因有:原 MANDCODEINVALID01通讯命令格式INVALID07例:使用命令码01读取X000-X017的状态FieldNameExample(Hex)Heading3ASlaveAddress01Function01StartingAddressHi04StartingAddressLo00NumberofPointsHi00NumberofPointsLo10ErrorCheck(LRC)EAPLC回应:FieldNameExample(Hex)Heading3ASlaveAddress01Function81ExceptionCode02ErrorCheck(LRC)7C因为Address0400对Function01是不合法的,所以冋应ExceptionCode=0X02,且Function01被设为81(b7被设为1),亦即由回应的Functioncode的MSB被设为1表示PLC回应ERRORMESSAGE,并且由Functioncode可得知是何种错误。可用的命令码叙述如下:(每个device的address,请参考最后一页)CodeNameDescription01ReadCoilStatusS,Y,M,T,C02ReadInputStatusS,X,Y,M,T,C03ReadHoldingRegistersT,C,D05ForceSingleColiS,Y,M,T,C06PresetSingleRegisterT,C,D15ForceMultipleColiS,Y,M,T,C16PresetMultipleRegisterT,C,D17ReportSlaveIDNone资料字元的格式依命令码而定,依可用的命令码的资料内容分别叙述如下:FunctionCode:01,ReadCoilStatusFieldNameExample(Hex)Heading3ASlaveAddress01Function01StartingAddressHi06StartingAddressLo14NumberofPointsHi00NumberofPointsLo25ErrorCheck(LRC)BFNumberofPoints(max)=255=OxOOFF例:从从动装置01读取线圈T20-T56PC-*PLC“:01010614()025BFCRLF”PLC-PC“:010105CD6BB2OEIBE6CRLF”FieldNameContentsSlaveAddress01Function01BytesCount05Data(CoilsT27-T20)CDData(CoilsT35-T38)6BData(CoilsT43-T36)B2Data(CoilsT51-T44)0EData(CoilsT56-T52)IBErrorCheck(LRC)E6FunctionCode:02,ReadInputStatusFieldNameExample(Hex)Heading3ASlaveAddress01Function02StartingAddressHi05StartingAddressLo14NumberofPointsHi00NumberofPoi