国产清洁工av剧情精品_欧洲日韩av网站_国产视频手机在线播放_亚洲精品国产va在线观看蜜芽_AV网页在线好看_久久精品国产亚洲精品2023_一级日韩一级欧美_亚洲欧美日韩中文天堂_最近中文字幕mv在线视频_男女啪啪高潮激烈免费版网站

您好,歡迎訪問泰安宏盛自動化科技有限公司!
20年專注工控自動化研發(fā)制造 系統(tǒng)設(shè)計\制作\安裝一條龍服務(wù)
全國咨詢熱線:18605386049
當前位置: 首頁 > 技術(shù)資料 > 說明書 > PLC

Modbus RTU V3 及以上版本指令集基本功能介紹

作者:小編 時間:2024-02-21 12:36:42 點擊:

Modbus RTU V3 及以上版本指令集基本功能介紹

TIA Portal V13 SP1 版本開始軟件中提供了兩個版本的 Modbus RTU 指令集,如圖 1 所示。

image.png

圖 1. 兩個版本 Modbus RTU 指令集

早期版本的 Modbus RTU 指令集(圖 1 中 MODBUS (V2.2))僅可通過主機架 CM1241 通信模塊或 CB1241 通信板進行 Modbus RTU 通信。 具體使用請參見文檔 :主站、從站。主要用于早期項目和 V4.0 之前版本的 CPU。

新版本的 Modbus RTU 指令集(圖 1 中紅框指令集)擴展了 Modbus RTU 的功能,該指令集除了支持主機架 CM1241 通信模塊、CB1241 通信板,還支持 PROFINET 或 PROFIBUS 分布式 I/O 機架上的點對點通信模塊實現(xiàn) Modbus RTU 通信。從這個版本開始 S7-1200 與 S7-1500 在 Modbus RTU 指令集開始一致,并且之后版本更新也是基于該版本,建議 V4.0 以后的 CPU 和串口模塊使用該版本指令集。


硬件要求:

  • S7-1200 CPU 的固件版本不能低于 V4.1
  • CM1241 通信模塊不能低于 V2.1
  • CB1241 沒有要求
  • 分布式上的串口模塊包括:
    • ET200SP 的 CM PtP
    • ET200MP 的 CM PtP RS232 HF
    • ET200MP 的 CM PtP RS422/485 HF

新版本 Modbus RTU 指令集所支持的點對點模塊如圖 2 所示。

image.png

圖 2. 新版本 Modbus RTU 指令集所支持的點對點模塊

Modbus RTU 指令的使用

新版本 Modbus RTU 指令集中包含 Modbus RTU 主站指令和從站指令。

本文以 CPU1217C + CM1241 RS422/485 + ET200SP CM PtP 模塊為例,介紹新版本 Modbus RTU 指令主從通信的編程步驟。 其中 CPU 機架 CM1241 RS422/485 作為 Modbus RTU 從站,分布式機架 ET200SP 中 CM PtP 模塊作為 Modbus RTU 主站。網(wǎng)絡(luò)結(jié)構(gòu)圖如圖 3 所示。

image.png

圖 3. Modubs RTU 網(wǎng)絡(luò)通信結(jié)構(gòu)圖

本項目中使用到的硬件和軟件如下:

1. 設(shè)備組態(tài)

a. 組態(tài) CM1241 RS422/485 模塊

打開設(shè)備視圖,添加 S7-1200CPU,并在硬件目錄里找到“通信模塊”→“點到點”→“CM1241(RS422/485)”,拖拽此模塊至 CPU 左側(cè)即可,如圖 4 所示:

image.png

圖 4. 添加 CM 1241 RS422/485 模塊

注意:

固件版本>=V2.1 的 CM 1241 RS422/485 模塊,才支持新版本 Modbus RTU 指令集。

在“設(shè)備視圖”中用鼠標選中 CM1241(RS422/485) 模塊,在“屬性”→“端口組態(tài)”中配置此模塊硬件接口參數(shù), 本例以傳輸率 = 9.6 kbps,奇偶校驗 = 無,數(shù)據(jù)位 = 8 位字符,停止位 = 1 為例。

