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

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日

悬赏问题

  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真
  • ¥15 任务A:大数据平台搭建(容器环境)怎么做呢?