您當前的位置:首頁 > 攝影

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

作者:由 老王的工控筆記 發表于 攝影時間:2020-09-25

西門子PLC1200的S7通訊(同一專案下)——GET接收指令

1。0 首先在同一專案下,組態兩個PL,如下圖,組態了2個1200PLC 1214C的PLC

2。0 點選連結裡面,在視窗的右上角選擇S7連線,這個視窗可以看到本地ID,和主動建立連線勾選,然後選擇新增,下面的資訊框就會顯示已新增

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

2。1 如下圖,就是建立S7連線後的組態

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

3。0 然後在每個PLC的程式下,新建兩個接收資料塊和傳送資料塊,然後每個資料塊設定100個位元組的傳送和接收區,並且找到資料塊屬性,把最佳化訪問勾選去掉

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

4。0 從右邊指令欄——通訊——S7連線,找到GET接收讀取指令

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

4。1 接下來我們解讀下這個GET指令塊

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

REQ:控制引數request,當上升沿時,啟動交換資料

ID:需要匹配夥伴連線的物件的定址引數

ADDR_1:指向夥伴PLC上需要讀取DB塊,起始地址,資料長度,資料型別

RD_1:指向儲存夥伴PLC已讀取的資料的DB塊,起始地址,資料長度,資料型別

註解:如上圖,你可以看到ADDR_1和RD_1是一樣的,但他代表的是不一樣的PLC,ADDR_1是指夥伴PLC的DB3資料塊0。0地址開始的10個位元組,而RD是指本地的DB塊,另外這裡的設定跟TCP通訊不太一樣,指標直接指向夥伴PLC的傳送地址,如果TCP的話,只能被動接收,是不知道從哪發出的

NDR:0作業尚未開始或仍在執行,1作業已成功完成

ERROR和STATUS:當ERROR=0,STATUS為0000H表示既無警告也無錯誤,也可能<>0000H警告,當ERROR=1,則肯定出錯了

5。0 另外還要在程式中寫兩步,如下圖,當NDR為1,完成作業時,把STATUS的狀態儲存到變數中,同理ERROR的時候也需要儲存,這樣方便你判斷除錯

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

6。0 另外需要注意下,CPU——屬性——訪問寫入讀出的許可權要開起來

西門子PLC1200的S7通訊(同一專案下)--GET接收指令

標簽: PLC  S7  Error  組態  夥伴