台达DVP系列PLC通讯协议

台达DVP系列PLC通讯协议

发布时间:2007-2-15 10:04:53 

台達DVP系列PLC

通訊協定 版本1.0


 

1.  通訊介面RS-232C

2.  通訊協定ASCII模式, 9600(傳輸速率), 偶同位, 1個起始位元,1個停止位元

3.  通訊資料格式
STX
起始字元 ‘:’(3AH)
ADR 1
通訊位址:
ADR 0
8-bit位址包含了2個ASCII碼
CMD 1
命令碼:
CMD 0
8-bit命令包含了2個ASCII碼
DATA(0)
資料內容:
DATA(1)
n個8-bit資料包含了2n個ASCII碼
……….
n <=74個ASCII碼
DATA(n-1)
 
LRC CHK 1
偵誤值:
LRC CHK 0
8-bit偵誤值包含了2個ASCII碼
END 1
結束字元:
END 0
END 1 = CR(0DH),END 0 = LF(0AH)
n        ADR(通訊位址)
PLC通訊位址出廠設定值為0x01,因此(ADR 1, ADR 0)=’0’,’1’ð’0’=30H, ‘1’ = 31H
n        LRC CHK(偵誤值)CMD(命令指令)及DATA(資料字元)
u      LRC CHK(偵誤值)
偵錯方式採用LRC(Longitudinal Redundancy Check)偵誤值。LRC偵誤值乃是將ADR1至最後一個資料內容加總,將該值取2補數(2’s Complement)得到之結果即為LRC偵誤值。
例:
STX
‘:’
ADR 1
‘0’
ADR 0
‘1’
CMD 1
‘0’
CMD 0
‘3’
起始資料位址
‘0’
 
‘4’
 
‘0’
 
‘1’
資料數
‘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
0AH的2補數為 F6H
1
2補數的求法:(1補數再加1)
0A(H) = 0000 1010(B)先取1補數(將b0~b7反相)得1111 0101(B),再加1為 1111 0110(B) = F6(H)即為0A(H)的2補數。
2
因此在收到一串完整的通訊命令,要檢查這串通訊命令是否有誤,只要將(ADR1,0)至(LRC1,0)加總等於0,則通訊無誤,否則表示命令中資料有些是錯誤的。
通訊異常PLC的回應:
PLC收到完整的通訊命令時,會判斷命令是否有效,造成無效的原因有:
原因
EXCEPTION CODE
LRC CHK ERROR
07
DEIVCE ADDRESS INVALID
02
要求的資料超過範圍
03
COMMAND CODE INVALID
01
通訊命令格式INVALID
07
 
例:使用命令碼 01讀取X000~X017的狀態
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
 
PLC回應:
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
81
Exception Code
02
Error Check ( LRC )
7C
因為Address 0400對Function 01是不合法的,所以回應Exception code = 0x02,且Function 01被設為81(b7被設為1),亦即由回應的Function code的 MSB被設為1表示PLC回應ERROR MESSAGE,並且由Exception code可得知是何種錯誤。
 
u      可用之命令碼敘述如下:(每個device的address, 請參考最後一頁)
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
 
u      資料字元之格式依命令碼而定,依可用之命令碼的資料內容分別敘述如下:
Function Code 01, Read Coil Status
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
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
Contents
Slave Address
01
Function
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        Function Code 02, Read Input Status
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
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 01 05 CD 6B B2 0E 1B E5 CR LF”
Field Name
Contents
Slave Address
01
Function
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        Function Code 03, Read Holding Register
Holding Register:T, C, D
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
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
Contents
Slave Address
01
Function
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        Function Code 05, Force Single Coil
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
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
Function
05
Coil Address Hi
05
Coil Address Lo
00
Force Data Hi
FF
Force Data Lo
00
Error Check ( LRC )
F6
n        Function Code 06, Preset Single Register
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
06
Register Address Hi
06
Register Address Lo
00
Preset Data Hi
12
Preset Data Lo
34
Error Check ( LRC )
AD
 
Example:Setting Register T0 to 00 03
PC→PLC  “:01 06 06 00 12 34 AD CR LF”
PLC→PC  “:01 06 06 00 12 34 AD CR LF”
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
06
Register T0 Address Hi
06
Register T0 Address Lo
00
Preset Data Hi
12
Preset Data Lo
34
Error Check ( LRC )
AD
Switch ( c )
Case 0:T0
Q →:01 06 06 00 12 34 AD CR LF
Case 1:C0
Q →:01 06 0E 00 12 34 AF CR LF
Case 2:C232
Q →:01 06 0E E8 12 34 56 78 EF CR LF
Case 3:D10
Q →:01 06 10 0A 12 34 99 CR LF
 
Case 4:D1000
Q →:01 06 13 E8 12 34 BA CR LF
n        Function Code 15, Force Multiple Coils
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
0F
Coil Address Hi
05
Coil Address Lo
00
Quantity of Coils Hi
00
Quantity of Coils Lo
0A
Byte Count
02
Force Data Hi
CD
Force Data Lo
01
Error Check (LRC)
11
 
Quantity of Coils (max) = 255
 
Example:Setting Coil Y007…Y000 = 1100 1101, Y011…Y010 = 01.
PC→PLC  “:01 0F 05 00 00 0A 02 CD 01 11 CR LF”
PLC→PC  “:01 0F 05 00 00 0A E1 CR LF”
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
0F
Register T0 Address Hi
05
Register T0 Address Lo
00
Preset Data Hi
00
Preset Data Lo
0A
Error Check ( LRC )
E1
 
n        Function Code 16, Preset Multiple Register
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
10
Starting Address Hi
06
Starting Address Lo
00
Number of Register Hi
00
Number of Register Lo
02
Byte Count
04
Data Hi
00
Data Lo
0A
Data Hi
01
Data Lo
02
Error Check (LRC)
C6
 
Number of Register(max)
= 16(for 16 bit register)
= 8(for 8 bit register)
Example:Setting Register T0 to 00 0A, T1 to 01 02.
PC→PLC  “:01 10 06 00 02 00 04 00 0A 01 02 D6 CR LF”
PLC→PC  “:01 10 06 00 00 02 E7 CR LF”
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
10
Starting Address Hi
06
Starting Address Lo
00
Number of Registers Hi
00
Number of Registers Lo
02
Error Check ( LRC )
E7
 
n        Function Code 17, Report Slave ID
Returns a description of controller present at the slave address, the current status of the slave Run indicator, and other information specific to the slave device.
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
11
Error Check (LRC)
EE
 
Field Name
Example (Hex)
Heading
3A
Slave Address
01
Function
11
Byte Count
04
Slave ID
01
Run Indicator Status
00 = OFF
FF = ON
FF
Data 0(D1001 HI)
40
Data 1(D1001 LOW)
10
Error Check (LRC)
9A
 
 DELTA DVP 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(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~0AFF
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~10FF
D
256~511
1000~1143
1100~11FF
D
512~767
 
1200~12FF
D
768~1023
 
1300~13FF
D
1024~1279
 
1400~14FF
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值