一、西門子S7-200 SMART PLC的MODBUS TCP通訊參數
S7-200 SMART 支持做 Modbus TCP 的客戶端或者服務器,可以實現 PLC 之間通信,也可以實現與(yu) 支持此通信協議的第三方設備通信。通信夥(huo) 伴數量比較多的時候,可以使用交換機,擴展以太網接口。
V2.4以下版本的SMART需要手動安裝MODBUS TCP庫,從(cong) V2.4開始軟件集成了該庫。STEP 7-MicroWIN SMART的庫
Connect,BOOL,=1:服務器接受來自客戶端的請求;=0:服務器可以斷開已經建立的連接
IP_Port,WORD,服務器本地端口號
MaxIQ,WORD,對應數字量輸入/輸出點(對應Modbus 地址參數0xxxx或者1xxxx)
可設置範圍:0-256,=0表示禁用對輸入和輸出的所有讀取和寫(xie) 入。建議將 MaxIQ 值設置為(wei) 256。
MaxAI,WORD,對應模擬量輸入參數(對應Modbus 地址參數 3xxxx)可設置範圍:0-56。= 0表示禁用對模擬量輸入的讀取。要允許訪問所有 CPU 模擬量輸入,MaxAI 的建議值如下:對於(yu) CPU CR40 和 CR60,為(wei) 0,對於(yu) 所有其它 CPU 型號,為(wei) 56
MaxHold,WORD,用於(yu) Modbus 地址 4xxxx 或 4yyyyy 的 V 存儲(chu) 器中的字保持寄存器數。
HoldStart,Dword,指向 V 存儲(chu) 器中保持寄存器起始位置的指針
Done,BOOL,TRUE:以下任一條件時為(wei) 真:客戶端已與(yu) 服務器建立連接;客戶端已與(yu) 服務器斷開連接;客戶端已接收 Modbus 響應;發生錯誤FALSE:客戶端正忙於(yu) 建立連接或等待來自服務器的 Modbus 響應。
Error,BOOL,出現錯誤,僅(jin) 一個(ge) 周期有效
MBUS_CLIENT客戶端,最多調用8個(ge) 。
程序執行周期每次掃描都必須調用 MBUS_CLIENT,直到 Done 輸出為(wei) TRUE。在每個(ge) 周期中,MBUS_CLIENT 均會(hui) 退出,以便程序可以繼續運行。客戶端完成請求時,MBUS_CLIENT 將 Done 設置為(wei) TRUE。
REQ,位,=0無通信請求,=1向服務器請求通信
CONNECT,位,=1:嚐試與(yu) 分配的IP地址及端口號建立連接;=0:嚐試斷開已經建立的連接,忽略Req的任何請求
IP_OCTET_1-4,字節,要通信的服務器的IP地址
IP_PORT,字,默認值502,服務器的IP端口號
RW,字節,模式選擇,=0讀,=1寫(xie)
ADDR,雙字,要進行讀寫(xie) 的參數的 Modbus 起始地址
COUNT,字,數據長度,數據訪問的位數或字數。數字量輸入/輸出Count=1表示1 bit,最大1920位,對於(yu) 模擬量輸入和保持寄存器,最大 Count 值為(wei) 120 字。
DATAPTR,指針,數據寄存器地址指針,指向本地用於(yu) 讀/寫(xie) 操作的數據地址區域的首地址DONE,位,請求已經完成且沒有出錯後,DONE位保持TRUE一個(ge) 掃描周期的時間
BUSY,位,=1操作正在進行
ERROR,位,錯誤,保持為(wei) TRUE一個(ge) 掃描周期的時間
STATUS,字,狀態,用於(yu) 輸出錯誤代碼
S7-200 SMART 做 Modbus TCP 通信,可以支持的功能碼及功能描述及所占用的地址區,如表4.所示。客戶端會(hui) 主動的發送請求,服務器響應。在通信指令填寫(xie) 參數中沒有直接填寫(xie) 功能碼,而是通過多個(ge) 參數填寫(xie) 共同確定功能碼的。
表4.功能碼概況說明
舉(ju) 例:和Modbus TCP服務器交換數據參數支持功能碼:03,在客戶端指令中設置兩(liang) 個(ge) 參數確定03功能碼:
RW=0:確定讀取數據,(篩選出可能會(hui) 使用的功能碼:01,02,03,04),
Addr:40001-49999/400001-465535,表示交換數據為(wei) 寄存器類型的數據。
二、200SMART的服務器端設置
1、係統塊中設置服務器的IP地址,以確保IP地址設置無誤。此步驟為(wei) 可選,如果確定IP地址設置無誤,可忽略此步驟。設置方法如圖所示。
2、鼠標點擊 MAIN 主程序的程序段1的編程區域,從(cong) 庫文件夾下找到 Modbus TCP 服務器指令 MBUS_SERVER,鼠標雙擊,指令出現在程序段1中,操作如圖所示。
4、鼠標選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫存儲(chu) 器,如圖所示。
5、在庫存儲(chu) 區分配對話框中手動輸入存儲(chu) 區的起始地址。此實例為(wei) VB5000開始,以使指令庫可以正常工作。確保庫存儲(chu) 區與(yu) 程序中其他已使用的地址不衝(chong) 突。使用建議地址無法確定是否有地址重疊,所以推薦手動輸入正確的庫存儲(chu) 區首地址。如圖所示。
通信測試結果
由於(yu) 客戶端要讀取服務器的數據,在狀態圖表中修改當前值,如圖所示
1、係統塊中設置客戶端的IP地址。設置方法如圖所示。
2、鼠標點擊 MAIN 主程序的程序段1的編程區域,從(cong) 庫文件夾下找到 Modbus TCP 客戶端指令 MBUS_CLIENT,鼠標雙擊,指令出現在程序段1中,操作如圖3.所示。
4、鼠標選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫存儲(chu) 器,如下圖所示。
5、在庫存儲(chu) 區分配對話框中手動輸入存儲(chu) 區的起始地址。此實例為(wei) VB5000開始,以使指令庫可以正常工作。確保庫存儲(chu) 區與(yu) 程序中其他已使用的地址不衝(chong) 突。使用建議地址無法確定是否有地址重疊,所以推薦手動輸入正確的庫存儲(chu) 區首地址。如下圖所示。
將M0.0置位為(wei) 1,然後在狀態圖表中創建變量,VW20-VW30 共6個(ge) 字,監視值如圖7.所示。