參考: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沒有報錯,則證明通信成功,已經成功建立通訊了。