2台S7-1200使用S7協議GET/PUT通訊


兼容性:

軟件版本:最低 TIA PORTAIL V11。

硬件版本:最低 2.0。
連接數:3個用於服務器端(被動)連接,8個用於客戶端(主動)連接。
編程示例:
這個示例演示兩台S7 1200 PLC之間使用S7協議進行通訊,使用的IDE是TIA PORTAIL V13。
新建一個項目,在“項目樹”里雙擊“添加新設備”,添加兩台PLC,這里以CPU 1214C DC/DC/DC(6ES7 214-1AG40-0XB0)為例。
其中PLC_1為客戶端(主站),PLC_2為服務器(從站)。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在項目樹雙擊“設備與網絡”按住PLC_1的“Ethernet接口(綠色方塊)”,拉到PLC_2的Ethernet接口上,建立一個子網。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
 
點擊左上角的“連接”按鈕,可以看到PLC變為藍綠色。在PLC_1上右鍵,點擊“添加新連接(N)”按鈕
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在彈出的窗口中,在左側選擇PLC_2,右上角類型選擇“S7連接”右下角勾選“主動建立連接”。點擊“添加”后關閉窗口。
如果需要和其他不是本項目的兼容S7協議的設備通信,則選擇未指定。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在設備與網絡里能找到已建立的連接
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
回到項目樹,雙擊PLC_2中的“設備組態”,右擊PLC,點“屬性”,在“常規-保護-連接機制”中勾選“允許借助 PUT/GET 通信從遠程伙伴訪問”
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在“常規-PROFINET接口-以太網地址”在IP協議中選中“在項目中設置IP地址”。填寫IP地址為192.168.0.11,子網掩碼255.255.255.0。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊

在“PLC_2-程序塊”中雙擊“添加塊”,添加2個DB塊,這里命名分別為GET_Data,PUT_Data,編號分別為1、2。
在2個塊中建立名為Data,類型為int的變量。名稱、類型可任意指定。
PLC_1將從GET_Data中讀取數據,向PUT_Data中寫入數據。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在“PLC_2-程序塊”中右擊“GET_Data”點擊“屬性”。取消勾選“優化的塊訪問”確認保存,PUT_Data塊也這樣操作。
至此PLC_2的編程工作完畢,若想在最后的通信中看到效果,可以在GET_Data塊中初始化一些數據,這里就不寫了。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在“PLC_1-程序塊”中雙擊“添加塊”添加一個DB塊,命名為"Recv_Data",塊號為1,在塊中添加類型為int的變量“Data”創建完成后同樣要取消塊的優化訪問。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在“PLC_1-PLC變量”中,雙擊“默認變量表”,如圖所示建立變量
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
打開“PLC_1-程序塊”的“Main[OB1]”,在右側指令窗口中找到“通信-S7通信-GET”拉到OB1的程序段1上。會提示創建DB塊,確認即可。
注意,若要和多個服務器通信,需要創建多個。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
在GET上右鍵屬性,在“組態-連接參數-伙伴”的端點中選擇剛才建好的那個PLC_2連接即可,如果選擇未指定設備,則要填好對方的IP地址。
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
返回OB1,如圖填好其他參數
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
參數說明:
REQ:2Hz_clock //使用 2Hz 的時鍾脈沖,上升沿激活發送任
ID:W#16#100 //S7連接ID
ADDR_1:P#DB1.DBX0.0 BYTE 2 //要讀取對方(PLC_2)數據存儲區地址指針,因為我們只讀一個int,所以只有兩個byte長度,不僅可以讀DB塊,I、Q、M等存儲區也可讀。
RD_1:P#DB1.DBX0.0 BYTE 2 //自己用於存儲接收數據的存儲區指針。
NDR:GET_NDR //為1時,讀取完成
ERROR:GET_ERROR //為1時,表示接收失敗,有故障。
STATUS:GET_STATUS //故障代碼
以上參數具體釋義請查閱自帶的信息系統。 
以同樣的方法,將“通信-S7通信-PUT”拉到OB1的程序段2,填好配置好屬性及參數,如圖
[轉載][西門子]S7-1200使用S7協議GET/PUT通訊
參數說明:
REQ:GET_NDR //使用讀取成功的標志位,上升沿激活發送。
ID:W#16#100 //S7連接ID
ADDR_1:P#DB2.DBX0.0 BYTE 2  //要寫入對方(PLC_2)數據存儲區地址指針
SD_1:P#DB1.DBX0.0 BYTE 2 //自己用於存儲發送數據的存儲區指針。這里我們將剛才讀取的數據發送回去。
DONE:PUT_DONE  //為1時,寫入完成
ERROR:PUT_ERROR //為1時,表示寫入失敗,有故障。
STATUS:PUT_STATUS //故障代碼
至此編程工作已經全部結束,可以使用監視功能查看運行狀況。


免責聲明!

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



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