OPC UA通信协议因其高安全性,强制要求通信双方进行身份验证。在西门子PLC(S7-1200/1500)与西门子触摸屏(Comfort面板或WinCC Unified)的通信架构中,证书配置错误是导致连接失败的首要原因。本指南将聚焦于“证书信任”这一核心痛点,提供从配置到故障排除的全流程实操方案。
一、 通信环境与安全策略基础
在着手配置证书之前,必须确认双方的安全策略设置一致。OPC UA的安全机制依赖于X.509证书,若策略不匹配,后续的证书配置将毫无意义。
- 确认 PLC的IP地址与触摸屏的IP地址处于同一网段,且物理连接正常(PING测试通过)。
- 打开 TIA Portal项目,进入PLC的设备组态界面。
- 切换 至“属性” > “保护” > “安全设置”,确保“允许的安全连接”设置正确。
- 导航 至“OPC UA” > “服务器” > “安全”,此处需重点关注以下参数:
- 安全策略:建议勾选
Basic256Sha256(目前最通用的安全策略)。 - 安全模式:必须勾选
签名和加密(Sign & Encrypt),这是触发证书强制性验证的前提。 - 证书有效期:确保PLC的系统时间与触摸屏的系统时间均在证书有效期内,时间偏差过大(如触摸屏时间是2020年,PLC证书生效于2024年)会导致证书直接判定为无效。
- 安全策略:建议勾选
二、 PLC服务器端证书生成与下载
PLC作为OPC UA服务器,必须拥有一个有效的服务器证书供客户端(触摸屏)验证。
- 进入 PLC设备组态界面,找到“OPC UA” > “服务器” > “服务器证书”。
- 选择 “生成新证书”选项。
- 设置 证书的“通用名称”,建议直接使用PLC的名称或IP地址,便于识别。
- 配置 域名/IP地址列表。务必勾选“使用IP地址”,并在下方添加触摸屏将用来访问PLC的具体IP地址(例如
192.168.0.1)。如果此处理论IP与实际访问IP不符,触摸屏会报“证书主题不匹配”错误。 - 编译 项目,确认无错误。
- 下载 硬件配置至PLC。下载完成后,PLC将自动生成服务器证书。
三、 触摸屏端OPC UA客户端配置
触摸屏(HMI)作为客户端,需要向PLC发起连接请求,同时也需要管理自己的客户端证书。
- 打开 HMI的画面编辑器或变量管理界面。
- 添加 新的驱动程序,选择“OPC UA”驱动。
- 双击 该驱动下的“连接”,打开连接属性对话框。
- 输入 服务器地址:格式为
opc.tcp://<PLC_IP>:4840。例如:opc.tcp://192.168.0.1:4840。 - 切换 至“安全”选项卡。
- 选择 安全策略:必须与PLC端设置完全一致(例如选择
Basic256Sha256-Sign & Encrypt)。 - 点击 “获取服务器证书”按钮(如果TIA Portal版本支持在线功能)。若无法在线获取,系统会在首次编译或运行时自动尝试获取。
- 设置 客户端证书:在连接属性中,通常会有“客户端证书”设置区域。HMI会自动生成一个客户端证书实例,你需要记录下该证书的名称(如
HMI_Client_Cert),后续需将此证书传递给PLC。
四、 核心环节:双向证书信任配置
这是通信成功的关键步骤。OPC UA要求双向认证:触摸屏要信任PLC的证书,PLC也要信任触摸屏的证书。
步骤1:触摸屏信任PLC(服务器)证书
此步骤通常在TIA Portal编译或HMI运行时自动处理,但需确认配置:
- 在HMI项目树中,找到“OPC UA”设置或运行系统设置。
- 查找 “受信任的服务器证书”或类似列表。
- 确保PLC的服务器证书已出现在受信任列表中,且状态为“受信任”。若显示“未知”或“不受信任”,右键点击 并 选择 “信任”。
步骤2:PLC信任触摸屏(客户端)证书(最易出错点)
PLC默认不信任任何客户端。必须手动将HMI的客户端证书导入PLC的受信任列表。此处提供两种实操方案:
方案A:通过TIA Portal项目集成(推荐)
如果PLC和HMI在同一个TIA Portal项目中:
- 打开 PLC的项目树,展开“OPC UA” > “受信客户端”。
- 点击 “添加新的客户端证书”。
- 在弹出的选择对话框中,选择 当前项目中的HMI设备。
- 系统会自动关联HMI生成的客户端证书。
- 重新编译 并 下载 PLC的硬件配置。
方案B:通过Web Server浏览器导入(现场调试常用)
如果无法通过项目集成,或使用的是第三方HMI:
- 导出 HMI的客户端证书(通常在HMI的控制面板或TIA Portal的证书管理器中,导出为
.der或.crt格式)。 - 打开 电脑浏览器,输入PLC的IP地址,访问PLC的Web Server页面。
- 进入 “Security” (安全) > “Certificates” (证书) 页面。
- 选择 “Trusted Clients” (受信客户端) 标签页。
- 点击 “Add Certificate” (添加证书)。
- 浏览 并选择刚才导出的HMI客户端证书文件,点击 上传。
- 上传成功后,该证书会出现在列表中。
五、 证书信任逻辑验证流程
为了确保配置无误,可以参照以下逻辑流进行自查:
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连接时使用的地址不一致。
修复步骤:
- 打开 PLC的OPC UA服务器证书属性。
- 检查 “主题备用名称”字段。
- 确认 其中包含了HMI使用的IP地址。
- 若缺失,删除 当前证书,重新生成 并确保勾选正确的IP条目,然后 重新下载 到PLC。
- 注意:更换PLC证书后,HMI端原本信任的旧证书将失效,需重新获取并信任新证书。
2. 错误:证书时间无效
原因:PLC或HMI的系统时间不在证书的有效期内(证书通常有一个起始时间和结束时间)。如果PLC时间是 2020-01-01,而证书生效时间是 2024-01-01,则验证失败。
修复步骤:
- 连接 PLC,在线查看PLC的时钟设置。
- 进入 HMI的控制面板,查看系统时间。
- 调整 双方时间至当前标准时间。
- 若设备无法长期保持时间准确,建议配置NTP服务器进行时间同步。
3. 错误:撤销列表检查失败
原因:高级安全设置中启用了证书撤销列表验证,但实际并未配置CRL分发点,或网络无法访问分发点。
修复步骤:
- 在PLC的OPC UA服务器设置中,找到“高级安全设置”。
- 取消勾选 “检查证书撤销列表”(仅用于调试,生产环境慎用)。
- 或者在网络中正确部署CRL服务器。
七、 最佳实践总结表
为确保系统的长期稳定运行,在实施阶段应遵循以下规范:
| 配置项目 | 推荐设置 | 潜在风险规避 |
|---|---|---|
| 安全策略 | Basic256Sha256 + Sign & Encrypt |
避免使用 None,否则无证书验证机制,存在安全隐患。 |
| 证书更新 | 设置有效期较长(如5年),并记录到期日 | 证书过期会导致系统突然瘫痪,需定期巡检。 |
| 时间同步 | 统一配置NTP服务器 | 防止因时间跳变导致的证书验证失败。 |
| IP地址管理 | 使用静态IP,证书绑定IP | 避免因DHCP分配IP变动导致证书主题名称不匹配。 |
| 调试阶段 | 先用 None 策略测试连通性,再加安全策略 |
排除网络故障与证书故障的干扰。 |
通过以上步骤,可实现西门子PLC与触摸屏之间 OPC UA 通信的证书正确配置。核心在于理解“双向信任”机制:PLC信任HMI,HMI信任PLC,且时间必须同步。

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