国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

西門子1200PLC的Modbus(RTU)網(wǎng)絡(luò)通信技術(shù)詳解

發(fā)布者:leader5最新更新時(shí)間:2025-03-04 來(lái)源: elecfans關(guān)鍵字:西門子  Modbus  RTU  網(wǎng)絡(luò)通信 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

Modbus具有兩種串行傳輸模式:分別為ASCII和RTU。

Modbus是一種單主站的主從通信模式,Modbus網(wǎng)絡(luò)上只能有一個(gè)主站存在,主站在Modbus網(wǎng)絡(luò)上沒(méi)有地址,每個(gè)從站必須有唯一的地址,從站的地址范圍為0 - 247,其中0為廣播地址,從站的實(shí)際地址范圍為1 - 247。Modbus RTU通信以主從的方式進(jìn)行數(shù)據(jù)傳輸,在傳輸?shù)倪^(guò)程中Modbus RTU主站是主動(dòng)方,即主站發(fā)送數(shù)據(jù)請(qǐng)求報(bào)文到從站,Modbus RTU從站返回響應(yīng)報(bào)文。


S7-1200以下模塊支持 Modbus RTU通信:

 

通信模塊/通信板訂貨號(hào)
CM1241 RS2326ES7 241-1AH32-0XB0
CM1241 RS4856ES7 241-1CH30-0XB0
CM1241 RS422/4856ES7 241-1CH32-0XB0
CB 1241 RS4856ES7 241-1CH30-1XB0

 

注意     1. 使用通信模塊CM 1241 RS232作為Modbus RTU主站時(shí),只能與一個(gè)從站通訊。   2. 使用通信模塊CM 1241 RS485作為Modbus RTU主站時(shí),則允許建立最多與 32 個(gè)從站的通訊。   3. 使用通信板CB 1241 RS485時(shí),CPU 固件必須為 V2.0 或更高版本,且使用軟件必須為STEP 7 Basic V11 或STEP 7 Professional V11 以上更高版本。

S7-1200 Modbus RTU指令

隨著 TIA PORATL 軟件和 S7-1200 CPU 固件的不斷更新,S7-1200 Modbus RTU 指令也出現(xiàn)了不同的版本。用戶需要根據(jù)使用的軟件和硬件,正確選擇使用符合要求的 S7-1200 Modbus RTU 指令來(lái)實(shí)現(xiàn) Modbus RTU 通信。

軟件,硬件要求和指令版本說(shuō)明如下。

軟件STEP 7 V11 中的S7-1200 Modbus RTU 指令

軟件STEP 7 V11版本開始,可以從“指令”→“通信處理器”→“MODBUS”下直接調(diào)用 “MB_COMM_LOAD”和“MB_MASTER”或“MB_SLAVE”指令,如下圖1所示:

dd46b0e6-aee1-11ee-8b88-92fbcf53809c.jpg

圖1 Modbus RTU指令

Modbus RTU指令有兩個(gè)版本:分別為V1 和V2。版本V1最初在 STEP 7 Basic V10.5 中提供;版本V2 在 STEP 7 Basic/Professional V11 中提供。

軟件STEP 7 V13 SP1 中的S7-1200 Modbus RTU 指令

TIA V13 SP1版本軟件中提供了2個(gè)版本的 Modbus RTU指令。如下圖 2 所示:早期版本的 Modbus RTU 指令(圖2. 中 MODBUS (V2.2))僅可通過(guò) CM1241 通信模塊或 CB1241 通信板進(jìn)行 Modbus RTU 通信。新版本的Modbus RTU指令(圖2. 中 MODBUS(RTU) V3.0)擴(kuò)展了Modbus RTU的功能,該指令除了支持 CM1241 通信模塊、CB1241 通信板,還支持PROFINET或PROFIBUS分布式 I/O 機(jī)架上的PTP通信模塊實(shí)現(xiàn) Modbus RTU 通信。

注意:新版本 Modbus RTU 指令的使用限制條件    

新版本 Modbus RTU 指令通過(guò)CM1241通信模塊或CB1241通信板進(jìn)行Modbus RTU通信時(shí),需要滿足如下條件:a. S7-1200 CPU 的固件版本不能低于V4.1;b. CM1241通信模塊 V2.1 以上或 CB1241。

dd4eca6a-aee1-11ee-8b88-92fbcf53809c.jpg

圖2. 兩個(gè)版本 Modbus RTU 指令

常見(jiàn)問(wèn)題  

1、西門子不提供支持MODBUS-ASCII通信模式的的現(xiàn)成指令,需要用戶自己用自由口模式編程。

2、Modbus RTU指令版本 V2 將參數(shù)“REQ”和“DONE”添加到“MB_COMM_LOAD”指令。而且,“MB_MASTER”和“MB_SLAVE ”指令的“MB_ADDR ”參數(shù)現(xiàn)在允許一個(gè)UInt值以進(jìn)行擴(kuò)展尋址。

3、不能在同一CPU 程序中同時(shí)使用V1(V1.x)和V2(V2.y)指令版本。用戶程序的 Modbus 指令必須具有相同的主版本號(hào);主版本組內(nèi)的各個(gè)指令可具有不同的次版本號(hào)。

4、對(duì)S7-1200 通信模塊CM1241組態(tài)并編程調(diào)用“MB_COMM_LOAD”指令,可將其設(shè)置為Modbus RTU通信模式。通過(guò)編程調(diào)用“MB_MASTER”指令,S7-1200 通信模塊CM1241可作為Modbus RTU主站,或調(diào)用“MB_SLAVE”指令,S7-1200 通信模塊CM1241可作為Modbus RTU從站。

5、無(wú)論S7-1200 通信模塊CM1241作為Modbus RTU主站還是從站,都需要調(diào)用“MB_COMM_LOAD”指令進(jìn)行編程。

6、S7-1200 CM1241/CB1241 Modbus RTU 通信支持兩位停止位。S7-1200 CM1241/CB1241屬性里可以設(shè)置停止位,但是該模塊用于 Modbus 通信時(shí),此設(shè)置的停止位無(wú)效,需要在 Modbus_Commload 指令的背景DB里Static修改STOP_BITS停止位數(shù)值為2。

如下圖3、4所示:

dd7d6c3a-aee1-11ee-8b88-92fbcf53809c.jpg

圖3. CM1241 配置停止位參數(shù)

Modbus_Commload 指令的背景DB里Static修改STOP_BITS停止位數(shù)值為2(默認(rèn)值=1)

dd87c234-aee1-11ee-8b88-92fbcf53809c.jpg

圖4. 修改 Modbus RTU 通信停止位

Modbus RTU新版本指令介紹

(資料信息來(lái)源西門官網(wǎng))

TIA V13 SP1版本軟件中提供了2個(gè)版本的Modbus RTU指令:

dd8c0466-aee1-11ee-8b88-92fbcf53809c.jpg

圖1. 兩個(gè)版本Modbus RTU指令

早期版本的Modbus RTU指令(圖1中MODBUS (V2.2))僅可通過(guò)CM1241通信模塊或CB1241通信板進(jìn)行Modbus RTU通信。
 

新版本的Modbus RTU指令(圖1中 MODBUS(RTU) V3.0)擴(kuò)展了Modbus RTU的功能,該指令除了支持CM1241通信模塊、CB1241通信板,還支持PROFINET或 PROFIBUS分布式I/O機(jī)架上的PTP通信模塊實(shí)現(xiàn)Modbus RTU通信。

新版本Modbus RTU指令所支持的PTP模塊如下圖2所示:

dd901128-aee1-11ee-8b88-92fbcf53809c.jpg

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

新版Modbus RTU指令的使用

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

dd94353c-aee1-11ee-8b88-92fbcf53809c.jpg

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

使用到的硬件和軟件如下:

硬件:

① CPU1217C(訂貨號(hào):6ES7 217-1AG40-0XB0),固件版本V4.1.3

② CM1241 RS422/485模塊(訂貨號(hào):6ES7 241-1CH32-0XB0),固件版本V2.1

③ 24V 電源PS307(訂貨號(hào):6ES7307-1KA02-0AA0) 

④ ET200 SP IM155-6PN HF(訂貨號(hào):6ES7155-6AU00-0CN0)

⑤ CM PTP模塊(訂貨號(hào):6ES7137-6AA00-0BA0)

軟件:
① TIA V13 SP1 UP 9

一、設(shè)備組態(tài)

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

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

dda01db6-aee1-11ee-8b88-92fbcf53809c.jpg

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

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

接下來(lái),在“設(shè)備視圖”中用鼠標(biāo)選中CM1241(RS422/485)模塊,在“屬性”→“端口組態(tài)”中配置此模塊硬件接口參數(shù),
本例以傳輸率=9.6Kbps,奇偶校驗(yàn)=無(wú)奇偶校驗(yàn),數(shù)據(jù)位=8位字符,停止位=1為例。如CM 1241 端口組態(tài)設(shè)置如下圖5所示:

dda48144-aee1-11ee-8b88-92fbcf53809c.jpg

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

最后在“硬件標(biāo)識(shí)符”里確認(rèn)一下硬件標(biāo)識(shí)符為269(該參數(shù)在程序編程中會(huì)被使用),如下圖6所示:

dda91858-aee1-11ee-8b88-92fbcf53809c.jpg

圖6.硬件標(biāo)識(shí)符

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

ddacd3da-aee1-11ee-8b88-92fbcf53809c.jpg

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

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