CM 1241 端口組態(tài)設(shè)置如圖 5 所示。

image.png

圖 5. CM1241 RS422/485 模塊端口組態(tài)

在“硬件標識符”里確認一下硬件標識符為 269(該參數(shù)在程序編程中會被使用),如圖 6 所示。

image.png

圖 6. 硬件標識符

另外,S7-1200 還提供了系統(tǒng)和時鐘存儲器功能,為了便于后續(xù)指令方便使用,建議使能該功能。在 CPU “屬性”→“常規(guī)”→“系統(tǒng)和時鐘存儲器”使能系統(tǒng)和時鐘存儲器功能,如圖 7 所示。

image.png

圖 7. 系統(tǒng)和時鐘存儲器功能

b. 組態(tài) ET200 SP CM PtP 模塊

(1) 插入一個 ET200SP 分布式站點。

打開網(wǎng)絡(luò)視圖并拖入一個 ET200SP 站點,并將其分配給相應(yīng)的 IO 控制器(本例 CPU1217C 為 IO 控制器),如圖 8 所示。

image.png

圖 8. 插入 ET200SP 站點

(2) 組態(tài) ET200SP 站點。

在 ET200SP 的"設(shè)備視圖"環(huán)境下,為 ET200SP 站點添加信號、通信模塊和服務(wù)模塊,在本例中只添加了 CM PtP 模塊和服務(wù)模塊。

注意:

ET200SP 站點中,服務(wù)模塊是必須組態(tài)的。服務(wù)模塊隨接口模塊一起采購,無需單獨購買。

ET200SP 接口模塊需要為其分配 IP 地址和設(shè)備名稱,有關(guān) ET200SP 分布式 IO 組態(tài)詳細步驟,請參考文檔。

在 ET200SP "設(shè)備視圖"中用鼠標選中 CM PtP,在“屬性”→“常規(guī)”→“接口”→“操作模式”中配置此模塊硬件接口參數(shù), 本例設(shè)定“指定工作模式":"半雙工(RS485)2 線制操作";"接收線路的初始狀態(tài)":"無"。如圖 9 所示。

圖 9. CM PtP 操作模式

接下來,在“屬性”→“常規(guī)”→“接口”→“端口組態(tài)”中配置此模塊端口組態(tài)參數(shù), 本例設(shè)定"協(xié)議":"Freeport/Modbus";"端口參數(shù)"設(shè)置:傳輸率 = 9600 bps,奇偶校驗 = 無,數(shù)據(jù)位 = 8 位字符,停止位 = 1 為例。端口組態(tài)設(shè)置如圖 10 所示。

image.png

圖 10. CM PtP 端口組態(tài)

最后需要在“硬件標識符”里確認一下 CM PtP 模塊硬件標識符,該參數(shù)在程序編程中會被使用。如圖 11 所示。

image.png

圖 11. 系統(tǒng)常量

2. 軟件編程

a. Modbus RTU 主站編程

Modbus RTU 主站編程需要調(diào)用 Modbus_Comm_Load 指令和 Modbus_Master 指令,其中 Modbus_Comm_Load 指令通過 Modbus RTU 協(xié)議對通信模塊進行組態(tài),Modbus_Master 指令可通過由 Modbus_Comm_Load 指令組態(tài)的端口作為 Modbus 主站進行通信, Modbus_Comm_Load 指令的 MB_DB 參數(shù)必須連接到 Modbus_Master 指令的(靜態(tài))MB_DB 參數(shù)。

本例中分布式機架 ET200SP 中 CM PtP 模塊作為 Modbus RTU 主站,其相關(guān)編程步驟如下:

(1) OB1 中插入一個 FC,并在 FC 中拖入 Modbus_Comm_Load 指令和 Modbus_Master 指令。如圖 12 所示。

image.png

圖 12. Modbus RTU 主站指令

Modbus_Comm_Load 指令各參數(shù)意義如表 1 所示:

引腳

說明

REQ

