Python实现OPC读写
- Python版本:3.7
在Python中通过opc ua通讯方式向PLC中读写数据,是可以通过opcua库实现的。
1.安装opcua
首先安装一下opcua。输入以下命令即可。
pip install opcua
- 1
2.实现与PLC的交互。
这里我们构造一个客户端实现PLC中变量的读写。PLC中的变量通过UA Expert查看得到:
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中的变量的值为:
至此,实现了PLC中变量的读写。
3.需要注意的地方
主要是再往PLC中写值的时候,注意转换一下写入值的类型,否则无法写入。