0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

S7-1200 MODBUS TCP通信多請求處理

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-07-28 10:44 ? 次閱讀

S7-1200 MODBUS TCP 通信多請求處理

單獨的客戶機連接需要遵循的規(guī)則:

1. 每個“MB_CLIENT”連接需要使用一個不同的背景數(shù)據(jù)塊;

2. 每個“MB_CLIENT”連接必須指定一個服務器 IP 地址;

3. 每個“MB_CLIENT”連接必須指定一個唯一的連接 ID;

4. 是否需要唯一的 IP 端口號取決于服務器組態(tài);

連接 ID 和背景數(shù)據(jù)塊組合成對,對每個連接來說,組合對都是唯一的。

對于多請求處理,有兩種方法:

方法一:如果 TCP 連接充裕,可以建立多個不同的連接發(fā)送請求,即每個請求使用一個獨立的連接,調(diào)用獨立的“MB_CLIENT”功能塊,具體操作參考“Modbus TCP”部分,鏈接。

通過不同的連接發(fā)送多個請求,“MB_CLIENT”功能塊多次調(diào)用,但是需要使用不同的背景數(shù)據(jù)塊,不同的 ID 號和不同的端口號。

方法二:通過公共的連接發(fā)送多個請求

這個方法適合 CPU 訪問一個 Modbus TCP 服務器,但是有多個作業(yè)的情況,例如有讀也有寫,或者讀多個區(qū)域等。

通過公共的連接發(fā)送多個請求,“MB_CLIENT”功能塊多次調(diào)用,但是需要使用相同的背景數(shù)據(jù)塊,連接 ID 號,IP 地址和端口號,根據(jù)需要修改模式、地址、長度、指針等。

在任意時間,只能有一個 MB_CLIENT 請求處于激活狀態(tài),在一個請求完成執(zhí)行后,下一個請求再開始執(zhí)行,輪循處理。

方法二特例:MODBUS TCP 客戶端訪問網(wǎng)關(guān)后的多個 MODBUS RTU 從站

這個方法適合 CPU 通過 Modbus TCP 轉(zhuǎn) Modbus RTU 網(wǎng)關(guān),訪問網(wǎng)關(guān)后多個 Modbus RTU 從站數(shù)據(jù)。CPU 僅僅和網(wǎng)關(guān)建立一個 Modbus TCP 連接,就可以訪問多個站的數(shù)據(jù)。

通過公共的連接發(fā)送多個請求,“MB_CLIENT”功能塊多次調(diào)用,但是需要使用相同的背景數(shù)據(jù)塊,連接 ID 號,IP 地址和端口號。參數(shù)“ MB_Unit_ID ” 使用不同的值,根據(jù)需要修改模式、地址、長度、指針等。

在任意時間,只能有一個 MB_CLIENT 請求處于激活狀態(tài),在一個請求完成執(zhí)行后,下一個請求再開始執(zhí)行,輪循處理。

方法二輪循處理的操作

一.軟硬件要求

MB_Client 指令的使用要求:軟件 V11 SP1 及以上版本,CPU 固件版本 V1.02 及以上版本。

二.測試條件

硬件:CPU 1214C(DC/DC/DC) V4.5 ,電腦(ModSim32 調(diào)試軟件);

軟件:TIA PORTAL STEP 7 V17

實驗:S7-1200 作 Modbus TCP 客戶機,用功能碼 3 對調(diào)試軟件先進行讀取地址 40001 開始的 2 個字,然后用功能碼 16 對地址 40003 開始的 2 個字進行寫入。

三.組態(tài)配置

1. S7-1200 的 IP 地址192.168.1.42,如圖 1 所示。

2c0382a2-0db4-11ed-ba43-dac502259ad0.png

圖 1. IP 地址設(shè)置

2. ModSim32 調(diào)試軟件設(shè)置

服務器采用 ModSim32 軟件測試,首先將測試電腦的 IP 地址設(shè)置成192.168.1.201,如圖 2 所示。

2c2e444c-0db4-11ed-ba43-dac502259ad0.png

圖 2. 電腦的 IP 地址

打開 ModSim32 軟件,然后通過 “File”>"New",新建設(shè)置 03 地址區(qū)、起始地址 40001、長度 4、設(shè)備 ID 255 等,如圖 3 所示。

2c56393e-0db4-11ed-ba43-dac502259ad0.png

圖 3. ModSim32 調(diào)試軟件的從站設(shè)置

在“Connection”中選擇“Modbus/TCP Svr”,設(shè)置本地服務器端口號為 502,如圖 4 所示。