上升沿觸發(fā)

PORT

通信端口的硬件標識符

BAUD

波特率選擇:3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200

PARITY

奇偶檢驗選擇:0-無;1-奇校驗;2-偶校驗

FLOW_CTRL

流控制選擇:0-(默認值)無流控制

RTS_ON_DLY

RTS 延時選擇:0-(默認值)

RTS_OFF_DLY

RTS 關(guān)斷延時選擇:0-(默認值)

RESP_TO

響應(yīng)超時: 默認值 = 1000 ms。Modbus_Master 允許用于從站響應(yīng)的時間(以毫秒為單位)。

MB_DB

對 Modbus_Master 或 Modbus_Slave 指令的背景數(shù)據(jù)塊的引用。 MB_DB 參數(shù)必須與 Modbus_Master 或 Modbus_Slave 指令中的靜態(tài)變量 MB_DB 參數(shù)相連。

DONE

如果上一個請求完成并且沒有錯誤,DONE 位將變?yōu)?TRUE 并保持一個周期。

ERROR

如果上一個請求完成出錯,則 ERROR 位將變?yōu)?TRUE 并保持一個周期。 STATUS 參數(shù)中的錯誤代碼僅在 ERROR = TRUE 的周期內(nèi)有效。

STATUS

端口組態(tài)錯誤代碼,請參考 TIA Portal 軟件在線幫助或 S7-1200 系統(tǒng)手冊。

表 1. Modbus_Comm_Load 指令參數(shù)意義

Modbus_Master 指令各參數(shù)意義如表 2 所示。

引腳

說明

EN

使能端

REQ

TRUE = 請求向 Modbus 從站發(fā)送數(shù)據(jù) ,建議采用上升沿觸發(fā)

MB_ADDR

Modbus RTU 從站地址。默認地址范圍:0 至 247;擴展地址范圍:0 至 65535。值 0 被保留用于將消息廣播到所有 Modbus 從站。

MODE

模式選擇: 指定請求類型(讀取或?qū)懭耄?/div>

DATA_ADDR

從站中的起始地址:指定 Modbus 從站中將供訪問的數(shù)據(jù)的起始地址。

DATA_LEN

數(shù)據(jù)長度:指定要在該請求中訪問的位數(shù)或字數(shù)。

DATA_PTR

數(shù)據(jù)指針: 指向要進行數(shù)據(jù)寫入或數(shù)據(jù)讀取的 M 區(qū)或數(shù)據(jù)塊地址。

DONE

完成位:上一請求已完成且沒有出錯后,DONE 位將保持為 TRUE 一個掃描周期時間。

BUSY

FALSE – Modbus_Master 無激活命令;TRUE – Modbus_Master 命令執(zhí)行中

ERROR

如果上一個請求完成出錯,則 ERROR 位將變?yōu)?TRUE 并保持一個周期。 STATUS 參數(shù)中的錯誤代碼僅在 ERROR = TRUE 的周期內(nèi)有效。

STATUS

端口組態(tài)錯誤代碼,請參考 TIA Portal 軟件在線幫助或 S7-1200 系統(tǒng)手冊。

表 2. Modbus_Master 指令參數(shù)意義

注意:

① Modbus_Comm_Load 指令不建議在啟動組織塊 OB100 中調(diào)用,建議在 OB1 中調(diào)用。

Modbus_Comm_Load 指令在 OB1 中調(diào)用時,其輸入位“REQ”需使用上升沿觸發(fā),本例中該輸入位采用 “FirstScan” 系統(tǒng)存儲器位。

② Modbus_Comm_Load 指令背景數(shù)據(jù)塊中的靜態(tài)變量 “MODE” 用于描述點對點模塊的工作模式,有效的工作模式包括:

  • 0 = 全雙工 (RS232)
  • 1 = 全雙工 (RS422) 四線制模式(點對點)
  • 2 = 全雙工 (RS422) 四線制模式(多點主站)
  • 3 = 全雙工 (RS422) 四線制模式(多點從站)
  • 4 = 半雙工 (RS485) 二線制模式

該靜態(tài)變量 “MODE” 默認數(shù)據(jù)為 0(RS232 全雙工模式),需要根據(jù)點對點模塊實際組態(tài)修改該數(shù)值,本例中 CM PtP 模塊工作在 RS485 半雙工模式需要將該數(shù)值修改為 4,如圖 13 所示。

image.png

圖 13. Modbus_Comm_Load 背景數(shù)據(jù)塊靜態(tài)變量 “MODE” 修改為 4

③ Modbus_Master 指令的 “DATA_PTR” 參數(shù)用于指向要進行數(shù)據(jù)寫入或數(shù)據(jù)讀取的數(shù)據(jù)區(qū)域地址,該數(shù)據(jù)區(qū)域在 V3.0 支持非優(yōu)化(標準的)數(shù)據(jù)塊。一般建議使用指針方式填寫,例如程序中的 P#DB3.DBX0.0 WORD 5,此外也可以使用基本數(shù)據(jù)類型數(shù)組方式填寫。指針的含義參見鏈接。

從 V4.0 版本開始支持優(yōu)化 DB 塊,具體參見鏈接

在數(shù)據(jù)塊的屬性中取消“優(yōu)化的塊訪問”即可將數(shù)據(jù)塊修改為非優(yōu)化訪問的數(shù)據(jù)塊(鼠標右鍵數(shù)據(jù)塊,選擇“屬性”,取消“優(yōu)化的塊訪問”),如圖 14 所示。

image.png

圖 14. 設(shè)置數(shù)據(jù)塊為非優(yōu)化訪問

④ 當 Modbus RTU 網(wǎng)絡(luò)中存在多個 modbus RTU 從站或一個 modbus RTU 從站同時需要多個作業(yè),例如需要讀和寫或者讀多個區(qū)域等,則需要調(diào)用多個 Modbus_Master 指令,Modbus_Master 指令之間需要采用輪詢方式調(diào)用,并且使用相同背景數(shù)據(jù)塊。

如圖 15 所示,用于描述兩個 Modbus_Master 指令輪詢調(diào)用的方式。

image.png

圖 15. Modbus_Master 輪詢調(diào)用方式

⑤ MB_MODE、MB_DATA_ADDR、MB_DATA_LEN、 Modbus RTU 功能碼等之間的關(guān)系,如表 3 所示。

MB_MODEMB_DATA_ADDRMB_DATA_LENModbus RTU 功能碼操作和數(shù)據(jù)
01 - 99991 - 200001
  • 讀取輸出位
    • 每個請求 1 - 2000 個位
010001 - 199991 - 200002
  • 讀取輸入位
    • 每個請求 1 - 2000 個位
0
  • 40001 - 49999(等同于 400001 - 409999)
  • 400001 - 465535
1 - 12503
  • 讀取保持寄存器
    • 每個請求 1 - 125 個字
030001 - 399991 - 12504
  • 讀取輸入字
    • 每個請求 1 - 125 個字
110001 - 19999105
  • 寫入輸出位
    • 每個請求 1 個位
1
  • 40001 - 49999(等同于 400001 - 409999)
  • 400001 - 465535
106
  • 寫入保持寄存器
    • 每個請求 1 個字
110001 - 199992 - 196815
  • 寫入多個輸出位
    • 每個請求 2 - 1968 個位
1
  • 40001 - 49999(等同于 400001 - 409999)
  • 400001 - 465535
2 - 12316
  • 寫入多個保持寄存器
    • 每個請求 2 - 123 個字
210001 - 199991 - 196815
  • 寫入輸出位
    • 每個請求 1 - 1968 個位
2
  • 40001 - 49999(等同于 400001 - 409999)
  • 400001 - 465535
1 - 12316
  • 寫入保持寄存器
    • 每個請求 1 - 123 個字
11-11
  • 讀取服務(wù)器的狀態(tài)字和事件計數(shù)器:
    • 狀態(tài)字反映了處理的狀態(tài)(0 - 未處理,0xFFFF - 正在處理)
    • Modbus 請求成功執(zhí)行時,事件計數(shù)器將遞增。如果執(zhí)行 Modbus 功能時出錯,則服務(wù)器將發(fā)送消息,但不會遞增事件計數(shù)器。
80-108
  • 通過診斷代碼 0x0000 檢查服務(wù)器狀態(tài)(返回循環(huán)測試 - 服務(wù)器發(fā)回請求):
    • 每次調(diào)用 1 個字
81-108
  • 通過診斷代碼 0x000A 復(fù)位服務(wù)器的事件計數(shù)器:
    • 每次調(diào)用 1 個字
1040 - 655351 - 12504
  • 讀取輸入字
    • 每個請求 1 - 125 個字

注:

  • 對于擴展尋址,讀寫最大長度減少一個字(訪問字)或一個字節(jié)(訪問位)。
  • 當 MB_ADDR = 0 為廣播模式,此時只允許寫操作

表 3. 對應(yīng)關(guān)系

⑥ 對于一般的支持 Modbus RTU 設(shè)備,可能無法在其設(shè)備手冊中查找到諸如 40001、30001 這種數(shù)據(jù)地址,而是以功能碼 + 十六進制數(shù)形式的變量地址,就需要這樣解決:

通過判斷功能碼決定是讀是寫,決定 MB_MODE 為 0 讀還是 1 寫(2 寫比較特殊,只用于不支持 5、6 號功能碼的設(shè)備),然后將十六進制地址數(shù)轉(zhuǎn)化為十進制數(shù),然后對于不同的功能碼,十進制數(shù)增加不同的偏移量,對于功能碼 1、5、15 偏移量為 1,對于功能碼 2 偏移量為 10001,對于功能碼 3、6、16 偏移量為 40001(對于超過 9999 的地址,偏移量為 400001),對于功能碼 4 偏移量為 30001。例如從站設(shè)備使用 0x03 功能碼,地址 0x00FF ,因為是讀,所以 MB_MODE = 0, 0x00FF 轉(zhuǎn)換為十進制為 255,加上偏移量 40001 就是 40256,這樣 MB_DATA_ADDR = 40256。

此外對于功能碼 4,如果十進制地址數(shù)超過 9998 的,加上偏移量 30001 將超過 39999,此時可以使用 MB_MODE = 104,然后 MB_DATA_ADDR 使用不增加偏移量的十進制地址數(shù)也是可以的。例如從站設(shè)備使用 0x04 功能碼,地址 0x4000 , 0x4000 轉(zhuǎn)換為十進制為 16384,加上偏移量 30001 將超過 39999,此時使用 MB_MODE = 104,MB_DATA_ADDR = 16384。

⑦ 對于分布式 IO 上的串口模塊,還需要考慮模塊拔出或者掉站的情況。

b. Modbus RTU 從站編程

Modbus RTU 從站編程需要調(diào)用 Modbus_Comm_Load 指令和 Modbus_Slave 指令,其中 Modbus_Comm_Load 指令通過 Modbus RTU 協(xié)議對通信模塊進行組態(tài),Modbus_Slave 指令可通過由 Modbus_Comm_Load 指令組態(tài)的端口作為 Modbus 從站進行通信,Modbus_Comm_Load 指令的 MB_DB 參數(shù)必須連接到 Modbus_Slave 指令的(靜態(tài))MB_DB 參數(shù)。

本例中 CPU 機架 CM1241 RS422/485 作為 Modbus RTU 從站,其相關(guān)編程步驟如下:

OB1 中插入一個 FC,并在函數(shù)中拖入 Modbus_Comm_Load 指令和 Modbus_Slave 指令。如圖 16 所示。

image.png

圖 16. 拖入Modbus RTU 從站指令

Modbus_Slave 指令各參數(shù)意義如表 4 所示:

引腳

說明

MB_ADDR

Modbus 從站的標準尋址: 標準尋址范圍(1 到 247), 擴展尋址范圍(0 到 65535)

MB_HOLD_REG

