目前西門子s7-300/400系列的plc的通訊方式開始大量使用工業(yè)以太網(wǎng)通訊,mp277/377、xp177b系列觸摸屏也集成了以太網(wǎng)接口,這帶來一個(gè)好處,所有的接口都統(tǒng)一,在網(wǎng)絡(luò)通訊時(shí)采用都以太網(wǎng)接口,所有的設(shè)備組成一個(gè)局域網(wǎng),包括上位監(jiān)控計(jì)算機(jī)、編程設(shè)備、plc、觸摸屏都能很方便地互相訪問,需要擴(kuò)展多一個(gè)設(shè)備也很方便,只需要加一個(gè)交換機(jī)就能擴(kuò)展出多個(gè)接口。因?yàn)橛羞@些好處,所以采用以太網(wǎng)通訊越來越流行,下面說一說以太網(wǎng)通訊的其中一個(gè)應(yīng)用,plc與plc之間通過以太網(wǎng)互連。
一、s7-300/400之間互連
1、采用plc與plc通過以太網(wǎng)訪問,需要增加以太網(wǎng)模塊,如cp343-1,cp443-1的模塊,或者采用帶有pn接口的plc,如cpu315-2dp/pn的plc。
2、采用兩塊cp343-1互連,先在同一個(gè)項(xiàng)目里做好兩套plc的硬件組態(tài),分配好ip地址,打開netpro,選擇其中一個(gè)plc,雙擊連接列表上的空白行,添加一個(gè)
s7 conection。選擇連接的另一個(gè)plc,記住連接的id號。通訊雙方的其中一個(gè)站為client端,激活“establish an active connection”的選項(xiàng)(默認(rèn)是激活的)。這樣netpro的配置就完成了,編譯、下載完成
3、打開其中兩套plc的ob1,調(diào)用fb12(bsend)塊發(fā)送數(shù)據(jù),fb13(brcv)塊接收數(shù)據(jù),1#plc的發(fā)送對應(yīng)2#plc的接收,1#plc的接收對應(yīng)2#plc的發(fā)送。
4、調(diào)用fb12的時(shí)候幾個(gè)參數(shù)的含意,a、req,發(fā)送開始,上升沿觸發(fā)發(fā)送工作;b、id,連接id號,這個(gè)id號是在netpro組態(tài)時(shí)生成的id號;c、r_id,連接號,相同連接號的fb塊互相對應(yīng)發(fā)送/接收數(shù)據(jù),這個(gè)是由用戶編程時(shí)定義的,例如1#plc的fb12的r_id是dw#16#2,則2#plc的fb13的r_id也是dw#16#2,這樣才能保證正常接收發(fā)送;d、done,發(fā)送完成,如果req端是一個(gè)不停的脈沖,正常情況下done端也應(yīng)該也是一個(gè)不停的脈沖反饋;e、sd_1,發(fā)送的開始地址,以p# x.x byte xxx來表示,f、len,發(fā)送數(shù)據(jù)的長度。
5、采用fb12、fb13來進(jìn)行發(fā)送/接收是比較麻煩的,一方面需要兩端的以太網(wǎng)模塊都支持雙邊發(fā)送,如cp343-1-lean就不支持了,另一方面,兩邊都要寫程序,對于增加的系統(tǒng)不太方便,所以這時(shí)可以在netpro里把one-way(單邊通訊,激活后fb12、fb13不能使用)激活,采用fb14(get)取數(shù)據(jù)、fb15(put)發(fā)送數(shù)據(jù)來做,fb14的參數(shù)定義和fb12差不多,只是少了r_id和len,這樣更方便一些,而且還有一個(gè)好處,不需要對原有的系統(tǒng)進(jìn)行什么更改,只需要把單邊的plc組態(tài)和程序下載就可以了
6、需要注意的另一個(gè)問題是fb和sfb的區(qū)別,在s7-400上采用sfb,在s7-300上采用fb,在s7-300集成的pn口上,采用sfb,這個(gè)問題曾經(jīng)折磨過我一兩天才解決。
二、winlc與plc互連
winlc是在pc機(jī)上的軟件plc,可以把一臺pc機(jī)當(dāng)成plc使用。這樣對于不能采用模擬器連接的軟件是比較方便的,如采用intouch、ifix這些scada軟件做為上位機(jī)軟件時(shí),測試是個(gè)麻煩的問題,需要與實(shí)際機(jī)器連接起來才能測試,但如果有winlc,可以把程序拷到winlc上運(yùn)行,上位機(jī)軟件與winlc聯(lián)機(jī)測試,省去不少工夫,所以winlc對于不方便進(jìn)行現(xiàn)場測試的環(huán)境,是個(gè)不錯(cuò)的替代方案。winlc既然是一套軟件plc,就能夠?qū)崿F(xiàn)plc的功能,那么與plc通訊也是可以實(shí)現(xiàn)的,
下面說一說winlc與s7-300互連
1、新建一個(gè)項(xiàng)目,建立一個(gè)s7-300的站點(diǎn),硬件組態(tài);建立一個(gè)pc站點(diǎn),在pc站點(diǎn)上增加一個(gè)winlc和一個(gè)ie general,ie general的ip地址與pc機(jī)的ip地址一致,其實(shí)ie general指的就是pc機(jī)的以太網(wǎng)卡。
2、打開netpro,在winlc上新建一個(gè)s7 conection,指向s7-300,編譯、存盤
3、在pcstation上增加winlc和ie general,需要注意槽號要與硬件配置時(shí)候一樣
3、打開winlc的ob塊,調(diào)用sfb14、sfb15來讀寫s7-300的數(shù)據(jù)
4、啟動winlc軟件,下載程序,這樣就可以實(shí)現(xiàn)軟件plc與plc互連了
三、兩種方式的結(jié)合
如果有多臺plc需要與pc機(jī)上的scada軟件通過opc進(jìn)行通訊,但是又發(fā)現(xiàn)scada軟件讀取的速度太慢,不能滿足刷新要求,或者數(shù)據(jù)要做些預(yù)處理才能顯示,scada軟件上運(yùn)行太多的腳本又影響速度,那么通過軟plc把多臺plc的數(shù)據(jù)先讀過來進(jìn)行預(yù)處理,scada軟件只與一臺plc進(jìn)行通訊,這樣scada軟件上的工作量會少一些。這個(gè)時(shí)候把上面說的兩種方式結(jié)合一下,就能夠?qū)崿F(xiàn)這樣的功能了。
1、通訊連接參照上面的方法設(shè)置
2、在winlc的pc站點(diǎn)上添加一個(gè)opc服務(wù)器,在netpro里面打開opc的連接列表,
添加一個(gè)s7 conection,指向winlc,編譯、下載
3、通過opc客戶端可以直接訪問opc服務(wù)器的內(nèi)容,常用的scada軟件如intouch、citect、ifix這些軟件都支持opc,設(shè)置訪問連接就可以在軟件上直接讀寫了,如果更簡單的界面,可以自己用vb編寫一個(gè)opc客戶端,讀寫數(shù)據(jù)都在vb程序上實(shí)現(xiàn),不使用scada軟件,可以省掉不少錢了。