a、插入一個(gè)ET200SP分布式站點(diǎn)。

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

ddb47b26-aee1-11ee-8b88-92fbcf53809c.jpg

圖8. 插入ET200SP站點(diǎn)

b、組態(tài)ET200SP 站點(diǎn)。

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

需要注意:ET200SP站點(diǎn)中,服務(wù)器模塊是必須組態(tài)的。服務(wù)器模塊隨接口模塊一起采購(gòu),無(wú)需單獨(dú)購(gòu)買。

ET200SP接口模塊需要為其分配IP地址和Device Name, 有關(guān)ET200 SP 分布式IO 組態(tài)詳細(xì)步驟,請(qǐng)參考《ET200 SP使用快速入門》。

《ET200 SP 使用快速入門》下載鏈接:
https://support.industry.siemens.com/cs/cn/zh/view/78304711

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

ddbf6d7e-aee1-11ee-8b88-92fbcf53809c.jpg

圖9. CM PTP 操作模式

接下來(lái),在“屬性”→“常規(guī)”→“接口”→“端口組態(tài)”中配置此模塊端口組態(tài)參數(shù),

本例設(shè)定'協(xié)議':'Freeport/Modbus';'端口參數(shù)'設(shè)置:傳輸率=9.6Kbps,奇偶校驗(yàn)=無(wú)奇偶校驗(yàn),數(shù)據(jù)位=8位字符,停止位=1為例。端口組態(tài)設(shè)置如下圖10所示:

ddcb068e-aee1-11ee-8b88-92fbcf53809c.jpg

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

最后需要在“硬件標(biāo)識(shí)符”里確認(rèn)一下CM PTP 模塊硬件標(biāo)識(shí)符,該參數(shù)在程序編程中會(huì)被使用。

二、軟件編程

1 Modbus RTU 主站編程

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

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

a、OB1中插入一個(gè)FC函數(shù),并在函數(shù)中拖入Modbus_Comm_Load指令和Modbus_Master指令。如圖11所示

ddcea078-aee1-11ee-8b88-92fbcf53809c.jpg

圖11. 拖入Modbus RTU 主站指令

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

 

引腳說(shuō)明
REQ上升沿觸發(fā)
PORT通信端口的硬件標(biāo)識(shí)符
BAUD波特率選擇:3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200
PARITY奇偶檢驗(yàn)選擇:0-無(wú);1-奇校驗(yàn);2-偶校驗(yàn)
FLOW_CTRL流控制選擇:0-(默認(rèn)值)無(wú)流控制
RTS_ON_DLYRTS延時(shí)選擇:0-(默認(rèn)值)
RTS_OFF_DLYRTS關(guān)斷延時(shí)選擇:0-(默認(rèn)值)
RESP_TO響應(yīng)超時(shí):默認(rèn)值 = 1000 ms。MB_MASTER 允許用于從站響應(yīng)的時(shí)間(以毫秒為單位)。
MB_DB對(duì) Modbus_Master 或 Modbus_Slave 指令的背景數(shù)據(jù)塊的引用。
MB_DB 參數(shù)必須與 Modbus_Master 或 Modbus_Slave 指令中的靜態(tài)變量MB_DB 參數(shù)相連。
DONE如果上一個(gè)請(qǐng)求完成并且沒(méi)有錯(cuò)誤,DONE 位將變?yōu)?TRUE 并保持一個(gè)周期。
ERROR如果上一個(gè)請(qǐng)求完成出錯(cuò),則 ERROR 位將變?yōu)?TRUE 并保持一個(gè)周期。STATUS 參數(shù)中的錯(cuò)誤代碼僅在 ERROR = TRUE 的周期內(nèi)有效。
STATUS端口組態(tài)錯(cuò)誤代碼,請(qǐng)參考TIA 軟件在線幫助或S7-1200 系統(tǒng)手冊(cè)。

 

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

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

 