數(shù)據(jù)指針,指向 Modbus 保持寄存器的地址, Modbus 保持寄存器可以為 M 存儲區(qū)或 DB 數(shù)據(jù)區(qū)。

NDR
可用的新數(shù)據(jù):
  • FALSE : 無新數(shù)據(jù)
  • TRUE : 表示新數(shù)據(jù)已由 Modbus 主站寫入,如果上一個請求完成并且沒有錯誤,NDR 位將變?yōu)?TRUE 并保持一個周期。
DR
讀取數(shù)據(jù):
  • FALSE : 無新數(shù)據(jù)
  • TRUE :表示該指令已將 Modbus 主站接收到的數(shù)據(jù)存儲在目標區(qū)域中。如果上一個請求完成并且沒有錯誤,DR 位將變?yōu)?TRUE 并保持一個周期。

ERROR

如果上一個請求完成出錯,則 ERROR 位將變?yōu)?TRUE 并保持一個周期。 如果執(zhí)行因錯誤而終止,則 STATUS 參數(shù)中的錯誤代碼僅在 ERROR = TRUE 的周期內(nèi)有效。

STATUS

錯誤代碼

表 4. Modbus_Slave 指令參數(shù)意義

注意:

① Modbus_Comm_Load 指令不建議在啟動組織塊 OB100 中調(diào)用,建議在 OB1 中調(diào)用。

Modbus_Comm_Load 指令在 OB1 中調(diào)用時,其輸入位“REQ”需使用上升沿觸發(fā),本例中該輸入位采用 “FirstScan” 系統(tǒng)存儲器位。

② Modbus_Comm_Load 指令背景數(shù)據(jù)塊中的靜態(tài)變量 “MODE” 用于描述點對點模塊的工作模式,有效的工作模式包括:

  • 0 = 全雙工 (RS232)
  • 1 = 全雙工 (RS422) 四線制模式(點對點)
  • 2 = 全雙工 (RS422) 四線制模式(多點主站)
  • 3 = 全雙工 (RS422) 四線制模式(多點從站)
  • 4 = 半雙工 (RS485) 二線制模式

該靜態(tài)變量 “MODE” 默認數(shù)據(jù)為 0(RS232 全雙工模式),需要根據(jù) CM PtP 模塊實際組態(tài)修改該數(shù)值,本例中 CM PtP 模塊工作在 RS485 半雙工模式需要將該數(shù)值修改為 4,參考圖 13 。

③ Modbus_Slave 指令的 “MB_HOLD_REG” 用于定義 CPU 的 Modbus 保持寄存器的數(shù)據(jù)區(qū)域地址,該數(shù)據(jù)區(qū)域在 V3.0 支持非優(yōu)化(標準的)數(shù)據(jù)塊。一般建議使用指針方式填寫,例如程序中的 P#DB6.DBX0.0 WORD 100,此外也可以使用基本數(shù)據(jù)類型數(shù)組方式填寫。

在數(shù)據(jù)塊的屬性中取消“優(yōu)化的塊訪問”即可將數(shù)據(jù)塊修改為非優(yōu)化訪問的數(shù)據(jù)塊(鼠標右鍵數(shù)據(jù)塊,選擇“屬性”,取消“優(yōu)化的塊訪問”),參考圖 14 。

④ Modbus RTU 從站數(shù)據(jù)區(qū)定義,參見表 5。

地址區(qū)定義說明
輸出位Q0.0 開始
  • Q0.0 為地址 1,Q0.1 為地址 2,Q0.7 為地址 8,Q1.0 為地址 9...
輸入位I0.0 開始
  • I0.0 為地址 10001,I0.1 為地址 10002,I0.7 為地址 10008,I1.0 為地址 10009...
輸入寄存器IW0 開始
  • IW0 為地址 30001,IW2 為地址 30002,IW4 為地址 30003...
保持寄存器由 MB_HOLD_REG 定義
  • 指針指向的第一個字為 40001,第二個字為 40002...
    • 例如:MB_HOLD_REG 為 P#M100.0 WORD 8,則 MW100 為 40001,MW102 為 40002,MW104 為 40003...MW114 為 40008
    • 例如:MB_HOLD_REG 為 優(yōu)化 DB 中 INT 數(shù)組[0..7],數(shù)組名為 “XXX”.AA,則 “XXX”.AA[0] 為 40001,“XXX”.AA[1] 為 40002,“XXX”.AA[2] 為 40003...“XXX”.AA[7] 為 40008

表 5. 數(shù)據(jù)區(qū)定義

⑤ 如果是分布式 IO 上的串口模塊,還需要考慮模塊拔出或者掉站的情況。

c. 編譯下載

之后將程序和組態(tài)編譯下載到 PLC 中,即可測試 Modbus RTU 通信了。

3. 常見問題 FAQ

1. 新版本 Modbus RTU 指令的使用是否存在些限制條件?

新版本 Modbus RTU 指令通過 CM1241 通信模塊或 CB1241 通信板進行 Modbus RTU 通信時,需要滿足如下條件:

  • S7-1200 CPU 的固件版本不能低于 V4.1
  • CM1241 通信模塊不能低于 V2.1
  • CB1241 沒有要求
  • 分布式上的串口模塊包括:
    • ET200SP 的 CM PtP
    • ET200MP 的 CM PtP RS232 HF
    • ET200MP 的 CM PtP RS422/485 HF

S7-1200 V4.0 固件 CPU 可以通過固件更新到 V4.1 及以上版本,V2.0 固件的 CM1241 通信模塊也可以通過固件更新的方式更新到 V2.1 及以上版本。 相關(guān)固件更新的方法請參考 S7-1200 固件更新 。

undefined

2. Modbus_Comm_Load 指令背景數(shù)據(jù)塊中的靜態(tài)變量 “MODE” 的作用是什么?為什么一般項目中,都需要對該變量進行修改?

新版本的 Modbus RTU 指令擴展了 Modbus RTU 的功能,該指令除了支持 CM1241 通信模塊、CB1241 通信板還支持 PROFINET 或 PROFIBUS 分布式 I/O 機架上的點對點通信模塊實現(xiàn) Modbus RTU 通信。 而分布式 I/O 機架上的點對點通信模塊可以支持多種工作模式,以 ET200SP CM PtP 模塊(訂貨號:6ES7137-6AA0x-0BA0)為例,其可以支持 RS232、RS485 以及 RS422 等多種工作模式。

Modbus_Comm_Load 指令背景數(shù)據(jù)塊中的靜態(tài)變量 “MODE” 則用于定義點對點模塊的工作模式,具體如下說明。 “MODE” 的默認數(shù)值為 0,代表“全雙工 (RS232)”工作模式,實際項目組態(tài)中則需要根據(jù)實際工作模式對該變量進行修改。

  • 0 = 全雙工 (RS232)
  • 1 = 全雙工 (RS422) 四線制模式(點對點)
  • 2 = 全雙工 (RS422) 四線制模式(多點主站)
  • 3 = 全雙工 (RS422) 四線制模式(多點從站)
  • 4 = 半雙工 (RS485) 二線制模式

3. Modbus_Comm_Load 指令能否在啟動組織塊 OB100 中調(diào)用?

Modbus_Comm_Load 指令可以但不建議在啟動組織塊 OB100 中調(diào)用。

新版本的 Modbus RTU 指令擴展了 Modbus RTU 的功能,該指令支持 PROFINET 或 PROFIBUS 分布式 I/O 機架上的點對點通信模塊實現(xiàn) Modbus RTU 通信。 操作系統(tǒng)需要調(diào)用讀取數(shù)據(jù)記錄和寫入數(shù)據(jù)記錄等指令來實現(xiàn)與分布式 I/O 機架上點對點模塊的 Modbus RTU 通信。讀取數(shù)據(jù)記錄和寫入數(shù)據(jù)記錄指令為異步讀寫指令,指令需要多次執(zhí)行,所以不建議 Modbus_Comm_Load 指令在啟動組織塊 OB100 中調(diào)用。如果需要,可以參考常見問題 5 中的方式,在 OB100 中反復(fù)執(zhí)行 Modbus_Comm_Load 指令,直到指令完成。

