使用Kepware ClientAce讀取和寫入PLC記憶體位置值

Kepware 這套軟體是由Kepware Technologies這間公司所開發出來的一套軟體,可用來讀取和寫入PLC(Programmable Logic Controller)的記憶體位址,該軟體支援一百多種的PLC Driver,透過這個軟體使用設定的方式就能收到PLC的記憶體位址資料,並可以使用加購的模組DataLogger,將收到的值回寫回資料庫。當然也可以利用者個軟體的UI使用同步與非同步的方式將資料寫回。當然這套軟體是要收費的,官網報價是$438 USD,DataLogger模組和ClientAce Library大概都是幾萬台幣,不過能省去自己撰寫Driver通訊的困擾應該還算OK。

 

但是當我們想要透過別的系統來寫入資料到PLC,要達到少數人可以獨立開發這樣的程式,不同廠牌的PLC就會有不同的Driver和不同的Protocol,就會讓通訊變成一件困難的事情,所以我們可以透過Kepware 提供的ClientAce Library,使用這個Library可以達到訂閱各Device(PLC)的各Tag(記憶體位址值),也可以使用同步與非同步的方式將值寫入PLC的記憶體位址中,PLC可利用該值進行生產或其他邏輯運算。Kepware 提供的ClientAce Library對於工廠MES和CIM開發與PLC之間的交握非常的有幫助。使用資料訂閱的方式只在資料產生變化的時候也可避免過多的請求與回覆造成Server和網路效率的浪費。可惜的是該Library目前只支援Windows Form 與 Windows服務,並不支援以Web Base的方式開發。所以MES或是CIM的系統是Web Base Application,就必須寫一支中介的Windows服務來做兩邊的溝通,隨意畫了一下架構如下。

台灣的代理商研杰科技在他們的官方網站也有Kpware的相關介紹 http://www.youngtec.com.tw/

首先! 當然是先安裝Kepware的KEPServerEX,也就是抓取 PLC位址值的主程式,下載路徑https://www.kepware.com/en-us/products/kepserverex/

按照步驟安裝完之後,系統本身就會有建立好測試用的Simulator用以模擬從PLC收到的數值,裡面有數個Tag可以拿來讀取或是寫入

KEPServer EX必須要在電腦右下角的常駐列先做OPC UA Configuration的設定,此設定的目的是讓KEPServer EX接受該Server允許用OPC協定(ClientAce)去連線KEPServerEX

測試用的讀取程式的UI如下,必須先輸入KEPServerEX安裝的Server的IP Address,一般來說都是本機安裝本機連線,所以IP應該是127.0.0.1,但由於我的KEPServer是有接上實體PLC收值的,所以會是在非本機的IP。

我們同時也可以透過KEPServerEX所提供的OPC Quick Client直接看到Simulator(PLC) 的記憶體數值變化

接下來就放Demo的影片,比對一下KEPServerEX和Sample程式收到的值的變化吧!

https://youtu.be/35B-urISZoQ