发表于:2005-06-07 16:30:00
2楼
台達PLC的通讯协议是公开的,只要对该协议有清楚理解,所有台达产品的通讯问题迎刃而解,下面是协议全文:
1. Communication Interface: RS-232C
2. Communication Protocol ASCII mode, 9600(Baud rate), EVEN(Parity), 1(Start bit),1(Stop bit)
3. Communication Data Frame
STX Start character ‘:’(3AH)
ADR 1 Communication address:
ADR 0 8-bit address consists of 2 ASCII codes
CMD 1 Command code:
CMD 0 8-bit command consists of 2 ASCII codes
DATA(0) Contents of data:
DATA(1) n´8-bit data consist of 2n ASCII codes.
………. n£37, maximum of 74 ASCII codes
DATA(n-1)
LRC CHK 1 LRC check sum:
LRC CHK 0 8-bit check sum consists of 2 ASCII codes
END 1 End character:
END 0 END 1 = CR(0DH),END 0 = LF(0AH)
n ADR(Communication Address)
Valid communication addresses are in the range of 0…31. Communication address equals to 0 means broadcast to all PLC, the PLC will reply normal message to the master device.
For example, communication to PLC with address 16 decimal:
(ADR 1, ADR 0)=’1’,’0’ð’1’=31H, ‘0’ = 30H
n CMD (Command code) and DATA (data characters)
The format of data characters depends on the command code. For example, reading continuous 8 words form starting device address 0614H of PLC with address 01H.
Field Name Example (Hex)
Heading 3A
Slave Address 01
Command code 03
Starting Address Hi 06
Starting Address Lo 14
Number of Points Hi 00
Number of Points Lo 08
Error Check ( LRC ) DA
Number of Points(max)
= 18(for 16 bit register)
= 9(for 32 bit register)
Example:Reading Coils T20~T27 from slave device 01
PC→PLC
“:01 03 06 14 00 08 DA CR LF”
PLC→PC
“:01 03 10 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 B8 CR LF”
Field Name Example (Hex)
Slave Address 01
Command code 03
Bytes Count 10
Data Hi(T20) 00
Data Lo(T20) 01
Data Hi(T21) 00
Data Lo(T21) 02
Data Hi(T22) 00
Data Lo(T22) 03
Data Hi(T23) 00
Data Lo(T23) 04
Data Hi(T24) 00
Data Lo(T24) 05
Data Hi(T25) 00
Data Lo(T25) 06
Data Hi(T26) 00
Data Lo(T26) 07
Data Hi(T27) 00
Data Lo(T27) 08
Error Check(LRC) C8
n LRC CHK(check sum)
LRC (Longitudinal Redundancy Check) is calculated by summing up, module 256, the values of the bytes from ADR1 to last data character then calculating the hexadecimal representation of the 2’s-complement negation of the sum.
For example, reading 1 word form address 0401H of the PLC with address 01H
STX ‘:’
ADR 1 ‘0’
ADR 0 ‘1’
CMD 1 ‘0’
CMD 0 ‘3’
Starting data address ‘0’
‘4’
‘0’
‘1’
Number of data ‘0’
‘0’
‘0’
‘1’
LRC CHK 1 ‘F’
LRC CHK 0 ‘6’
END 1 CR
END 0 LF
01H+03H+04H+01H+00+01H = 0AH
the 2’s-complement negation of 0AH is F6H
Exception response:
The PLC is been expected to return a normal response after receiving command messages from the master device. The following depicts the conditions that no normal response is replied to the master device.
The PLC does not receive the messages due to a communication error; thus the PLC has no response. The master device will eventually process a timeout condition.
The PLC receives the messages without a communication error, but cannot handle it, an exception response will return to the master device. In the exception response, the most significant bit of the original command code is set to 1, and an exception code explains the condition that caused the exception is returned.
An example of exception response of command code 01H and exception 02H:
Command message:
Field Name Example (Hex)
Heading 3A
Slave Address 01
Function 01
Starting Address Hi 04
Starting Address Lo 00
Number of Points Hi 00
Number of Points Lo 10
Error Check ( LRC ) EA
Response message:
Field Name Example (Hex)
Heading 3A
Slave Address 01
Function 81
Exception Code 02
Error Check ( LRC ) 7C
Exception code: Meaning:
01 Illegal command code:The command code received in the command message is not available for the PLC.
02 Illegal device address:The device address received in the command message is not available for the PLC.
03 Illegal device value:The device value received in the command message is not available for the PLC.
07 Check Sum ErrorCheck if the check Sum is correctIllegal command messagesThe command message is too short.Command message length is out of range.
u The format of data characters depends on the command. The available command codes are described as followed,
Code Name Description
01 Read Coil Status S, Y, M, T, C
02 Read Input Status S, X, Y, M,T, C
03 Read Holding Registers T, C, D
05 Force Single Coil S, Y, M, T, C
06 Preset Single Register T, C, D
15 Force Multiple Coils S, Y, M, T, C
16 Preset Multiple Register T, C, D
17 Report Slave ID None
DELTA DVP-ES Series PLC DEVICE ADDRESS
Device Range Effective Range 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 (Octal) 000~177 (Octal) 0400~04FF
Y 000~377 (Octal) 000~177 (Octal) 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~0AFF
M 768~1023 0B00~0BFF
M 1024~1279 0C00~0CFF
C 000~255 000~127232~255 0E00~0EFF
D 000~255 000~5991000~1143 1000~10FF
D 256~511 1100~11FF
D 512~767 1200~12FF
D 768~1023 1300~13FF
D 1024~1279 1400~14FF
Command Code:01, Read Coil Status
Field Name Example (Hex)
Heading 3A
Slave Address 01
Command code 01
Starting Address Hi 06
Starting Address Lo 14
Number of Points Hi 00
Number of Points Lo 25
Error Check ( LRC ) BF
Number of Points(max) = 255 = 0x00FF
Example:Reading Coils T20~T56 from slave device 01
PC→PLC “:01 01 06 14 00 25 BF CR LF”
PLC→PC “:01 01 05 CD 6B B2 0E 1B D6 CR LF”
Field Name Example (Hex)
Slave Address 01
Command code 01
Bytes Count 05
Data(Coils T27…T20) CD
Data(Coils T35…T38) 6B
Data(Coils T43…T36) B2
Data(Coils T51…T44) 0E
Data(Coils T56…T52) 1B
Error Check(LRC) E6
n Command Code:02, Read Input Status
Field Name Example (Hex)
Heading 3A
Slave Address 01
Command code 02
Starting Address Hi 05
Starting Address Lo 14
Number of Points Hi 00
Number of Points Lo 25
Error Check ( LRC ) BF
Example:Reading Contact Y024~Y070 from slave device 01
PC→PLC “:01 02 05 14 00 25 BF CR LF”
PLC→PC “:01 02 05 CD 6B B2 0E 1B E5 CR LF”
Field Name Example (Hex)
Slave Address 01
Command code 02
Bytes Count 05
Data(Coils Y033…Y024) CD
Data(Coils Y043…Y034) 6B
Data(Coils Y053…Y044) B2
Data(Coils Y063…Y054) 0E
Data(Coils Y070…Y064) 1B
Error Check(LRC) E5
n Command Code:03, Read Holding Register
Holding Register:T, C, D
Field Name Example (Hex)
Heading 3A
Slave Address 01
Command code 03
Starting Address Hi 06
Starting Address Lo 14
Number of Points Hi 00
Number of Points Lo 08
Error Check ( LRC ) DA
Number of Points(max)
= 18(for 16 bit register)
= 9(for 32 bit register)
Example:Reading Coils T20~T27 from slave device 01
PC→PLC
“:01 03 06 14 00 08 DA CR LF”
PLC→PC
“:01 03 10 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 B8 CR LF”
Field Name Example (Hex)
Slave Address 01
Command code 03
Bytes Count 10
Data Hi(T20) 00
Data Lo(T20) 01
Data Hi(T21) 00
Data Lo(T21) 02
Data Hi(T22) 00
Data Lo(T22) 03
Data Hi(T23) 00
Data Lo(T23) 04
Data Hi(T24) 00
Data Lo(T24) 05
Data Hi(T25) 00
Data Lo(T25) 06
Data Hi(T26) 00
Data Lo(T26) 07
Data Hi(T27) 00
Data Lo(T27) 08
Error Check(LRC) C8
n Command Code:05, Force Single Coil
Field Name Example (Hex)
Heading 3A
Slave Address 01
Command code 05
Coil Address Hi 05
Coil Address Lo 00
Force Data Hi FF
Force Data Lo 00
Error Check ( LRC ) F6
MMNN = 0xFF00….Coil ON
MMNN = 0x0000….Coil OFF
Example:Forcing Coil Y000 ON
PC→PLC “:01 05 05 00 FF 00 F6 CR LF”
PLC→PC “:01 05 05 00 FF 00 F6 CR LF”
Field Name Example (Hex)
Heading 3A
Slave Address 01
Command code 05
Coil Address Hi 05
Coil Address Lo 00
Force Data Hi FF
Force Data Lo 00
Error Check ( LRC ) F6