4. 如何查詢 Modbus RTU 通信錯誤時的錯誤代碼?

以 Modbus_Master 指令為例,當通信出現(xiàn)錯誤時,Modbus_Master 指令的 “ERROR” 輸出位將變?yōu)?TRUE 但是只保持一個掃描周期,所以通過 TIA Portal 軟件程序監(jiān)控時無法查詢到錯誤。 Modbus_Master 指令 “STATUS” 參數(shù)中的錯誤代碼僅在 “ERROR” = TRUE 的掃描周期內(nèi)有效,為了獲取了 Modbus RTU 通信錯誤的錯誤代碼可以采用如圖 17 所示方式編程。

undefined

圖 17. 獲取 STATUS

5. 對于分布式 IO 上的串口模塊,如果出現(xiàn)從站掉站或者模塊拔出應(yīng)該怎么辦?

對于分布式 IO 的串口模塊,一旦出現(xiàn)故障以及故障恢復(fù),系統(tǒng)會自動執(zhí)行相關(guān) OB,拔出插入會執(zhí)行 OB83,掉站與恢復(fù)會執(zhí)行 OB86。所以需要在相應(yīng) OB 中重新觸發(fā) Modbus_Comm_Load 指令,方法如下:

1. 插入"Pull or plug of modules" 中斷 OB83。

分布式 IO 站點中插出、拔入模塊時,操作系統(tǒng)都會調(diào)用一次 OB83。通過 OB83 接口區(qū)的輸入變量 “Event_Class” 判斷故障的模塊和類型:事件類型16#39表示模塊被拔出,事件類型16#38表示模塊被插入。

CM PtP 模塊被重新插入的時候,需要在中斷 OB83 中調(diào)用 Modbus_Comm_Load 指令對通信模塊進行重新組態(tài),如圖 18 所示。

image.png

圖 18. OB83 中再次調(diào)用 Modbus_Comm_Load 指令

注意:

① OB83 中調(diào)用 Modbus_Comm_Load 指令的背景數(shù)據(jù)塊需要與 OB1 中調(diào)用的 Modbus_Comm_Load 指令的背景數(shù)據(jù)塊相同。

② CM PtP 模塊的硬件標識符需要在"PLC 變量"--->"系統(tǒng)常數(shù)"中查詢,參考圖 12 所示。

2. 插入"Rack or Station failure" 中斷 OB86。

分布式 IO 站點故障和恢復(fù)時,操作系統(tǒng)都會調(diào)用一次 OB86。通過 OB86 接口區(qū)的輸入變量 “#Event_Class” 判斷故障的模塊和類型:事件類型 16#39 表示站點故障,事件類型 16#38 表示站點恢復(fù)。

CM PtP 模塊所在的 IO 站點恢復(fù)時,需要在中斷 OB86 中調(diào)用 Modbus_Comm_Load 指令對通信模塊進行重新組態(tài),如圖 19 所示。

image.png

image.png

圖 19. OB86 中調(diào)用 Modbus_Comm_Load 指令

注意:

① OB86 中調(diào)用 Modbus_Comm_Load 指令的背景數(shù)據(jù)塊需要與 OB1 中調(diào)用的 Modbus_Comm_Load 指令的背景數(shù)據(jù)塊相同。

② 分布式 IO 站點的硬件標識符需要在"PLC 變量"--->"系統(tǒng)常數(shù)"中查詢,參考圖 12 所示。

6. CM 1241 RS422/485 如何與 CM PtP 連接?

對于 CM1241 RS422/485 模塊,RS485 模式接線是 3+ 8-,而對于 CM PtP,RS485 模式接線是 14+ 12-,所以本例中連接是將 CM1241 的 3 和 CM PtP 的 14 連接,CM1241 的 8 和 CM PtP 的 12 連接,如圖 20 所示。

image.png

圖 20. 連接示意


QQ在線咨詢
聯(lián)系電話
17658151177
售后服務(wù)
17658151177