台达PLC通讯协议_第1页
台达PLC通讯协议_第2页
台达PLC通讯协议_第3页
台达PLC通讯协议_第4页
台达PLC通讯协议_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、台达PLC通讯协议原文1、通讯协议ASCII模式,9600,7,e,12、通讯资料格式:STX头码:(3AH)ADR1ADR0通讯地址:8-bit位址包含了2个ASCII码CMD1CMD0命令码:8-bit命令包含了2个ASCII码DATA(0)DATA(1),DATA(n-1)资料内容:n个8-bit资料包含了2n个ASCII码n=74个ASCII码LRCCHK1LRCCHK0校验码:8-bit校验码包含了2个ASCII码END1END0尾码:END1=CR(0DH),END0=LF(0AH)ADR(通讯地址):PLC通讯地址出厂设定为0X01,因此(ADR1,ADR0)=0,1一二30H,

2、31H校验码:校验码采用LRC方式,将ADR1至最后一个资料内容加总,将该值取2的补数,结果即为LRC校验码。例:STXADR1ADR001CMD10CMD03启始资料地址0401,资料数0001,LRCCHK1LRCCHK0F6END1END0CRLF01H+03H+04H+01H+00+01H=0AH0AH的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

3、,0)至(LRC1,0)加总等于0,则通讯无误,否则表示命令中资料有些是错误的。通讯异常PLC的回应:PLC收到完整的通讯命令时,会判断命令是否有效,造成无效的原因有:原因EXCEPTIONCODELRCCHKERROR07DEIVCEADDRESSINVALID02要求的资料超过范围03COMMANDCODEINVALID01通讯命令格式INVALID07例:使用命令码01读取X000-X017的状态FieldNameExample(Hex)Heading3ASlaveAddress01Function01StartingAddressHi04StartingAddressLo00Numbe

4、rofPointsHi00NumberofPointsLo10ErrorCheck(LRC)EAPLC回应:FieldNameExample(Hex)Heading3ASlaveAddress01Function81ExceptionCode02ErrorCheck(LRC)7C因为Address0400对Function01是不合法的,所以回应ExceptionCode=0X02,且Function01被设为81(b7被设为1),亦即由回应的Functioncode的MSB被设为1表示PLC回应ERRORMESSAGE,并且由Functioncode可得知是何种错误。可用的命令码叙述如下:(

5、每个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:0

6、1,ReadCoilStatusFieldNameExample(Hex)Heading3ASlaveAddress01Function01StartingAddressHi06StartingAddressLo14NumberofPointsHi00NumberofPointsLo25ErrorCheck(LRC)BFNumberofPoints(max)=255=0x00FF例:从从动装置01读取线圈T20-T56PC-PLC“:010106140025BFCRLF”PLC-PC“:010105CD6BB20E1BE6CRLFFieldNameContentsSlaveAddress01F

7、unction01BytesCount05Data(CoilsT27,T20)CDData(CoilsT35,T38)6BData(CoilsT43,T36)B2Data(CoilsT51,T44)0EData(CoilsT56,T52)1BErrorCheck(LRC)E6FunctionCode:02,ReadInputStatusFieldNameExample(Hex)Heading3ASlaveAddress01Function02StartingAddressHi05StartingAddressLo14NumberofPointsHi00NumberofPointsLo25Err

8、orCheck(LRC)BF例:从从动装置01读取接点Y024-Y070PC-PLC“:010205140025BFCRLF”PLC-PC“:010205CD6BB20E1BE5CRLFFieldNameContentsSlaveAddress01Function02BytesCount05Data(CoilsY033,Y024)CDData(CoilsY043,Y034)6BData(CoilsY053,Y044)B2Data(CoilsY063,Y054)0EData(CoilsY070,Y064)1BErrorCheck(LRC)E5FunctionCode:03,ReadHolding

9、RegistetFieldNameExample(Hex)Heading3ASlaveAddress01Function03StartingAddressHi06StartingAddressLo14NumberofPointsHi00NumberofPointsLo08ErrorCheck(LRC)DANumberofPoints(max)=18(for16bitregister)=9(for32bitregister)例:从从动装置01读取线圈T20-T27PC-PLC“:010306140008DACRLF”PLC-PC“:01031000010002000300040005000600

10、070008B8CRLFFieldNameContentsSlaveAddress01Function03BytesCount10DataHi(T20)00DataLo(T20)01DataHi(T21)00DataLo(T21)02DataHi(T22)00DataLo(T22)03DataHi(T23)00DataLo(T23)04DataHi(T24)00DataLo(T24)05DataHi(T25)00DataLo(T25)06DataHi(T26)00DataLo(T26)07DataHi(T27)00DataLo(T27)08ErrorCheck(LRC)B8FunctionCo

11、de:05,ForceSingleCoilFieldNameExample(Hex)Heading3ASlaveAddress01Function05CoilAddressHi05CoilAddressLo00ForceDataHiFFForceDataLo00ErrorCheck(LRC)F6NMNN=0xFF00,CoilONNMNN=0x0000,CoilOFF例:强制设定线圈Y000ONPCPLC“:01050500FF00F6CRLFPLC-PC“:01050500FF00F6CRLFFieldNameExample(Hex)Heading3ASlaveAddress01Functi

12、on05CoilAddressHi05CoilAddressLo00ForceDataHiFFForceDataLo00ErrorCheck(LRC)F6FunctionCode:06,PresetSingleRegisterFieldNameExample(Hex)Heading3ASlaveAddress01Function06RegisterAddressHi06RegisterAddressLo00PresetDataHi12PresetDataLo34ErrorCheck(LRC)AD例:设定暂存器T0to0003PC-PLC“:010606001234ADCRLFPLC-PC“:0

13、10606001234ADCRLFFieldNameExample(Hex)Heading3ASlaveAddress01Function06RegisterAddressHi06RegisterAddressLo00PresetDataHi12PresetDataLo34ErrorCheck(LRC)ADSwitch(c)Case 1 :T0Q一:010606001234ADCRLFCase 2 :C0Q一:01060E001234AFCRLFCase 3 :C232Q一:01060EE812345678EFCRLFCase 4 :D10Q一:0106100A123499CRLFCase 5

14、 :D1000Q一:010613E81234BACRLFFunctionCode:15,ForceMultipleCoilsFieldNameExample(Hex)Heading3ASlaveAddress01Function0FCoilAddressHi05CoilAddressLo00QuantityofCoilsHi00QuantityofCoilsLo0AByteCount02ForceDataHiCDForceDataLo01ErrorCheck(LRC)11QuantityofCoils(max)=255例:设定线圈Y007,Y000=11001101,Y011,Y010=01。

15、PC-PLC“:010F0500000A02CD0111CRLF”PLC-PC“:010F0500000AE1CRLF”FieldNameExample(Hex)Heading3ASlaveAddress01Function0FRegisterToAddressHi05RegisterToAddressLo00PresetDataHi00PresetDataLo0AErrorCheck(LRC)E1FunctionCode:16,PresetMultipleRegisterFieldNameExample(Hex)Heading3ASlaveAddress01Function10Startin

16、gAddressHi06StartingAddressLo00NumberofRegisterHi00NumberofRegisterLo02ByteCount04DataHi00DataLo0ADataHi01DataLo02ErrorCheck(LRC)C6NumberofRegister(max)=16(for16bitregister)=8(for32bitregister)例:设定暂存器T0为000A,T1为0102。PC-PLC“:01100600020004000A0102D6CRLF”PLC-PC“:011006000002E7CRLF”FieldNameExample(Hex)Heading3ASlaveAddress01Function10StartingAddressHi06StartingAddressLo00NumberofRegisterHi00NumberofRegisterLo02ErrorCheck(LRC)E7FunctionCode:17,ReportSlaveIDReturnsadescriptionofcontrollerpresentattheslaveaddress,thecurrentstatusoftheslaveRunindicator,andotherinformationspecifi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论