引腳說(shuō)明
EN使能端
REQTRUE = 請(qǐng)求向 Modbus 從站發(fā)送數(shù)據(jù) ,建議采用上升沿觸發(fā)
MB_ADDRModbus RTU從站地址。默認(rèn)地址范圍:0至247;擴(kuò)展地址范圍:0至65535。值0被保留用于將消息廣播到所有Modbus從站。
MODE模式選擇:指定請(qǐng)求類型(讀取或?qū)懭耄?/td>
DATA_ADDR從站中的起始地址:指定Modbus從站中將供訪問(wèn)的數(shù)據(jù)的起始地址。
DATA_LEN數(shù)據(jù)長(zhǎng)度:指定要在該請(qǐng)求中訪問(wèn)的位數(shù)或字?jǐn)?shù)。
DATA_PTR數(shù)據(jù)指針:指向要進(jìn)行數(shù)據(jù)寫入或數(shù)據(jù)讀取的標(biāo)記或數(shù)據(jù)塊地址。
DONE完成位:上一請(qǐng)求已完成且沒(méi)有出錯(cuò)后,DONE 位將保持為 TRUE 一個(gè)掃描周期時(shí)間。
BUSYFALSE – Modbus_Master 無(wú)激活命令:
TRUE – Modbus_Master 命令執(zhí)行中
ERROR對(duì) Modbus_Master 或 Modbus_Slave 指令的背景數(shù)據(jù)塊的引用。
MB_DB 參數(shù)必須與 Modbus_Master 或 Modbus_Slave 指令中的靜態(tài)變量MB_DB 參數(shù)相連。
STATUS如果上一個(gè)請(qǐng)求完成并且沒(méi)有錯(cuò)誤,DONE 位將變?yōu)?TRUE 并保持一個(gè)周期。
ERROR如果上一個(gè)請(qǐng)求完成出錯(cuò),則 ERROR 位將變?yōu)?TRUE 并保持一個(gè)周期。STATUS 參數(shù)中的錯(cuò)誤代碼僅在 ERROR = TRUE 的周期內(nèi)有效。
STATUS錯(cuò)誤代碼

 

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

注意

① Modbus_Comm_Load指令不建議在啟動(dòng)組織塊OB100中調(diào)用,建議在OB1中調(diào)用。Modbus_Comm_Load指令在OB1中調(diào)用時(shí),其輸入位“REQ”需使用上升沿觸發(fā),本例中該輸入位采用 “FirstScan” 系統(tǒng)存儲(chǔ)器位。
② Modbus_Comm_Load指令背景數(shù)據(jù)塊中的靜態(tài)變量“MODE”用于描述PTP模塊的工作模式,有效的工作模式包括:

· 0 = 全雙工 (RS232)

· 1 = 全雙工 (RS422) 四線制模式(點(diǎn)對(duì)點(diǎn))

· 2 = 全全雙工 (RS 422) 四線制模式(多點(diǎn)主站,CM PtP (ET 200SP))

· 3 = 全全雙工 (RS 422) 四線制模式(多點(diǎn)從站,CM PtP (ET 200SP))

· 4 = 半雙工 (RS485) 二線制模式

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

ddd237ba-aee1-11ee-8b88-92fbcf53809c.jpg

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

③ Modbus_Master指令的“DATA_PTR”參數(shù)用于指向要進(jìn)行數(shù)據(jù)寫入或數(shù)據(jù)讀取的數(shù)據(jù)區(qū)域地址,該數(shù)據(jù)區(qū)域支持優(yōu)化訪問(wèn)的數(shù)據(jù)塊或者非優(yōu)化(標(biāo)準(zhǔn)的)數(shù)據(jù)塊,建議采用非優(yōu)化訪問(wèn)的數(shù)據(jù)塊。
本例中使用的數(shù)據(jù)區(qū)為非優(yōu)化訪問(wèn)的數(shù)據(jù)塊,在數(shù)據(jù)塊的屬性中取消“優(yōu)化的塊訪問(wèn)”即可將數(shù)據(jù)塊修改為非優(yōu)化訪問(wèn)的數(shù)據(jù)塊(鼠標(biāo)右鍵數(shù)據(jù)塊,選擇“屬性”,取消“優(yōu)化的塊訪問(wèn)”),如圖13所示。

dddc603c-aee1-11ee-8b88-92fbcf53809c.jpg

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

當(dāng)Modbus_Master指令的“DATA_PTR”指向非優(yōu)化訪問(wèn)的數(shù)據(jù)塊時(shí),該輸入?yún)?shù)需要使用指針?lè)绞教顚懭鏟#DB3.DBX0.0 WORD 5 方式填寫。
④ 當(dāng)Modbus RTU網(wǎng)絡(luò)中存在多個(gè)modbus RTU從站或一個(gè)modbus RTU從站同時(shí)需要讀操作和寫操作,則需要調(diào)用多個(gè)Modbus_Master指令,Modbus_Master指令之間需要采用輪詢方式調(diào)用。
下圖14用于描述兩個(gè)Modbus_Master指令輪詢調(diào)用的方式。

dde0648e-aee1-11ee-8b88-92fbcf53809c.jpg

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

b、插入'Pull or plug of modules' 中斷OB83。

本例中Modbus RTU主站模塊安裝在分布式IO站點(diǎn)上,因此程序中需要考慮分布式IO站點(diǎn)故障、CM PTP 模塊插拔模塊等故障。 
分布式IO站點(diǎn)中插出、拔入模塊時(shí),操作系統(tǒng)都會(huì)調(diào)用一次OB83。通過(guò)OB83接口區(qū)的輸入變量“16#Event_Class”判斷故障的模塊和類型:事件類型16#39表示模塊被拔出,事件類型16#38表示模塊被插入。
CM PTP 模塊被重新插入的時(shí)候,需要在中斷OB83中調(diào)用Modbus_Comm_Load 指令對(duì)通信模塊進(jìn)行重新組態(tài),如圖15所示。

dde41e08-aee1-11ee-8b88-92fbcf53809c.jpg

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

注意

① OB83 中調(diào)用Modbus_Comm_Load指令的背景數(shù)據(jù)塊需要與OB1中調(diào)用的Modbus_Comm_Load指令的背景數(shù)據(jù)塊相同。
② CM PTP模塊的硬件標(biāo)識(shí)符也可以在'PLC變量'--->'系統(tǒng)常數(shù)'中查詢,如圖16. 所示。

dde82f20-aee1-11ee-8b88-92fbcf53809c.jpg

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

c、插入'Rack or Station failure' 中斷OB86。

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

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

ddec21a2-aee1-11ee-8b88-92fbcf53809c.jpg

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

注意

①OB86 中調(diào)用Modbus_Comm_Load指令的背景數(shù)據(jù)塊需要與OB1中調(diào)用的Modbus_Comm_Load指令的背景數(shù)據(jù)塊相同。
② 分布式IO 站點(diǎn)的硬件標(biāo)識(shí)符也可以在'PLC變量'--->'系統(tǒng)常數(shù)'中查詢。

2 Modbus RTU 從站編程

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

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

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

ddf094ee-aee1-11ee-8b88-92fbcf53809c.jpg

圖18. 拖入Modbus RTU 從站指令

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

 

引腳說(shuō)明
MB_ADDRModbus 從站的標(biāo)準(zhǔn)尋址:
標(biāo)準(zhǔn)尋址范圍(1 到 247)
擴(kuò)展尋址范圍(0 到 65535)
MB_HOLD_REG數(shù)據(jù)指針,指向Modbus 保持寄存器的地址, Modbus 保持寄存器可以為M存儲(chǔ)區(qū)或DB數(shù)據(jù)區(qū)。
如果Modbus 保持寄存器為DB數(shù)據(jù)區(qū),則DB數(shù)據(jù)區(qū)支持優(yōu)化訪問(wèn)的數(shù)據(jù)塊或非優(yōu)化訪問(wèn)的數(shù)據(jù)塊,建議采用非優(yōu)化訪問(wèn)的數(shù)據(jù)塊。 
NDR可用的新數(shù)據(jù):
· FALSE - 無(wú)新數(shù)據(jù)
· TRUE – 表示新數(shù)據(jù)已由 Modbus 主站寫入 
如果上一個(gè)請(qǐng)求完成并且沒(méi)有錯(cuò)誤,NDR 位將變?yōu)?TRUE 并保持一個(gè)周期。
DR讀取數(shù)據(jù):
· FALSE - 無(wú)新數(shù)據(jù)
· TRUE –表示該指令已將 Modbus 主站接收到的數(shù)據(jù)存儲(chǔ)在目標(biāo)區(qū)域中。
如果上一個(gè)請(qǐng)求完成并且沒(méi)有錯(cuò)誤,DR 位將變?yōu)?TRUE 并保持一個(gè)周期。
ERROR如果上一個(gè)請(qǐng)求完成出錯(cuò),則 ERROR 位將變?yōu)?TRUE 并保持一個(gè)周期。如果執(zhí)行因錯(cuò)誤而終止,則 STATUS 參數(shù)中的錯(cuò)誤代碼僅在 ERROR = TRUE 的周期內(nèi)有效。
STATUS錯(cuò)誤代碼

 

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

注意

① Modbus_Comm_Load指令不建議在啟動(dòng)組織塊OB100中調(diào)用,建議在OB1中調(diào)用。Modbus_Comm_Load指令在OB1中調(diào)用時(shí),其輸入位“REQ”需使用上升沿觸發(fā),本例中該輸入位采用 “FirstScan” 系統(tǒng)存儲(chǔ)器位。
② Modbus_Comm_Load指令背景數(shù)據(jù)塊中的靜態(tài)變量“MODE”用于描述PTP模塊的工作模式,有效的工作模式包括:

· 0 = 全雙工 (RS232)

· 1 = 全雙工 (RS422) 四線制模式(點(diǎn)對(duì)點(diǎn))

· 2 = 全全雙工 (RS 422) 四線制模式(多點(diǎn)主站,CM PtP (ET 200SP))

· 3 = 全全雙工 (RS 422) 四線制模式(多點(diǎn)從站,CM PtP (ET 200SP))

· 4 = 半雙工 (RS485) 二線制模式

該靜態(tài)變量“MODE”默認(rèn)數(shù)據(jù)為0(RS232 全雙工模式),需要根據(jù)CM1241 RS422/485模塊實(shí)際組態(tài)修改該數(shù)值,本例中CM1241 RS422/485模塊工作在RS485半雙工模式需要將該數(shù)值修改為4,如何修改“MODE”靜態(tài)變量見(jiàn)圖12.所示。

