西門子 400 與 200 SMART S7通信 及 GET/PUT 指令


參考:http://www.ad.siemens.com.cn/productportal/prods/published/Comm/Comm_5.2/Comm_5.2.html

 

在200-SMART側無需編寫收、發程序。只需要將讀寫的字節連續規划在V區即可。程序由S7-400側編程調用PUT/GET指令。

首先,是硬件組網。

在程序編寫之前,需要先將400與200-SMART之間的通訊線路建立好。

NetPro網絡組態里為CPU新插入一條S7連接。

 

站點選擇 “未知” ,選擇通訊協議 “S7 連接” ,點擊應用。

 

 

在彈出的對話框中,先記住 “塊參數” 欄里的 “本地ID” ,編程要用到這個ID。

然后勾選 “建立主動連接” ,設置伙伴的 “地址” (200-SMART的 IP 地址),再點開右下角的 “地址詳細信息” 。

 

在彈出來的對話框設置 伙伴 的 插槽 為 “1” ,因為200-SMART沒有插槽的概念,所以默認為1,確認即可

最后再保存-->編譯-->下載后即可完成組網。

 

程序部分

400中使用 SFB14 和 SFB15 實現數據交換。

S7-400

描述

簡要描述

SFB 14

讀數據

單邊編程讀訪問

SFB 15

寫數據

單邊編程寫訪問

 

 

 

 

 

 

GET指令用法:

REQ:上升沿觸發的啟動信號,BOOL類型。不需要一直給電平信號。

ID:就是剛剛組網時用的 “本地ID” ,WORD類型。

ADDR_1:指向伙伴CPU讀取區域的指針,ANY指針類型。開頭加上 “P#” ,代表指針。由於200-SMART沒有DB塊的概念,所以默認DB1為200-SMART的V區,筆者的PLC 400里沒有用到DB1塊,不知道有沒有影響。“BYTE 6” 指從指針位置開始連續讀取6字節。

RD_1:指向本地CPU讀取區域的指針,用法同上。 “RD_1” 和 “ADDR_1” 的讀取長度要一致。

NDR:BOOL類型。為1時,代表接收數據成功。

ERROR:BOOL類型。為1時,代表有故障發生。有問題時看它的值。

STATUS:故障代碼,WORD類型。有問題時看它和ERROR的值,然后查手冊看代碼示意。

PUT指令用法:

 

 

 

 

PUT指令與GET指令基本相似,只不過完成信號NDR換成了DONE,其他的完全相同,這里不再過多贅述。

PUT指令和GET指令的REQ輸入信號為脈沖信號,注意不要同時觸發,筆者這里使用了400的脈沖位取上升沿和下降沿分別觸發。

編譯-->下載程序后,如果ERROR和STATUS沒有報錯,則證明通信成功,已經成功建立通訊了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM