OPC Publisher 2.8.4出现BadMonitoredItemIdInvalid错误求助
解决OPC Publisher返回BadMonitoredItemIdInvalid错误的方案
NodeId格式或命名空间不匹配
别只照搬UaExpert显示的NodeId,得确认OPC Publisher配置里的NodeId命名空间索引和目标服务器完全一致。有些服务器的命名空间索引会随会话变化,或者UaExpert显示的是命名空间URI而非索引,直接套用会导致Publisher无法识别。检查配置里的NodeId是不是ns=<索引>;s=<节点标识>这种标准格式,别只写节点名称。服务器端监控项创建失败
这个错误本质是服务器找不到Publisher创建的监控项ID,大概率是目标服务器对监控项有特殊限制:- 该节点本身不支持订阅/监控(比如某些只读系统节点)
- 服务器会话资源有限,监控项还没创建完成就被清理
先在UaExpert里手动给这个节点创建订阅,看看能不能正常获取数据。如果UaExpert也不行,那就是服务器节点本身的问题;如果UaExpert可以,就排查Publisher的订阅参数——比如采样间隔、队列大小是不是超出了服务器的限制。
OPC Publisher配置存在语法错误
检查配置文件中该节点的配置项,有没有引号未闭合、逗号漏写这类低级错误。哪怕其他节点配置正常,单个节点的语法错误也会导致监控项ID无效。可以把这个节点单独拎出来配置测试,排除批量配置的干扰。版本兼容性问题
目标服务器的OPC UA版本可能和OPC Publisher不兼容。试试将OPC Publisher更新到最新稳定版,或者更换协议版本尝试(比如从UA-TCP改为UA-HTTP,不过这种情况较少见)。
错误返回示例
[{"MessageId":"1","MessageType":"ua-data","PublisherId":"opc.tcp://192.168.xx.xx:xxxx_3182BABF","Messages":[{"DataSetWriterId":"1000","SequenceNumber":1,"MetaDataVersion":{"MajorVersion":1,"MinorVersion":0},"Timestamp":"2023-03-06T10:11:54.503Z","Payload":{"part_counter":{"StatusCode":{"Symbol":"BadMonitoredItemIdInvalid","Code":2151809024}}}}]}]
内容的提问来源于stack exchange,提问作者Paulo Ilheu
相关产品推荐
相关产品推荐

