python3和nodejs可用的OPC客户端

2 篇文章 0 订阅
2 篇文章 0 订阅

python3和nodejs可用的OPC-DA客户端(在自己使用的过程中进行了一些更新)

更新内容如下

之前写入值需要知道索引,现在直接key-value即可
之前读取的值是字符串,浮点数还需要设置小数点几位,现在是直接引用OPC_Client.dll变量
删除所有无关紧要的文件,仅仅保留OPC_Client.dll和2个示例。

使用方法

下载附件中的“OPC_Client.dll”,然后按下方python和nodejs例程使用即可(必须安装32位软件):

在这里插入图片描述

python3示例( 版本需要pythonnet支持,目前最高python3.11 )

python3 32位需要的库 : pip install pythonnet

# pip install pythonnet
import time
import clr

clr.AddReference("OPC_Client")
if True:  # 防止格式化,跑到上面去了
    import OPC_Client

opc = OPC_Client.Startup()

opc.serverip = "localhost"  # 远程访问填写ip
opc.servername = "Knight.OPC.Server.Demo"
opc.updaterate = 500  # 更新速率ms
opc.items = ["a.a.a", "a.a.b", "a.a.c", "a.a.d"]  # 变量名列表

opc.OpcConnect()

while True:
    time.sleep(0.5)

    opc.PyWrite([("a.a.d", 1), ("a.a.c", 1)])  # 写入opc

    print(opc.values["a.a.a"])  # 常规取值

    for v in opc.values:  # 如果需要遍历,如下
        print(v.Key, v.Value)


opc.StopOpc()  # 断开opc连接
nodejs示例(支持最新nodejs)

nodejs :npm i edge-js

// npm i edge-js
const edge = require('edge-js');
const opc = edge.func('OPC_Client.dll');

const start = {
    evt: 'start',
    serverip: 'localhost',   //远程访问填写IP
    servername: 'Knight.OPC.Server.Demo',
    updaterate: 500,    //更新速度
    items: ["a.c.f", "a.c.d", "a.c.c", "a.b.d", "a.b.f", "a.b.e", "a.b.h", "a.b.b"],
    onDataChange: DataChange    //注册回调函数
}

opc(start)

function DataChange(res) {
    console.log(res);
}

setInterval(() => {
    opc({ evt: 'write', items: { 'a.c.f': 0.0 } })
}, 1000);

// opc({ evt: 'stop'})
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值