发表于:2005-06-07 16:33:00
楼主
台達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 devic