林荫NO1 2022-08-13 21:37 采纳率: 0%
浏览 76
已结题

opcuaServer添加信息模型中变量节点回调值不成功

我想要达到的结果

我在信息模型里定义的命名空间1的变量节点,在update函数里添加,可是写入值不成功,回调也不成功,怀疑是client里创建的监视项和信息模型里的变量节点没有成功建立联系。
变量节点(1,2226)为信息模型中定义的,添加到Server中,回调值不成功。
static void updateRobotStateValue (UA_Server *server) {
9 UA_VariableAttributes attr = UA_VariableAttributes_default;
8 attr.accessLevel = UA_ACCESSLEVELMASK_READ | UA_ACCESSLEVELMASK_WRITE;
7 //UA_Int32 Ready = false;
6 UA_Boolean Ready = false;
5 /UA_NodeId parentNodeId = UA_NODEID_NUMERIC(1, 2224);
4 UA_NodeId parentReferenceNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES);
3 UA_NodeId variableTypeNodeId = UA_NODEID_NUMERIC(0, 63);
/
2 //*variablenode_ns_1_i_2226_variant_DataContents = (UA_Boolean) false;
1 UA_Variant value;
41 UA_Variant_setScalar(&value, &Ready, &UA_TYPES[UA_TYPES_BOOLEAN]);
1 //UA_Variant_setScalar(&value,variablenode_ns_1_i_2226_variant_DataContents , &UA_TYPES[UA_TYPES_BOOLEAN]);
2 UA_NodeId currentNodeId = UA_NODEID_NUMERIC(1,2226);
3 UA_Server_writeValue(server, currentNodeId,value);
4 printf("Ready=%d\n",Ready);
5 }

img

  • 写回答

2条回答 默认 最新

  • 姚家湾 2022-08-16 14:15
    关注

    你都没有create Viriable。例如
    UA_NodeId ParameterId;
    UA_Server_addVariableNode(server, UA_NODEID_NULL, ParameterSetFloderId,
    UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES),
    UA_QUALIFIEDNAME(1, (char*)ParameterName),
    UA_NODEID_NUMERIC(0, UA_NS0ID_BASEDATAVARIABLETYPE), ParameterAttr, NULL, &ParameterId);

    评论

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 创建了问题 8月13日