西門子中國(授權)一級代理 湖南代理商PLC
| 更新時間 2024-12-29 08:00:00 價格 請來電詢價 西門子變頻器 西門子觸摸屏 西門子伺服電機 西門子PLC 西門子直流調速器 西門子電纜 聯系電話 13922889745 聯系手機 18475208684 聯系人 向小姐 立即詢價 |
本期內容使用1臺s7-1500與Modbus Poll仿真軟件進行Modbus TCP通訊,s7-1500作為服務端(提供數據的一側,可以理解為從站)
軟件測試環境:
TIA Portal V17Modbus Poll V10.9.0(文末附下載鏈接)硬件測試環境:
CPU 1515-2 PN注:Modbus TCP需要使用真實PLC或 PLCsim advance仿真(不支持1200)進行測試,小編手頭沒有1200用1500替代,兩種PLC配置及調試方式一致
MB_Server配置步驟如下:
打開TIA Portal項目,新建FC塊,并將MB_SERVER功能塊拖入程序中,需要為該塊指定背景數據塊;
image-20240605164523869MB_SERVER指令參數如下:
參數
聲明
數據類型
說明
DISCONNECT
Input
BOOL
“MB_SERVER”指令建立與一個伙伴模塊的被動連接。服務器會響應在 CONNECT 參數的 SDT“TCON_IP_v4”中輸入的 IP 地址的連接請求。
接受一個連接請求后,可以使用該參數進行控制:
MB_HOLD_REG
InOut
VARIANT
指向“MB_SERVER”指令中 Modbus 保持性寄存器的指針
MB_HOLD_REG 引用的存儲區必須大于兩個字節。
保持性寄存器中包含 Modbus 客戶端通過 Modbus 功能 3(讀取)、6(寫入)、16(多次寫入)和 23(在一個作業中讀寫)可訪問的值。
作為保持性寄存器,可以使用具有優化訪問權限的全局數據塊,也可以使用位存儲器的存儲區。
CONNECT
InOut
VARIANT
指向連接描述結構的指針
可以使用下列結構 (SDT):
對于 V4.2 以上指令版本的 MB_SERVER,TCP 的以下連接描述也可用:
NDR
Output
BOOL
“New Data Ready”:
DR
Output
BOOL
“Data Read”:
ERROR
Output
BOOL
如果在調用“MB_SERVER”指令過程中出錯,則將 ERROR 參數的輸出設置為“1”。有關錯誤原因的詳細信息,將由 STATUS 參數指定。
STATUS
Output
WORD
指令的詳細狀態信息。
0:未讀取數據
1:從 Modbus 客戶端讀取的數據
0:無新數據
1:從 Modbus 客戶端寫入的新數據
TCON_IP_V4_SEC(S7-1200 CPU 固件版本 V4.3 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)
TCON_QDN(S7-1200 CPU 固件版本 V4.4 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)
TCON_QDN_SEC(S7-1200 CPU 固件版本 V4.4 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)
TCON_IP_v4:包括建立指定連接時所需的所有地址參數。默認地址為 0.0.0.0(任何 IP 地址),但也可輸入具體 IP 地址,以便服務器僅響應來自該地址的請求。使用 TCON_IP_v4 時,可通過調用指令“MB_SERVER”建立連接。
TCON_Configured:包括所組態連接的地址參數。使用 TCON_Configured 時,會在下載硬件配置后由 CPU 建立連接。
0:在無通信連接時建立被動連接。
1:終止連接初始化。如果已置位該輸入,那么不會執行其它操作。成功終止連接后,STATUS 參數將輸出值 0003。
為MB_Server配置參數,注意CONNECT參數需要使用“TCON_IP_v4”類型數據;(按照小編習慣,通常先不管參數意義是什么,現在DB塊中將接口參數建好,保證程序可以下載)
image-20240605165943907為MB_SERVER指定保持寄存器數據區域,以指針的形式體現,建議使用非優化DB塊;
image-20240605170139174MB_SERVER配置完成,可對程序進行下載;由于CONNECT參數需要設置,因此MB_SERVER會產生錯誤代碼;
image-20240605170400284對CONNECT參數進行配置,CONNECT參數說明,及配置說明如下:
字節
參數
數據類型
起始值
說明
0 … 1
InterfaceID
HW_ANY
-
本地接口的硬件標識符
2 … 3
ID
CONN_OUC
-
引用該連接(取值范圍:1 到 4095)。
該參數將唯一確定 CPU 中的連接。指令“MB_SERVER”的每個實例必須使用唯一的 ID。該 ID 還不得被不同通信類型的其他指令同時使用。
注:對于固件版本為 V2.9 或更高版本的 S7-1500 CPU 和固件版本為 V4.5 或更高版本的 S7-1200 CPU,ID 也可能由指令“TCONSettings”提供。
4
ConnectionType
BYTE
11
連接類型
對于 TCP,選擇 11(十進制)。不允許使用其它連接類型。如果使用了其它連接類型(如 UDP),該指令的 STATUS 參數將輸出相應的錯誤消息。
5
ActiveEstablished
BOOL
FALSE
建立連接的方式所對應的 ID
對于被動連接建立,應選擇 FALSE。
6 … 9
RemoteAddress
ARRAY [1..4] of BYTE
0.0.0.0
連接伙伴的 IP 地址,例如,192.168.0.1:
如果指令“MB_SERVER”要接受來自任何連接伙伴的連接請求,應將“0.0.0.0”用作 IP 地址。
10 … 11
RemotePort
UINT
0
遠程連接伙伴的端口號(取值范圍:1 - 49151)。
如果指令“MB_SERVER”要接受來自遠程伙伴任何端口的連接請求,應將“0”用作端口號。
12 … 13
LocalPort
UINT
502
本地連接伙伴的端口號(取值范圍:1 - 49151)。
此 IP 端口號定義 Modbus 客戶端連接請求中要監視的 IP 端口。
默認值為 502。
注:InterfaceID,ID,ConnectionType,LocalPort參數必須設置,其它可以保持默認。
interfaceID通過硬件組態查看:
image-20240605172055991配置完成如下:
image-20240605172232237addr[1] = 192
addr[2] = 168
addr[3] = 0
addr[4] = 1
打開Mobdu Pol,設置連接參數,建立通訊連接
image-20240605172409611新建一個Modbus測試窗口(默認10個數據,功能碼03)
image-20240605172502851監控數據如下:
image-20240605190610142MB_SERVER配置完成;
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684