日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

S7-1200 MODBUS TCP客戶端指令使用方法

 晶晶媽媽eatn6c 2018-09-08

3.限時下載|【10G】三菱、西門子、歐姆龍PLC全套視頻教程!


S7-1200 Modbus TCP 通信指令塊


  STEP 7 V13 SP1 軟件版本中的 Modbus TCP 庫指令目前最新的版本已升至V4.0,該版本的使用需要具備以下兩個條件:


1. 軟件版本: STEP 7 V13 SP1及其以上

2. 固件版本: S7-1200 CPU 的固件版本V4.1


圖1. Modbus TCP V4.0 版本指令塊


S7-1200 Modbus TCP 實驗環(huán)境


  下面以兩臺S7-1200之間進(jìn)行 Modbus TCP 通信為例,詳細(xì)闡述客戶端與服務(wù)器側(cè)如何編程及通信的過程。表格列出了具體的實驗環(huán)境:


表1. Modbus TCP 通信的實驗環(huán)境


表2. Modbus TCP 通信雙方的基本配置


  硬件標(biāo)識符是在“設(shè)備組態(tài)”中,雙擊 PROFINET 接口,然后在“屬性”中的“硬件標(biāo)識符”中查看。


圖2. S7-1200設(shè)備的PROFINET接口硬件標(biāo)識符


S7-1200 Modbus TCP 客戶端編程


  S7-1200 客戶端側(cè)需要調(diào)用MB_CLIENT指令塊,該指令塊主要完成客戶機(jī)和服務(wù)器的TCP連接、發(fā)送命令消息、接收響應(yīng)以及控制服務(wù)器斷開的工作任務(wù)。


  1. 將MB_CLIENT 指令塊在“ 程序塊 -> OB1 ”中的程序段里調(diào)用,調(diào)用時會自動生成背景DB ,點擊確定即可。


圖3. Modbus TCP 客戶端側(cè)指令塊


該功能塊各個引腳定義如下:


表4. MB_CLIENT 各引腳定義說明


  2. CONNECT 引腳的指針類型


  第一步,先創(chuàng)建一個新的全局?jǐn)?shù)據(jù)塊 DB2:


圖4. 創(chuàng)建全局?jǐn)?shù)據(jù)塊


  第二步,雙擊打開新生成的DB塊,定義變量名稱為“aa',數(shù)據(jù)類型為“TCON_IP_v4”(可以將 TCON_IP_v4 拷貝到該對話框中),然后點擊“回車”按鍵。該數(shù)據(jù)類型結(jié)構(gòu)創(chuàng)建完畢。如圖5所示:


圖5. 創(chuàng)建 MB_CLIENT 中的TCP連接結(jié)構(gòu)的數(shù)據(jù)類型


  各個引腳定義說明如下:


表4. TCON_IP_v4 數(shù)據(jù)結(jié)構(gòu)的引腳定義


  本文遠(yuǎn)程服務(wù)器的IP地址為192.168.0.4,遠(yuǎn)程端口號設(shè)為502。所以客戶端側(cè)該數(shù)據(jù)結(jié)構(gòu)的各項值為:


圖6. MB_CLIENT 側(cè) CONNECT 引腳數(shù)據(jù)定義


注意: CONNECT引腳的填寫需要用符號尋址的方式。


  3. 創(chuàng)建 MB_DATA_PTR 數(shù)據(jù)緩沖區(qū)


  第一步,創(chuàng)建一個全局?jǐn)?shù)據(jù)塊 DB3,創(chuàng)建方法可以參考上面的圖3,數(shù)據(jù)塊的名稱如圖7所示:


圖7. 生成的兩個DB塊名稱


  第二步,建議一個數(shù)組的數(shù)據(jù)類型,以便通信中存放數(shù)據(jù),請參考圖8所示:


圖8. MB_DATA_PTR 數(shù)據(jù)緩沖區(qū)結(jié)構(gòu)


  注意: MB_DATA_PTR指定的數(shù)據(jù)緩沖區(qū)可以為DB塊或M存儲區(qū)地址中。DB塊可以為優(yōu)化的數(shù)據(jù)塊,也可以為標(biāo)準(zhǔn)的數(shù)據(jù)塊結(jié)構(gòu)。若為優(yōu)化的數(shù)據(jù)塊結(jié)構(gòu),編程時需要以符號尋址的方式填寫該引腳;若為標(biāo)準(zhǔn)的數(shù)據(jù)塊結(jié)構(gòu)(可以右鍵單擊DB塊,“屬性”中將“優(yōu)化的塊訪問”前面的勾去掉,如下圖9所示),需要以絕對地址的方式填寫該引腳。本文以標(biāo)準(zhǔn)的數(shù)據(jù)塊(默認(rèn))為例進(jìn)行編程。


圖9. 修改 DB 塊屬性為標(biāo)準(zhǔn)的塊結(jié)構(gòu)


  4. 客戶端側(cè)完成指令塊編程


  調(diào)用 MB_CLIENT 指令塊,實現(xiàn)從 Modbus TCP 通信服務(wù)器中讀取2個保持寄存器的值,如圖10所示:


圖10. MB_CLIENT 指令塊編程


  5. 將整個項目下載到S7-1200


  待Modbus TCP 服務(wù)器側(cè)準(zhǔn)備就緒,給MB_CLIENT指令塊的REQ引腳一個上升沿,將讀取到的數(shù)據(jù)放入 MB_DATA_PTR引腳指定的DB 塊中。具體的實驗結(jié)果可以查看S7-1200 服務(wù)器側(cè)編程。


常見問題


 MB_CLIENT 指令的背景數(shù)據(jù)塊中的 'MB_Unit_ID' 有什么功能?


  S7-1200 CPU 作為 Modbus TCP 客戶端與 Modbus TCP 服務(wù)器通信,當(dāng)嘗試訪問比 Modbus TCP 服務(wù)器更低端的串行子網(wǎng)中的設(shè)備,會有報錯 '無法建立連接'。


  這種情況下, Modbus TCP 服務(wù)器作為 Modbus RTU 協(xié)議中的網(wǎng)關(guān),'MB_Unit_ID' 參數(shù)相當(dāng)于 Modbus RTU 協(xié)議中的從站地址。


  Modbus TCP 客戶端直接向 Modbus TCP 服務(wù)器發(fā)送請求,Modbus TCP 服務(wù)器通過識別 'MB_UNIT_ID' 參數(shù),將請求轉(zhuǎn)發(fā)到從站設(shè)備。


  在 S7-1200 項目中,選擇系統(tǒng)塊,雙擊打開 MB_CLIENT 指令的背景數(shù)據(jù)塊“MB_CLIENT_DB”, 在靜態(tài)變量Static下可以找到 MB_Unit_ID (默認(rèn)起始值16#FF,等于十進(jìn)制 255)。如下圖 11 所示:


圖 11. MB_Unit_ID


  例如,當(dāng) S7-1200 做客戶端與電腦上的 Modbus TCP 調(diào)試軟件 Modsim 通信時,會遇到如上“無法建立連接”的問題。


  這時,修改調(diào)試軟件 Modsim 中Device Id 為255,使之等于 MB_Unit_ID 的值,即可建立聯(lián)系。如下圖 12 所示:


圖 12. Device Id


 注意:如果 Modbus TCP 服務(wù)器無法更改 Device Id 的值, 則修改S7-1200 項目中MB_Unit_ID數(shù)值, 使雙方的參數(shù)一致。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多