下面是一个使用 UA_Client_addVariableNode
函数的简单示例:
#include <open62541/client_config_default.h>
#include <open62541/client_highlevel.h>
int main() {
UA_Client *client = UA_Client_new();
UA_ClientConfig_setDefault(UA_Client_getConfig(client));
// 建立与服务器的连接
UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
if (retval != UA_STATUSCODE_GOOD) {
printf("连接到服务器失败\n");
UA_Client_delete(client);
return -1;
}
// 定义变量属性结构体
UA_VariableAttributes varAttr = UA_VariableAttributes_default;
varAttr.displayName = UA_LOCALIZEDTEXT("en-US", "MyVariable");
varAttr.description = UA_LOCALIZEDTEXT("en-US", "This is a sample variable.");
// 添加变量节点
const char* nodeName = "ns=2;s=MyVariable"; // 变量节点的名称
const char* parentNodeName = "Objects"; // 父节点的名称
retval = UA_Client_addVariableNode(
client,
UA_NODEID_STRING(2, nodeName),
UA_NODEID_STRING(0, parentNodeName),
UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES),
nodeName,
NULL,
&varAttr,
NULL
);
if(retval == UA_STATUSCODE_GOOD) {
printf("成功添加了变量节点\n");
} else {
printf("添加变量节点失败: %s\n", UA_StatusCode_name(retval));
}
// 断开与服务器的连接并释放资源
UA_Client_disconnect(client);
UA_Client_delete(client);
return 0;
}
请根据实际情况进行相应的修改,例如替换 OPC UA 服务器的地址和端口号、节点名称以及父节点名称等。此示例仅供参考,请确保在实际使用时仔细查阅相关库的文档和示例代码。
内容由零声教学AI助手提供,问题来源于学员提问