2c75af30-0db4-11ed-ba43-dac502259ad0.png

圖 4. 連接設(shè)置

四.編程

1. 新建 FB

如圖 5 所示,新建 FB,命名為 Comm,在靜態(tài)變量中增加參數(shù)。

2ca1ce94-0db4-11ed-ba43-dac502259ad0.png

圖 5. 設(shè)置 FB 參數(shù)

參數(shù)含義參見表 1:

表 1. FB 接口參數(shù)含義

參數(shù) 含義
statStep 步驟號
instClient MB_CLIENT 多重背景
statReq MB_CLIENT 的實參,程序中會在需要時修改其值
statMode
statAddr
statLen
statPtr
statConn 連接參數(shù),具體含義參見鏈接文檔
statRead 讀取到的數(shù)據(jù)
statWrite 待寫入的數(shù)據(jù)

2. 編寫輪循功能

如圖 6 所示,例子中使用 SCL 的 CASE OF 方式編寫輪詢程序,SCL 的 CASE OF 指令編寫順控可以參考鏈接:文檔。

思路如下:

步驟 0:等待連接建立,當連接建立則跳轉(zhuǎn)到步驟 1。

步驟 1:設(shè)置讀取參數(shù),觸發(fā)讀取,當讀取正常后,將讀取到的數(shù)據(jù)存入指定數(shù)據(jù)區(qū),然后跳轉(zhuǎn)到步驟 2,如果故障則跳轉(zhuǎn)到步驟 100。

步驟 2:設(shè)置寫入?yún)?shù),將待寫入數(shù)據(jù)送入指定區(qū)域,觸發(fā)寫入,當寫入正常后,跳轉(zhuǎn)到步驟 1,如果故障則跳轉(zhuǎn)到步驟 100。

步驟 100:當故障消失,則跳轉(zhuǎn)到步驟 0。

如果有更多的讀寫需要,可以建立更多的步驟。

以下程序的源文件壓縮包鏈接:源文件。將壓縮包下載解壓縮后,得到文件“Comm.scl”,然后在 TIA Portal 項目中導入即可使用,導入源文件方式參見鏈接:文檔。

以下例程僅供參考。讀者如欲采納,風險自擔。

2cc3d110-0db4-11ed-ba43-dac502259ad0.png

圖 6. 例子程序

3. 在主程序中調(diào)用該 FB,如圖 7 所示。

2cf615d0-0db4-11ed-ba43-dac502259ad0.png

圖 7. 調(diào)用程序

五.通訊測試

對 FB 背景數(shù)據(jù)塊與 Modsim32 軟件進行監(jiān)視,如圖 8 所示。

2d113f04-0db4-11ed-ba43-dac502259ad0.png

圖 8. 測試結(jié)果

2d355aec-0db4-11ed-ba43-dac502259ad0.jpg注意:

如果需要更多的讀寫任務可以按照例子自行添加。

ModSim32 是做 Modbus RTU 從站以及 Modbus TCP 服務器的測試軟件,是第三方軟件,可以從網(wǎng)絡上下載。

方法二特例輪循處理的操作

一.軟硬件要求

MB_Client 指令的使用要求:軟件 V11 SP1 及以上版本,CPU 固件版本 V1.02 及以上版本。

二.測試條件

硬件:CPU 1214C(DC/DC/DC) V4.5 ,電腦(ModSim32 調(diào)試軟件);

軟件:TIA PORTAL STEP 7 V17

實驗:S7-1200 作 Modbus TCP 客戶機,用功能碼 3 對調(diào)試軟件先后進行讀取 ID 為 1 的 40001 開始的 2 個字以及 ID 為 2 的 40003 開始的 2 個字。

該實驗仿真讀取 Modbus TCP 轉(zhuǎn) Modbus RTU 網(wǎng)關(guān)后的多個 Modbus RTU 從站數(shù)據(jù)的功能。

三.組態(tài)配置

1. CPU 硬件組態(tài)參考圖 1 的設(shè)置。

2. 電腦 IP 地址設(shè)置參考圖 2 的設(shè)置。

3. ModSim32通過 “File”>"New",新建 2 個文件,設(shè)置 03 地址區(qū)、起始地址 40001、長度 2、設(shè)備 ID 分別是 1 和 2,如圖 9 所示。然后參考圖 4 進行連接設(shè)置。

2d4f3228-0db4-11ed-ba43-dac502259ad0.png

圖 9. ModSim32 的設(shè)置

四.編程

1. 新建 FB

如圖 10 所示,新建 FB,命名為 CommUnitId,在靜態(tài)變量中增加參數(shù)。

2d684d76-0db4-11ed-ba43-dac502259ad0.png

圖 10. 設(shè)置 FB 參數(shù)

參數(shù)含義參見表 2:

表 2. FB 接口參數(shù)含義

參數(shù) 含義
statStep 步驟號
instClient MB_CLIENT 多重背景
statReq MB_CLIENT 的實參,程序中會在需要時修改其值
statMode
statAddr
statLen
statPtr
statConn 連接參數(shù),具體含義參見鏈接文檔
statRead1 1 號站讀取到的數(shù)據(jù)
statRead2 2 號站讀取到的數(shù)據(jù)

2. 編寫輪循功能

如圖 11 所示,例子中使用 SCL 的 CASE OF 方式編寫輪詢程序,SCL 的 CASE OF 指令編寫順控可以參考鏈接:文檔。

思路如下:

步驟 0:等待連接建立,當連接建立則跳轉(zhuǎn)到步驟 1。

步驟 1:設(shè)置讀取參數(shù),設(shè)置 MB_Unit_ID = 1,觸發(fā)讀取,當讀取正常后,將讀取到的數(shù)據(jù)存入指定數(shù)據(jù)區(qū),然后跳轉(zhuǎn)到步驟 2,如果故障同樣跳轉(zhuǎn)到步驟 2,如果連接中斷則跳轉(zhuǎn)到步驟 0。

步驟 2:設(shè)置讀取參數(shù),設(shè)置 MB_Unit_ID = 2,觸發(fā)讀取,當讀取正常后,將讀取到的數(shù)據(jù)存入指定數(shù)據(jù)區(qū),然后跳轉(zhuǎn)到步驟 1,如果故障同樣跳轉(zhuǎn)到步驟 1,如果連接中斷則跳轉(zhuǎn)到步驟 0。

如果有更多的讀寫需要,可以建立更多的步驟。

以下程序的源文件壓縮包鏈接:源文件。將壓縮包下載解壓縮后,得到文件“CommUnitId.scl”,然后在 TIA Portal 項目中導入即可使用,導入源文件方式參見鏈接:文檔。

以下例程僅供參考。讀者如欲采納,風險自擔。

2d8d7c4a-0db4-11ed-ba43-dac502259ad0.png

圖 11. 例子程序

3. 在主程序中調(diào)用該 FB,如圖 12 所示。

2db14a08-0db4-11ed-ba43-dac502259ad0.png

圖 12. 調(diào)用程序

五.通訊測試

通訊結(jié)果如圖 13 所示。

2dc5945e-0db4-11ed-ba43-dac502259ad0.png

圖 13. 測試結(jié)果

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10804

    瀏覽量

    210839
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    5949

    瀏覽量

    135783
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    331

    瀏覽量

    17878

