python的opc(kepserver)通讯

制造业现场设备通讯多用底层通讯协议,opc是普通使用的一种。

Python多用于数据分析等互联网领域,在opc通讯方面的资料、应用好像不多。不过不多不等于没有,也不等于落后。

GitHub上的开源项目,FreeOPCUa 就是一个支持Python2,3 opc-ua 协议的实现。注意,这里支持的是opc-ua协议,老的DA协议不支持;Kepserver 从 5.x 以后才支持opc-ua。

其实 FreeOPCUa 里既能提供 client 端实现,也有 server 端以供测试或者真实使用。

from opcua import Client

class SubHandler(object):

    """
    Client to subscription. It will receive events from server
    """

    def datachange_notification(self, node, val, data):
        # print("Python: New data change event", node, val)
        print("changed. new value is : ", val)

    def event_notification(self, event):
        print("Python: New event", event)

def test2():
    client = Client("opc.tcp://127.0.0.1:49321")
    client.connect()
    root = client.get_root_node()
    aa = client.get_node('ns=2;s=Channel8.Device1.aa')

    handler = SubHandler()
    sub = client.create_subscription(1000, handler)
    sub.subscribe_data_change(aa)

if __name__ == '__main__':
    test2()

以上就是一个煎蛋实现,没错,就是如此的简洁~

这里有几个准备工作:

1、在kepserver里设置一个变量,按照代码中格式将其定位;

2、查看/设置 kepserver 的opc-ua 的地址,与代码中对应;

就可以 run 一下咯。

 

你可能感兴趣的:(python)