③ Modbus_Slave指令的“MB_HOLD_REG”用于指向Modbus保持寄存器的數(shù)據(jù)區(qū)域地址,該數(shù)據(jù)區(qū)域支持優(yōu)化訪問(wèn)的數(shù)據(jù)塊或者非優(yōu)化(標(biāo)準(zhǔn)的)數(shù)據(jù)塊,建議采用非優(yōu)化訪問(wèn)的數(shù)據(jù)塊。
本例中使用的數(shù)據(jù)區(qū)為非優(yōu)化訪問(wèn)的數(shù)據(jù)塊,固該輸入?yún)?shù)需要使用指針?lè)绞教顚懭鏟#DB6.DBX0.0 WORD 100 方式填寫。
如何在數(shù)據(jù)塊的屬性中取消“優(yōu)化的塊訪問(wèn)”,見(jiàn)圖13. 所示。

將程序下載到PLC中,并使用Profibus DP通信電纜將CM1241 RS422/485與CM PTP串口模塊連接起來(lái),即可測(cè)試Modbus RTU通信了。

三、常見(jiàn)問(wèn)題匯總

1. 新版本 Modbus RTU指令的使用是否存在些限制條件?
新版本 Modbus RTU指令通過(guò)CM1241通信模塊或CB1241通信板進(jìn)行Modbus RTU通信時(shí),需要滿足如下條件:

a. S7-1200 CPU 的固件版本不能低于V4.1;

    b. CM1241通信模塊或CB1241通信板的固件不能低于V2.1。

S7-1200 V4.0 固件CPU可以通過(guò)固件更新到V4.1版本,V2.0固件的CM1241通信模塊也可以通過(guò)固件更新的方式更新到V2.1版本。

2 .Modbus_Comm_Load指令背景數(shù)據(jù)塊中的靜態(tài)變量“MODE”的作用是什么?為什么一般項(xiàng)目中,都需要對(duì)該變量進(jìn)行修改?
新版本的Modbus RTU指令擴(kuò)展了Modbus RTU的功能,該指令除了支持CM1241通信模塊、CB1241通信板還支持PROFINET或PROFIBUS分布式I/O機(jī)架上的PTP通信模塊實(shí)現(xiàn)Modbus RTU通信。

[1] [2]
關(guān)鍵字:西門子  Modbus  RTU  網(wǎng)絡(luò)通信 引用地址:西門子1200PLC的Modbus(RTU)網(wǎng)絡(luò)通信技術(shù)詳解

上一篇:遠(yuǎn)程透?jìng)骶W(wǎng)關(guān)-V900與三菱FX3U PLC遠(yuǎn)程上下載監(jiān)控操作指南
下一篇:如何通過(guò)雙CAN通訊卡解決工業(yè)通信冗余技術(shù)

推薦閱讀最新更新時(shí)間:2025-06-26 23:50

