2022年 11月 5日

Python实现OPC的读写

Python实现OPC读写

  • Python版本:3.7
    在Python中通过opc ua通讯方式向PLC中读写数据,是可以通过opcua库实现的。

1.安装opcua

首先安装一下opcua。输入以下命令即可。

pip install opcua
  • 1

image-20210811224124434

2.实现与PLC的交互。

这里我们构造一个客户端实现PLC中变量的读写。PLC中的变量通过UA Expert查看得到:

image-20210811224440176

 from opcua import ua, Client
 
 # 创建一个客户端,需要修改具体的ip地址和端口
 client = Client('opc.tcp://192.168.2.130:4840')
 
 try:
     # 连接客户端
     client.connect()
 
     # 读写一个bool值
     # 寻找节点上的变量
     var = client.get_node('ns=3; s="Mutual"."Vision"."Request"')
     # 通过get_value读值
     print(var.get_value())
     # 通过set_value写值
     dv1 = ua.DataValue(True)
     var.set_value(dv1)
     print(var.get_value())
 
     # 读写一个int值
     var1 = client.get_node('ns=3; s="Mutual"."Vision"."Serial"')
     print(var1.get_value())
     dv = ua.DataValue(ua.Variant(200, ua.VariantType.UInt16))
     var1.set_value(dv)
     print(var1.get_value())
 
 finally:
     # 断开连接
     client.disconnect()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

最终的代码结果为:

False
True
100
200
  • 1
  • 2
  • 3
  • 4

以及PLC中的变量的值为:

image-20210811224616849

至此,实现了PLC中变量的读写。

3.需要注意的地方

主要是再往PLC中写值的时候,注意转换一下写入值的类型,否则无法写入。