<tfoot id="ysawa"></tfoot>
<tfoot id="ysawa"><abbr id="ysawa"></abbr></tfoot>
<noscript id="ysawa"><optgroup id="ysawa"></optgroup></noscript>
  • <pre id="ysawa"></pre>
      歡迎光臨潯之漫智控技術(上海)有限公司網站!
      誠信促進發展,實力鑄就品牌
      服務熱線:

      15618722057

      產品展示 / products 您的位置:網站首頁 > 產品展示 > > 西門子 > 西門子PLC模塊SM1232
      西門子PLC模塊SM1232

      西門子PLC模塊SM1232

      簡要描述:西門子PLC模塊SM1232
      潯之漫智控技術(上海)有限公司 上海詩慕自動化設備有限公司
      本公司銷售西門子自動化產品,*,質量保證,價格優勢
      西門子PLC,西門子觸摸屏,西門子數控系統,西門子軟啟動,西門子以太網
      西門子電機,西門子變頻器,西門子直流調速器,西門子電線電纜
      我公司大量現貨供應,價格優勢,*,

      產品型號:

      所屬分類:西門子

      更新時間:2025-06-14

      廠商性質:代理商

      詳情介紹

      西門子PLC模塊SM1232                  西門子PLC模塊SM1232

       潯之漫智控技術(上海)有限公司 上海詩慕自動化設備有限公司
      本公司銷售西門子自動化產品,*,質量保證,價格優勢
      西門子PLC,西門子觸摸屏,西門子數控系統,西門子軟啟動,西門子以太網
      西門子電機,西門子變頻器,西門子直流調速器,西門子電線電纜
      我公司大量現貨供應,價格優勢,*,

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

      以 ZKA-4488-ETH 為例,出廠默認通訊參數如下:

      ZK模塊 IP 為:192.168.0.105

      TCP 端口為:10001

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

      工作模式為:服務器模式

      二、 S7-200 Modbus TCP通信

      1 S7-200 Modbus TCP 通信簡介

      S7-1200 CPU 本體上集成了一個 PROFINET 通信口,支持以太網和基于 TCP/IP和UDP 的通信標準。這個PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持電纜交叉自適應,因此一個標準的或是交叉的以太網線都可以用于這個接口。使用這個通信口可以實現 S7-1200 CPU 與編程設備的通信,與HMI觸摸屏的通信,以及與其它 CPU 之間的通信,

      S7-1200 CPU 的PROFINET 通信口主要支持以下通信協議及服務

      • Profinet IO (V2.0開始)
      • S7 通信 (V2.0開始支持客戶端)
      • TCP
      • ISO on TCP
      • UDP(V2.0開始)
      • Modbus TCP
      • HMI通信
      • Web通信(V2.0開始)。

      硬件版本 V4.1 支持的協議和最大的連接資源:

      S7-1200的連接資源

      分配給每個類別的預留連接資源數為固定值;您無法更改這些值。 但可組態 6個"可用自由連接"以按照應用要求增加任意類別的連接數。

      ● 示例1: 1 個 PG 具有 3 個可用連接資源。 根據當前使用的 PG 功能,該 PG 實際可能使用其可用連接資源的 1、2 或 3。 在 S7-1200 中,始終保證至少有 1 個 PG,但不允許超過 1 個 PG。

      在CPU屬性>常規>連接資源顯示:

      硬件版本 V3.0 支持的協議和最大的連接資源:

      • 3個連接用于操作面板
      • 1個連接用于編程設備(PG)與 CPU 的通信
      • 8個連接用于Open IE ( TCP, ISO on TCP, UDP) 的編程通信,使用T-block 指令來實現
      • 3個連接用于S7 通信的服務器端連接,可以實現與S7-200,S7-300以及 S7-400 的以太網S7 通信
      • 8個連接用于S7 通信的客戶端連接,可以實現與S7-200,S7-300以及 S7-400 的以太網S7 通信

      連接數是固定不變的,不能自定義。

      注意:建立被動的TCP 、ISO on TCP 和UDP的連接時,建議使用端口范圍: 2000~5000。一些端口號和TSAP 號是受到限制不能被使用的。 下列端口號和TSAP號不能使用:

      • ISO TSAP (passive): 01.00, 01.01, 02.00, 02.01, 03.00, 03.01
      • TCP/UDP port (passive): 20, 21, 25, 80, 102, 135, 161, 34962 … 34964,53, 80, 162, 443, 520, 9001

      2 Modbus TCP 指令庫

      S7-1200集成PN接口MODBUS TCP通信概述

      Modbus TCP是標準的網絡通信協議,通過CPU上PN接口進行TCP/IP通信,不需要額外的通信硬件模塊,Modbus TCP使用開放式用戶通信連接作為Modbus通信路徑,所支持的混合客戶機和服務器連接數最大為CPU所允許的最大開放式用戶通信連接數8個。

      軟件 STEP7 V11 SP1版本開始,S7-1200CPU 從Firmware V1.0.2開始,不再需要安裝Modbus TCP的庫文件,可以直接調用Modbus TCP的庫指令“MB_CLIENT”和“MB_SERVER”使用實現Modbus TCP通信功能,如圖1所示。

      圖1. Modbus TCP的庫指令

      3 Modbus TCP 功能編程

      S7-1200 做Modbus Tcp Client(客戶端)

      MB_CLIENT 進行客戶機和服務器TCP連接、發送命令消息、接收響應以及控制服務器的斷開。

      1.調用MB_CLIENT通信指令,進入 “Program blocks” > “OB1” 主程序中,調用MODBUS TCP客戶機指令,如圖2所示。

      圖2. MB_CLIENT通信指令

      功能塊參數意義如下表1.:

      管腳

      說明

      REQ

      使能: False-無Modbus通訊請求,True-請求與服務器通訊,Done完成位來后才可以執行下次請求,建議采用上升沿觸發請求;

      DISCONNECT

      控制與服務器建立和終止連接:0-建立與IP地址和端口號的通訊連接,默認為0;1-斷開通訊連接,在終止連接的過程中,不執行任何其他功能;

      CONNECT_ID

      連接的ID號:每個連接只有一個ID號;

      IP_OCTET_1~4

      ZKA-4488-ETH的IP地址

      IP_PORT

      ZKA-4488-ETH上使用TCP/IP協議與客戶端建立通訊的IP端口號

      MB_MODE

      選擇請求模式(讀取、寫入或診斷),具體對照參照表1.;

      MB_DATA_ADDR

      訪問數據的起始地址;

      MB_DATA_LEN

      數據長度:數據訪問的位數或字數;

      MB_DATA_PRT

      指向Modbus數據寄存器的指針:用于緩存從Modbus服務器接收的數據或將發送到Modbus服務器數據的緩沖區,可以是DB塊或M區,如果是DB塊則需要定義為“標準與S7- 300/400兼容”的類型,見下圖3;

      DONE

      完成位:作業完成,無錯誤,該位置1;

      BUSY

      作業狀態位:0-當前沒有正在處理的“MB_CLIENT”作業;1-“MB_CLIENT”作業正在處理;

      ERROR

      錯誤位:0-無錯誤;1-出現錯誤,錯誤原因查看STATUS;

      STATUS

      錯誤代碼;

      表1. 功能塊參數意義

      2.MB_DATA_PTR數據塊的新建

      通過“Program blocks”>“Add new block”,選擇“Data block”創建 DB 塊,選擇“標準與S7- 300/400兼容” ,點擊“OK”鍵,定義數據區為100個字的數組,如圖3所示。

      圖3. 創建MB_DATA_PTR數據塊

      3. MB_MODE、MB_DATA_ADDR和功能碼的關系

      MB_CLIENT指令中,MB_MODE、MB_DATA_ADDR和MB_DATA_LEN三個參數組合定義了當前Modbus消息中所用的功能代碼,如表2.。

      Modbus 功能

      MB_MODE

      MB_DATA_ADDR

      操作和數據類型

      數據長度

      FC01

      0

      00001~09999

      讀取輸出位 每個請求1~2000個位

      1~2000

      FC02

      0

      10001~19999

      讀取輸入位 每個請求1~2000個位

      1~2000

      FC03

      0

      40001~49999 或 400001~465535

      讀取保持寄存器 每個請求1~125個字

      1~125

      FC04

      0

      30001~39999

      讀取輸入字 每個請求1~125個字

      1~125

      FC05

      1

      00001~09999

      寫一個輸出位 每個請求1個位

      1

      FC06

      1

      40001~49999 或 400001~465535

      寫一個保持寄存器 每個請求1個字

      1

      FC15

      1

      00001~09999

      寫多個輸出位 每個請求2~1968個位

      2~1968

      FC16

      1

      40001~49999 或 400001~465535

      寫多個保持寄存器 每個請求2~123個字

      2~123

      FC15

      2

      00001~09999

      寫一個或多個輸出位 每個請求1~1968個位

      1~1968

      FC16

      2

      40001~49999 或 400001~465535

      寫一個或多個保持寄存器 每個請求1~123個字

      1~123

      FC11

      11

      讀取服務器通信狀態字和事件計數器:狀態字反映處理狀態(0-未處理;0XFFFF-處理中);每次成功發送一條消息后,事件計數器都將遞增。執行功能時,MB_CLIENT指令的MB_DATA_ADDR和MB_DATA_LEN參數都將被忽略。

      0

      FC08

      80

      通過數據診斷代碼0X0000檢查服務器狀態 每次請求1個字

      1

      FC08

      81

      通過數據診斷代碼0X000A重新設置服務器事件計數器 每次請求1個字

      1

      3~10、12~79、82~255

      保留

      表2. MB_MODE、MB_DATA_ADDR和功能碼的關系

      如上例中S7-1200作客戶機,用FC04功能碼讀取ZKA-4488-ETH的模擬輸入AI1通道的讀數的兩個字,起始從Modbus地址30001開始,接收的數據存放在緩沖區DB3.DBX0.0開始區域,設置如上:MB_MODE=0,MB_DATA_ADDR=30001,MB_DATA_LEN=2,對應關系為:30001->DB3.DBW0 ,30002->DB3.DBW2。

      注意:Slave ID 是ZKA-4488-ETH的站地址,和客戶機中“MB_CLIENT” 中的“CONNECT_ID” 不是一個概念,實際上與客戶機中“MB_CLIENT”的背景數據塊中的STAT變量“MB_UNIT_ID”需要一致,在1200中該地址默認為16#00FF,實際使用時可以改成1,即:與ZKA-4488-ETH配置文件中的站號保持一致,當S7-1200掛接了多個ZKA-4488-ETH時,該值可以按序編號,也可以都使用值1,因為modbus-tcp依然可以根據指向的IP地址發送數據。

      圖7. 客戶機中“MB_CLIENT”的背景數據塊中的STAT變量“MB_UNIT_ID”

      5.通訊測試

      S7-1200作客戶機,用FC04功能碼讀取ZKA-4488-ETH的兩個字,設置客戶機和ZKA-4488-ETH的功能、起始地址、端口等參數相對應,具體設置如上,設置M5.0和M0.0為1,觸發請求,如圖8所示。

      圖8. S7-1200作客戶機,用FC04功能碼讀取服務器的兩個字

      通訊結果如圖9所示,從服務器讀到數據00,11到客戶機的DB3.DBW0和DB3.DBW2區域。

      圖9. 通訊結果

      6.MB_CLIENT 參數 STATUS 錯誤代碼查詢參考下面兩個列表3.和表4.。

      STATUS(W#16#)

      Modbus服務器返回的代碼(B#16#)

      錯誤說明

      8381

      01

      不支持功能代碼

      8382

      03

      數據長度錯誤

      8383

      02

      數據地址錯誤或訪問的數據超出MB_DATA_PTR的地址區

      8384

      03

      數據值錯誤

      8385

      03

      不支持診斷錯誤代碼(功能代碼08)

      表3. 協議錯誤代碼

      STATUS(W#16#)

      錯誤說明

      7001

      MB_CLIENT 正在等待Modbus服務器響應TCP端口處的連接或斷開連接請求,僅在第一次執行連接或斷開操作時才報告此代碼

      7002

      MB_CLIENT 正在等待Modbus服務器響應TCP端口處的連接或斷開連接請求,等待連接或斷開操作完成時,將針對任何后續執行報告此代碼

      7003

      斷開操作已成功完成(僅在一個PLC掃描周期內有效)

      80C8

      服務器在的時間內無響應,請檢查與Modbus服務器設備的連接,嘗試過任何組態的重試操作后,才報告此錯誤

      8188

      參數MB_MODE的值無效

      8189

      參數MB_DATA_ADDR的值無效

      818A

      參數MB_DATA_LEN的長度無效

      818B

      參數MB_DATA_PTR中的指針無效

      818C

      參數MB_DATA_PTR指向優化的區域,必須為“標準與S7- 300/400兼容”的DB或M區

      8200

      端口正在處理另一個Modbus請求

      8380

      接收到的Modbus楨有缺陷或接收到的字節太少

      8387

      的連接ID與用于先前請求的ID不同,只能有一個單個連接ID與每個MB_CLIENT背景數據塊配合使用

      8388

      Modbus服務器返回一些和請求內容不同的數據,這只適合Modbus功能15或16

      表4. 參數錯誤代碼

      除了上面列出的MB_CLIENT錯誤外,也可以從底層傳輸通信指令(TCON、TDISCON、TSEND和TRCV)返回錯誤,參考相應指令的錯誤代碼。

      5 Modbus TCP 常問問題

      MB_CLIENT 指令的背景數據塊中的 "MB_Unit_ID" 有什么功能?

      注意:Slave ID 是ZKA-4488-ETH的站地址,和客戶機中“MB_CLIENT” 中的“CONNECT_ID” 不是一個概念,實際上與客戶機中“MB_CLIENT”的背景數據塊中的STAT變量“MB_UNIT_ID”需要一致,在1200中該地址默認為16#00FF,實際使用時可以改成1,即:與ZKA-4488-ETH配置文件中的站號保持一致,當S7-1200掛接了多個ZKA-4488-ETH時,該值可以按序編號,也可以都使用值1,因為modbus-tcp依然可以根據指向的IP地址發送數據

      圖 11. MB_Unit_ID

      S7-1200 MODBUS TCP通信多請求處理怎么做?

      單獨的客戶機連接需要遵循的規則:

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

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

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

      4.是否需要IP端口號取決于服務器組態;

      連接ID和背景數據塊組合成對,對每個連接來說,組合對都是的。

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

      方法一:如果TCP連接充裕,可以建立多個不同的連接發送請求,即每個請求使用一個獨立的連接,調用獨立的“MB_CLIENT”功能塊,具體操作參考“Modbus TCP”部分。通過不同的連接發送多個請求,“MB_CLIENT”功能塊多次調用,但是需要使用不同的背景數據塊,不同的ID號和不同的端口號。

      方法二:通過公共的連接發送多個請求。

      通過公共的連接發送多個請求,“MB_CLIENT”功能塊多次調用,但是需要使用相同的背景數據塊,連接ID號,IP地址和端口號。在任意時間,只能有一個MB_CLIENT請求處于激活狀態,在一個請求完成執行后,下一個請求再開始執行,輪循處理。

      在此,我們以方法二為例,介紹S7-1200如何通過分次請求獲取ZKA-4488-ETH內部寄存器的數據:

      1.S7-1200的IP地址192.168.1.218,將系統存儲器字節設置為MB1,如圖1所示,圖2所示。

      圖1 IP地址設置

      圖2 系統存儲器字節設置

      1.新建數據塊,訪問指向ZKA-4488-ETH的IP地址和端口號

      如圖6所示,新建DB,添加變量類型為TCON_IP_V4,設置InterfaceId,ID,ActiveEstablished,RemoteAddress,RemotePort等參數,具體含義參見鏈接。

      圖6 設置連接變量

      如圖7所示,在DB中建立結構數組,用于輪詢控制位以及數據,其中元素0用于第一次讀取,元素1用于第二次讀取。Init用于初始標志位。

      圖7 輪詢數據

      2.編寫輪循功能

      1)如圖8所示,用“FirstScan”在第一次掃描中將初始標志位置位。

      圖8 初始化標志位

      2)如圖9所示,程序段2中,第二步的完成位或者錯誤位去置位第一步的使能位復位第二步的使能位,同時復位第二步的完成位、錯誤位、觸發的沿變量。

      程序段3中,一般情況下是EN通過第一步的使能位使能,REQ通過使能位的上升沿觸發,設置模式、讀取數據地址、長度、存儲地址、連接數據、完成、錯誤位等。此外需要考慮第一次觸詢,可以使用手動觸發,在這里使用初始化標志位實現指令的第一次使能,去進行CPU和調試軟件的TCP連接,使用Connected標志位觸發第一次的REQ觸發。

      圖9 請求1觸發

      如圖10所示,程序段4中,第一步的完成位或者錯誤位去置位第二步的使能位復位第一步的使能位,同時復位第一步的完成位、錯誤位、觸發的沿變量,最后復位初始化標志位,確保第一個MB_CLIENT不會一直接通。

      程序段5中,EN通過第二步的使能位使能,REQ通過使能位的上升沿觸發,設置模式、讀取數據地址、長度、存儲地址、連接數據、完成、錯誤位等。

      圖10 請求2觸發

      五.通訊測試

      通訊結果如圖11 所示。

      圖11 測試結果



      留言詢價

      留言框

      • 產品:

      • 您的單位:

      • 您的姓名:

      • 聯系電話:

      • 常用郵箱:

      • 省份:

      • 詳細地址:

      • 補充說明:

      • 驗證碼:

        請輸入計算結果(填寫阿拉伯數字),如:三加四=7