如何创建OPC标记运行时

时间:2018-03-19 13:28:29

标签: opc opc-ua

我有一台Kepware OPC服务器,我可以连接我的客户端(OPC Foundation UA lib)。我在Kepware中创建了一个设备,并在里面创建了一个组。我想从数据库中读取opc标签并动态创建它们。

如何动态地在PLC中创建带地址的项目?

2 个答案:

答案 0 :(得分:2)

在凯谱软件配置中,只有某些驱动程序能够动态创建标记。例如,大多数Allen-Bradley套件都可以动态添加标签,而像Modbus这样的低级驱动程序则不能。所以它总是取决于Kepware中使用的设备驱动程序。要查找每个驱动程序的各个配置手册,请在此处搜索:

https://www.kepware.com/en-us/products/kepserverex/product-search/

答案 1 :(得分:1)

我建议你看看KepServerEX Configuration API。基本上,它为您提供对所有KEPServerEX实例的完全远程管理和配置控制。在您的情况下,您可以在从数据库中读取所需信息(例如标记名称,标记地址,标记数据类型)后,通过设备级别的简单RESTful API调用动态生成标记。

有关更多信息,请参阅this guide以启用和测试Configuration API。

我还从Kepware的示例项目中复制了以下代码,以便给出一个想法:

function createTag(inputServer, inputChannel, inputDevice, inputTag, inputTagAddr) {
    console.log("Creating " + inputTag + " with address " + inputTagAddr);
    $.ajax({
        type: 'POST',
        url: 'http://' + inputServer + '/config/v1/project/channels/' + inputChannel + '/devices/' + inputDevice + '/tags',
        data: '{"common.ALLTYPES_NAME":"' + inputTag + '","servermain.TAG_ADDRESS":"' + inputTagAddr + '","servermain.TAG_DATA_TYPE":' + inputTagType + '}',
        contentType: 'application/json',
        xhrFields: {
            withCredentials: false
        },
        headers: {
            'Authorization': 'Basic ' + encodeAuth
        },
        success: function(JSON, status, xhr) {
            console.log(inputTag + " created under " + inputDevice);
        },
        error: function(JSON, status, xhr) {
            console.log("Creation of " + inputTag + " failed!");
        }
    });
}