西门子PLC与触摸屏OPC UA通信失败的证书配置

发布于 2026-03-12 17:56:45 · 浏览 3 次 · 评论 0 条

OPC UA通信协议因其高安全性,强制要求通信双方进行身份验证。在西门子PLC(S7-1200/1500)与西门子触摸屏(Comfort面板或WinCC Unified)的通信架构中,证书配置错误是导致连接失败的首要原因。本指南将聚焦于“证书信任”这一核心痛点,提供从配置到故障排除的全流程实操方案。


一、 通信环境与安全策略基础

在着手配置证书之前,必须确认双方的安全策略设置一致。OPC UA的安全机制依赖于X.509证书,若策略不匹配,后续的证书配置将毫无意义。

  1. 确认 PLC的IP地址与触摸屏的IP地址处于同一网段,且物理连接正常(PING测试通过)。
  2. 打开 TIA Portal项目,进入PLC的设备组态界面。
  3. 切换 至“属性” > “保护” > “安全设置”,确保“允许的安全连接”设置正确。
  4. 导航 至“OPC UA” > “服务器” > “安全”,此处需重点关注以下参数:
    • 安全策略:建议勾选 Basic256Sha256(目前最通用的安全策略)。
    • 安全模式:必须勾选 签名和加密(Sign & Encrypt),这是触发证书强制性验证的前提。
    • 证书有效期:确保PLC的系统时间与触摸屏的系统时间均在证书有效期内,时间偏差过大(如触摸屏时间是2020年,PLC证书生效于2024年)会导致证书直接判定为无效。

二、 PLC服务器端证书生成与下载

PLC作为OPC UA服务器,必须拥有一个有效的服务器证书供客户端(触摸屏)验证。

  1. 进入 PLC设备组态界面,找到“OPC UA” > “服务器” > “服务器证书”。
  2. 选择 “生成新证书”选项。
  3. 设置 证书的“通用名称”,建议直接使用PLC的名称或IP地址,便于识别。
  4. 配置 域名/IP地址列表。务必勾选“使用IP地址”,并在下方添加触摸屏将用来访问PLC的具体IP地址(例如 192.168.0.1)。如果此处理论IP与实际访问IP不符,触摸屏会报“证书主题不匹配”错误。
  5. 编译 项目,确认无错误。
  6. 下载 硬件配置至PLC。下载完成后,PLC将自动生成服务器证书。

三、 触摸屏端OPC UA客户端配置

触摸屏(HMI)作为客户端,需要向PLC发起连接请求,同时也需要管理自己的客户端证书。

  1. 打开 HMI的画面编辑器或变量管理界面。
  2. 添加 新的驱动程序,选择“OPC UA”驱动。
  3. 双击 该驱动下的“连接”,打开连接属性对话框。
  4. 输入 服务器地址:格式为 opc.tcp://<PLC_IP>:4840。例如:opc.tcp://192.168.0.1:4840
  5. 切换 至“安全”选项卡。
  6. 选择 安全策略:必须与PLC端设置完全一致(例如选择 Basic256Sha256 - Sign & Encrypt)。
  7. 点击 “获取服务器证书”按钮(如果TIA Portal版本支持在线功能)。若无法在线获取,系统会在首次编译或运行时自动尝试获取。
  8. 设置 客户端证书:在连接属性中,通常会有“客户端证书”设置区域。HMI会自动生成一个客户端证书实例,你需要记录下该证书的名称(如 HMI_Client_Cert),后续需将此证书传递给PLC。

四、 核心环节:双向证书信任配置

这是通信成功的关键步骤。OPC UA要求双向认证:触摸屏要信任PLC的证书,PLC也要信任触摸屏的证书。

步骤1:触摸屏信任PLC(服务器)证书

此步骤通常在TIA Portal编译或HMI运行时自动处理,但需确认配置:

  1. 在HMI项目树中,找到“OPC UA”设置或运行系统设置。
  2. 查找 “受信任的服务器证书”或类似列表。
  3. 确保PLC的服务器证书已出现在受信任列表中,且状态为“受信任”。若显示“未知”或“不受信任”,右键点击选择 “信任”。

步骤2:PLC信任触摸屏(客户端)证书(最易出错点)

PLC默认不信任任何客户端。必须手动将HMI的客户端证书导入PLC的受信任列表。此处提供两种实操方案:

方案A:通过TIA Portal项目集成(推荐)

