S7-1200 的 PROFINET 通信口可以做 S7 通信的服務(wù)器端或客戶端(CPUV2.0及以上版本)。S7-1200 僅支持 S7 單邊通信,僅需在客戶端單邊組態(tài)(如圖1)連接和編程(如圖2),而服務(wù)器端只準(zhǔn)備好通信的數(shù)據(jù)就行。和圖2所示
圖1
(資料圖片僅供參考)
圖2
指令介紹
1
PUT指令
S7-1200CPU的為S7通信提供了兩條用于讀寫數(shù)據(jù)的指令“PUT”和“GET”,使用PUT個(gè)GET指令對伙伴CPU進(jìn)行讀寫時(shí),不管伙伴CPU是處于運(yùn)行模式下還是停止模式下,S7通信依然可以正常進(jìn)行。
REQ:觸發(fā)PUT指令執(zhí)行,每次上升沿時(shí)觸發(fā)。
ID:S7通信連接ID,該連接ID在組態(tài)S7連接時(shí)生效。
ADDR_1:指向伙伴CPU的地址,寫入數(shù)據(jù)的區(qū)域地址
SD_1︰指向本地CPU的的地址,寫出數(shù)據(jù)的區(qū)域地址
DONE:數(shù)據(jù)被成功寫入到伙伴CPU
ERROR:指令執(zhí)行出錯(cuò),錯(cuò)誤代碼存儲(chǔ)在STATUS中
2
GET指令
REQ:觸發(fā)GET指令執(zhí)行,每次上升沿時(shí)觸發(fā)。
ID: S7通信連接ID,該連接ID在組態(tài)S7連接時(shí)生效。
ADDR_1∶指向伙伴CPU的地址,待讀取區(qū)域地址
RD_1∶指向本地CPU的的地址,讀取回?cái)?shù)據(jù)的存放地址
NDR︰伙伴CPU的數(shù)據(jù)被成功讀取
ERROR:指令執(zhí)行出錯(cuò),錯(cuò)誤代碼存儲(chǔ)在STATUS中
指令使用注意事項(xiàng)
(1)指令上使用的數(shù)據(jù)讀寫區(qū)域需要使用指針的方式進(jìn)行給定,對應(yīng)使用的數(shù)據(jù)塊需要使用非優(yōu)化訪問的塊。
(2)使用時(shí)需要確保參數(shù)ADDR與SD/RD定義的數(shù)據(jù)區(qū)域在數(shù)量、長度和數(shù)據(jù)類型方面都需要匹配。
(3)PUT/GET指令的最大可傳送數(shù)據(jù)長度為212/222字節(jié),通信數(shù)據(jù)區(qū)域數(shù)量的增加并不能增加通信數(shù)據(jù)長度,反之增大通信的數(shù)據(jù)區(qū)域量,通信最大的數(shù)據(jù)長度會(huì)減少。
示例:兩個(gè)1200PLC同一項(xiàng)目下S7通信
通信需求
①將客戶端(Client)中DB1.DBX0.0開始的10個(gè)字節(jié)發(fā)送到服務(wù)器的DB1.DBX0.0開始的10個(gè)字節(jié)中。
②讀取服務(wù)器(Serve)中的DB2.DBX0.0開始的10個(gè)字節(jié)到客戶端DB1.DBX0.0開始的10個(gè)字節(jié)中。
01
創(chuàng)建一個(gè)PLC作為客戶端,名稱為“Client”,設(shè)定IP地址為:192.168.0.10,勾選允許遠(yuǎn)程訪問
02
創(chuàng)建一個(gè)PLC作為服務(wù)器,名稱為“Sever”,設(shè)定IP地址為:192.168.0.12 ,勾選允許遠(yuǎn)程訪問
03
在中間欄的“連接”條目中,可以看到已經(jīng)建立的“S7_連接_1”,如圖所示。
04
點(diǎn)中上面的連接,在“S7_連接_1”的連接屬性中查看各參數(shù)。在常規(guī)中,顯示連接雙方的設(shè)備,IP地址。
①在本地ID中:顯示通訊連接的ID 號,這里ID=W#16#100(編程使用)。
②在特殊連接屬性中:可以選擇是否為主動(dòng)連接,這里client 是主動(dòng)建立連接。
③在地址詳細(xì)信息中:定義通訊雙方的 TSAP 號,這里不需要修改。
05
程序編寫
①客戶端側(cè)建立DB1和DB2塊,并建立Send和Recv名稱的數(shù)組。用于發(fā)送數(shù)據(jù)和接收數(shù)據(jù)
②服務(wù)器端建立DB1和DB2塊,并建立Send和Recv名稱的數(shù)組。用于發(fā)送數(shù)據(jù)和接收數(shù)據(jù)
③客戶端編寫程序
編輯:黃飛
標(biāo)簽: