欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> plc軟件使用 >> 正文

西門子plc s7-200smart modbus-tcp通信實(shí)例編程詳細(xì)指導(dǎo),STEP7軟件設(shè)置

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2023/5/20

組網(wǎng)概述

本文以 ZKA-4488-WIFI 為例介紹西門子PLC與深圳市綜科智控科技開發(fā)有限公司的IO設(shè)備進(jìn)行Modbus通訊的步驟設(shè)置。ZKA-4488-WIFI 是 8 路數(shù)字量輸入(DI),8 路數(shù)字量輸出(DO),4 路模擬量輸入(AI,0/4-20mA),4 路模擬量輸出設(shè)備(AO,0/4-20mA),無線WIFI通信。


 

以 ZKA-4488-WIFI為例,出廠默認(rèn)通訊參數(shù)如下:

ZK模塊 IP 為:192.168.0.105


TCP 端口為:10001

(注意:我們模塊出廠時(shí)默認(rèn)端口為10001,客戶也可以通過ZK模塊的配置文件把ZK通訊端口改成modbus-tcp的默認(rèn)端口502)


工作模式為:服務(wù)器模式

S7-200 Modbus TCP通信

1 S7-200 Modbus TCP 通信簡(jiǎn)介

Modbus 是公開通信協(xié)議,詳細(xì)的協(xié)議和規(guī)范,請(qǐng)?jiān)L問 Modbus 組織的網(wǎng)站:http://www.modbus.org/

Modbus TCP 是通過工業(yè)以太網(wǎng) TCP/IP 網(wǎng)絡(luò)傳輸?shù)?Modbus 通信。S7-200 SMART 采用客戶端-服務(wù)器方法,Modbus 客戶端設(shè)備通過該方法發(fā)起與 Modbus 服務(wù)器設(shè)備的 TCP/IP 連接。

建立連接后,客戶端向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器將響應(yīng)客戶端的請(qǐng)求。客戶端可請(qǐng)求從服務(wù)器設(shè)備讀取部分存儲(chǔ)器,或?qū)⒁欢〝?shù)量的數(shù)據(jù)寫入服務(wù)器設(shè)備的存儲(chǔ)器。如果請(qǐng)求有效,則服務(wù)器將響應(yīng)該請(qǐng)求;如果請(qǐng)求無效,則會(huì)回復(fù)錯(cuò)誤消息。

S7-200 SMART 支持做 Modbus TCP 的客戶端或者服務(wù)器,可以實(shí)現(xiàn) PLC 之間通信,也可以實(shí)現(xiàn)與支持此通信協(xié)議的第三方設(shè)備通信。通信伙伴數(shù)量比較多的時(shí)候,可以使用交換機(jī),擴(kuò)展以太網(wǎng)接口。

2 Modbus TCP 指令庫(kù)

STEP7-Micro/WIN SMART 從V2.4 版本開始,軟件中直接集成 Modbus TCP 庫(kù)指令。

安裝軟件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 項(xiàng)目樹中“指令”文件夾的“庫(kù)”文件夾中。如圖2.Modbus TCP庫(kù)指令所示。

指令分為客戶端和服務(wù)器兩種,目前指令版本為 V1.0。客戶端指令會(huì)占用開放式用戶通信資源主動(dòng)連接,最多8個(gè);服務(wù)器指令會(huì)占用開放式用戶通信資源的被動(dòng)連接資源,最多也是8個(gè)。


 

圖2.Modbus TCP庫(kù)指令

Modbus TCP 客戶端:

Modbus 客戶端指令MBUS_CLIENT使用 CPU 的以下資源:

占用主動(dòng)連接資源。最多有8個(gè)主動(dòng)連接資源

連接多個(gè)服務(wù)器伙伴時(shí),自動(dòng)生成連接 ID。

Modbus TCP 客戶端使用以下程序?qū)嶓w:

1 個(gè)子程序

2849 個(gè)字節(jié)的程序空間

V 存儲(chǔ)器的 638 字節(jié)模塊,用于指令符號(hào)

Modbus TCP 服務(wù)器:

Modbus 服務(wù)器指令 MBUS_SERVER 使用 CPU 的以下資源

占用被動(dòng)連接資源。最多有8個(gè)被動(dòng)連接資源

連接多個(gè)客戶端伙伴時(shí),自動(dòng)生成連接 ID。

Modbus TCP 服務(wù)器使用下列程序?qū)嶓w:

1 個(gè)子程序

2969 個(gè)字節(jié)的程序空間

V 存儲(chǔ)器的 445 字節(jié)模塊,用于指令符號(hào)

指令庫(kù)編程后,必須從 STEP 7-Micro/WIN SMART 的為使用的指令分配庫(kù)存儲(chǔ)區(qū)地址。

3 Modbus TCP 功能編程

下面以一臺(tái)S7-200 SMART和一臺(tái)ZKA-4488-ETH 之間進(jìn)行Modbus TCP 通信為例,詳細(xì)闡述客戶端與服務(wù)器側(cè)如何編程及通信的過程。具體的實(shí)驗(yàn)環(huán)境見表1.;通信任務(wù)見表2:

表1.實(shí)驗(yàn)環(huán)境

操作系統(tǒng) WIN7 SP1 專業(yè)版 64位
編程軟件 STEP7-Micro/WIN SMART V2.4版本
硬件 CPU SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本ZKA-4488-WIFI:綜科智控4AI+4AO+8DI+8DO以太網(wǎng)modbus-tcp通信交換機(jī):CSM 127 6GK7 277-1AA10-0AA0

表2.通信任務(wù)

硬件 通信角色 IP地址 端口號(hào) 讀/寫 數(shù)據(jù)區(qū)域
CPU SR60 客戶端 192.168.0.60 0 VB20-VB31
ZKA-4488-WIFI 服務(wù)器 192.168.0.105 10001 響應(yīng) AI1~AI3模擬量采集值

客戶端側(cè)指令編程

1、系統(tǒng)塊中設(shè)置客戶端的IP地址,以確保IP地址設(shè)置無誤。此步驟為可選,如果確定IP地址設(shè)置無誤,可忽略此步驟。設(shè)置方法如圖2.所示。


 

圖2.系統(tǒng)塊設(shè)置IP地址

2、鼠標(biāo)點(diǎn)擊 MAIN 主程序的程序段1的編程區(qū)域,從庫(kù)文件夾下找到 Modbus TCP 客戶端指令 MBUS_CLIENT,鼠標(biāo)雙擊,指令出現(xiàn)在程序段1中,操作如圖3.所示。


 

圖3.添加客戶端指令

3、填寫客戶端指令參數(shù),如圖4.所示。


 

圖4.填寫客戶端參數(shù)

程序塊具體參數(shù)詳細(xì)解釋介紹見表3.

參數(shù)及類型 數(shù)據(jù)類型 說明
Req IN BOOL =1:表示向服務(wù)器發(fā)送Modbus 請(qǐng)求
Connect IN BOOL =1:嘗試與分配的IP地址及端口號(hào)建立連接;=0:嘗試斷開已經(jīng)建立的連接,忽略Req的任何請(qǐng)求
IPAddr1-4 IN BYTE 填寫 Modbus TCP 服務(wù)器的IP地址IPAddr1-4為高到低字節(jié)
IP_Port IN BYTE 填寫Modbus TCP 服務(wù)器的端口號(hào)
RW IN BYTE 指定操作模式 =0:讀;=1寫
Addr IN DWORD 要進(jìn)行讀寫的參數(shù)的 Modbus 起始地址,本例中也即ZKA-4488-ETH寄存器地址
Count IN INT 要進(jìn)行讀寫的參數(shù)數(shù)據(jù)長(zhǎng)度;數(shù)字量輸入/輸出Count=1表示1 bit,最大1920位對(duì)于模擬量輸入和保持寄存器,最大 Count 值為 120 字。本例中讀取AI1~AI3模擬輸入的讀數(shù),因?yàn)槊總(gè)AI輸入通道占用2個(gè)WORD寄存器地址,所以讀取3個(gè)通道AI1~AI3就需要讀取6個(gè)WORD寄存器
DataPtr IN_OUT DWORD 數(shù)據(jù)寄存器地址指針,指向本地用于讀/寫操作的數(shù)據(jù)地址區(qū)域的首地址
Done OUT BOOL TRUE:以下任一條件時(shí)為真:客戶端已與服務(wù)器建立連接;客戶端已與服務(wù)器斷開連接;客戶端已接收 Modbus 響應(yīng);發(fā)生錯(cuò)誤 FALSE:客戶端正忙于建立連接或等待來自服務(wù)器的 Modbus 響應(yīng)。
Error OUT BOOL 出現(xiàn)錯(cuò)誤,僅一個(gè)周期有效

4、鼠標(biāo)選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫(kù)存儲(chǔ)器,如圖5.所示。


 

圖5.點(diǎn)擊庫(kù)存儲(chǔ)器

5、在庫(kù)存儲(chǔ)區(qū)分配對(duì)話框中手動(dòng)輸入存儲(chǔ)區(qū)的起始地址。此實(shí)例為VB5000開始,以使指令庫(kù)可以正常工作。確保庫(kù)存儲(chǔ)區(qū)與程序中其他已使用的地址不沖突。使用建議地址無法確定是否有地址重疊,所以推薦手動(dòng)輸入正確的庫(kù)存儲(chǔ)區(qū)首地址。如圖6.所示。


 


圖6.庫(kù)存儲(chǔ)區(qū)地址分配

6、編譯項(xiàng)目,下載程序。

將M0.0置位為1,然后在狀態(tài)圖表中創(chuàng)建變量,VW20-VW30 共6個(gè)字,監(jiān)視值如圖7.所示。


 



 


圖7.讀取ZKA-4488-ETH的數(shù)據(jù)

4 關(guān)于 Modbus TCP協(xié)議及地址

S7-200 SMART 做 Modbus TCP 通信,可以支持的功能碼及功能描述及所占用的地址區(qū),如表4.所示。客戶端會(huì)主動(dòng)的發(fā)送請(qǐng)求,服務(wù)器響應(yīng)。在通信指令填寫參數(shù)中沒有直接填寫功能碼,而是通過多個(gè)參數(shù)填寫共同確定功能碼的。

表4.功能碼概況說明

功能碼(十進(jìn)制) 功能描述 RW Addr Count CPU地址
01 讀數(shù)字量輸出 位 0 00001-09999 1-1920 位 Q0.0-1151.7
02 讀數(shù)字量輸入 位 0 10001-19999 1-1920 位 I0.0-1151.7
03 讀寄存器 字 0 40001-49999400001-465535 1-120 字 V區(qū)
04 讀模擬量輸入 字 0 30001-39999 1-120 字 AIW0-AIW110
05 寫數(shù)字量輸出 單個(gè)位 1 00001-09999 1位 Q0.0-Q1151.7
06 寫寄存器 單個(gè)字 1 40001-49999400001-465535 1個(gè)字 V區(qū)
15 寫數(shù)字量輸出 多個(gè)位 1 00001-09999 1-1920 位 Q0.0-1151.7
16 寫寄存器 多個(gè)字 1 40001-49999400001-465535 1-120 字 V區(qū)

舉例:

和Modbus TCP服務(wù)器交換數(shù)據(jù)參數(shù)支持功能碼:03,在客戶端指令中設(shè)置兩個(gè)參數(shù)確定03功能碼:

RW=0:確定讀取數(shù)據(jù),(篩選出可能會(huì)使用的功能碼:01,02,03,04),

Addr:40001-49999/400001-465535,表示交換數(shù)據(jù)為寄存器類型的數(shù)據(jù)。

5 Modbus TCP 常問問題

1、如何判斷Modbus TCP連接是否建立?

答:進(jìn)行Modbus TCP通信,需要建立連接,

S7-200 SMART CPU作為Modbus TCP客戶端時(shí):通過Modbus TCP Client指令 MBUS_CLIENT 的符號(hào)表中的 mConnected 參數(shù)來判斷,如圖1.所示

mConnected=1 表示已經(jīng)建立連接,mConnected=0 表示尚未建立連接


 


圖1.mConnected判斷連接狀態(tài)

注意:當(dāng)PLC內(nèi)存在多個(gè)客戶端或者多個(gè)服務(wù)器時(shí),不建議參考該狀態(tài)點(diǎn)。

2、如何查看錯(cuò)誤代碼?

答:出現(xiàn)錯(cuò)誤時(shí),MBUS_CLIENT 指令輸出參數(shù)Done 會(huì)為1,但是,Done在連接建立完成,連接斷開,響應(yīng)完成時(shí)都會(huì)出現(xiàn)置位為1的情況。

出現(xiàn)錯(cuò)誤時(shí),還有Error字節(jié)會(huì)顯現(xiàn)出錯(cuò)誤代碼,僅保留一個(gè)周期時(shí)間。

綜上所述,查看錯(cuò)誤代碼,可以按照?qǐng)D3.所示的方法進(jìn)行。


 


圖3.查看錯(cuò)誤代碼

3、進(jìn)行 Modbus TCP 通信寄存器類型數(shù)據(jù),數(shù)據(jù)量大超過120個(gè)字如何處理?

答:如果數(shù)據(jù)量超過120個(gè)字,可以進(jìn)行如下兩種方法操作:

A、建立多個(gè)連接,不同連接之間,可以并行操作,因?yàn)檎加玫耐ㄐ刨Y源不同;

B、建立一個(gè)連接,進(jìn)行多個(gè)操作,不同操作之間需要進(jìn)行輪詢,同一時(shí)刻只有一個(gè)操作在進(jìn)行。

4、Modbus TCP通信時(shí),如何訪問地址范圍大于49999 的保持寄存器

Modbus 保持寄存器地址在 40001 到 49999 這一范圍內(nèi)。該范圍足以滿足大多數(shù)應(yīng)用的要求,但有些 Modbus 從站設(shè)備將數(shù)據(jù)映射到地址范圍更大的保持寄存器中。 MBUS_CLIENT 指令允許參數(shù) Addr 的附加范圍,以支持 400001 至 465536 的保持寄存器地址的擴(kuò)

展范圍。例如,要訪問保持寄存器 16768,請(qǐng)將 MBUS_CLIENT 的 Addr 參數(shù)設(shè)置為 416768。 擴(kuò)展尋址允許訪問 Modbus 協(xié)議支持的全部 65536 個(gè)可能地址。此擴(kuò)展尋址僅適用于保持寄存器。

5、S7-200 SMART作為 Modbus TCP客戶端, 服務(wù)器為網(wǎng)關(guān)模塊,連接多個(gè) Modbus RTU 設(shè)備時(shí)如何區(qū)分 Modbus RTU 從站地址能?

答:S7-200 SMART CPU 作為 Modbus TCP 客戶端與 Modbus TCP 服務(wù)器通信,當(dāng)嘗試訪問比 Modbus TCP 服務(wù)器更低端的串行子網(wǎng)中的設(shè)備,會(huì)有報(bào)錯(cuò) "無法建立連接"。如果 Modbus TCP 服務(wù)器用于 Modbus RTU 協(xié)議的網(wǎng)關(guān),則 MB_UNIT_ID 可用于識(shí)別串行網(wǎng)

絡(luò)上連接的從站設(shè)備。MB_UNIT_ID 用于將請(qǐng)求轉(zhuǎn)發(fā)到正確的 Modbus RTU 從站地址。一些 Modbus TCP 設(shè)備可能要求 MB_UNIT_ID 參數(shù)在限制范圍內(nèi)。該參數(shù)所在位置,如圖4.所示

mModbusUnitID默認(rèn)值為255(16#FF),如果從站設(shè)備有多個(gè),可以S7-200 SMART 和網(wǎng)關(guān)模塊建立一個(gè)連接,在這個(gè)連接上通過修改UnitID的值進(jìn)行UnitID的輪詢。


 

圖4.mModbusUnitID

6、對(duì)于一些服務(wù)器不支持寫單個(gè)數(shù)字量輸出位(功能碼 5)/單個(gè)保持寄存器(功能碼 6),S7-200 SMART 如何實(shí)現(xiàn)寫單個(gè)位/字。

答:一些 Modbus 服務(wù)器設(shè)備不支持 Modbus 功能寫入單個(gè)離散輸出位(Modbus 功能 5)或?qū)懭雴蝹(gè)保持寄存器(Modbus 功能 6)。相反,這些設(shè)備只支持多位寫入(Modbus 功能 15)或多寄存器寫入(Modbus 功能 16)。如果服務(wù)器設(shè)備不支持單個(gè)位/字 Modbus

功能,則 MBUS_CLIENT 指令將返回錯(cuò)誤代碼 1。Modbus 客戶端協(xié)議允許強(qiáng)制 MBUS_CLIENT 指令使用多個(gè)位/字 Modbus 功能,而非使用單個(gè)位/字 Modbus 功能。可通過在 Modbus 客戶端符號(hào)表中查找符號(hào) mModbusForceMulti,并在程序執(zhí)行 MBUS_CLIENT 之前

更改此值,來強(qiáng)制多個(gè)位/字指令。將 mModbusForceMulti 設(shè)置為 TRUE,可在寫入單個(gè)位或寄存器時(shí)強(qiáng)制使用多個(gè)位/字功能。如圖5.所示。

 

Tags:modbus-tcp,modbus,通信,西門子plc  
責(zé)任編輯:admin
相關(guān)文章列表
Modbus功能碼04實(shí)例_20種PLC元件編號(hào)和Modbus編號(hào)地址對(duì)應(yīng)表
弱電工程RS485總線_RS485布線安裝注意事項(xiàng)_RS485常見的故障與解決
PLC通信入門教程:通信從來都不難,就是幾個(gè)0和1
Modbus超時(shí)時(shí)間設(shè)置,通訊延遲,通訊滯后問題與程序輪詢的關(guān)系
變頻器采用Modbus通訊延遲,有什么因素導(dǎo)致變頻器給定頻率后很久
Modbus 的RTU、ASCII、TCP傻傻搞不清楚?一文全解讀
modbus協(xié)議實(shí)例講解,功能碼和報(bào)文詳解
Modbus測(cè)試工具與控件介紹
西門子PLC 200smartPLC與第三方進(jìn)行Modbus TCP通訊
MODBUS--變頻器\PLC\儀表連不上怎么辦?送最簡(jiǎn)單的軟件搞定問題
西門子plc Smart 200主從站之間RS485通訊實(shí)例_從站主站讀寫程序
西門子plc之間的通訊_兩臺(tái)西門子S7-200 SMART PLC如何通過Modbus
西門子S7-200 Smart plc的Modbus RTU庫(kù)通訊輪詢實(shí)例
學(xué)習(xí)s7-200之間的Modbus通訊_兩個(gè)PLC互相通信,主站從站通訊
西門子PLC S7-200Smart實(shí)現(xiàn)Modbus-RTU通信實(shí)例 多功能電表 溫控表
西門子plc S7-200 SMART與丹佛斯變頻器之間Modbus通信
西門子plc S7-200 SMART與變頻器MODBUS-RTU通信例程
RS232、RS485標(biāo)準(zhǔn)以及在DB9公頭、母頭上的接線定義_Modbus通訊接
PLC控制伺服電機(jī)運(yùn)動(dòng)的完整案例(PLC設(shè)置伺服驅(qū)動(dòng)參數(shù))_ 絲杠運(yùn)
MODBUS常用功能碼
西門子S7-200 plc SMART與英威騰變頻器通信的方法 modbus
Modbus寄存器分類及地址分配表 寄存器分類及說明 寄存器的地址
西門子plc S7-200smart 與臺(tái)達(dá)變頻器通訊Modbus梯形圖編程實(shí)例
Modbus調(diào)試軟件--ModbusPoll、ModbusSlave使用詳解
modbus poll 使用教程  Modbus通訊
20種PLC對(duì)應(yīng)Modbus地址表
西門子plc S7-200SMART通過MODBUS通信控制變頻器啟停如何看電流頻
西門子plc梯形圖編程實(shí)例 西門子200smart與電流表Modbus RTU通訊
使用西門子plc的Modbus通訊 串口調(diào)試助手與S7-200SMART PLC從站通
Modbus 調(diào)試助手的使用(一) Modsim32使用詳解Modbus Poll
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁(yè)面
下到頁(yè)底
晶體管查詢
主站蜘蛛池模板: 芒康县| 开原市| 荔波县| 临潭县| 沙坪坝区| 南昌县| 通河县| 任丘市| 昆山市| 浮山县| 乌兰浩特市| 庆城县| 平度市| 五大连池市| 泽普县| 邵武市| 铁岭县| 施秉县| 张北县| 松桃| 鄱阳县| 海林市| 沙雅县| 丽水市| 准格尔旗| 鸡西市| 灵武市| 措美县| 出国| 平湖市| 莱西市| 墨江| 抚顺市| 延川县| 敖汉旗| 京山县| 和政县| 尚志市| 芮城县| 房山区| 望谟县|