如何安全實(shí)現(xiàn)車載網(wǎng)絡(luò)通信?
當(dāng)我告訴人們我從事專注于汽車安全的半導(dǎo)體行業(yè)時(shí),他們通常認(rèn)為一定會(huì)涉及汽車報(bào)警和車鑰匙。盡管汽車盜竊仍是一個(gè)合理的擔(dān)憂,但與內(nèi)部電子控制單元(ECU)及其車內(nèi)外通信相關(guān)的安全威脅明顯更大。在今年銷售的所有新車中,大約有50%的車輛支持聯(lián)網(wǎng)功能,很多人估計(jì)到2030年,這一數(shù)字將達(dá)到95%左右。這些連接通過(guò)Bluetooth?、USB、LTE、5G和Wi-Fi?等實(shí)現(xiàn),可為消費(fèi)者提供諸多便利,但由于受攻擊面顯著增加,黑客也同樣感到興奮。在Google上快速搜索黑客攻擊汽車的主題,將搜索到無(wú)數(shù)個(gè)實(shí)際安全漏洞,這些漏洞會(huì)引起費(fèi)用高昂的召回、訴訟,并導(dǎo)致品牌聲譽(yù)受損。事實(shí)上,軟件容易出現(xiàn)漏洞,而這些漏洞會(huì)被黑客利用??梢酝ㄟ^(guò)很多做法最大程
[物聯(lián)網(wǎng)]
如何安全實(shí)現(xiàn)車載<font color='red'>網(wǎng)絡(luò)通信</font>?
網(wǎng)絡(luò)通信 開辟報(bào)警無(wú)線傳輸新時(shí)代
??? 早期的安防報(bào)警系統(tǒng),主要是在案情發(fā)生后,利用有線電話系統(tǒng)報(bào)案。公安部門派人趕赴現(xiàn)場(chǎng),調(diào)差、分析研究案情組織破案,這種工作程序基本上多為事后處理。由于當(dāng)時(shí)有線電話系統(tǒng)不發(fā)達(dá),時(shí)常會(huì)發(fā)生"占線"現(xiàn)象,因此也耽誤了不少破案的最佳時(shí)間。      二十世紀(jì)初,隨著無(wú)線電定位技術(shù)和計(jì)算機(jī)管理技術(shù)以及通訊技術(shù)的發(fā)展,在國(guó)際上推出一種采用低頻無(wú)線電信息塔網(wǎng)定位并且將信息傳輸給計(jì)算機(jī)處理的聯(lián)網(wǎng)報(bào)警系統(tǒng)。因?yàn)榇藞?bào)警系統(tǒng),能在案發(fā)第一時(shí)間快速確定案發(fā)位置,及基本案情性質(zhì),為預(yù)防和提前制止案情的擴(kuò)大發(fā)展,爭(zhēng)取到了寶貴的時(shí)間。所以在市場(chǎng)上廣為流行。      報(bào)警系統(tǒng)都由前端探測(cè)器、探測(cè)信號(hào)傳輸和報(bào)警主機(jī)三部分組成,到現(xiàn)在把探測(cè)器和報(bào)警主機(jī)合并看成
[安防電子]
嵌入式 TCP/IP 協(xié)議單片機(jī)技術(shù)在網(wǎng)絡(luò)通信中的應(yīng)用
摘要:介紹了嵌入式TCP/IP協(xié)議單片機(jī)在網(wǎng)絡(luò)通信中的數(shù)據(jù)傳輸技術(shù)。將TCP/IP協(xié)議嵌入式單片機(jī)中,借助網(wǎng)卡芯片CS8900實(shí)現(xiàn)了單片機(jī)在局域網(wǎng)內(nèi)和通過(guò)局域網(wǎng)在因特網(wǎng)上的數(shù)據(jù)傳輸。用戶終端以單片機(jī)系統(tǒng)板為媒介,通過(guò)網(wǎng)絡(luò)與遠(yuǎn)程數(shù)據(jù)終端實(shí)現(xiàn)數(shù)據(jù)通信。 關(guān)鍵詞:TCP/IP協(xié)議 單片機(jī) 因特網(wǎng) 局域網(wǎng) 網(wǎng)卡芯片 在因特網(wǎng)上,TCP/IP協(xié)議每時(shí)每刻保證了數(shù)據(jù)的準(zhǔn)確傳輸。在數(shù)據(jù)采集領(lǐng)域,如何利用TCP/IP協(xié)議在網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)傳輸成為一個(gè)炙手可熱的話題。在本系統(tǒng)中,筆者利用TCP/IP協(xié)議中的UDP(用戶數(shù)據(jù)報(bào)協(xié)議)、IP(網(wǎng)絡(luò)報(bào)文協(xié)議)、ARP(地址解析協(xié)議)及簡(jiǎn)單的應(yīng)用層協(xié)議成功地實(shí)現(xiàn)了單片機(jī)的網(wǎng)絡(luò)互連,既提高了數(shù)據(jù)傳輸?shù)乃俣龋?/div>
[工業(yè)控制]
探索Profinet轉(zhuǎn)Modbus485網(wǎng)關(guān)與富士電機(jī)溫控器的配置之旅
本案例涉及開疆智能Profinet轉(zhuǎn)Modbus485網(wǎng)關(guān)KJ-PNG-201的轉(zhuǎn)換應(yīng)用,旨在實(shí)現(xiàn)與電能表的連接。客戶提出的需求是將富士電機(jī)溫控器的參數(shù)導(dǎo)入至PLC系統(tǒng)。為完成此任務(wù),所必需的設(shè)備包括:一臺(tái)西門子1200PLC、一款可靠的Profinet轉(zhuǎn)Modbus485網(wǎng)關(guān),以及一臺(tái)富士電機(jī)溫控器。 啟動(dòng)PLC組態(tài)軟件(如Step7、博圖或任何其他Profinet主站軟件),然后導(dǎo)入開疆智能Profinet轉(zhuǎn)Modbus485網(wǎng)關(guān)的GSD文件進(jìn)行配置。為了進(jìn)一步增強(qiáng)您的工業(yè)網(wǎng)絡(luò)系統(tǒng)的互操作性,您需要在網(wǎng)絡(luò)視圖中添加一個(gè)關(guān)鍵的網(wǎng)關(guān)模塊。具體操作如下:請(qǐng)打開您的硬件配置目錄,細(xì)心地找到PN-MD圖標(biāo),這個(gè)圖標(biāo)代表了Profin
[嵌入式]
探索Profinet轉(zhuǎn)<font color='red'>Modbus</font>485網(wǎng)關(guān)與富士電機(jī)溫控器的配置之旅
基于LabVIEW的Modbus協(xié)議兩種校驗(yàn)碼的實(shí)現(xiàn)方法
Modbus協(xié)議簡(jiǎn)介   下面僅討論與本文有關(guān)的Modbus協(xié)議的內(nèi)容。 1.1Modbus協(xié)議的數(shù)據(jù)傳輸方式   Modbus協(xié)議定義了兩種數(shù)據(jù)傳輸方式,即ASCII模式和RTU模式(表1、表2)??刂破骺梢栽O(shè)置為兩種傳輸方式(ASCII或RTU)中的任何一種,在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)中進(jìn)行通信。用戶可選擇想要的模式,包括串口通信參數(shù)(波特率、檢驗(yàn)方式等);在配置每個(gè)控制器的時(shí)候,在一個(gè)Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。 1.2 Modbus消息幀   兩種傳輸模式中(ASCII或RTU),傳輸設(shè)備將Modbus消息轉(zhuǎn)為有起點(diǎn)和終點(diǎn)的幀,這就允許接收的設(shè)備在消息起始處開始工作,讀
[測(cè)試測(cè)量]
Modbus現(xiàn)場(chǎng)總線及應(yīng)用實(shí)例
  1.概述   Modbus是Modicon公司為該公司生產(chǎn)的PLC設(shè)計(jì)的一種通信協(xié)議,從其功能上看,可以 認(rèn)為是一種現(xiàn)場(chǎng)總線。它通過(guò)24種總線命令實(shí)現(xiàn)PLC與外界的信息交換。具有Modbus接口的PLC可以很方便地進(jìn)行組態(tài)。   2. Modbus通信協(xié)議   Modbus協(xié)議最初由Modicon公司開發(fā)出來(lái),在1979年末,該公司成為施耐德自動(dòng)化部門 的一部分,現(xiàn)在Modbus已經(jīng)是工業(yè)領(lǐng)域全球最流行的協(xié)議。此協(xié)議支持傳統(tǒng)的RS232、RS422、RS485和以太網(wǎng)設(shè)備。許多工業(yè)設(shè)備,包括P町、DCS、智能儀表等都在使用Modbus 協(xié)議作為它們之間通信的標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)
