xiaomz12345678 2023-03-15 09:51 采纳率: 50%
浏览 79
已结题

OPCUA open62541连接西门子840d sl出现错误,有偿求解

采用open62541连接连接西门子840d sl服务器,连接代码如下:

   OpcuaClient* opcClient = new OpcuaClient();  
    UA_ClientConfig* clientConfig = UA_Client_getConfig(opcClient->m_Client);
    UA_ClientConfig_setDefault(clientConfig);
    clientConfig->timeout =10000;
    clientConfig->securityMode = UA_MESSAGESECURITYMODE_NONE;
    clientConfig->securityPolicyUri = UA_STRING("http://opcfoundation.org/UA/SecurityPolicy#None");
    //连接OPCUA Server
    opcClient->ConnectServer("192.168.1.201", 4840, "OpcUaClient", "OpcUaClient");

连接后出现的问题,可能是安全策略的问题 ,想向大家请教一下如何解决~

img

  • 写回答

8条回答 默认 最新

  • qq_57703145 2023-03-15 09:56
    关注

    根据您提供的代码和错误描述,连接问题可能与安全策略有关。在您的代码中,您设置了安全模式为"UA_MESSAGESECURITYMODE_NONE",并且安全策略为"http://opcfoundation.org/UA/SecurityPolicy#None%22%EF%BC%8C%E8%BF%99%E8%A1%A8%E7%A4%BA%E6%82%A8%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%AE%89%E5%85%A8%E7%9A%84%E8%BF%9E%E6%8E%A5%E6%96%B9%E5%BC%8F%E3%80%82%E4%BD%86%E6%98%AF%EF%BC%8C%E5%A6%82%E6%9E%9COPC UA服务器需要安全连接,您将无法连接并获得连接错误。

    要解决此问题,您需要了解OPC UA服务器的安全配置,并相应地更改客户端的安全配置。如果OPC UA服务器需要安全连接,则必须使用安全模式和安全策略来设置客户端。通常,安全模式将设置为"UA_MESSAGESECURITYMODE_SIGNANDENCRYPT",而安全策略将设置为服务器所支持的策略之一。

    以下是示例代码,用于使用安全模式和安全策略连接OPC UA服务器:

    OpcuaClient* opcClient = new OpcuaClient();  
    UA_ClientConfig* clientConfig = UA_Client_getConfig(opcClient->m_Client);
    UA_ClientConfig_setDefault(clientConfig);
    clientConfig->timeout = 10000;
    clientConfig->securityMode = UA_MESSAGESECURITYMODE_SIGNANDENCRYPT;
    
    // 设置支持的安全策略之一,例如:http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256
    UA_String securityPolicy = UA_STRING("http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256");
    clientConfig->securityPolicyUri = securityPolicy;
    
    // 连接OPCUA服务器
    opcClient->ConnectServer("192.168.1.201", 4840, "OpcUaClient", "OpcUaClient");
    

    注意,您需要使用服务器支持的安全策略之一,否则连接仍然将失败。另外,您还需要正确设置OPC UA服务器的证书和密钥,以确保安全连接的成功。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)