基于KEPWare實現(xiàn)PLC與MES的握手通訊以及簡單邏輯處理
祝賀已超 1 萬工控人加入 PLC 工業(yè)自動化精 英群
祝賀已超 1 萬工控人加入 PLC 工業(yè)自動化精 英群
一、場景
在生產(chǎn)現(xiàn)場經(jīng)常會有這樣的場景,下位機PLC需要將一些數(shù)據(jù)上傳給上位機或者MES,通常就是將一些數(shù)據(jù)存儲到數(shù)據(jù)庫。
面對此場景的業(yè)務(wù)需求,使用KEPWare的ODBC Clint、Link Tag的功能來實現(xiàn)。
其常見的信號交互流程如下圖所示。

?
?
二、步驟
步驟一:
? ? ? ? ? 在數(shù)據(jù)庫中建立用來存儲PLC相關(guān)數(shù)據(jù)的Table,表如下所示。
? ? ?

? ?說明:1、ID為自增長列。CreateTime默認值為getdate(),即每次新建數(shù)據(jù)時,CreateTime默認是以當時本地的時間來記錄。
? ? ? ? ? ? ? 2、Table的名稱為TestTable。
步驟二:
? ? ? ? ? ?創(chuàng)建一個往TestTable中插入一行記錄的存儲過程。

? ??說明:
1、輸入?yún)?shù)p1、p2對應(yīng)著需要插入到TestTable中的Value1、Value2
2、輸出參數(shù)p3用來獲取執(zhí)行結(jié)果(為什么不適用返回值來作為執(zhí)行結(jié)果呢?后面會有說明)
步驟三:
在KEPWare中創(chuàng)建模擬PLC數(shù)據(jù)的Tag(如果有實物PLC可以直接配置實物的PLC驅(qū)動來進行)
a、新建Channel的時候Driver選擇Simulator的驅(qū)動,此驅(qū)動可以完成數(shù)據(jù)的模擬。?
? ? ? ? ?

?
b、新建4個Tag。
? ? ? ?

?步驟四:
a、在KEPWare中新建ODBC Client,來連接數(shù)據(jù)庫。(具體的操作細節(jié)可以百度 KEPWare ODBC)
b、在Access method selection中選擇Stored Procedure
? ? ? ? ?

c、在Stored Procedure selection中選擇剛剛創(chuàng)建的名稱為INSERT_TESTTAB的存儲過程。
? ? ? ? ?

d、配置完成KEPWare會自動生成Tag。
? ? ? ?

說明:
1、Execute:每次寫完成的時候,Execute stored procedure (on write complete).都會執(zhí)行,而不是從flase變?yōu)閠rue執(zhí)行這點需要特別注意。
2、input_p1、input_p2對應(yīng)著存儲過程p1、p2的輸入?yún)?shù),input_output_p3為p3的輸出參數(shù)。
3、output_RETURN_VALUE對應(yīng)著存儲過程的返回值。注意output_RETURN_VALUE為只讀的Tag。
步驟五:
在KEPWare中新建Link Tag將ODBC Client的Tag和模擬PLC的Tag關(guān)聯(lián)。
? ?

??



? ??


三、測試
按上述流程圖進行測試。

將1寫入到Value1、1寫入到Value2,然后將Request置位,然后執(zhí)行完存儲過程,Response會被置1。結(jié)果在數(shù)據(jù)庫中成功插入了一條數(shù)據(jù),如下所示。
