V1.9目錄
一、簡介 (1)
二、軟體規範 (1)
三、機能 (1)
四、連線方式 (8)
五、通訊格式介紹 (9)
1. 通訊資料協定:MODBUS Protocol (9)
2. 通訊資料格式:分為ASCII Mode 與 RTU Mode (9)
i. ASCII
Mode (9)
ii. RTU Mode (11)
iii. MODBUS TCP/IP MODE (12)
3. 通訊工作方式: (13)
4. 錯誤訊息回應: (13)
通訊命令格式 (14)
六、 MODBUS
Function Code:01, Read Coil Status ( S, Y, M, T, C) (14)
Function Code:02, Read Input Status (S, X, Y, M,T, C ) (16)
Function Code:03, Read Holding Register ( T, C, D, R ) (17)
Function Code:05, Force Single Coil (S, Y, M, T, C ) (19)
Function Code:06, Preset Single Register ( T, C, D ) (20)
Function Code:0F, Force Multiple Coils ( S, Y, M, T, C ) (21)
Function Code:10, Force Multiple Registers ( T, C, D, R ) (22)
Function Code: 17, Read/Write multiple register ( T, C, D, R ) (23)
七、備註 (24)
1. CRC計算方式 (24)
2. Exception Code (24)
3. DVP Series PLC Internal Device Communication Address (25)
4. 各機種支援的裝置 (27)
5. D1036 / D1120 / D1109通信協定格式計算方式: (27)一、簡介
本手冊說明DVP-PLC作為從端(Slave)通訊口之通訊協定,依此通訊方法可存取PLC內部元件,提供給主端(Master)或人機介面與PLC連線方法之參考。
二、軟體規範
PLC型號軟體版本
DVP-ES/EX/SS/EC/EC2/EC3 V4.7(含)以上
DVP-SA/SC/SX V1.0(含)以上
DVP-EH/SV/EH2/EH2L V1.0(含)以上
DVP-ES2/EX2/SS2/SA2/SX2/MC/SE V1.0(含)以上
DVP-EH3/EH3L/SV2 V1.0(含)以上
三、機能
通訊規範
1. 通訊介面
PLC型號通訊介面
V4.7(含)以上COM1:RS-232
COM2:RS-485
二選一,亦即不可同時使用
DVP-ES/EX/EC/SS
DVP-EC2/EC3
V5.1(含)以上COM1:RS-232 COM2:RS-485 可同時使用
DVP-SA/SC/SX/SV DVP-SS2/SV2/MC COM1:RS-232 COM2:RS-485 可同時使用PLC型號通訊介面
DVP-EH/EH2/EH2L COM1:RS-232
COM2:內建 RS-485
通訊卡:DVP-F232/DVP-F422(會佔用COM2)
COM3卡:外接通訊卡DVP-F232S/DVP-F485S(不佔用COM2)可同時使用
DVP-ES2/EX2/SA2 COM1:RS-232 COM2:RS-485 COM3:RS-485 可同時使用
DVP-SX2 COM1:RS-232
COM2:RS-485
COM3:USB(虛擬USB- 內部還是RS-232) 可同時使用
DVP-SE COM1:USB
COM2:RS-485
COM3:RS-485 Ethernet
可同時使用
DVP-EH3/EH3L COM1:RS-232
COM2:內建RS-485
通訊卡:DVP-F232/DVP-F422/DVP-F485(獨立COM3通訊口) COM3卡:外接通訊卡DVP-F232S/DVP-F485S(不佔用COM2)可同時使用
# PLC 的功能擴充卡種類記錄在 D1149, 我們功能擴充卡種類說明如下:
0:沒有插卡,1:RS-232卡、DU-01,2:RS-422卡,3:COM3卡,4:類比式旋鈕開關卡,5:數位式開關卡、晶體輸入卡6:晶體輸出卡8:2AD卡,9:2DA卡,10:測頻卡,11:Ethernet通訊卡,12:CANOpen 通訊卡,13:DVP-F485通訊卡
2. 以MODBUS ASCII模式的通訊協定與外界通信
3. 通訊格式
全系列機種 COM出廠設定值如下:(POWER OFF=>ON 後通訊自動回復出廠設定值)
SE出廠設定值:
ES/EX/EC/SS的通訊口有兩個,下面以COM1、COM2作說明:
#:ES/EX/EC/SS/EC3 V5.9 版(含)以上有支援
#:通訊協定計算方式參備註5
SA/SX/SC/SV 的通訊口有兩個,下面以COM1、COM2作說明:
#:SA/SX V1.2版(含)以上、SC/SVV1.0版(含)以上有支援
#:通訊協定計算方式參備註5
SS2/SV2/MC 的通訊口有兩個,下面以COM1、COM2作說明:
#:通訊協定計算方式參備註5
EH/EH2/EH2L的通訊口有三個,下面以COM1、COM2、COM3作說明:
#1:EH V1.1版(含)以上、EH2/EH2LV1.0版(含)以上有支援
#2:COM3必須插上DVP-F232S或DVP-F485S功能卡才有支援
#3:通訊協定計算方式參備註5
ES2/EX2/SA2 的通訊口有三個,下面以COM1、COM2、COM3作說明:
SX2的通訊口有三個,下面以COM1、COM2、COM3作說明:
SE的通訊口有三個,下面以COM1、COM2、COM3作說明:
#1:COM1 為 USB通訊, 不管 PLC 如何設定都走USB 的方式.
SE的Ethernet 通訊說明:
EH3/EH3L的通訊口有三個,下面以COM1、COM2、COM3作說明:
#1:COM3必須插上DVP-F232S或DVP-F485S功能卡才有支援#2:COM3必須插上DVP-F232或DVP-F485功能卡才有支援四、連線方式
五、通訊格式介紹
1. 通訊資料協定:MODBUS Protocol
start bit parity stop bit
圖一
通訊資料協定:MODBUS TCP/IP
2. 通訊資料格式:分為ASCII Mode 與 RTU Mode
i. ASCII Mode
接下來資料除有特別說明,否則皆以16進位表示ASCII Mode的通訊格式如下:
STX Address Function Data LRC End
1 byte 1 byte 1 byte 1~3
2 bytes 1 byte 2 bytes
表格一
當資料要傳送時,除了STX與End字元外,其餘資料,以一個字元為單位,將每個字元的前四個位元與後四個位元,轉換成ASCII 碼,例如:5A的字元,就轉換成’5’與’A’兩個字元。其轉換後格式如下:
STX 起始字元“ : ” (3A)
ADR high byte
通訊位址
ADR low byte
Function high byte
通訊命令
Function low byte
Data 1 high byte
第一個BYTE的資料
Data 1 low byte
. …
Data N high byte
第N個BYTE的資料
Data N low byte
LRC high byte
錯誤偵測檢查碼
LRC low byte
(0DH)
End1 CR
End2 LF
(0AH)
表格二
錯誤偵測檢查碼採用LRC(Longitudinal Redundancy Check)偵誤值,計算方式是將資料由表格一的ADR加總到LRC,加總過程當中,是以字元為最小單位,當加總過程當中,有進位產生時,忽略掉進位值,最後把加總的結果取2的補數就是LRC的值。
範例:
STX Address Function Data1 Data2 Data3 Data4 LRC End
0A 3A 01 03 04 01 00 01 0D Address + Function + Data1 + Data2 + Data3 + Data4 = 01 + 03 + 04 + 01 + 00 + 01 = 0A將0A
的值轉換成2的補數,2的補數轉換方式,是欲轉換的資料每一個BIT反向(0變1,1變0),然後
再將反向後的資料再加1即得到2的補數,0A的2補數 =F6
ii. RTU Mode
RTU的通訊格式如下:
Address Function Data CRC
1 byte 1 byte 1~3
2 bytes 2 bytes
表格三
RTU通訊方式沒有開頭及結尾字元,改採用時間間隔長度來判斷不同傳送資料的開頭與結尾,
其方式如下:
≧3.5 字元長度
圖二
由圖一可看出兩筆資料傳送當中,至少要間隔3.5字元長度時間,接收端每接收到一個字元的資料後,就開始計時,當計時超過3.5字元長度時間時,就視為此筆資料已經傳送完畢,字元
長度時間會因為傳輸速度不同而有所不同。
Mode傳輸資料格式,直接是以字元方式傳送,不需再解成ASCII再傳送。
RTUCRC是RTU偵測錯誤的方式,採用的CRC多項式格式為X16 + X15 + X2 + 1,計算方式請參閱備註1。
iii. MODBUS TCP/IP MODE
TCP/IP是以RTU的格式傳送接收,唯獨資料組成不同。
MODBUS
TCP/IP除了PDU部份,還多了MODBUS APPLICATION PROTOCOL HEADER,
MODBUS
且MODBUS TCP/IP沒有CHECK SUM(CRC)
Standard MODBUS TCP/IP的通訊格式如下:
Connet ID 0x0000 Length Address Function Data
2 bytes 2 bytes 2 bytes 1 byte 1 byte 1~250 bytes
表格四
註:因為MODBUS TCP/IP 之PDU(Protocol Data Unit)部份和Standard MODBUS Protocol相同,
所以在Request Block、Response Block及Example…等之中不另外說明。以下為使用Function
Code 0x01: Read T20~T56 Coil Staus作範例。
Modbus TCP/IP
Request Response Field Name Example (Hex) Field Name Example (Hex) Connect ID Hi AB Connect ID Hi AB
Connect ID Lo CD Connect ID Lo CD
Protocol Identifier Hi 00 Protocol Identifier Hi 00
Protocol Identifier Lo 00 Protocol Identifier Lo 00
Length Hi 00 Length Hi 00
Length Lo 06 Length Lo 08
Slave Address 00 Slave Address 00
Function 01
Function 01 Starting Address Hi E0 Byte Count 05
Starting Address Lo 14 Data(Coils T27…T20)CD
Quantities Hi 00 Data(Coils T35…T28)6B
Quantities Lo 25 Data(Coils T43…T36)B2
Data(Coils T51…T44)0E
Data(Coils T56…T52)1B3. 通訊工作方式:
採用MASTER/SLAVE 的方式,由一台MASTER機器發送MODBUS格式的資料給SLAVE,SLAVE 接收到MASTER資料後,依據MASTER下達的命令,作相對應的動作與回應。MASTER必須等SLAVE作相對應的回應後,才能再傳送下一筆通訊資料。
4. 錯誤訊息回應:
若傳入PLC的命令格式有錯誤,則PLC會將Function這欄位的MSB設定為1,然後將Function 欄位的下一筆資料填入錯誤訊息碼(Exception Code),最後傳送出去。
例:在ASCII Mode下,使用命令碼 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可得知是何種錯誤,Exception code請參閱備註2。
六、MODBUS 通訊命令格式
可用之命令碼敘述如下:(每個device的address, 請參考備註3)
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, R
05 Force Single Coil S, Y, M, T, C
06 Preset Single Register T, C, D
0F Force Multiple Coils S, Y, M, T, C
10 Preset Multiple Register T, C, D, R
注意:以下ASCII Mode通訊範例中,除了Heading 與 End1、End2之外,其餘通訊資料(PDU),
都必須拆成兩個Byte的ASCII Code
Function Code:01, Read Coil Status ( S, Y, M, T, C)
Example:Reading Coils T20~T56 from slave device 01
Send
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex) Heading 3A
Address
01
Slave
Slave Address 01 Function 01
Address
06
Hi
Starting
Function 01
Starting Address Hi 06 Starting Address Lo 14
Starting Address Lo 14 Number of Points Hi 00
Number of Points Hi 00 Number of Points Lo 25
Number of Points Lo 25 CRC(low byte) BD
Error Check ( LRC ) BF CRC(high byte) 5D
End1 (CR) 0D
End2 (LF) 0A
Receive
ASCII Mode
RTU Mode
Field Name
Example (Hex)
Field Name
Example (Hex)
Heading 3A Slave Address 01 Slave Address 01 Function 01 Function 01 Bytes Count 05 Bytes Count 05 Data (Coils T27…T20) CD Data (Coils T27…T20) CD Data (Coils T35…T38) 6B Data (Coils T35…T38) 6B Data (Coils T43…T36) B2 Data (Coils T43…T36) B2 Data (Coils T51…T44) 0E Data (Coils T51…T44) 0E Data (Coils T56…T52) 1B Data (Coils T56…T52) 1B CRC(low byte) 44 Error Check (LRC ) E6 CRC(high byte) EA End1 (CR) 0D
End2 (LF)
0A
說明:讀回來的Data ,編號最小的COIL 擺放在第一個Data 的LSB ,第二小的COIL 擺放在第一個Data 的bit1,若讀取的COIL 不是8的整數,則最後一筆Data ,無法補滿8個Coil ,無法補滿的部分,資料不必理會。以上面為例,最後一筆Data 是(T56...T52),資料的擺放如下圖。
Bit 順序 bit 7 bit 6 bit5 bit4 bit3 bit2 bit1 bit0 Coil 順序 NA NA NA T56 T55 T54 T53 T52 值
NA NA NA 1 1 0 1 1
NA : 代表該資料不必理會
Example:Reading Contact Y024~Y070 from slave device 01
Send
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Heading 3A
Slave
Slave Address 01 Function 02
05
Hi
Function 02
Address
Starting
Starting Address Hi 05 Starting Address Lo 14
Starting Address Lo 14 Number of Points Hi 00
Number of Points Hi 00 Number of Points Lo 25
Number of Points Lo 25 CRC(low byte) F9
Error Check ( LRC ) BF CRC(high byte) 19
End1 (CR) 0D
End2 (LF) 0A
Receive
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
Address
01
Slave
Heading 3A
Slave Address 01 Function 02
05
Count
Function 02
Bytes
Bytes Count 05 Data(Coils Y33…Y24)CD
Data(Coils Y33…Y24)CD Data(Coils Y43…Y34)6B
Data(Coils Y43…Y34)6B Data(Coils Y53…Y44)B2
Data(Coils Y53…Y44)B2 Data(Coils Y63…Y54)0E
Data(Coils Y63…Y54)0E Data(Coils Y70…Y)1B
Data(Coils Y70…Y)1B CRC(low byte) 77
Error Check(LRC)E5 CRC(high byte) EA
End1 (CR) 0D
End2 (LF) 0A
Function Code:03, Read Holding Register ( T, C, D, R )
Example:Reading Contact T20~T27 from slave device 01
Send
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Heading 3A
Slave
Slave Address 01 Function 03
Hi
06
Starting
Address
Function 03
Starting Address Hi 06 Starting Address Lo 14
Starting Address Lo 14 Number of Points Hi 00
Number of Points Hi 00 Number of Points Lo 08
Number of Points Lo 08 CRC(low byte) 04
Error Check ( LRC ) DA CRC(high byte) 80
End1 (CR) 0D
End2 (LF) 0A
Receive
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Slave
Heading 3A
Slave Address 01 Function 03
10 Function 03
Count
Bytes
Bytes Count 10 Data Hi(T20)00
Data Hi(T20)00 Data Lo(T20)01
Data Lo(T20)01 Data Hi(T21)00
Data Hi(T21)00 Data Lo(T21)02
Data Lo(T21)02 Data Hi(T22)00
Data Hi(T22)00 Data Lo(T22)03
Data Lo(T22)03 Data Hi(T23)00
Data Hi(T23)00 Data Lo(T23)04
Data Lo(T23)04 Data Hi(T24)00
Data Hi(T24)00 Data Lo(T24)05
Data Lo(T24)05 Data Hi(T25)00
Data Hi(T25)00 Data Lo(T25)06
Data Lo(T25)06 Data Hi(T26)00Receive
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex) Data Hi(T26)00 Data Lo(T26)07
Data Lo(T26)07 Data Hi(T27)00
Data Hi(T27)00 Data Lo(T27)08
byte) 72 Data Lo(T27)08 CRC(low
byte) 98 Error Check(LRC)C8 CRC(high
End1 (CR) 0D
End2 (LF) 0A
Number Of Points:讀取Register的數目
若讀取的register為32位元型態,則回傳的Data如下:(以讀取C200 = 12345678為例)
Data1 Hi = 12 Data1 Lo = 34
Data2 Hi = 56 Data2 Lo = 78Function Code:05, Force Single Coil (S, Y, M, T, C )
Example:Forcing Coil Y000 ON
Send
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Heading 3A
Slave
Slave Address 01 Function 05
05
Hi
Function 05
Address
Coil
Coil Address Hi 05 Coil Address Lo 00
Coil Address Lo 00 Force Data Hi FF
Force Data Hi FF Force Data Lo 00
Force Data Lo 00 CRC(low byte) 8C
Error Check ( LRC ) F6 CRC(high byte) F6
End1 (CR) 0D
End2 (LF) 0A
Force Data Hi, Lo,只有兩個值:
FF00:Set Coil
0000:Reset Coil
Receive
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address Heading 3A
Slave
Slave Address 01 Function 05
Hi
05
Coil
Address
Function 05
Coil Address Hi 05 Coil Address Lo 00
Coil Address Lo 00 Force Data Hi FF
Force Data Hi FF Force Data Lo 00
Force Data Lo 00 CRC(low byte) 8C
Error Check ( LRC ) F6 CRC(high byte) F6
End1 (CR) 0D
End2 (LF) 0A
說明:T與C Contact,當被reset之後,除了coil off之外,register值也被清除為0Function Code:06, Preset Single Register ( T, C, D )
Example:Setting Register T0 to 12 34
Send
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Heading 3A
Slave
Slave Address 01 Function 06
06
Hi Function 06
Address
Register
Register Address Hi 06 Register Address Lo 00
Register Address Lo 00 Preset Data Hi 12
Preset Data Hi 12 Preset Data Lo 34
Preset Data Lo 34 CRC(low byte) 84
Error Check ( LRC ) AD CRC(high byte) 35
End1 (CR) 0D
End2 (LF) 0A
Receive
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Slave
Heading 3A
Slave Address 01 Function 06
Hi
Address
06
Function 06
Register
Register Address Hi 06 Register Address Lo 00
Register Address Lo 00 Preset Data Hi 12
Preset Data Hi 12 Preset Data Lo 34
Preset Data Lo 34 CRC(low byte) 84
Error Check ( LRC ) AD CRC(high byte) 35
End1 (CR) 0D
End2 (LF) 0A
說明:若寫入的register為32位元型態,則寫入的Data如下:
(以寫入C200 = 12345678為例)
Data1 Hi = 12 Data1 Lo = 34
Data2 Hi = 56 Data2 Lo = 78Function Code:0F, Force Multiple Coils ( S, Y, M, T, C )
Example:Setting Coil Y007…Y000 = 1100 1101, Y011…Y010 = 01
Send
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Heading 3A
Slave
Slave Address 01 Function 0F
Hi
05
Coil
Function 0F
Address
Coil Address Hi 05 Coil Address Lo 00
Coil Address Lo 00 Quantity of Coils Hi 00
Quantity of Coils Hi 00 Quantity of Coils Lo 0A
Quantity of Coils Lo 0A Byte Count 02
Byte Count 02 Force Data Hi CD
Force Data Hi CD Force Data Lo 01
Force Data Lo 01 CRC(low byte) 25
Error Check (LRC) 11 CRC(high byte) 68
End1 (CR) 0D
End2 (LF) 0A
Receive
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Slave
Heading 3A
Slave Address 01 Function 0F
Address
05
Hi Function 0F
Coil
Coil Address Hi 05 Coil Address Lo 00
Coil Address Lo 00 Quantity of Coils Hi 00
Quantity of Coils Hi 00 Quantity of Coils Lo 0A
Quantity of Coils Lo 0A CRC(low byte) D5
Error Check ( LRC ) E1 CRC(high byte) 00
End1 (CR) 0D
End2 (LF) 0A
說明:(1) T與C Contact,當被reset之後,除了coil off之外,register值也被清除為0
(2) Force Data 由編號小的Coil開始擺放,以上面為例:
Data Hi = Y7~Y0
Data Lo = Y11 ~Y10Function Code:10, Force Multiple Registers ( T, C, D, R )
Example:Setting Register T0 to 00 0A, T1 to 01 02
Send
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
01
Address
Heading 3A
Slave
Slave Address 01 Function 10
Hi
06
Address
Function 10
Starting
Starting Address Hi 06 Starting Address Lo 00
Starting Address Lo 00 Number of Register Hi 00
Number of Register Hi 00 Number of Register Lo 02
Number of Register Lo 02 Byte Count 04
Byte Count 04 Data Hi 00
Data Hi 00 Data Lo 0A
Data Lo 0A Data Hi 01
Data Hi 01 Data Lo 02
Data Lo 02 CRC(low byte) 78
Error Check (LRC) D6 CRC(high byte) 5C
End1 (CR) 0D
End2 (LF) 0A
Receive
ASCII Mode RTU Mode
Field Name Example (Hex) Field Name Example (Hex)
Address
01
Slave
Heading 3A
Slave Address 01 Function 10
Hi
06
Address
T0
Function 10
Register
Starting Address Hi 06 Register T0 Address Lo 00
Starting Address Lo 00 Number of Registers Hi 00
Number of Registers Hi 00 Number of Registers Lo 02
Number of Registers Lo 02 CRC(low byte) 41
Error Check ( LRC ) E7 CRC(high byte) 40
End1 (CR) 0D
End2 (LF) 0A
說明:若寫入的register為32位元型態,則寫入的Data如下:
(以寫入C200 = 12345678為例)
Data1 Hi = 12 Data1 Lo = 34
Data2 Hi = 56 Data Lo = 78
Function Code: 17, Read/Write multiple register ( T, C, D, R ) Support Device: D, T, C
Request Block
Slave Address Function
Read Starting
Address Hi
Read Starting
Address Lo
Quantities to Read Hi Quantities to Read Lo
1 byte 0x17 1 byte 1 byte 1 byte 1 byte
Write Starting Address Hi Write Starting
Address Lo
Quantities to
Write Hi
Quantities
to Write Lo
Write Byte
Count
Write Registers
Value
Check Sum
1byte 1 byte 1 byte 1 byte 1byte N bytes LRC/CRC
Response Block
Slave
Address
Function Byte Count Read Registers value Check Sum
1 byte 0xx17 1 byte N byte LRC/CRC
補充說明:
1. Quantities to Read在此指的是讀取Register的數目(以word為單位)
2. 假設Quantities=M,則回傳的Byte Count N=M*2,且回傳的N單位為Bytes
3. Quantities to Write在此指的是寫入Register的數目(以word為單位)
4. 假設Register=M,則傳送的Byte Count N=M*2,因此Byte Count 為N Bytes七、備註
1. CRC計算方式
採用CRC-16,Preload polynomial = X16 + X15 + X2 + 1
下面是以C語言撰寫的CRC計算函式
// CRC_buf 傳入的通訊字元, BuffLen 通訊字元的長度
unsigned int CRC_Check(unsigned char *CRC_buf,unsigned char BuffLen)
{
unsigned int CRC_ReturnValue = 0xFFFF;
unsigned char i=0,j;
while ( BuffLen -- )
{
CRC_ReturnValue ^=CRC_buf[i++];
j = 8;
do
{
if ( CRC_ReturnValue & 0x01 )
{
CRC_ReturnValue =( CRC_ReturnValue >> 1 ) ^ 0xA001;
}
else
{
CRC_ReturnValue =CRC_ReturnValue >> 1;
}
-- j;
}
while ( j );
}
return CRC_ReturnValue; // 回傳 CRC-16 計算結果
}
2. Exception Code
原因Exception Code備註Command Code Invalid 01
Device Address Invalid 02
要求資料超過範圍03
寫入資料無效或範圍超過04
Check Sum 錯誤07
3. DVP Series PLC Internal Device Communication Address
Device
Range
Type
DVP 通訊位址(Hex)
Modbus 通訊位址(Dec)
S 000~255 bit 0000~00FF 000001~000256 S 246~511 bit 0100~01FF 000247~000512 S 512~767 bit 0200~02FF 000513~000768 S 768~1023 bit 0300~03FF 000769~001024 X 000~377 (Octal) bit 0400~04FF 101025~101280 Y 000~377 (Octal) bit 0500~05FF 001281~001536
bit 0600~06FF 001537~001792
T 000~255
word 0600~06FF 401537~401792
M 000~255 bit 0800~08FF 002049~002304 M 256~511 bit 0900~09FF 002305~002560 M 512~767 bit 0A00~0AFF 002561~002816 M 768~1023 bit 0B00~0BFF 002817~003072 M 1024~1279 bit 0C00~0CFF 003073~003328 M 1280~1535 bit 0D00~0DFF 003329~003584 M 1536~1791 bit B000~B0FF 045057~045312 M 1792~2047 bit B100~B1FF 045313~045568 M 2048~2303 bit B200~B2FF 045569~045824 M 2304~2559 bit B300~B3FF 045825~046080 M 2560~2815 bit B400~B4FF 046081~046336 M 2816~3071 bit B500~B5FF 046337~046592 M 3072~3327 bit B600~B6FF 046593~046848 M 3328~3583 bit B700~B7FF 046849~047104 M 3584~3839 bit B800~B8FF 047105~047360 M 3840~4095 bit B900~B9FF 047361~047616
bit 0E00~0EC7 003585~003784
0~199 16-bit
word 0E00~0EC7 403585~403784 bit 0EC8~0EFF 003785~003840
C 200~255 32-bit
Dword 0EC8~0EFF 403785~403840
D 000~256 word 1000~10FF 404097~404352 D 256~511 word 1100~11FF 404353~404608 D 512~767 word 1200~12FF 404609~4048 D 768~1023 word 1300~13FF 404865~405120 D 1024~1279 word 1400~14FF 405121~405376 D 1280~1535 word 1500~15FF 405377~405632 D 1536~1791 word 1600~16FF 405633~405888 D 1792~2047 word 1700~17FF 4058~406144 D 2048~2303 word 1800~18FF 406145~4000 D 2304~2559 word 1900~19FF 4001~406656 D 2560~2815 word 1A00~1AFF 406657~406912 D 2816~3071 word 1B00~1BFF 406913~407168
1C00~1CFF 407169~407424
D 3328~3583 word
1D00~1DFF 407425~407680
D 3584~3839 word
1E00~1EFF 407681~407936
D 3840~4095 word
1F00~1FFF 407937~408192
D 4096~4351 word
9000~90FF 436865~437120
D 4352~4607 word
9100~91FF 437121~437376
D 4608~4863 word
9200~92FF 437377~437632
D 48~5119 word
9300~93FF 437633~437888
D 5120~5375 word
9400~94FF 4378~438144
D 5376~5631 word
9500~95FF 438145~438400
D 5632~5887 word
9600~96FF 438401~438656
D 5888~6143 word
9700~97FF 438657~4312
D 6144~6399 word
9800~98FF 4313~439168
D 00~6655 word
9900~99FF 439169~439424
D 6656~6911 word
9A00~9AFF 439425~439680
D 6912~7167 word
9B00~9BFF 439681~439936
D 7168~7423 word
9C00~9CFF 439937~440192
D 7424~7679 word
9D00~9DFF 440193~440448
D 7680~7935 word
9E00~9EFF 440449~440704
D 7936~8191 word
9F00~9FFF 440705~440960
D 8192~8447 word
A000~A0FF 440961~441216
D 8448~8703 word
A100~A1FF 441217~441472
D 8704~59 word
A200~A2FF 441473~441728
D 60~9215 word
A300~A3FF 441729~441984
D 9216~9471 word
A400~A4FF 441985~442240
D 9472~9727 word
A500~A5FF 442241~442496
D 9728~9983 word
A600~A6FF 442497~442752
D 9984~10239 word
A700~A7FF 442753~443008
D 10234~10495 word A800~A8FF 443009~443246
D 10496~10751 word A900~A9FF 443247~443502
D 10752~11007 word AA00~AAFF 443503~443758
D 11008~11263 word AB00~ABFF 443759~444014
D 112~11519 word AC00~ACFF 444015~444270
D 11520~11775 word AD00~ADFF 444271~444526
D 11776~11999 word AE00~AEDF 444527~444750
R 0 ~ 9999 word C000~E70F 449153~4591524. 各機種支援的裝置
5. D1036 / D1120 / D1109通信協定格式計算方式: