王興宇
摘要:提出一種基于openvpn軟件將現(xiàn)場(chǎng)PLC和現(xiàn)場(chǎng)筆記本通過(guò)INTERNET將遠(yuǎn)程調(diào)試工作員站連接到一個(gè)虛擬專(zhuān)用網(wǎng)中并進(jìn)行異地遠(yuǎn)程跨網(wǎng)段調(diào)試的方法。
關(guān)鍵詞:PLC,遠(yuǎn)程調(diào)試,虛擬局域網(wǎng),OPENVPN。
背景
現(xiàn)場(chǎng)調(diào)試和維護(hù)在PLC項(xiàng)目執(zhí)行過(guò)程中是很重要的一環(huán),決定了項(xiàng)目是否能夠準(zhǔn)時(shí)正確的驗(yàn)收及通過(guò),現(xiàn)場(chǎng)裝置是否能長(zhǎng)期無(wú)故障運(yùn)行。在項(xiàng)目調(diào)試階段,除一些不可或缺的長(zhǎng)周期現(xiàn)場(chǎng)調(diào)試外,在一些較為簡(jiǎn)單的PLC項(xiàng)目調(diào)試中或是項(xiàng)目投運(yùn)后的小BUG及流程優(yōu)化過(guò)程中,經(jīng)常會(huì)碰到現(xiàn)場(chǎng)地處非常偏遠(yuǎn),工程師出差的路途時(shí)間遠(yuǎn)遠(yuǎn)超過(guò)調(diào)試時(shí)間的情況出現(xiàn),為了更加精細(xì)的管理項(xiàng)目,節(jié)約雙方的經(jīng)濟(jì)及時(shí)間成本,此時(shí)可通過(guò)遠(yuǎn)程調(diào)試的方式來(lái)解決問(wèn)題,本文以我公司寶豐改造二期項(xiàng)目袋濾器防爆PLC控制系統(tǒng)為例,探討一下遠(yuǎn)程調(diào)試的方法。
由于工業(yè)生產(chǎn)的安全考慮,PLC均是局域網(wǎng)內(nèi)操作,工程師站必須和PLC在同一局域網(wǎng)內(nèi)才可調(diào)試,這意味著如果希望進(jìn)行遠(yuǎn)程調(diào)試只要將遠(yuǎn)程工程師站和PLC通過(guò)技術(shù)手段放入同一局域網(wǎng)內(nèi)即可。
現(xiàn)有解決方案如下:
1) 現(xiàn)場(chǎng)PC安裝調(diào)試軟件,遠(yuǎn)程PC使用遠(yuǎn)程桌面連接現(xiàn)場(chǎng)PC進(jìn)行調(diào)試。
2) 現(xiàn)場(chǎng)提供專(zhuān)用的VPN路由器,由網(wǎng)線或無(wú)線等手段連接到INTERNET之后連接遠(yuǎn)程PC。
上述方案缺點(diǎn)如下:
1) 遠(yuǎn)程桌面方式要求現(xiàn)場(chǎng)PC安裝調(diào)試軟件,有遠(yuǎn)程需求的小項(xiàng)目業(yè)主一般基于成本考慮項(xiàng)目中不會(huì)配現(xiàn)場(chǎng)調(diào)試PC,大項(xiàng)目基本上都需要現(xiàn)場(chǎng)調(diào)試無(wú)遠(yuǎn)程需求,調(diào)試軟件文件體積基本都很大,傳到現(xiàn)場(chǎng)PC安裝存在傳輸時(shí)間及授權(quán)的問(wèn)題。
2) 現(xiàn)場(chǎng)不會(huì)有專(zhuān)用的VPN路由器,郵寄的話趕不上項(xiàng)目進(jìn)度,還需要考慮成本及回收問(wèn)題,且這些路由器均為商業(yè)產(chǎn)品不開(kāi)源,如果跨區(qū)出現(xiàn)網(wǎng)絡(luò)問(wèn)題,無(wú)法實(shí)時(shí)調(diào)試及優(yōu)化。
本文給出解決方案使用遠(yuǎn)程工程師站直接調(diào)試PLC,現(xiàn)場(chǎng)PC及手機(jī)只是用來(lái)傳輸數(shù)據(jù),不用安裝大型組態(tài)軟件,僅采用開(kāi)源的OPENVPN和現(xiàn)場(chǎng)PC自帶的軟件來(lái)組網(wǎng),方便網(wǎng)絡(luò)調(diào)試,克服了以上缺點(diǎn)。
基于項(xiàng)目現(xiàn)場(chǎng)情況,本文方案僅需現(xiàn)場(chǎng)提供1臺(tái)普通筆記本、1臺(tái)手機(jī)和1個(gè)現(xiàn)場(chǎng)人員配合,實(shí)現(xiàn)了最小設(shè)備需求,并且遠(yuǎn)程PC是經(jīng)由公司公網(wǎng)域名或IP連接公司服務(wù)器后再連接現(xiàn)場(chǎng)PLC,這樣工程師即使在另外的項(xiàng)目現(xiàn)場(chǎng)出差時(shí)也可調(diào)試,最大程度節(jié)約了設(shè)備和時(shí)間成本。
方案
一、 項(xiàng)目介紹
寧夏寶豐能源集團(tuán)循環(huán)化改造二期項(xiàng)目中共6套袋濾器控制箱用于已可編程的方式順序或間斷控制2~18個(gè)不等的脈沖電磁閥的反吹。控制箱防護(hù)等級(jí)IP65,放在防爆區(qū),zone2+zone22,ExDIICT4+ExtbIIIBT4,鑄鋁,為控制成本,現(xiàn)場(chǎng)控制器不能太大,所以PLC考慮西門(mén)子LOGO!系列加擴(kuò)展模塊,控制方式為按鈕+西門(mén)子KP400按鍵屏,平時(shí)采用按鈕操作,按鍵屏顯示電磁閥工作狀態(tài)等實(shí)時(shí)顯示界面,需調(diào)整脈沖噴吹時(shí)間、周期時(shí)打開(kāi)控制箱面板,脈沖寬度35~280ms,周期2~120s??紤]到繼電器的使用壽命,PLC數(shù)字量輸出通過(guò)固態(tài)繼電器接控制脈沖電磁閥。
LOGO!和KP400之間通過(guò)CAT5電纜通訊,分別使用LOGOComfort和TIA winCC組態(tài),且均可以通過(guò)以太網(wǎng)下裝程序和調(diào)試。
二、 Openvpn介紹
OpenVPN是一種用來(lái)創(chuàng)建虛擬專(zhuān)用網(wǎng)絡(luò)加密通道的開(kāi)源VPN(虛擬專(zhuān)用網(wǎng)絡(luò))軟件,分為服務(wù)端和客戶端兩部分,允許客戶端使用密鑰、用戶名\密碼、電子證書(shū)等身份認(rèn)證登錄服務(wù)端,并可以使服務(wù)端和客戶端處于同一局域網(wǎng)段內(nèi)。
OpenVPN主要采用虛擬網(wǎng)卡技術(shù),安裝后會(huì)在主機(jī)上增加一個(gè)和真實(shí)網(wǎng)卡一樣進(jìn)行配置的虛擬的網(wǎng)卡。另外由于虛擬網(wǎng)卡技術(shù)在不同的操作系統(tǒng)中普遍存在,這使OpenVPN可以更容易的跨平臺(tái)使用。
選用OPENVPN作為本項(xiàng)目遠(yuǎn)程調(diào)試連接軟件的主要原因有:
1) 可以跨省使用。 由于國(guó)內(nèi)的網(wǎng)絡(luò)環(huán)境比較復(fù)雜,一般的VPN協(xié)議如PPTP等無(wú)法跨省或跨網(wǎng)絡(luò)運(yùn)營(yíng)商使用,經(jīng)實(shí)驗(yàn)OPENVPN在多種情況下均可使用。
2) 適用范圍廣。 OpenVPN當(dāng)前在Windows、Linux、Mac OS、Android、iOS、Solaris、OpenBSD、FreeBSD和NetBSD等絕大部分操作系統(tǒng)上均可以部署和運(yùn)行,并且服務(wù)端和客戶端可以跨平臺(tái)連接。
3) 開(kāi)源。 OPENVPN是遵循GNU通用公共許可協(xié)議的開(kāi)源軟件,無(wú)需付費(fèi),開(kāi)源的特性使得它可以保持迭代和更新,性能也會(huì)也來(lái)越穩(wěn)定。
4) 安全。 OPENVPN大量使用OpenSSL函數(shù)庫(kù),客戶端和服務(wù)端間通訊使用SSL連接同時(shí)提供HMAC功能以提高連接的安全性。
三、 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
根據(jù)項(xiàng)目實(shí)際情況,實(shí)現(xiàn)PLC遠(yuǎn)程調(diào)試所在的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如下:
OPENVPN服務(wù)器為:
公司內(nèi)網(wǎng)服務(wù)器,通過(guò)公網(wǎng)IP(設(shè)為58.X.X.X)或域名的1297端口發(fā)布。
OPENVPN客戶端有:
現(xiàn)場(chǎng)筆記本電腦(登錄使用用戶名PLC_SITE,指定IP為192.168.7.219);
遠(yuǎn)程工程師站(登錄使用用戶名PLC_TIA,指定IP為192.168.7.215);
項(xiàng)目現(xiàn)場(chǎng)網(wǎng)絡(luò)環(huán)境:
由于現(xiàn)場(chǎng)PLC直連筆記本電腦,網(wǎng)絡(luò)結(jié)構(gòu)中沒(méi)有獨(dú)立的路由,只能使用筆記本電腦作為路由,而且由于PLC底層數(shù)據(jù)對(duì)網(wǎng)絡(luò)環(huán)境有要求,多次實(shí)驗(yàn)后這里采用了最容易操作的在OPENVPN通道中嵌套一個(gè)系統(tǒng)自帶的PPTP協(xié)議VPN實(shí)現(xiàn)。
PPTP VPN服務(wù)器:
現(xiàn)場(chǎng)筆記本電腦,發(fā)布網(wǎng)段為192.168.0.0/24的PPTP通道,并作為路由共享自身有線網(wǎng)卡連接的局域網(wǎng)。
PPTP VPN客戶端:
遠(yuǎn)程工程師站,連接到OPENVPN專(zhuān)用網(wǎng)IP(192.168.7.219)1297端口上發(fā)布的PPTP服務(wù)器,并訪問(wèn)PPTP服務(wù)器所在局域網(wǎng)。
四、 物理連接
服務(wù)器端:windows sever2012系統(tǒng),通過(guò)公司網(wǎng)關(guān)正常連接INTERNET。
現(xiàn)場(chǎng)筆記本電腦、手機(jī)、PLC及HMI:手機(jī)通過(guò)移動(dòng)網(wǎng)絡(luò)連接INTERNET并開(kāi)啟WIFI熱點(diǎn);現(xiàn)場(chǎng)筆記本電腦無(wú)線網(wǎng)卡連接手機(jī)WIFI熱點(diǎn)上網(wǎng),有線網(wǎng)卡通過(guò)網(wǎng)線連接現(xiàn)場(chǎng)HMI或PLC(如HMI有兩個(gè)網(wǎng)口,PC可僅連接HMI第1網(wǎng)口,然后通過(guò)HMI第2網(wǎng)口連接PLC)。
遠(yuǎn)程工程師站:使用各種方式正常連接INTERNET。
五、 軟件實(shí)現(xiàn)
Openvpn服務(wù)端配置文件如下:
port 1297 #監(jiān)聽(tīng)端口,可以指定
proto udp #OpenVPN建議使用UDP協(xié)議
dev tun #創(chuàng)建一個(gè)路由IP隧道
topology subnet #采用通用局域網(wǎng)段
server 192.168.7.0 255.255.255.0 # 通道使用網(wǎng)段
client-to-client # 客戶端互聯(lián)
client-config-dir ccd #客戶端定制,對(duì)不同的用戶推送指定IP
#然后需要在 /ccd/用戶名稱(chēng) 的配置文件中加入
# "ifconfig-push 192.168.7.X 255.255.255.0"
SSL及其他參數(shù)默認(rèn),略。
由于跨網(wǎng)段情況復(fù)雜,服務(wù)端配置文件中加入優(yōu)化參數(shù)如下:
#減小MTU值防止丟包。
mssfix 1200
fragment 1200
push "fragment 1200"
#增加緩沖區(qū)的大小以提升網(wǎng)絡(luò)性能,正常情況下不需要。
;rcvbuf xxxxxx #UDP方式僅需增加接收緩沖區(qū),默認(rèn)65536。
;sndbuf xxxxxx #默認(rèn)65536。
;txqueuelen xxx #默認(rèn)100。
Openvpn客戶端配置文件如下:
Client #客戶端
dev tun #路由IP隧道
proto udp #使用UDP協(xié)議
remote 58.X.X.X 1297 #連接到服務(wù)器公網(wǎng)IP地址或域名+端口
cert PLC_TIA.crt #分配的.crt文件,現(xiàn)場(chǎng)筆記本替換為PLC_SITE.crt
key PLC_TIA.key #分配的.key文件,現(xiàn)場(chǎng)筆記本替換為PLC_SITE.key
SSL及其他參數(shù)默認(rèn),略。
系統(tǒng)PPTP VPN配置如下:
現(xiàn)場(chǎng)筆記本做服務(wù)器:
Windows系統(tǒng)到控制面板\網(wǎng)絡(luò)和 Internet\網(wǎng)絡(luò)連接頁(yè)面,組織>布局>菜單欄(勾選),在頁(yè)面菜單欄中>文件>新建傳入連接>添加用戶名(PLC/***)>下一步>通過(guò)INTERNET(勾選)>下一步>IPv4屬性>允許呼叫方訪問(wèn)我的局域網(wǎng)(勾選)>指定IP地址從(192.168.0.10)到(192.168.0.20)>確定>允許訪問(wèn)。防火墻設(shè)置略。
遠(yuǎn)程工程師站做客戶端:
Windows系統(tǒng)到控制面板\網(wǎng)絡(luò)和 Internet\網(wǎng)絡(luò)和共享中心頁(yè)面,設(shè)置新的連接或者網(wǎng)絡(luò)>連接到工作區(qū)>創(chuàng)建新連接>使用我的INTERNET連接到VPN>IP地址(192.168.7.215)>名稱(chēng)(PLC)>連接>PPTP>用戶名密碼(PLC/***),在控制面板\網(wǎng)絡(luò)和 Internet\網(wǎng)絡(luò)連接中找到新建PLC連接>屬性>安全>MS-CHAP v2(勾選)>網(wǎng)絡(luò)>IPv4屬性>高級(jí)>在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)(取消勾選)。防火墻設(shè)置略。
六、 PLC調(diào)試
由于PLC和工程師站openvpn網(wǎng)卡(PPTP網(wǎng)卡無(wú)法被PLC使用)不在一個(gè)網(wǎng)段,PLC需選擇跨網(wǎng)段調(diào)試,PLC使用現(xiàn)場(chǎng)筆記本物理網(wǎng)卡IP作為網(wǎng)關(guān)(192.168.0.3)
PLC(LOGO!)在LOGOComfort中具體組態(tài)如下:
按鍵屏(KP400)在TIA WINCC中的具體組態(tài)如下:
搜索到設(shè)備后按正常步驟下載組態(tài)到PLC或在線調(diào)試即可,如需現(xiàn)場(chǎng)人員配合可通過(guò)電話或其他網(wǎng)絡(luò)通訊工具。
總結(jié)
本文提出一個(gè)基于OPENVPN的PLC免費(fèi)遠(yuǎn)程調(diào)試方案用于節(jié)省項(xiàng)目成本及資源,并已在文中所提項(xiàng)目成功應(yīng)用。在實(shí)際操作過(guò)程中,需要通過(guò)調(diào)整參數(shù)來(lái)優(yōu)化網(wǎng)絡(luò)。以上方法不僅限于PLC調(diào)試,還可以擴(kuò)展到基于局域網(wǎng)的所有控制系統(tǒng)或設(shè)備的遠(yuǎn)程調(diào)試中。
參考文獻(xiàn):
[1] James Yonan. Reference manual for OpenVPN 2.4 [EB/OL]. https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/, 2018.
[2] Siemens. TIA下如何訪問(wèn)不同IP網(wǎng)段中的PLC [EB/OL]. https://cache.industry.siemens.com/dl/files/734/109739734/att_889622/v1/PLC_IPRoute_9090.pdf, 2016-8-3.