用 C# 开发一个简易版的 WinCC 报表插件,核心是实现 WinCC 数据的读取、报表模板编辑、数据填充与导出(Excel/PDF),我会基于 WinCC OPC DA 接口 + NPOI 组件,给出完整的可运行代码,适配 WinCC V7.5/V7.4 版本,新手也能快速部署。
一、开发前置条件
环境配置
.NET framework 4.8(WinCC 兼容版本)
安装 OPC Core Components(WinCC OPC DA 通信必备,官网下载)
引用 NuGet 包:
NPOI(Excel 操作)、OPCAutomation(OPC 通信)、iTextSharp(PDF 导出,可选)WinCC 准备
启用 WinCC OPC Server(默认已启用,确认端口未被占用)
记录需要采集的变量名(如
Tag1、Pressure、Temperature)
二、核心代码实现(完整可运行)
1. 项目结构
plaintext
WinCCReportPlugin/ ├─ Models/WinCCData.cs // 数据模型 ├─ Helpers/OPCHelper.cs // OPC数据读取 ├─ Helpers/ExcelHelper.cs // Excel报表生成 ├─ Form1.cs // 主界面(选择模板、导出路径、执行报表) └─ App.config // 配置文件(OPC服务器地址、变量列表)
2. 数据模型(WinCCData.cs)
csharp
运行
三、关键说明与调试
OPC 权限配置
运行程序时需以管理员身份启动,否则可能无法连接 WinCC OPC Server。
WinCC 侧需在 “计算机属性→OPC 服务器→权限” 中,添加当前用户的读写权限。
NPOI 使用
支持.xlsx(XSSFWorkbook)和.xls(HSSFWorkbook)格式,推荐用.xlsx。
无模板时会自动新建 Excel 文件,带表头和数据。
变量格式
变量列表文本框中,每行格式为
变量名,单位(如Pressure,MPa),无单位可只填变量名。常见问题
连接失败:检查 WinCC OPC Server 是否启动、IP 是否正确、防火墙是否放行。
变量读取失败:确认 WinCC 变量名拼写正确,且变量有数值(非空)。
四、功能扩展(可选)
PDF 导出:引入 iTextSharp 组件,将生成的 Excel 转换为 PDF。
历史数据查询:对接 WinCC 归档数据库(SQL Server),读取指定时间段的数据。
定时生成:添加 Timer 控件,定时执行报表生成并发送邮件。
模板自定义:支持在模板中预留占位符(如
{TagName}),精准填充数据。
总结
该插件核心通过OPC DA 接口读取 WinCC 实时数据,结合 NPOI 生成 Excel 报表,适配 WinCC 主流版本。
关键步骤:OPC 连接→变量读取→Excel 填充→文件保存,全程封装为可复用的 Helper 类。
部署时需确保管理员权限、OPC 组件安装、WinCC 变量名正确,即可快速生成标准化报表。

