目前西門子300/400係列的PLC的通訊方式開始大量使用工業(ye) 以太網通訊,MP277/377、xP177B係列觸摸屏也集成了以太網接口,這帶來一個(ge) 好處,所有的接口都統一,在網絡通訊時采用都以太網接口,所有的設備組成一個(ge) 局域網,包括上位監控計算機、編程設備、PLC、觸摸屏都能很方便地互相訪問,需要擴展多一個(ge) 設備也很方便,隻需要加一個(ge) 交換機就能擴展出多個(ge) 接口。因為(wei) 有這些好處,所以采用以太網通訊越來越流行,下麵說一說以太網通訊的其中一個(ge) 應用,PLC與(yu) PLC之間通過以太網互連。
一、S7-300/400之間互連
1、采用PLC與(yu) PLC通過以太網訪問,需要增加以太網模塊,如CP343-1,CP443-1的模塊,或者采用帶有PN接口的PLC,如CPU315-2DP/PN的PLC。
2、采用兩(liang) 塊CP343-1互連,先在同一個(ge) 項目裏做好兩(liang) 套PLC的硬件組態,分配好IP地址,打開NetPro,選擇其中一個(ge) PLC,雙擊連接列表上的空白行,添加一個(ge)
S7 conection。選擇連接的另一個(ge) PLC,記住連接的ID號。通訊雙方的其中一個(ge) 站為(wei) Client端,激活“Establish an active connection”的選項(默認是激活的)。這樣NetPro的配置就完成了,編譯、下載完成
3、打開其中兩(liang) 套PLC的OB1,調用FB12(BSEND)塊發送數據,FB13(BRCV)塊接收數據,1#PLC的發送對應2#PLC的接收,1#PLC的接收對應2#PLC的發送。
4、調用FB12的時候幾個(ge) 參數的含意,a、REQ,發送開始,上升沿觸發發送工作;b、ID,連接ID號,這個(ge) ID號是在NetPro組態時生成的ID號;c、R_ID,連接號,相同連接號的FB塊互相對應發送接收數據,這個(ge) 是由用戶編程時定義(yi) 的,例如1#PLC的FB12的R_ID是DW#16#2,則2#PLC的FB13的R_ID也是DW#16#2,這樣才能保證正常接收發送;d、DONE,發送完成,如果REQ端是一個(ge) 不停的脈衝(chong) ,正常情況下DONE端也應該也是一個(ge) 不停的脈衝(chong) 反饋;e、SD_1,發送的開始地址,以P# x.x byte xxx來表示,f、LEN,發送數據的長度。
5、采用FB12、FB13來進行發送/接收是比較麻煩的,一方麵需要兩(liang) 端的以太網模塊都支持雙邊發送,如Cp343-1-Lean就不支持了,另一方麵,兩(liang) 邊都要寫(xie) 程序,對於(yu) 增加的係統不太方便,所以這時可以在NetPro裏把One-way(單邊通訊,激活後FB12、FB13不能使用)激活,采用FB14(GET)取數據、FB15(PUT)發送數據來做,FB14的參數定義(yi) 和FB12差不多,隻是少了R_ID和LEN,這樣更方便一些,而且還有一個(ge) 好處,不需要對原有的係統進行什麽(me) 更改,隻需要把單邊的PLC組態和程序下載就可以了
6、需要注意的另一個(ge) 問題是FB和SFB的區別,在400上采用SFB,在S7-300上采用FB,在S7-300集成的PN口上,采用SFB,這個(ge) 問題曾經折磨過我一兩(liang) 天才解決(jue) 。
二、WinLC與(yu) PLC互連
WinLC是在PC機上的軟件PLC,可以把一台PC機當成PLC使用。這樣對於(yu) 不能采用模擬器連接的軟件是比較方便的,如采用Intouch、Ifix這些SCADA軟件做為(wei) 上位機軟件時,測試是個(ge) 麻煩的問題,需要與(yu) 實際機器連接起來才能測試,但如果有WinLC,可以把程序拷到WinLC上運行,上位機軟件與(yu) WinLC聯機測試,省去不少工夫,所以WinLC對於(yu) 不方便進行現場測試的環境,是個(ge) 不錯的替代方案。WinLC既然是一套軟件PLC,就能夠實現PLC的功能,那麽(me) 與(yu) PLC通訊也是可以實現的,
下麵說一說WinLC與(yu) S7-300互連
1、新建一個(ge) 項目,建立一個(ge) S7-300的站點,硬件組態;建立一個(ge) PC站點,在PC站點上增加一個(ge) WinLC和一個(ge) IE General,IE General的IP地址與(yu) PC機的IP地址一致,其實IE General指的就是PC機的以太網卡。
2、打開NetPro,在WinLC上新建一個(ge) S7 conection,指向S7-300,編譯、存盤
3、在PCStation上增加WinLC和IE General,需要注意槽號要與(yu) 硬件配置時候一樣
3、打開WinLC的OB塊,調用SFB14、SFB15來讀寫(xie) S7-300的數據
4、啟動WinLC軟件,下載程序,這樣就可以實現軟件PLC與(yu) PLC互連了
三、兩(liang) 種方式的結合
如果有多台PLC需要與(yu) PC機上的SCADA軟件通過OPC進行通訊,但是又發現SCADA軟件讀取的速度太慢,不能滿足刷新要求,或者數據要做些預處理才能顯示,SCADA軟件上運行太多的腳本又影響速度,那麽(me) 通過軟PLC把多台PLC的數據先讀過來進行預處理,SCADA軟件隻與(yu) 一台PLC進行通訊,這樣SCADA軟件上的工作量會(hui) 少一些。這個(ge) 時候把上麵說的兩(liang) 種方式結合一下,就能夠實現這樣的功能了。
1、通訊連接參照上麵的方法設置
2、在WinLC的PC站點上添加一個(ge) OPC服務器,在NetPro裏麵打開OPC的連接列表,添加一個(ge) S7 conection,指向WinLC,編譯、下載
3、通過OPC客戶端可以直接訪問OPC服務器的內(nei) 容,常用的SCADA軟件如Intouch、Citect、IFix這些軟件都支持OPC,設置訪問連接就可以在軟件上直接讀寫(xie) 了,如果更簡單的界麵,可以自己用VB編寫(xie) 一個(ge) OPC客戶端,讀寫(xie) 數據都在VB程序上實現,不使用SCADA軟件,可以省掉不少錢了。