湖南 長(zhǎng)沙6ES7290-6AA30-0XA0西門(mén)子模塊 PLC

數(shù)量(臺(tái)) 價(jià)格
1 10.00元/臺(tái)
  • 最小起訂: 1臺(tái)
  • 發(fā)貨地址: 湖南 長(zhǎng)沙市
  • 發(fā)布日期:2019-03-15
  • 訪問(wèn)量:720
咨詢電話:138-7494-1405
打電話時(shí)請(qǐng)告知是在機(jī)電之家網(wǎng)上看到獲取更多優(yōu)惠。謝謝!
7

長(zhǎng)沙玥勵(lì)自動(dòng)化設(shè)備有限公司

實(shí)名認(rèn)證 企業(yè)認(rèn)證
  • 聯(lián)系人:姚善雷
  • 手機(jī):13874941405
  • 電話:0731-526565255
  • 營(yíng)業(yè)執(zhí)照:已審核 營(yíng)業(yè)執(zhí)照
  • 經(jīng)營(yíng)模式: 經(jīng)銷(xiāo)商-私營(yíng)有限責(zé)任公司
  • 所在地區(qū):湖南 長(zhǎng)沙市
  • 家家通積分:16570分
詳細(xì)參數(shù)

產(chǎn)品詳情

湖南 長(zhǎng)沙    西門(mén)子   6ES7290-6AA30-0XA0   模塊 PLC   

 

 

 

 

 PTP 接線方式

CB 1241 RS485 接線 (6ES7 241 1CH30-1XB0)

CB1241 RS485 信號(hào)板(安裝在CPU機(jī)本體上) ,訂貨號(hào)為: 6ES7 241 1CH30-1XB0 接線如圖1

圖1 CB1241 RS485

注釋?zhuān)?3號(hào)針腳--RS485信號(hào) B(+) ;8號(hào)針腳--RS485信號(hào)A(-);5號(hào)針腳--接屏蔽等電位點(diǎn)。

CM1241 RS232 接線 (6ES7 241-1AH30-0XB0)

CB1241 RS232 通訊模塊,訂貨號(hào)為: 6ES7 241 1AH30-0XB0 接線如圖2

圖2 CM1241 RS232

注釋?zhuān)?2號(hào)針腳--RS232 信號(hào)輸入接收。3號(hào)針腳--RS232 信號(hào)輸出發(fā)送。 5--接地等電位

CM 1241 RS422/485 接線 (6ES7 241-1CH31-0XB0)

CB1241 RS232 通訊模塊,訂貨號(hào)為: 6ES7 241 1CH31-0XB0 接線如圖3

圖2 CM1241 RS422/485

注釋?zhuān)?

RS422 接線方法: 2號(hào)與9號(hào)針腳 -- RS422 發(fā)送信號(hào)。 3號(hào)與8號(hào)針腳 -- RS422 接收信號(hào);SHELL接屏蔽等電位點(diǎn) 。

RS485 接線方法:3號(hào)針腳--RS485信號(hào) B(+) ;8號(hào)針腳--RS485信號(hào)A(-) 1號(hào)針腳-電位點(diǎn)。

RS232、422及485 的通訊距離和終端電阻

  • RS 232 通訊最長(zhǎng)距離為 10 米屏蔽電纜
  • RS 422/R485 通訊最長(zhǎng)距離為 1000 米屏蔽電纜(取決于波特率及安裝終端電阻)

RS 485 終端電阻安裝方法及阻值大小,如圖4

 

串口通信編程

發(fā)送指令及發(fā)送完成位:

圖1. 發(fā)送完成位

接收指令及接收完成位:

圖2.接收完成位

字符串轉(zhuǎn)換

S7-1200字符串結(jié)構(gòu):

總字符數(shù) 當(dāng)前字符數(shù) 字符1 字符2 ...... 字符256

如上面S7-1200字符串結(jié)構(gòu),第一個(gè)字節(jié)是總字符數(shù),第二個(gè)字節(jié)是當(dāng)前字符數(shù),所以發(fā)送和接收真正的字符內(nèi)容都應(yīng)該從字符串的第三個(gè)字節(jié)開(kāi)始,因此發(fā)送和接收字符串都要進(jìn)行相應(yīng)的轉(zhuǎn)換。

發(fā)送字符串轉(zhuǎn)換:

要將 DB3.DBB20 中的字符串發(fā)送出去,需要經(jīng)過(guò)下列轉(zhuǎn)換:

圖3. 發(fā)送字符串轉(zhuǎn)換

接收字符串轉(zhuǎn)換:

要將收到的字符串送入 DB3.DBB30 中需要進(jìn)行以下轉(zhuǎn)換:

圖4. 接收字符串轉(zhuǎn)換

輪詢編程

通信任務(wù):

主站將 P#DB3.DBX20.0 中的字符串“西門(mén)子”(注意發(fā)送緩沖區(qū)由 P#DB3.DBX22.0 開(kāi)始,因?yàn)樽址皟蓚€(gè)字節(jié)分別是總字符數(shù)和當(dāng)前字符數(shù))發(fā)送給從站的接收緩沖區(qū)P#DB3.DBX32.0;從站 P#DB3.DBX22.0 返回“博大精深”給主站 P#DB3.DBX32.0。

主站輪詢:

圖5. 主站輪詢

從站輪詢:

圖6. 從站輪詢

通信結(jié)果

 

S7-1200 Modbus RTU 通信概述

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 RS232 6ES7 241-1AH32-0XB0
CM1241 RS485 6ES7 241-1CH30-0XB0
CM1241 RS422/485 6ES7 241-1CH32-0XB0
CB 1241 RS485 6ES7 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版本開(kāi)始,可以從“指令”→“通信處理器”→“MODBUS”下直接調(diào)用 “MB_COMM_LOAD”和“MB_MASTER”或“MB_SLAVE”指令,如下圖1所示:

圖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。


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

常問(wèn)問(wèn)題:

S7-1200 是否支持 Modbus ASCII 通信模式?

西門(mén)子不提供支持上述通信模式的的現(xiàn)成指令,需要用戶自己用自由口模式編程。

Modbus RTU指令V1和V2兩個(gè)版本有什么區(qū)別?

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

同一CPU程序中是否可以同時(shí)使用V1和V2兩個(gè)不同版本的Modbus RTU指令?

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

S7-1200 通信模塊CM1241是否可作為Modbus RTU主站或作為Modbus RTU從站?

對(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從站。

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

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所示:

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

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

 

Modbus RTU新版本指令介紹

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


圖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.所示:


圖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)圖如下:


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

本項(xiàng)目中使用到的硬件和軟件如下:

硬件:
① 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

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

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

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

圖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.所示:


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

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

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

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


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

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

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

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


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

(2)、組態(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)買(mǎi)。

ET200SP接口模塊需要為其分配IP地址和Device Name, 有關(guān)ET200 SP 分布式IO 組態(tài)詳細(xì)步驟,請(qǐng)參考《ET200 SP 使用快速入門(mén)》,本例不再描述Profinet IO通信的相關(guān)設(shè)置與步驟。
《ET200 SP 使用快速入門(mén)》下載鏈接:
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.所示:


圖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.所示:


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

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

2.軟件編程

a.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)編程步驟如下:

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


圖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_DLY

RTS延時(shí)選擇:0-(默認(rèn)值)

RTS_OFF_DLY

RTS關(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

使能端

REQ

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

MB_ADDR

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

MODE

模式選擇: 指定請(qǐng)求類(lèi)型(讀取或?qū)懭耄?

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ù)寫(xiě)入或數(shù)據(jù)讀取的標(biāo)記或數(shù)據(jù)塊地址。

DONE

完成位:上一請(qǐng)求已完成且沒(méi)有出錯(cuò)后,DONE 位將保持為 TRUE 一個(gè)掃描周期時(shí)間。

BUSY

FALSE – 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ù)意義

注意: 
①M(fèi)odbus_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.所示。


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

③Modbus_Master指令的“DATA_PTR”參數(shù)用于指向要進(jìn)行數(shù)據(jù)寫(xiě)入或數(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. 所示。


圖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è)绞教顚?xiě)如P#DB3.DBX0.0 WORD 5 方式填寫(xiě)。

④當(dāng)Modbus RTU網(wǎng)絡(luò)中存在多個(gè)modbus RTU從站或一個(gè)modbus RTU從站同時(shí)需要讀操作和寫(xiě)操作,則需要調(diào)用多個(gè)Modbus_Master指令,Modbus_Master指令之間需要采用輪詢方式調(diào)用。
下圖14. 用于描述兩個(gè)Modbus_Master指令輪詢調(diào)用的方式。
 
圖14.Modbus_Master輪詢調(diào)用方式

(2)、插入"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”判斷故障的模塊和類(lèi)型:事件類(lèi)型16#39表示模塊被拔出,事件類(lèi)型16#38表示模塊被插入。
CM PTP 模塊被重新插入的時(shí)候,需要在中斷OB83中調(diào)用Modbus_Comm_Load 指令對(duì)通信模塊進(jìn)行重新組態(tài),如圖15. 所示。


圖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. 所示。

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

(3)、插入"Rack or Station failure" 中斷OB86。

分布式IO站點(diǎn)故障和恢復(fù)時(shí),操作系統(tǒng)都會(huì)調(diào)用一次OB86。通過(guò)OB86接口區(qū)的輸入變量“16#Event_Class”判斷故障的模塊和類(lèi)型:事件類(lèi)型16#39表示站點(diǎn)故障,事件類(lèi)型16#38表示站點(diǎn)恢復(fù)。
CM PTP 模塊所在的IO站點(diǎn)恢復(fù)時(shí),需要在中斷OB86中調(diào)用Modbus_Comm_Load 指令對(duì)通信模塊進(jìn)行重新組態(tài),如圖17. 所示。


圖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ù)"中查詢。

b.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. 所示


圖18. 拖入Modbus RTU 從站指令

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

引腳

說(shuō)明

MB_ADDR

Modbus 從站的標(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 主站寫(xiě)入 
    如果上一個(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ù)意義

注意: 
①M(fèi)odbus_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è)绞教顚?xiě)如P#DB6.DBX0.0 WORD 100 方式填寫(xiě)。
如何在數(shù)據(jù)塊的屬性中取消“優(yōu)化的塊訪問(wèn)”,見(jiàn)圖13. 所示。

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

3.常見(jiàn)問(wèn)題FAQ

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版本。
相關(guān)固件更新的方法請(qǐng)參考 S7-1200 固件更新 

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通信。
而分布式 I/O 機(jī)架上的PTP通信模塊可以支持多種工作模式,以ET200SP CM PtP模塊(訂貨號(hào):6ES7137-6AA00-0BA0)為例,其可以支持RS232、RS485以及RS422等多種工作模式。
Modbus_Comm_Load指令背景數(shù)據(jù)塊中的靜態(tài)變量“MODE”則用于定義PTP模塊的工作模式。
“MODE”的默認(rèn)數(shù)值為0,代表“全雙工 (RS232)”工作模式,實(shí)際項(xiàng)目組態(tài)中則需要根據(jù)實(shí)際工作模式對(duì)該變量進(jìn)行修改。

3. Modbus_Comm_Load指令能否在啟動(dòng)組織塊OB100中調(diào)用?
Modbus_Comm_Load指令不建議在啟動(dòng)組織塊OB100中調(diào)用。新版本的Modbus RTU指令擴(kuò)展了Modbus RTU的功能,該指令支持 PROFINET 或 PROFIBUS 分布式 I/O 機(jī)架上的PtP通信模塊實(shí)現(xiàn)Modbus RTU通信。
操作系統(tǒng)需要調(diào)用讀取數(shù)據(jù)記錄和寫(xiě)入數(shù)據(jù)記錄等指令來(lái)實(shí)現(xiàn)與分布式I/O機(jī)架上PtP模塊的Modbus RTU通信。讀取數(shù)據(jù)記錄和寫(xiě)入數(shù)據(jù)記錄指令為異步讀寫(xiě)指令,指令的執(zhí)行需要N個(gè)掃描周期,所以不建議Modbus_Comm_Load指令在啟動(dòng)組織塊OB100中調(diào)用。

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

湖南 長(zhǎng)沙   西門(mén)子   6ES7290-6AA30-0XA0  

溫馨提示

  • 還沒(méi)找到想要的產(chǎn)品嗎? 立即發(fā)布采購(gòu)信息,讓供應(yīng)商主動(dòng)與您聯(lián)系!

免責(zé)聲明:所展示的信息由會(huì)員自行提供,內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由發(fā)布會(huì)員負(fù)責(zé),機(jī)電之家網(wǎng)對(duì)此不承擔(dān)任何責(zé)任。機(jī)電之家網(wǎng)不涉及用戶間因交易而產(chǎn)生的法律關(guān)系及法律糾紛,糾紛由您自行協(xié)商解決。
友情提醒:本網(wǎng)站僅作為用戶尋找交易對(duì)象,就貨物和服務(wù)的交易進(jìn)行協(xié)商,以及獲取各類(lèi)與貿(mào)易相關(guān)的服務(wù)信息的平臺(tái)。為避免產(chǎn)生購(gòu)買(mǎi)風(fēng)險(xiǎn),建議您在購(gòu)買(mǎi)相關(guān)產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。過(guò)低的價(jià)格、夸張的描述、私人銀行賬戶等都有可能是虛假信息,請(qǐng)采購(gòu)商謹(jǐn)慎對(duì)待,謹(jǐn)防欺詐,對(duì)于任何付款行為請(qǐng)您慎重抉擇!如您遇到欺詐等不誠(chéng)信行為,請(qǐng)您立即與機(jī)電之家網(wǎng)聯(lián)系,如查證屬實(shí),機(jī)電之家網(wǎng)會(huì)對(duì)該企業(yè)商鋪?zhàn)鲎N(xiāo)處理,但機(jī)電之家網(wǎng)不對(duì)您因此造成的損失承擔(dān)責(zé)任!
您也可以進(jìn)入“消費(fèi)者防騙指南”了解投訴及處理流程,我們將竭誠(chéng)為您服務(wù),感謝您對(duì)機(jī)電之家網(wǎng)的關(guān)注與支持!

您是不是在找