版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、MB_CLIENT 介紹說明“MB_CLIENT”指令作為 Modbus TCP 客戶端通過 S7-1200 CPU 的 PROFINET 連接進行通信。 使用該指令,無需其它任何硬件模塊。 通過“MB_CLIENT”指令,可以在客戶端和服務器之間建立連接、發(fā)送請求、接收響應并控制 Modbus TCP 服務器的連接終端。參數下表列出了指令“MB_CLIENT”的參數:參數聲明數據類型說明REQ InputBOOL與 Modbus TCP 服務器之間的通信請求REQ 參數受到等級控制。 這意味著只要設置了輸入 (REQ=true),指令就會發(fā)送通信請求。其它客戶端背景數據塊的通信請求被阻止
2、。 在服務器進行響應或輸出錯誤消息之前,對輸入參數的更改不會生效。 如果在請求期間再次設置了參數 REQ,此后將不會進行任何其它傳輸。DISCONNECT InputBOOL通過該參數,可以控制與 Modbus 服務器建立和終止連接:0: 建立與指定 IP 地址和端口號的通信連接。1: 斷開通信連接。 在終止連接的過程中,不執(zhí)行任何其它功能。 成功終止連接后,STATUS 參數將輸出值 7003。而如果在建立連接的過程中設置了參數 REQ,將立即發(fā)送請求。CONNECT_IDInputUINT確定連接的唯一 ID。 指令“MB_CLIENT”和“MB_SERVER”的每個實例都必須指定一個唯一
3、的連接 ID。IP_OCTET_1InputUSINT1. Modbus TCP 服務器 IP 地址* 中的八位字節(jié)。IP_OCTET_2InputUSINT2. Modbus TCP 服務器 IP 地址* 中的八位字節(jié)。IP_OCTET_3InputUSINT3. Modbus TCP 服務器 IP 地址* 中的八位字節(jié)。IP_OCTET_4InputUSINT4. Modbus TCP 服務器 IP 地址* 中的八位字節(jié)。IP_PORTInputUINT服務器上使用 TCP/IP 協議與客戶端建立連接和通信的 IP 端口號(默認值: 502).MB_MODE InputUSINT選擇請求模
4、式(讀取、寫入或診斷)。MB_DATA_ADDR InputUDINT由“MB_CLIENT”指令所訪問數據的起始地址。DATA_LENInputUINT數據長度: 數據訪問的位數或字數(請參見“MB_MODE 和 MB_DATA_ADDR 參數” - 數據長度)。 MB_DATA_PTRInOutVARIANT指向 Modbus 數據寄存器的指針: 寄存器是用于緩存從 Modbus 服務器接收的數據或將發(fā)送到 Modbus 服務器的數據的緩沖區(qū)。 該指針必須引用具有標準訪問權限的全局數據塊。尋址到的位數必須除以 8。DONEOutBOOL只要最后一個作業(yè)成功完成,立即將輸出參數 DONE 的
5、位置位為“1”。 BUSYOutBOOL0: 當前沒有正在處理的“MB_CLIENT ”作業(yè)1: "MB_ CLIENT ”作業(yè)正在處理中ERROROutBOOL0: 無錯誤1: 出錯。 出錯原因由參數 STATUS 指示。STATUS OutWORD指令的錯誤代碼。* Modbus TCP 服務器 32 位 IPv4 IP 地址 中的 8 位長度的部分。有關有效數據類型的更多信息,請參見“有效數據類型概述”。說明 “MB_CLIENT”調用過程中統一輸入數據Modbus 客戶端調用 Modbus 指令時,輸入參數的狀態(tài)將存儲在內部,并在下一次調用時比較。 這種比較用于確定這一特定調
6、用是否初始化當前請求。 如果使用一個通用背景數據塊,那么可以執(zhí)行多個“MB_CLIENT”調用。 在執(zhí)行“MB_CLIENT”實例的過程中,不得更改輸入參數的值。 如果在執(zhí)行過程中更改了輸入參數,那么將無法使用“MB_CLIENT”檢查實例當前是否正在執(zhí)行。多個客戶端連接Modbus TCP 客戶端可以支持多個 TCP 連接,連接的最大數目取決于所使用的 CPU。 一個 CPU 的總連接數,包括 Modbus TCP 客戶端和服務器的連接數,不能超過所支持的最大連接數。 Modbus TCP 連接也可以由客戶端和/或服務器連接共享。使用各客戶端連接時,請記住以下規(guī)則:每個“MB_CLIENT”
7、連接都必須使用唯一的背景數據塊。對于每個“MB_CLIENT”連接,必須指定唯一的服務器 IP 地址。每個“MB_CLIENT”連接都需要一個唯一的連接 ID。該指令的各背景數據塊都必須使用各自相應的連接 ID。 連接 ID 與背景數據塊組合成對,對每個連接,組合對都必須唯一。根據服務器組態(tài),可能需要或不需要 IP 端口的唯一編號。該指令的靜態(tài)變量下表列出了“MB_CLIENT”指令背景數據塊的可編輯靜態(tài)變量。變量數據類型起始值說明Blocked_Proc_TimeoutREAL3.0如果有一個被阻止的 Modbus 實例,則為復位靜態(tài)變量 ACTIVE 前的等待時間(單位為秒)。 例如,如果
8、輸出了一個客戶端請求,而且在該請求完全執(zhí)行之前中止執(zhí)行客戶端功能,則可能發(fā)生這種情況。 最大等待時間為 55 秒。MB_Transaction_IDWORD1Modbus TCP 協議的事務 ID。 只有在 Modbus TCP 服務器需要一個不同值的情況下,才能更改起始值“1”。MB_Unit_IDBYTE255Modbus 協議的單元 ID。 該變量對應于 Modbus RTU 協議的從站地址。 只有在將 Modbus TCP 服務器用作一個網關,同時由 Modbus 服務器中應用程序進行控制時,才能更改此值。RCV_TIMEOUTREAL2.0“MB_CLIENT”指令等待服務器響應的時
9、間間隔(單位為秒)。ConnectedBOOL0指示是否已建立與所指定客戶端的連接: 1 = 已連接,0 = 未連接。二、REQ 和 DISCONNECT 參數說明如果當前未執(zhí)行“MB_CLIENT”指令的實例,并且 DISCONNECT 參數的值為“0”,那么將在 REQ = 1 時執(zhí)行新作業(yè)。如果尚無連接,將在執(zhí)行期間建立一個連接。如果在執(zhí)行該活動作業(yè)之前再次執(zhí)行“MB_CLIENT”指令的相同實例(DISCONNECT = 0 且 REQ = 1),那么不會在活動作業(yè)完成時執(zhí)行該實例。 只有在活動作業(yè)完成時,才能啟動新作業(yè) (REQ = 1)。可以使用 DONE 參數監(jiān)視執(zhí)行狀態(tài)。 如果
10、順序執(zhí)行“MB_CLIENT”指令,那么可以使用該參數監(jiān)視執(zhí)行狀態(tài)。三、MB_MODE 和 MB_DATA_ADDR 參數說明“MB_CLIENT”指令將使用 MB_MODE 參數,而不是函數代碼。 MB_DATA_ADDR 參數用于指定待訪問的數據的 Modbus 起始地址。 MB_MODE 和 MB_DATA_ADDR 參數的組合定義了當前 Modbus 消息中所使用的函數代碼。 下表列出了 MB_MODE 參數、Modbus 功能和地址空間之間的關系。MB_MODEModbus 功能數據長度功能和數據類型MB_DATA_ADDR0011 到 2000讀取輸出位: 每個調用 1 到 200
11、0 位1 到 99990021 到 2000讀取輸入位: 每個調用 1 到 2000 位10001 到 199990031 到 125讀取保持寄存器: 每個調用 1 到 125 WORD40001 到 499990041 到 125讀取輸入字: 每個調用 1 到 125 WORD30001 到 399991051寫入輸出位:每個調用 1 位1 到 99991061寫入保持寄存器: 1 WORD 每個調用40001 到 49999 1152 到 1968寫入多個輸出位: 每個調用 2 到 1968 位1 到 99991162 到 123寫入多個保持寄存器:每個調用 2 到 123 WORD400
12、01 到 49999 2 151 到 1968寫入一個或多個輸出位:每個調用 1 到 1968 位1 到 9999216 1 到 123寫入一個或多個保持寄存器: 每個調用 1 到 123 WORD40001 到 49999 11110讀取服務器通信的狀態(tài)字和事件計數器:狀態(tài)字反映了處理的狀態(tài)(0 - 未處理,0xFFFF - 正在處理)每次成功發(fā)送一條消息時,事件計數器都將遞增。執(zhí)行該功能時,將不計算“MB_CLIENT”指令的 MB_DATA_ADDR 和 MB_DATA_LEN 參數。-80 08 1通過錯誤代碼 0x0000 檢查服務器狀態(tài)(返回循環(huán)測試 - 服務器發(fā)回請求):1 WO
13、RD 每個調用-81081通過錯誤代碼 0x000A 復位服務器的事件計數器:1 WORD 每個調用3 到 10、12 到 79、82 到 255預留四、MB_DATA_PTR 參數說明MB_DATA_PTR 參數是一個指向數據緩沖區(qū)的指針,該緩沖區(qū)用于存儲從 Modbus 服務器讀取或寫入 Modbus 服務器的數據。 作為數據緩沖區(qū),可以使用全局數據塊或存儲區(qū)域 (M)。對于存儲區(qū)域 (M) 中的緩沖區(qū),可通過以下方式使用 ANY 格式的指針: “P#位地址” “數據類型” “長度”(例如: P#M1000.0 WORD 500).MB_DATA_PTR 參數使用一個通信緩沖區(qū):對于“MB
14、_CLIENT”指令的通信功能:讀取和寫入 Modbus 服務器地址 00001 到 09999 和 10001 到 19999 的 1 位數據。讀取 Modbus 服務器地址 30001 到 39999 和 40001 到 49999 的 16 位 WORD 數據。寫入 Modbus 服務器地址 40001 到 49999 的 16 位 WORD 數據。在從/向全局 DB 或 由 MB_DATA_PTR 參數指定的存儲區(qū) (M) 進行數據傳輸的過程中(長度:位或 WORD)。如果在 MB_DATA_PTR 參數中使用該緩沖區(qū)的一個數據塊,那么需要為 DB 元素指定數據類型。對于 Modbus
15、 位地址,將使用 1 位的數據類型 BOOL對于 Modbus WORD 地址,將使用 16 位的數據類型,如 WORD、UINT、INT 或 REAL。對于 2 個 Modbus WORD 地址,將使用 32 位的數據類型(雙字),如 DWORD、DINT 或 REAL。通過 MB_DATA_PTR,還可以訪問復雜的 DB 元素,如:標準數組元素名稱唯一的結構元素名稱唯一且數據類型長度為 16 或 32 位的復雜結構。MB_DATA_PTR 參數的數據區(qū)可以在不同的全局數據塊中(或在不同的存儲區(qū)中)。 例如,可以根據讀作業(yè)和寫作業(yè)使用不同的數據塊,或者為每個“MB_CLIENT”站使用單獨的
16、數據塊。參數 STATUS(常規(guī)狀態(tài)信息)STATUS* (W#16#)說明0000指令已無錯執(zhí)行完畢。0001連接已建立。0003連接被終止。7000未激活任何調用 (REQ=0)。7001首次調用時,REQ=1: 啟動處理;BUSY 的值為 1。7002中間調用(與 REQ 無關)。 處理已激活;BUSY 的值為 1。7003正在終止連接。7004連接已建立且處于受監(jiān)視狀態(tài)。未激活任何作業(yè)處理。7005已發(fā)送數據。7006已接收數據。80BBACTIVE_EST 參數值無效(建立此類連接的標識符,請參見 T_CON_PARAM): 只允許對服務器建立被動連接 (ACTIVE_EST = F
17、ALSE)。只允許對客戶端建立主動連接 (ACTIVE_EST = TRUE)。8380接收的 Modbus 幀格式錯誤或接收到的字節(jié)過少。* 在程序編輯器中,錯誤代碼可顯示為整數或十六進制值。有關切換顯示格式的更多信息,請參見“另請參見”。五、參數 STATUS參數 STATUS(協議錯誤)STATUS* (W#16#)響應 Modbus 客戶端的代碼 (B#16#)說明838101不支持功能代碼。838203數據長度錯誤。838302數據地址錯誤或訪問 MB_DATA_PTR 地址以外的區(qū)域。838403數據值錯誤。838503不支持診斷錯誤代碼(功能代碼 08)。* 在程序編輯器中,錯誤
18、代碼可顯示為整數或十六進制值。有關切換顯示格式的更多信息,請參見“另請參見”。參數 STATUS(參數錯誤)除了下表列出的錯誤 還可能發(fā)生由通信指令(“TCON”、“TDISCON”、“TSEND”和“TRCV”)引起的“MB_CLIENT”指令錯誤。STATUS* (W#16#)說明80C8在指定的時間段中,服務器無響應。 請檢查與 Modbus 服務器的連接。 只有在嘗試了所組態(tài)的可重復嘗試次數之后,才會報告該錯誤。 如果“MB_CLIENT”指令在指定時間內沒有收到最初傳輸事務 ID(MB_TRANSACTION_ID 變量)的應答,則輸出該錯誤代碼。8188參數 MB_MODE 的值無
19、效。8189MB_DATA_ADDR 參數的數據地址無效。818AMB_DATA_LEN 參數中的數據長度無效。818B參數 MB_DATA_PTR 中的指針無效。 請檢查 MB_DATA_ADDR 和 MB_DATA_LEN 參數的值。818CMB_DATA_PTR 指針將引用一個已優(yōu)化的數據塊。 既可以使用一個具有標準訪問權限的數據塊,也可以使用一個存儲區(qū)參數 BLOCKED_PROC_TIMEOUT 超時(請參見指令的靜態(tài)變量)。 已超出 55 秒的限制。818D事務 ID(MB_TRANSACTION_ID 變量)與最初發(fā)送的 ID 不一致(請參見指令的靜態(tài)變量)。8200該端口正在處
20、理另一個 Modbus 請求。MB_CLIENT 具有相同連接參數的另一實例正在處理現有 Modbus 請求。8380接收到的已傳輸 Modbus 數據塊格式不正確或接收到的字節(jié)過少。8386接收到的功能代碼與最初發(fā)送的代碼不一致。8387指定的連接 ID 與之前請求的不同。 “MB_CLIENT”指令的各背景數據塊,只能使用一個連接 ID。服務器收到的 Modbus TCP 協議 ID 不為“0”時,也會輸出錯誤代碼。8388Modbus 服務器發(fā)送的數據長度與所請求的不同。 只有使用 Modbus 功能 15 或 16 時才會發(fā)生這種錯誤。* 在程序編輯器中,錯誤代碼可顯示為整數或十六進制
21、值。有關切換顯示格式的更多信息,請參見“另請參見”。說明 內部使用的通信指令的錯誤代碼。對于“MB_CLIENT”指令,除了會發(fā)生表中列出的錯誤外,還會發(fā)生由該指令所使用的通信指令(“TCON”、“TDISCON”、“TSEND”和“TRCV”)所引起的錯誤。錯誤代碼通過“MB_CLIENT”指令的背景數據塊來指定。 相應指令的錯誤代碼會顯示在 Static 部分中的 STATUS 下。錯誤代碼的含義在相應通信指令文檔中提供。 六、MB_CLIENT 示例 1: 通過 TCP 連接發(fā)送多個請求說明通過一個 TCP 連接,發(fā)送多個 Modbus 客戶端請求。 為此,需使用相同的背景數據塊、相同的連接 ID 和相同的端口號。每次只能激活一個客戶端。 處理完一個客戶端后,再繼續(xù)處理下一個。 必須在程序中定義執(zhí)行順序。在下列樣本程序中,還將復制 STATUS 輸出參數的值。程序段
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國共軛亞油酸軟膠囊市場調查研究報告
- 2025年度窗簾設計軟件研發(fā)與應用合同4篇
- 二零二五年度大數據公司成立合作協議范本4篇
- 2025-2030全球修護潤唇膏行業(yè)調研及趨勢分析報告
- 2025至2031年中國普通耐堿耐火澆注料行業(yè)投資前景及策略咨詢研究報告
- 2025-2030全球清真營養(yǎng)補充劑行業(yè)調研及趨勢分析報告
- 2025年全球及中國拉鏈自立袋包裝機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025至2031年中國不銹鋼自動水泵行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國自動耦合裝置潛水排污泵數據監(jiān)測研究報告
- 2025至2030年中國糧油機械數據監(jiān)測研究報告
- 無人化農場項目可行性研究報告
- 《如何存款最合算》課件
- 社區(qū)團支部工作計劃
- 拖欠工程款上訪信范文
- 2024屆上海市金山區(qū)高三下學期二模英語試題(原卷版)
- 《wifi協議文庫》課件
- 2025年新高考語文復習 文言文速讀技巧 考情分析及備考策略
- 2024年海口市選調生考試(行政職業(yè)能力測驗)綜合能力測試題及答案1套
- 一年級下冊數學口算題卡打印
- 2024年中科院心理咨詢師新教材各單元考試題庫大全-下(多選題部分)
- 真人cs基于信號發(fā)射的激光武器設計
評論
0/150
提交評論