如果PLC和HMI在同一个TIA Portal项目中:

  1. 打开 PLC的项目树,展开“OPC UA” > “受信客户端”。
  2. 点击 “添加新的客户端证书”。
  3. 在弹出的选择对话框中,选择 当前项目中的HMI设备。
  4. 系统会自动关联HMI生成的客户端证书。
  5. 重新编译下载 PLC的硬件配置。

方案B:通过Web Server浏览器导入(现场调试常用)

如果无法通过项目集成,或使用的是第三方HMI:

  1. 导出 HMI的客户端证书(通常在HMI的控制面板或TIA Portal的证书管理器中,导出为 .der.crt 格式)。
  2. 打开 电脑浏览器,输入PLC的IP地址,访问PLC的Web Server页面。
  3. 进入 “Security” (安全) > “Certificates” (证书) 页面。
  4. 选择 “Trusted Clients” (受信客户端) 标签页。
  5. 点击 “Add Certificate” (添加证书)。
  6. 浏览 并选择刚才导出的HMI客户端证书文件,点击 上传。
  7. 上传成功后,该证书会出现在列表中。

五、 证书信任逻辑验证流程

为了确保配置无误,可以参照以下逻辑流进行自查:

graph TD A["Start: HMI request connection"] --> B{"PLC Server Certificate
Trusted by HMI?"} B -- "No" --> C["Action: HMI rejects connection
Error: BadCertificateUntrusted"] C --> D["Solution: Import PLC cert to HMI
Trust Store"] D --> B B -- "Yes" --> E{"HMI Client Certificate
Trusted by PLC?"} E -- "No" --> F["Action: PLC rejects request
Error: BadSecurityChecksFailed"] F --> G["Solution: Import HMI cert to PLC
via Web Server or TIA Portal"] G --> E E -- "Yes" --> H{"Time Synchronized?"} H -- "No" --> I["Action: Certificate validation fails
Error: BadCertificateTimeInvalid"] I --> J["Solution: Sync PLC and HMI time"] J --> H H -- "Yes" --> K["Success: Secure Channel Established"]

六、 通信失败的深度排查与修复

若完成上述配置后仍无法通信,需根据具体的错误代码进行针对性修复。

1. 错误:证书主题名称无效

原因:PLC证书中包含的IP地址或域名与HMI连接时使用的地址不一致。
修复步骤

  1. 打开 PLC的OPC UA服务器证书属性。
  2. 检查 “主题备用名称”字段。
  3. 确认 其中包含了HMI使用的IP地址。
  4. 若缺失,删除 当前证书,重新生成 并确保勾选正确的IP条目,然后 重新下载 到PLC。
  5. 注意:更换PLC证书后,HMI端原本信任的旧证书将失效,需重新获取并信任新证书。

2. 错误:证书时间无效

原因:PLC或HMI的系统时间不在证书的有效期内(证书通常有一个起始时间和结束时间)。如果PLC时间是 2020-01-01,而证书生效时间是 2024-01-01,则验证失败。
修复步骤

  1. 连接 PLC,在线查看PLC的时钟设置。
  2. 进入 HMI的控制面板,查看系统时间。
  3. 调整 双方时间至当前标准时间。
  4. 若设备无法长期保持时间准确,建议配置NTP服务器进行时间同步。

3. 错误:撤销列表检查失败

原因:高级安全设置中启用了证书撤销列表验证,但实际并未配置CRL分发点,或网络无法访问分发点。
修复步骤

  1. 在PLC的OPC UA服务器设置中,找到“高级安全设置”。
  2. 取消勾选 “检查证书撤销列表”(仅用于调试,生产环境慎用)。
  3. 或者在网络中正确部署CRL服务器。

七、 最佳实践总结表

为确保系统的长期稳定运行,在实施阶段应遵循以下规范:

配置项目 推荐设置 潜在风险规避
安全策略 Basic256Sha256 + Sign & Encrypt 避免使用 None,否则无证书验证机制,存在安全隐患。
证书更新 设置有效期较长(如5年),并记录到期日 证书过期会导致系统突然瘫痪,需定期巡检。
时间同步 统一配置NTP服务器 防止因时间跳变导致的证书验证失败。
IP地址管理 使用静态IP,证书绑定IP 避免因DHCP分配IP变动导致证书主题名称不匹配。
调试阶段 先用 None 策略测试连通性,再加安全策略 排除网络故障与证书故障的干扰。

通过以上步骤,可实现西门子PLC与触摸屏之间 OPC UA 通信的证书正确配置。核心在于理解“双向信任”机制:PLC信任HMI,HMI信任PLC,且时间必须同步

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文