原文標題:S7-1200 MODBUS TCP 通信多請求處理

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問西門子S7-1200如何實現(xiàn)Modbus TCP通訊?

    西門子S7-1200如何實現(xiàn)Modbus TCP通訊?
    發(fā)表于 07-25 06:24

    西門子S7-1200 PLC的指令介紹

    西門子S7-1200 PLC,作為西門子自動化控制產(chǎn)品中的一款緊湊型控制器,憑借其強大的功能和易用性,在工業(yè)控制領(lǐng)域得到了廣泛的應用。S7-1200 PLC不僅具備標準的PLC功能,還融入
    的頭像 發(fā)表于 06-18 14:52 ?2251次閱讀

    西門子S7-1200 PLC如何通過模擬量控制變頻器

    在現(xiàn)代工業(yè)自動化領(lǐng)域中,變頻器因其能實現(xiàn)對交流電動機的平滑調(diào)速而得到了廣泛應用。西門子S7-1200 PLC(可編程邏輯控制器)作為工業(yè)控制領(lǐng)域的重要設(shè)備,其通過模擬量控制變頻器的方式,不僅提高了
    的頭像 發(fā)表于 06-18 09:26 ?2145次閱讀

    簡述S7-1200 PLC的硬件組成

    S7-1200 PLC(Programmable Logic Controller,可編程邏輯控制器)是西門子公司推出的一款小型、模塊化的可編程控制器,廣泛應用于工業(yè)自動化、過程控制、機械控制等領(lǐng)域
    的頭像 發(fā)表于 06-14 10:04 ?4152次閱讀

    西門子S7-1200 PLC的優(yōu)缺點分析

    西門子S7-1200 PLC作為自動化控制系統(tǒng)中的核心組件,自推出以來就受到了廣泛關(guān)注。其緊湊的模塊化設(shè)計、強大的功能以及靈活的擴展性,使得它在工業(yè)自動化領(lǐng)域占據(jù)了重要的地位。然而,任何產(chǎn)品都不是
    的頭像 發(fā)表于 06-13 11:33 ?2717次閱讀

    西門子S7-1200 PLC的基本功能

    西門子S7-1200 PLC(Programmable Logic Controller)是一款緊湊型、模塊化的可編程邏輯控制器,專為滿足各種自動化應用需求而設(shè)計。其強大的功能、靈活的配置以及卓越
    的頭像 發(fā)表于 06-13 11:29 ?1814次閱讀

    S7-1200 CPU 存儲卡的應用分析

    S7-1200 CPU 使用的存儲卡為 SD 卡,存儲卡中可以存儲用戶項目文件,有如下3種功能: 作為 CPU 的裝載存儲區(qū),用戶項目文件可以僅存儲在卡中,CPU 中沒有項目文件,離開存儲卡無法運行。
    發(fā)表于 03-15 11:11 ?972次閱讀
    <b class='flag-5'>S7-1200</b> CPU 存儲卡的應用分析

    如何使用S7-1200 CPU的存儲卡呢?

    S7-1200 CPU 使用的存儲卡為 SD 卡,存儲卡中可以存儲用戶項目文件,有如下3種功能
    的頭像 發(fā)表于 02-26 09:53 ?1669次閱讀
    如何使用<b class='flag-5'>S7-1200</b> CPU的存儲卡呢?

    S7-1200如何實現(xiàn)內(nèi)部數(shù)據(jù)的掉電保持?

    S7-1200 PLC 可以通過多種方式實現(xiàn)內(nèi)部數(shù)據(jù)的掉電保持,以確保在斷電或重啟后數(shù)據(jù)不會丟失。
    的頭像 發(fā)表于 01-29 16:11 ?6699次閱讀

    西門子S7-1200S7-300PLC之間的區(qū)別有哪些?

    S7-1200作為新推出的緊湊型控制器,其產(chǎn)品定位在原有的SIMATIC S7-200和S7-300之間,它與S7-300的區(qū)別主要體現(xiàn)在硬件、通信
    的頭像 發(fā)表于 01-10 10:54 ?991次閱讀
    西門子<b class='flag-5'>S7-1200</b>與<b class='flag-5'>S7</b>-300PLC之間的區(qū)別有哪些?

    s71200可用step7S7-1200的硬件結(jié)構(gòu)

    S7-1200主要由CPU模塊、信號板、信號模塊、通信模塊和編程軟件組成,各種模塊安裝在標準DIN導軌上。
    發(fā)表于 01-10 10:53 ?2243次閱讀
    <b class='flag-5'>s</b>71200可用step<b class='flag-5'>7</b>嗎 <b class='flag-5'>S7-1200</b>的硬件結(jié)構(gòu)

    西門子plc如何選型 s7-1500和s7-1200區(qū)別

    S7-1200是一種小型的PLC,適用于小型自動化應用。它具有較小的尺寸、較低的成本和中等級別的性能。S7-1200系列提供了多種CPU型號和不同數(shù)量的I/O模塊,可擴展性較強。
    發(fā)表于 01-10 10:48 ?5261次閱讀

    plc西門子s7-1200基礎(chǔ)知識:plc與plc之間如何通訊

    S7-1200編程軟件是Siemens TIA Portal,可以用于編寫程序并對PLC進行配置和調(diào)試。此外,還有一些輔助軟件和工具可用于幫助用戶診斷故障和管理數(shù)據(jù)。
    的頭像 發(fā)表于 01-10 10:43 ?2563次閱讀

    PLC西門子S7-200smart和S7-1200的區(qū)別?

    PLC西門子S7-200smart和S7-1200的區(qū)別? 西門子S7-200 smart和S7-1200是西門子公司推出的兩個PLC產(chǎn)品系列,用于工業(yè)自動化控制系統(tǒng)。雖然它們都屬于西
    的頭像 發(fā)表于 11-17 11:41 ?9530次閱讀

    S7-1200下載項目程序步驟詳解

    S7-1200的CPU本體上集成了PROFINET通信口,通過這個通信口可以實現(xiàn)CPU與編程設(shè)備的通信。 此外,S7-1200 可以通
    發(fā)表于 11-15 15:45 ?4290次閱讀
    <b class='flag-5'>S7-1200</b>下載項目程序步驟詳解