工業(yè)數(shù)據采集:從OPC讀寫設備實時數(shù)據
這篇文章用具體實例給不熟悉OPC的讀者科普如何用python連接OPC來抓取機器PLC的數(shù)據。 搞數(shù)字化工廠的基礎就是工業(yè)數(shù)據采集。只要有了數(shù)據,我們就可以可以做數(shù)據可視化展示,工業(yè)大數(shù)據存儲,數(shù)據挖掘,等等。
0. 簡介
對于自動化程度低的工廠,我們可以通過外接傳感器完成數(shù)據的自動收集。實現(xiàn)數(shù)字化工廠:傳感器+數(shù)據采集+網站完整實現(xiàn)設備實時數(shù)據可視化
對于自動化程度高的工廠,我們顯然不需要花時間去一個傳感器一個傳感器的安裝。我們可以通過自動化的協(xié)議來直接進行數(shù)據采集。工業(yè)4.0的理解和落地實施-工業(yè)數(shù)據采集
然而talk is cheap,大家還是沒有主觀認知究竟如何進行數(shù)據抓取,并且上傳到上層的服務器或者信息系統(tǒng)。
1.關于OPC
簡單來說,OPC是一套標準,其目的是把PLC特定的協(xié)議(如Modbus,Profibus等)抽象成為標準化的接口,作為“中間人”的角色把通用的OPC“讀寫”請求轉換成具體的設備協(xié)議來與HMI/SCADA系統(tǒng)直接對接 基于這個標準,有幾個公司都分布開發(fā)了自己的OPC server/client。我自己使用過的是Kepware的。他家的軟件本身是免費下載的。但是連接PLC的驅動是要單獨付費購買。
2.配置OPC server連接機器PLC
我們可通過新建Tag來綁定機器PLC的各種數(shù)據點位。如果需要教程指導可以自行百度。這個操作是很容易的。重點是讀者需要了解,很多機器數(shù)據,比如溫度,壓強,電壓,扭矩等等實時數(shù)據在PLC都存在,我們通過這里的Tag已經把機器PLC的數(shù)據綁定到了OPC軟件上來,下一步我們只需要從OPC里讀寫TAG的數(shù)據就可以了
然后咱們需要祭出萬能的python 安裝OPC的包。
pip3 install OpenOPC-Python3x
pip3 install pypiwin32
?
3.操作OPC
連接
讀取
寫入
把OPC抓取的實時數(shù)據綁定到了工廠的3D展示視圖,從而實現(xiàn)了更酷炫的效果
2.gif
參考代碼
import OpenOPC
import pywintypes
import time
#連接OPC
opc =OpenOPC.client()
opcserv='Matrikon.OPC.Simulation.1'
opc.connect(opcserv)
?
pywintypes.datetime = pywintypes.TimeType
# 讀一個Tag的值
# tag ='機器1.TAG1'
# value = opc.read(tag)
?
# 讀多個tag的值
# tags=['機器1.TAG1','機器1.TAG2']
# value = opc.read(tags,group='Group1',update=1)
# ===========write================
# 寫一個Tag值
# tag ='機器1.TAG2'
# 方式1
# opc.write( (tag, 10) )
# value = opc.read(tag)
# 方式2
# opc[tag] = 100.0
?
# 寫入多個Tag
# opc.write( [('TAG2', 10.0), ('TAG3', 20.0)] )
# value = opc.read(tag)
# **********************************************************
# 關閉opc連接
# opc.close()