Modbus主機設(shè)置
Modbus從機站的Modbus主機通信設(shè)置和請求表可使用WindLDR“功能設(shè)置”進行設(shè)置。 進行從機站通信與用戶程序執(zhí)行同步,并且按照請求表中指定的請求編號順序在END處理中處理通信數(shù)據(jù)。 當指定了請求執(zhí)行內(nèi)部繼電器時,只有當相應的請求執(zhí)行內(nèi)部繼電器打開時才執(zhí)行請求。 當沒有指定請求執(zhí)行內(nèi)部繼電器時,連續(xù)執(zhí)行所有請求。使用WindLDR設(shè)置Modbus主機通信用于Modbus ASCII或Modbus RTU。 由于這些設(shè)置與用戶程序相關(guān),所以必須在更改設(shè)置后將用戶程序下載到MicroSmart。
1. 在WindLDR菜單欄中選擇設(shè)置>功能設(shè)置>通信端口。此時出現(xiàn)通信端口的“功能設(shè)置”對話。
2. 在“端口2”的“通信模式”下拉列表中,選擇Modbus ASCII主機或Modbus RTU主機。
4. 單擊通信設(shè)置按鈕。出現(xiàn)“通信參數(shù)”對話框。若有必要,請更改設(shè)置。

注釋 1: 僅當端口 3 至端口7 上使用 Modbus 主機時才可使用115200 bps的速度。
注釋 2: 當端口 3 至端口 7 上使用 Modbus 主機時可指定傳輸?shù)却龝r間。
5. 單擊確定按鈕返回Modbus ASCII或RTU主機請求表。 在“功能代碼”下指定請求。 一個請求表中最多可輸入255個或2040個(在系統(tǒng)程序版本110或更高的CPU模塊上時)請求。
“功能代碼”為進行Modbus通信時,主機對從機進行的讀取或?qū)懭氲牟僮鞔a。FC5A支持如下功能代碼
請求執(zhí)行內(nèi)部繼電器和錯誤狀態(tài)數(shù)據(jù)寄存器按照請求編號順序分配。 當刪除一個請求或更改請求的順序時,更改了請求與請求執(zhí)行內(nèi)部繼電器和錯誤狀態(tài)數(shù)據(jù)寄存器的關(guān)系。 如果在用戶程序中使用了內(nèi)部繼電器或數(shù)據(jù)寄存器,必須相應地更改設(shè)備編號。在完成更改后,重新下載用戶程序。
6. 當完成編輯“主機請求表”時,單擊確認按鈕保存更改。
7. 在關(guān)閉“主機請求表”后,編輯一個用于特殊數(shù)據(jù)寄存器D8054 (傳輸?shù)却龝r間)和錯誤檢測的用戶程序。
8. 將用戶程序下載到CPU模塊。
現(xiàn)在,設(shè)置Modbus主機完成。
Modbus從機設(shè)置
在 WindLDR 功能域設(shè)置中為端口 1 至端口 7 選擇Modbus ASCII 從機或 Modbus RTU(遠程終端設(shè)備)從機,則可使用 Modbus 從機通信。 當Modbus從機從Modbus主機接收請求時,Modbus從機根據(jù)請求讀取或?qū)懭霐?shù)據(jù)。 在用戶程序的END處理時處理請求。
使用WindLDR設(shè)置Modbus從機通信用于Modbus ASCII或Modbus RTU。 由于這些設(shè)置與用戶程序相關(guān),所以必須在更改設(shè)置后將用戶程序下載到MicroSmart。
1. 在WindLDR菜單欄中選擇設(shè)置>功能設(shè)置>通信端口。此時出現(xiàn)通信端口的“功能設(shè)置”對話框。
2. 在“端口2”的“通信模式”下拉列表中,選擇Modbus ASCII從機或Modbus RTU從機
3. 單擊設(shè)置按鈕。出現(xiàn)“通信參數(shù)”對話框。若有必要,請更改設(shè)置。
4. 單擊確定按鈕保存更改。
5. 在關(guān)閉“功能設(shè)置”屏幕后,編輯一個用于特殊數(shù)據(jù)寄存器D8054(傳輸?shù)却龝r間)和錯誤檢測的用戶程序。
6. 將用戶程序下載到CPU模塊。
現(xiàn)在,設(shè)置Modbus從機完成。
*a:地址通常用于Modbus通信。 MicroSmart設(shè)備的Modbus地址計算方法如下。
*b: 這些 4 位數(shù)地址用于通信幀。要計算通信幀中使用的地址,提取 Modbus 地址的低 5 位數(shù),從該值中減去1,并將結(jié)果轉(zhuǎn)換為十六進制。一般MicroSmart從機支持十進制的地址通信。但若需要使用十六進制進行通信的話,勾選Modbus主機設(shè)置頁中的:
圖中,D0200~D0202是上圖設(shè)置的錯誤狀態(tài)寄存器。當出現(xiàn)通信錯誤時,在其中保存從機號(高字節(jié))和錯誤代碼(低字節(jié))。
錯誤代碼表,如下所示:
00h:正常完成
01h:功能錯誤
02h:訪問目標錯誤(地址超出范圍,地址+設(shè)備量超出范圍)
03h:設(shè)備量錯誤,1位寫入數(shù)據(jù)錯誤
11h:ASCII代碼錯誤(僅ASCII模式)
12h:幀長度錯誤
13h:BCC錯誤
14h:從機編號錯誤
16h:超時錯誤
DTDV(W)將錯誤狀態(tài)S1分割為高低字節(jié)存放在D1,D1+1。例如,上圖程序中第一行表示為D0200的高字節(jié)被存放在D0210,低字節(jié)被存放在D0211中。
之后,分別讀取分割存放后的寄存器的值就可知。










