如下圖:第二步:為MB_SERVER的CONNECT參數(shù)配置對應的數(shù)據(jù)塊和參數(shù)。
如下"/>
變頻器: | 西門子代理商 |
觸摸屏: | 西門子一級代理 |
伺服電機: | 西門子一級總代理 |
單價: | 面議 |
發(fā)貨期限: | 自買家付款之日起 天內發(fā)貨 |
所在地: | 廣東 惠州 |
有效期至: | 長期有效 |
發(fā)布時間: | 2023-12-14 05:35 |
最后更新: | 2023-12-14 05:35 |
瀏覽次數(shù): | 147 |
采購咨詢: |
請賣家聯(lián)系我
|
第一步:從通信指令庫中調用MB_SERVER,選擇V5.2版本。如下圖:
第二步:為MB_SERVER的CONNECT參數(shù)配置對應的數(shù)據(jù)塊和參數(shù)。如下圖:
ID號用來區(qū)分不同的連接,如果創(chuàng)建了多個MB_SERVER連接,應設置多個ID號。本地端口號默認選擇502,也可選擇其它。遠程連接伙伴的IP地址和端口號可以不設置。
第三步:創(chuàng)建一些數(shù)據(jù)塊,作為Modbus TCP的數(shù)據(jù)Buffer的原始數(shù)據(jù),供Modbus客戶端訪問。如下圖:
本例一共創(chuàng)建了5個數(shù)據(jù)塊,第1個類型為:01過程映像輸出(線圈),第2個類型為:02過程映像輸入(開關輸入),第3個和第4個類型為:03保持寄存器,第5個類型為:04輸入寄存器。第1個和第2個數(shù)據(jù)塊中定了含有16個布爾類型的元素的一維數(shù)組,其余3個數(shù)據(jù)塊定義了含有16個字類型的元素的一維數(shù)組。
第四步:在MB_SERVER的背景數(shù)據(jù)塊中定義Modbus TCP的數(shù)據(jù)Buffer,和Modbus地址形成映射關系。如下圖:
注意相同類型的數(shù)據(jù)的分配與連接,不可疊加但可以以字為單位跳空分配。
第五步:下載程序并用Modbus Poll工具進行數(shù)據(jù)監(jiān)控。如下圖:
總結:
如果在MB_SERVER背景數(shù)據(jù)塊中的Data_Area_Array中定義數(shù)據(jù)區(qū)域,則通過形參MB_HOLD_REG以指針形式傳遞的數(shù)據(jù)將失效,盡管如此,該參數(shù)也不能設置為NULL,且其指向的存儲區(qū)應大于等于2個字節(jié);
如果只打算通過形參MB_HOLD_REG指向的數(shù)據(jù)來作為Modbus TCP的數(shù)據(jù),則MB_SERVER背景數(shù)據(jù)塊中的Data_Area_Array應保持默認參數(shù),不應配置其它參數(shù);
用戶最多可在不同數(shù)據(jù)塊中定義8個數(shù)據(jù)區(qū)域(Data_Area_Array只提供了8組),每個數(shù)據(jù)塊只能包含一個數(shù)據(jù)區(qū)域。單個MODBUS請求只能對恰好一個數(shù)據(jù)區(qū)域進行讀寫操作。每個數(shù)據(jù)區(qū)域對應于一個MODBUS地址區(qū)域??梢栽贛B_SERVER背景數(shù)據(jù)塊的靜態(tài)變量Data_Area_Array中定義數(shù)據(jù)區(qū)域;
如果要使用的數(shù)據(jù)區(qū)域不到8個,則所需數(shù)據(jù)區(qū)域必須緊密相連,沒有間隙。在處理過程中,數(shù)據(jù)區(qū)域中的第一個空白條目會終止數(shù)據(jù)區(qū)域搜索。例如,如果已定義Data_Area_Array字段元素 1、2、4 和 5,由于字段元素 3 留空,則Data_Area_Array只會識別字段元素 1 和 2;
單個 MODBUS 請求只能對一個數(shù)據(jù)區(qū)域進行讀寫操作。如果要讀取覆蓋多個數(shù)據(jù)區(qū)域的保持性寄存器,則需要多個 MODBUS 請求。
知識小卡片