冗余cpu和單cpu之間的以太網(wǎng)通訊組態(tài)可以分為如下兩種情況:
1. 單cpu采用h類(lèi)型的cpu的情況,此時(shí)直接在網(wǎng)絡(luò)連接netpro中組態(tài)兩站之間的冗余連接s7 connection fault-tolerant,并在編程中使用通訊功能塊組態(tài)即可。(siemens標(biāo)準(zhǔn)解決方案)
2. 單cpu為非h類(lèi)型的普通400 cpu的情況,此時(shí)netpro中只能組態(tài)兩站之間的普通s7連接,因此在實(shí)際通訊過(guò)程中具體使用那個(gè)連接進(jìn)行通訊需要用戶在程序中編程判斷。本文檔將基于pcs7系統(tǒng),演示冗余cpu與普通單cpu之間的以太網(wǎng)通訊的一種解決方案。本方案非siemens發(fā)布的標(biāo)準(zhǔn)解決方案,僅供用戶參考學(xué)習(xí)。
基本原理:
在冗余cpu和單cpu之間組態(tài)兩個(gè)s7連接,使用其中的一個(gè)連接作為默認(rèn)連接在兩cpu之間進(jìn)行通訊,并同時(shí)相互傳送一個(gè)心跳信號(hào)(定時(shí)脈沖信號(hào),可以使用硬件時(shí)鐘信號(hào),cpu硬件參數(shù)中指定)。在cpu程序中編制一個(gè)看門(mén)狗,使用心跳信號(hào)對(duì)此看門(mén)狗進(jìn)行時(shí)間復(fù)位。如果第一個(gè)s7連接通訊故障,通過(guò)此連接cpu接受不到心跳信號(hào),看門(mén)狗時(shí)間溢出后則切換通訊連接到備用s7連接上。當(dāng)默認(rèn)連接恢復(fù)重新接收到心跳信號(hào)后,將連接切換回默認(rèn)連接。
操作步驟:
step1:打開(kāi)pcs7,插入as站,組態(tài)相應(yīng)硬件和網(wǎng)絡(luò)連接,網(wǎng)絡(luò)連接組態(tài)如下圖pic1所示,心跳信號(hào)設(shè)置如圖pic2所示。
pic1:網(wǎng)絡(luò)連接組態(tài)
pic2:硬件時(shí)鐘設(shè)置
step2:加入cfc,并對(duì)上述原理進(jìn)行實(shí)現(xiàn),cfc實(shí)例如下圖pic3所示。
pic3:cfc編程實(shí)例
圖中使用了兩個(gè)send_r發(fā)送功能塊和兩個(gè) rec_r接受功能塊,分別對(duì)應(yīng)兩個(gè)s7連接。正常情況下僅使用默認(rèn)s7連接的一對(duì)發(fā)送接收功能塊。一個(gè)自制看門(mén)狗time_mon(用于監(jiān)控心跳信號(hào))和多個(gè)接受信號(hào)選擇器sel_r(用于選擇有效的接收信號(hào))。
總結(jié):
以上僅僅提供了冗余系統(tǒng)與單系統(tǒng)之間基于以太網(wǎng)通訊的一種解決方案,供大家參考學(xué)習(xí)。
在使用通訊功能塊進(jìn)行各站之間的通訊時(shí),可以充分利用通訊功能塊的err端對(duì)通訊連接狀態(tài)進(jìn)行監(jiān)控。但在冗余系統(tǒng)和普通單系統(tǒng)之間的通訊情況下,使用err端會(huì)存在一些問(wèn)題:如果冗余系統(tǒng)側(cè)的某一cpu處于stop狀態(tài),在普通單cpu系統(tǒng)端使用此中斷的連接接受數(shù)據(jù)時(shí),err端不會(huì)為true。
另外,通訊功能塊中的id端可以用于指定此通訊功能塊采用哪一個(gè)s7連接進(jìn)行通訊,但需要注意的是:更改id號(hào)后,系統(tǒng)要求重新啟動(dòng)(或重新下載背景db塊)。因此無(wú)法實(shí)現(xiàn)cpu運(yùn)行過(guò)程中程序動(dòng)態(tài)的對(duì)id的更改來(lái)切換通訊連接通路。
本文檔基于如下硬件及軟件環(huán)境進(jìn)行的實(shí)驗(yàn),僅供參考。
軟件
pcs7
v6.1 sp1
step7
v5.3+sp2+hf7
operation system
windowsxp sp2
硬件
414-4h
6es7 414-3xj00-0ab0 v3.1.1
414-3
6es7 414-3xj00-0ab0 v3.1.0
cp443-1
6se6 443-1ex11-0xe0 v2.2