台达PLC通讯协议.docx
《台达PLC通讯协议.docx》由会员分享,可在线阅读,更多相关《台达PLC通讯协议.docx(13页珍藏版)》请在冰豆网上搜索。
![台达PLC通讯协议.docx](https://file1.bdocx.com/fileroot1/2022-11/17/d011f75a-dcfb-4a0d-9adb-39aa883eb124/d011f75a-dcfb-4a0d-9adb-39aa883eb1241.gif)
台达PLC通讯协议
台达PLC通讯协议V1.12通讯接口RS-232CRS-485
2.通讯协议ASCII模式,9600(传输速率),偶同位,1个起始位,1个停止位9600,7,e,1
3.通讯资料格式
STX起始字符‘:
'(3AH)
ADR1通讯地址:
ADR08-bit地址包含了2个ASCII码
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结束字符:
END0END1=CR(0DH),END0=LF(0AH)
ADR(通讯地址)
PLC通讯地址出厂设定值为0x01,因此(ADR1,ADR0)='0','1''0'=30H,‘1'=31H
LRCCHK(侦误值)CMD(命令指令)及DATA(数据字符)
LRCCHK(侦误值)
侦错方式采用LRC(LongitudinalRedundancyCheck)侦误值。
LRC侦误值乃是将ADR1至最后
一个资料内容加总,将该值取2补码(2'sCompIement)得到之结果即为LRC侦误值。
附录-3例:
STX‘:
'
0'
1'
0'
3'
ADR1
ADR0
CMD1
CMD0
起始资料地址‘0'
‘4'
‘0'
‘1'
资料数‘0'
‘0'
‘0'
‘1'
LRCCHK1‘F'
LRCCHK0‘6'
END1CR
END0LF
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的响应:
附录-4
PLC收到完整的通讯命令时,会判断命令是否有效,造成无效的原因有:
原因EXCEPTIONCODE
LRCCHKERROR07
DEIVCEADDRESSINVALID02
要求的资料超过范围03
COMMANDCODEINVALID01
通讯命令格式INVALID07
例:
使用命令码01读取X000~X017的状态
FieldNameExample(Hex)
Heading3A
SlaveAddress01
Function01
StartingAddressHi04
StartingAddressLo00
NumberofPointsHi00
NumberofPointsLo10
ErrorCheck(LRC)EA附录-5
PLC响应:
FieldNameExample(Hex)
Heading3A
SlaveAddress01
Function81
ExceptionCode02
ErrorCheck(LRC)7C
因为Address0400对Function01是不合法的,所以响应Exceptioncode=0x02,且Function01
被设为81(b7被设为1),亦即由响应的Functioncode的MSB被设为1表示PLC响应
ERROR
MESSAGE并且由Exceptioncode可得知是何种错误。
可用之命令码叙述如下:
(每个device的address,请参考最后一页)
CodeNameDescription
01ReadCoilStatusS,YM,T,C
02ReadInputStatusS,X,YM,T,C
03ReadHoldingRegistersT,C,D
05ForceSingleCoilS,YM,T,C
06PresetSingleRegisterT,C,D
15ForceMultipleCoilsS,Y,M,T,C
16PresetMultipleRegisterT,C,D
17ReportSlaveIDNone
附录-6
资料字符之格式依命令码而定,依可用之命令码的资料内容分别叙述如下:
FunctionCode:
01,ReadCoilStatus
FieldNameExample(Hex)
Heading3A
SlaveAddress01
Function01
StartingAddressHi06
StartingAddressLo14
NumberofPointsHi00
NumberofPointsLo25
ErrorCheck(LRC)BF
NumberofPoints(max)=255=0x00FF
例:
由从动装置(slavedevice)01读取线圈T20~T56
PSPLC“:
010106140025BFCRLF
PLSPC“:
010105CD6BB20E1BD6CRLF
FieldNameContents
SlaveAddress01
Function01
FieldNameExample(Hex)
Heading3A
SlaveAddress01
Function02
StartingAddressHi05
StartingAddressLo14
NumberofPointsHi00
NumberofPointsLo25
ErrorCheck(LRC)BF
例:
由从动装置01读取接点Y024~Y070
PSPLC“:
010205140025BFCRLF
PLSPC“:
010105CD6BB20E1BE5CRLF
FieldNameContents
SlaveAddress01
Function02
ErrorCheck(LRC)E5附录-8
FunctionCode:
03,ReadHoldingRegisterHoldingRegister:
T,C,D
FieldNameExample(Hex)
Heading3A
SlaveAddress01
Function03
StartingAddressHi06
StartingAddressLo14
NumberofPointsHi00
NumberofPointsLo08
ErrorCheck(LRC)DA
NumberofPoints(max)
=18(for16bitregister)
=9(for32bitregister)
例:
由从动装置01读取线圈T20~T27
PSPLC“:
010306140008DACRLF
PLSPC“:
01031000010002000300040005000600070008B8CRLF3A303130333130303030303030303030303030303030303030303030303030303030303030303045430D0A3A30B13033B1303030303030303030303030303030303030303030303030303030303030303030C5C38D0A
3A8A30A6833082308230823082308230823082308230823082302AC363E1
FieldNameContents
SlaveAddress01
Function03
BytesCount10
DataHi(T20)00
DataLo
(T20)
01
DataHi
(T21)
00
DataLo
(T21)
02
DataHi
(T22)
00
附录-9
DataLo
(T22)
03
DataHi
(T23)
00
DataLo
(T23)
04
DataHi
(T24)
00
DataLo
(T24)
05
DataHi
(T25)
00
DataLo
(T25)
06
DataHi
(T26)
00
DataLo
(T26)
07
DataHi
(T27)
00
DataLo
(T27)
08
ErrorCheck(LRC
B8
FunctionCode:
05,ForceSingleCoil
FieldNameExampie(Hex)
Heading3A
SlaveAddress01
Function05
CoilAddressHi05
CoilAddressLo00
ForceDataHiFF
ForceDataLo00
ErrorCheck(LRC)F6
MMNN=0xFF00….CoiON
MMNN=0x0000….CoilOFF例:
强制设定线圈Y000ON
PSPLC“:
01050500FF00F6CRL”
PLSPC“:
01050500FF00F6CRL”附录-10
FieldNameExampie(Hex)
Heading3A
SlaveAddress01
Function05
CoilAddressHi05
CoilAddressLo00
ForceDataHiFF
ForceDataLo00
ErrorCheck(LRC)F6
FunctionCode:
06,PresetSingleRegister
FieldNameExample(Hex)
Heading3A
SlaveAddress01
Function06
RegisterAddressHi06
RegisterAddressLo00
PresetDataHi12
PresetDataLo3