[嵌入式]
Modbus與PROFIBUS-DP協(xié)議比較
Modbus的協(xié)議內(nèi)容是完全公開的,內(nèi)容是簡(jiǎn)單滴,實(shí)現(xiàn)起來(lái)是非常容易滴, 單片機(jī) 、 PLC 、 DCS 統(tǒng)統(tǒng)都能輕易實(shí)現(xiàn) Profibus則要復(fù)雜一些,關(guān)鍵是需要專用芯片進(jìn)行二次開發(fā),并且需要得到上級(jí)組織的認(rèn)證,開發(fā)成本肯定高不少 當(dāng)然從性能上講,基于串口的modbus?rtu/ASCII通訊性能肯定比不過(guò)profibus?dp,但是就一些儀表級(jí)的簡(jiǎn)單通訊或者控制器級(jí)別的小數(shù)據(jù)量通訊,modbus是足以勝任的。 說(shuō)白了,就是modbus是*絲,profibus是高富帥
[嵌入式]
基于DSP和Modbus總線的智能斷路器控制器設(shè)計(jì)
  作為輸配電網(wǎng)絡(luò)中保護(hù)用的電力斷路器(包括框架式斷路器和塑殼式斷路器),在設(shè)備過(guò)載、短路時(shí),能安全、可靠地切斷故障電流,防止事故擴(kuò)大危及到整個(gè)輸配電系統(tǒng)。隨著科學(xué)技術(shù)的進(jìn)步,人們對(duì)供配電系統(tǒng)的自動(dòng)化程度要求越來(lái)越高,傳統(tǒng)斷路器的功能已不能滿足供配電系統(tǒng)自動(dòng)化的需要。斷路器控制器正在向智能化、多功能、模塊化及可通信的方向發(fā)展。對(duì)于供電系統(tǒng)中的多臺(tái)斷路器要求能實(shí)現(xiàn)聯(lián)網(wǎng)通信、集中監(jiān)控等功能,即第四代斷路器,同時(shí)對(duì)高分?jǐn)嗄芰?、多保護(hù)功能、高可靠性提出了更高的應(yīng)用要求。本文著重研究和設(shè)計(jì)了一種基于DSP的Modbus總線的新型可通信智能斷路器控制器,并給出結(jié)合斷路器的上位監(jiān)控軟件的完整應(yīng)用實(shí)現(xiàn)。該控制器不僅具有三段保護(hù)的基本功能,還能實(shí)現(xiàn)
[嵌入式]
小廣播
最新嵌入式文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved