[MOXA] OPC Server透過OnCell G3150-HSPA存取遠端設備

Case Brief

客戶現場的設備透過PLC接收數值來進行監控,而設備會隨著案場在不同地區移動,所以客戶希望透過行動網路(GPRS/HSPA/LTE),讓遠端的OPC Server可以存取現場PLC的數值,相關人員便可以不必跑到現場,透過OPC Server與SCADA的來即時監控現場設備的狀態。

Cause Analysis

有類似需求的客戶其實很常見,許多案場的通訊並不方便,例如偏遠的山區、新建的廠房、或著像案例中不固定的場所等;以目前的通訊技術發展,可以選擇的除了一般手機使用的行動通訊之外,還有LPWAN(LTE-M/NB-IoT)、MDVPN、以及其他可以遠距離傳輸的無線技術(WiFi、Microwave)等。

然而每種不同的技術都有其優點與缺點,必須依照現場的需求與可用的資源審慎評估;LPWAN是近代專為物聯網設計的通訊技術,但因為還處於發展階段,在相關設備與環境上還沒有達到穩定的階段;MDVPN使用上與一般的行動通訊相同,但是申請的過程與設備、環境的需求每家ISP商可能不完全相同,以及流量資費的計算上需要精打細算一些;WiFi、Microwave這些遠距離的無線傳輸在硬體上的花費很高,而且距離最遠也只能在幾公里以內,後段可能還是需要依靠實體的網際網路來實現遠端存取。

行動網路申請與使用上相對方便,最大的問題在於設備使用行動網路時,無法取得固定的Public IP位址;如果設備是向遠端主機主動拋出資料,只要遠端主機有固定的Public IP,這樣影響並不大;但如果設備是被動等遠端主機來存取,就必須思考如何解決浮動Public IP位址的問題。

Solution

對於客戶的需求,規劃的架構如下圖;PLC以乙太網路連接MOXA OnCell G3150-HSPA,並連上網際網路,遠端的OPC Server便可透過網際網路向PLC存取數值,而後端的SCADA經由OPC Server監控設備的狀態。

補充說明一點,規劃當時因為LTE尚未普及,沒有相關的OnCell設備可以使用,至今MOXA有推出OnCell G3150A-LTE,也可以完成同樣的架構,與OnCell G3150-HSPA在設定上需要注意的部分會在後文中說明。
oncell-plc-ddns.png-OPC Server透過OnCell G3150-HSPA存取遠端設備

在這個架構下會衍生兩個問題,測試的步驟會依這兩個問題分為以下兩個階段:
  1. OPC Server與PLC的通訊建立
  2. 解決行動網路浮動公開Public IP位址

OPC Server與PLC的通訊建立

OnCell G3150-HSPA設定完畢並插入SIM卡後,通常都可以正確的取得Public IP來連上網際網路,此時OPC Server雖然可以主動連到OnCell G3150-HSPA了,但是OPC Server還無法存取到PLC;這是因為即使OnCell G3150-HSPA的WAN是Public IP,但與PLC相連的LAN是Private IP;OnCell G3150-HSPA會自動建立LAN到WAN的NAT,讓LAN中的PLC可以連上網際網路,但是卻沒有WAN到LAN的橋接,讓來自網際網路的OPC封包轉送到位在LAN中的PLC。

要建立這樣的橋接,需利用OnCell G3150-HSPA的Virtual Server功能,使得OPC Server對OnCell G3150-HSPA特定埠口傳送的封包,可以轉送到LAN中指定的IP與埠口;而在OnCell G3150A-LTE中,該功能更名為Port Forwarding。
oncell-plc-ddns2.png-OPC Server透過OnCell G3150-HSPA存取遠端設備

設定上很簡單,只需要啟用Virtual Server,輸入OPC Server連線時使用的埠號,以及LAN中PLC的IP位址與埠號,讓OPC Server發送到OnCell G3150-HSPA的封包轉送到PLC的IP位址;如下圖的設定,這樣OPC Server便可以透過OnCell G3150-HSPA的Public IP的102 port,存取到192.168.0.70的設備的102 port了;若是在OnCell G3150A-LTE上,Port Forwarding的設定也是相同的方式。
2015-04-21_120400.jpg-OPC Server透過OnCell G3150-HSPA存取遠端設備

解決行動網路浮動Public IP的問題

接著,為了解決浮動Public IP的問題,可以利用DDNS(Dynamic DNS)來完成;OnCell G3150-HSPA或OnCell G3150A-LTE都提供了DDNS的功能,支援一些常見的DDNS Server,如No-IP、Dyndns;DDNS可以讓浮動Public IP位址對應到一個固定的域名,讓使用者透過固定的域名存取浮動Public IP的主機或設備。

設定時首先要先去OnCell G3150-HSPA支援的DDNS Server申請帳號(支援的DDNS Server須以每台設備實際提供的選項為主),接著登入DDNS並新增一個Host,Hostname可以自訂,IP Address輸入目前OnCell G3150-HSPA取得的Public IP,然後儲存這個設定。
2015-05-01_111939.jpg-OPC Server透過OnCell G3150-HSPA存取遠端設備

回到OnCell G3150-HSPA的DDNS設定頁面,選擇剛才申請的DDNS Server,並且輸入自訂的Hostname以及DDNS的帳號密碼,完成後等待幾分鐘讓DNS更新,便可以使用瀏覽器輸入自訂的域名連接到OnCell G3150-HSPA的Web Console;並且多次重新啟動OnCell G3150-HSPA來強迫浮動的Public IP改變,測試透過DDNS的域名都可以正確連接上OnCell G3150-HSPA;以上的設定方式同樣也可以套用在OnCell G3150A-LTE中。
2015-04-21_154519.jpg-OPC Server透過OnCell G3150-HSPA存取遠端設備

完成後,OPC Server便可以向自訂的Hostname與埠口發送請求,DDNS會將封包轉送到該Hostname的Public IP,也就是OnCell G3150-HSPA/G3150A-LTE的WAN IP,OnCell G3150-HSPA/G3150A-LTE再將封包透過Virtual Server/Port Forwarding轉送到PLC的Private IP與埠口,PLC收到請求後將數值回傳到OPC Server,最後,SCADA可以由OPC Server獲取到PLC的數值。

留言