台达PLC通讯协议.docx
- 文档编号:7776885
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:26
- 大小:22.90KB
台达PLC通讯协议.docx
《台达PLC通讯协议.docx》由会员分享,可在线阅读,更多相关《台达PLC通讯协议.docx(26页珍藏版)》请在冰豆网上搜索。
台达PLC通讯协议
台达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)
LRCCHK1
校验码:
8-bit校验码包含了2个ASCII码
LRCCHK0
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’
LRCCHK1
LRCCHK0
‘F’
‘6’
END1
END0
CR
LF
01H+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,0)至(LRC1,0)加总等于0,则通讯无误,否则表示命令中资料有些是错误的。
通讯异常PLC的回应:
PLC收到完整的通讯命令时,会判断命令是否有效,造成无效的原因有:
原因
EXCEPTIONCODE
LRCCHKERROR
07
DEIVCEADDRESSINVALID
02
要求的资料超过范围
03
COMMANDCODEINVALID
01
通讯命令格式INVALID
07
例:
使用命令码01读取X000-X017的状态
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
01
StartingAddressHi
04
StartingAddressLo
00
NumberofPointsHi
00
NumberofPointsLo
10
ErrorCheck(LRC)
EA
PLC回应:
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
81
ExceptionCode
02
ErrorCheck(LRC)
7C
因为Address0400对Function01是不合法的,所以回应ExceptionCode=0X02,且Function01被设为81(b7被设为1),亦即由回应的Functioncode的MSB被设为1表示PLC回应ERRORMESSAGE,并且由Functioncode可得知是何种错误。
可用的命令码叙述如下:
(每个device的address,请参考最后一页)
Code
Name
Description
01
ReadCoilStatus
S,Y,M,T,C
02
ReadInputStatus
S,X,Y,M,T,C
03
ReadHoldingRegisters
T,C,D
05
ForceSingleColi
S,Y,M,T,C
06
PresetSingleRegister
T,C,D
15
ForceMultipleColi
S,Y,M,T,C
16
PresetMultipleRegister
T,C,D
17
ReportSlaveID
None
资料字元的格式依命令码而定,依可用的命令码的资料内容分别叙述如下:
FunctionCode:
01,ReadCoilStatus
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
01
StartingAddressHi
06
StartingAddressLo
14
NumberofPointsHi
00
NumberofPointsLo
25
ErrorCheck(LRC)
BF
NumberofPoints(max)=255=0x00FF
例:
从从动装置01读取线圈T20-T56
PC→PLC“:
010106140025BFCRLF”
PLC→PC“:
010105CD6BB20E1BE6CRLF”
FieldName
Contents
SlaveAddress
01
Function
01
BytesCount
05
Data(CoilsT27…T20)
CD
Data(CoilsT35…T38)
6B
Data(CoilsT43…T36)
B2
Data(CoilsT51…T44)
0E
Data(CoilsT56…T52)
1B
ErrorCheck(LRC)
E6
FunctionCode:
02,ReadInputStatus
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
02
StartingAddressHi
05
StartingAddressLo
14
NumberofPointsHi
00
NumberofPointsLo
25
ErrorCheck(LRC)
BF
例:
从从动装置01读取接点Y024-Y070
PC→PLC“:
010205140025BFCRLF”
PLC→PC“:
010205CD6BB20E1BE5CRLF”
FieldName
Contents
SlaveAddress
01
Function
02
BytesCount
05
Data(CoilsY033…Y024)
CD
Data(CoilsY043…Y034)
6B
Data(CoilsY053…Y044)
B2
Data(CoilsY063…Y054)
0E
Data(CoilsY070…Y064)
1B
ErrorCheck(LRC)
E5
FunctionCode:
03,ReadHoldingRegistet
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
03
StartingAddressHi
06
StartingAddressLo
14
NumberofPointsHi
00
NumberofPointsLo
08
ErrorCheck(LRC)
DA
NumberofPoints(max)=18(for16bitregister)=9(for32bitregister)
例:
从从动装置01读取线圈T20-T27
PC→PLC“:
010306140008DACRLF”
PLC→PC“:
01031000010002000300040005000600070008B8CRLF”
FieldName
Contents
SlaveAddress
01
Function
03
BytesCount
10
DataHi(T20)
00
DataLo(T20)
01
DataHi(T21)
00
DataLo(T21)
02
DataHi(T22)
00
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
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
05
CoilAddressHi
05
CoilAddressLo
00
ForceDataHi
FF
ForceDataLo
00
ErrorCheck(LRC)
F6
NMNN=0xFF00…CoilON
NMNN=0x0000…CoilOFF
例:
强制设定线圈Y000ON
PC→PLC“:
01050500FF00F6CRLF”
PLC→PC“:
01050500FF00F6CRLF”
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
05
CoilAddressHi
05
CoilAddressLo
00
ForceDataHi
FF
ForceDataLo
00
ErrorCheck(LRC)
F6
FunctionCode:
06,PresetSingleRegister
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
06
RegisterAddressHi
06
RegisterAddressLo
00
PresetDataHi
12
PresetDataLo
34
ErrorCheck(LRC)
AD
例:
设定暂存器T0to0003
PC→PLC“:
010606001234ADCRLF”
PLC→PC“:
010606001234ADCRLF”
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
06
RegisterAddressHi
06
RegisterAddressLo
00
PresetDataHi
12
PresetDataLo
34
ErrorCheck(LRC)
AD
Switch(c)
Case0:
T0
Q→:
010606001234ADCRLF
Case1:
C0
Q→:
01060E001234AFCRLF
Case2:
C232
Q→:
01060EE812345678EFCRLF
Case3:
D10
Q→:
0106100A123499CRLF
Case4:
D1000
Q→:
010613E81234BACRLF
FunctionCode:
15,ForceMultipleCoils
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
0F
CoilAddressHi
05
CoilAddressLo
00
QuantityofCoilsHi
00
QuantityofCoilsLo
0A
ByteCount
02
ForceDataHi
CD
ForceDataLo
01
ErrorCheck(LRC)
11
QuantityofCoils(max)=255
例:
设定线圈Y007…Y000=11001101,Y011…Y010=01。
PC→PLC“:
010F0500000A02CD0111CRLF”
PLC→PC“:
010F0500000AE1CRLF”
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
0F
RegisterToAddressHi
05
RegisterToAddressLo
00
PresetDataHi
00
PresetDataLo
0A
ErrorCheck(LRC)
E1
FunctionCode:
16,PresetMultipleRegister
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
10
StartingAddressHi
06
StartingAddressLo
00
NumberofRegisterHi
00
NumberofRegisterLo
02
ByteCount
04
DataHi
00
DataLo
0A
DataHi
01
DataLo
02
ErrorCheck(LRC)
C6
NumberofRegister(max)=16(for16bitregister)=8(for32bitregister)
例:
设定暂存器T0为000A,T1为0102。
PC→PLC“:
01100600020004000A0102D6CRLF”
PLC→PC“:
011006000002E7CRLF”
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
10
StartingAddressHi
06
StartingAddressLo
00
NumberofRegisterHi
00
NumberofRegisterLo
02
ErrorCheck(LRC)
E7
FunctionCode:
17,ReportSlaveID
Returnsadescriptionofcontrollerpresentattheslaveaddress,thecurrentstatusoftheslaveRunindicator,andotherinformationspecifictotheslavedevice.
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
11
ErrorCheck(LRC)
EE
FieldName
Example(Hex)
Heading
3A
SlaveAddress
01
Function
11
ByteCount
04
SlaveID
01
RunindicatorStatus
00=OFF
FF=ON
FF
Data0(D1001HI)
40
Data1(D1001LOW)
10
ErrorCheck(LRC)
9A
台达PLC装置地址(deviceaddress)
Device
Range
EffectiveRange
Address
S
000-255
000-127
0000-00FF
S
246-511
0100-01FF
S
512-767
0200-02FF
S
768-1023
0300-03FF
X
000-377(8进制)
000-177(8进制)
0400-04FF
Y
000-377(8进制)
000-177(8进制)
0500-05FF
T
000-255
000-127
0600-06FF
M
000-255
0000-1279
0800-08FF
M
256-511
0900-09FF
M
512-767
0A00-OAFF
M
768-1023
0B00-0BFF
M
1024-1279
0C00-0CFF
C
000-255
000-127
232-255
0E00-0EFF
D
000-255
000-599
1000-1143
1000-10FF
D
256-511
1100-11FF
D
512-767
1200-12FF
D
768-1023
1300-13FF
D
1024-1279
1400-14FF
台达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)
LRCCHK1
校验码:
8-bit校验码包含了2个ASCII码
LRCCHK0
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’
LRCCHK1
LRCCHK0
‘F’
‘6’
END1
END0
CR
LF
01H+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,0)至(LRC1,0)加总等于0,则通讯无误,否则表示命令中资料有些是错误的。
通讯异常PLC的回应:
PLC收到完整的通讯命令时,会判断命令是否有效,造成无效的原因有:
原因
例外码
校验码错误
07
错误的装置地址
02
要求的资料超过范围
03
命令码错误
01
通讯格式错误
07
例:
使用命令码01读取X000-X017的状态
名称
例码(Hex)
头码
3A
从站地址
01
命令码
01
启始地址高位
04
启始地址低位
00
资料高位
00
资料低位
10
校验码(LRC)
EA
PLC回应:
名称
例码(Hex)
头码
3A
从站地址
01
命令码
81
例外码
02
校验码(LRC)
7C
因为地址0400对命令01是不合法的,所以回应例外码=0X02,且命令01被设为81(b7被设为1),亦即由回应的命令码的MSB被设为1表示PLC回应错误讯息,并且由命令码可得知是何种错误。
可用的命令码叙述如下:
(每个装置的地址,请参考最后一页)
命令码
功能
作用范围
01
读线圈状态
S,Y,M,T,C
02
读输入状态
S,X,Y,M,T,C
03
读寄存器值
T,C,D
05
设定单一线圈
S,Y,M,T,C
06
预设单一寄存器
T,C,D
15
设定多个线圈
S,Y,M,T,C
16
预设多个寄存器
T,C,D
17
状态、机种报告
None
资料字元的格式依命令码而定,依可用的命令码的资料内容分别叙述如下:
命令码:
01,读取线圈状态
名称
例码(Hex)
头码
3A
从站地址
01
命令
01
启始地址高位
06
启始地址低位
14
资料高位
00
资料低位
25
校验(LRC)
BF
资料位(max)=255=0x00FF
例:
从从动装置01读取线圈T20-T56
PC→PLC“:
010106140025BFCRLF”
PLC→PC“:
010105CD6BB20E1BE6CRLF”
名称
内容
从站地址
01
命令
01
字节数
05
数据(线圈T27…T20)
CD
数据(线圈T35…T38)
6B
数据(线圈T43…T36)
B2
数据(线圈T51…T44)
0E
数据(线圈T56…T52)
1B
校验码
E6
命令码:
02,读取输入状态
名称
例码(Hex)
头码
3A
从站地址
01
命令
02
启始地址高位
05
启始地址低位
14
资料高位
00
资料低位
25
校验(LRC)
BF
例:
从从动装置01读取接点Y024-Y070
PC→PLC“:
010205140025BFCRLF”
PLC→PC“:
010205CD6BB20E1BE5CRLF”
名称
内容
从站地址
01
命令
02
字节数
05
数据(线圈Y033…Y024)
CD
数据(线圈Y043…Y034)
6B
数据(线圈Y053…Y044)
B2
数据(线圈Y063…Y054)
0E
数据(线圈Y070…Y064)
1B
校验(LRC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PLC 通讯 协议