基于西门子S7-200 PLC、KEPServerEx、sql server2012 的闸门群OPC UA数据采集
设计包含设备唯一标识符(如 SheBeiID)、设备名称(遵循命名规范)、设备类型(如“闸门”)、物理位置描述、PLC型号、IP地址、Modbus从站地址、通讯参数、部署状态(在用、停用、维护等)、启用/停用日期、版本关联标识等关键信息的Excel数据结构。确认KEPServerEx在处理500个设备、每个设备若干数据点(至少包含闸门开度)的情况下,能否稳定支持5秒的数据刷新周期,并评估其对服务器
提示语:
作为水利行业的本科生,对自动化配置技术还不熟悉,借助大语言模型帮忙整理项目需求。模型以零基础、手把手操作的方式来讲解讲解配置 KEPServerEx 的每一个步骤,并告诉闸门厂商要哪些关键信息,指导我独立完成任务。
构建一个城市级闸门监控系统,实现对约500个分散部署的西门子S7-200 PLC控制的闸门进行数据采集与远程监控。核心需求包括:通过KEPServerEx作为数据汇聚与协议转换平台,采用Modbus TCP协议从S7-200 PLC读取闸门开度等状态数据,并利用OPC UA协议将数据安全、高效地共享至上层物联网平台。物联网平台需以5秒的周期获取各闸门的开度数据。鉴于闸门设备存在动态变化(名称变更、增减、启停用),需要建立一套基于Excel的设备清单与点表清单管理体系,并实施版本控制。同时,为确保系统的可维护性和可扩展性,需设计一套标准化的闸门、设备及数据点位命名规范,要求采用中文拼音并易于检索。
AI回答:
一、系统架构与数据通信可行性评估
-
数据采集与协议转换层 (KEPServerEx):
-
设备接入能力: 评估KEPServerEx在配置西门子S7-200 PLC(通过Modbus TCP/IP Ethernet驱动或相关Siemens驱动)时,对500个独立设备节点的并发连接与数据轮询能力。
-
数据吞吐量与轮询周期: 确认KEPServerEx在处理500个设备、每个设备若干数据点(至少包含闸门开度)的情况下,能否稳定支持5秒的数据刷新周期,并评估其对服务器资源的占用(CPU、内存、网络带宽)。
-
OPC UA服务能力: 验证KEPServerEx作为OPC UA服务器,向上层物联网平台(OPC UA客户端)提供500个设备数据的服务性能,包括订阅管理、数据推送效率以及安全性配置。
-
-
数据共享协议层 (OPC UA):
-
可扩展性与性能: 评估OPC UA协议在承载500个数据源(对应500个闸门)、每个数据源以5秒频率更新的场景下的整体性能表现,包括信息模型的构建、数据传输的实时性与可靠性。
-
订阅机制: 利用OPC UA的订阅机制(Subscription),优化数据传输效率,确保物联网平台按需、准时获取数据更新,并考虑采样间隔(Sampling Interval)和发布间隔(Publishing Interval)的合理配置。
-
二、资产与配置信息管理体系设计
-
设备清单管理 (Excel):
-
核心字段: 设计包含设备唯一标识符(如 SheBeiID)、设备名称(遵循命名规范)、设备类型(如“闸门”)、物理位置描述、PLC型号、IP地址、Modbus从站地址、通讯参数、部署状态(在用、停用、维护等)、启用/停用日期、版本关联标识等关键信息的Excel数据结构。
-
动态管理: 建立设备新增、变更(名称、位置等)、停用的标准化流程,确保清单信息的实时性和准确性。
-
-
点表清单管理 (Excel):
-
核心字段: 设计包含点位唯一标识符(如 DianWeiID)、关联设备ID、点位名称(遵循命名规范)、数据类型(如 REAL, BOOL, INT)、Modbus寄存器地址、OPC UA节点ID (NodeID)、工程单位、量程范围、读写属性、点位描述、版本关联标识等关键信息的Excel数据结构。
-
数据映射: 清晰定义从PLC Modbus地址到KEPServerEx标签,再到OPC UA NodeID的映射关系。
-
-
版本控制策略:
-
文件命名规范: 对设备清单和点表清单的Excel文件实施版本号和日期结合的命名约定(例如:ZhaMen_SheBeiQingDan_V1.1_YYYYMMDD.xlsx)。
-
变更日志: 在每个Excel文件内部或配合独立的变更日志文档,记录每次修改的日期、操作人、变更内容摘要及原因。
-
基线与存档: 定期创建配置基线,并对重要历史版本进行存档,以支持追溯和审计。
-
三、标准化命名与管理规范建立
-
命名规范设计原则:
-
唯一性: 确保在各自范畴内(设备、点位)名称的唯一。
-
层级性与结构化: 采用分段组合的方式,体现管理层级和逻辑归属。
-
语义化与可读性: 名称应能直观反映实体的属性或功能,使用标准化的中文拼音词汇或缩写。
-
可扩展性: 命名规则应能适应未来系统规模的扩展。
-
系统兼容性: 避免使用特殊字符,确保在各系统平台中的兼容性。
-
-
闸门/设备命名规则 (示例框架):
-
结构: [地理区域/管理单元缩写]_[设备类型缩写]_[序列号]
-
例如:ChengQu_ZM_001 (城区_闸门_001), HeDaoA_PLC_003 (A河道_PLC_003)
-
-
-
数据点位命名规则 (示例框架):
-
结构: [设备完整命名]_[逻辑分组/功能描述]_[具体参数]
-
例如:ChengQu_ZM_001_ZhaMenZhuangTai_KaiDuZhi (城区_闸门_001_闸门状态_开度值)
-
例如:HeDaoA_PLC_003_TongXunZhuangTai_LianJieZhuangTai (A河道_PLC_003_通讯状态_连接状态)
-
-
-
管理规则制定:
-
制定覆盖设备和点表信息的新增、修改、删除、启停用全生命周期的管理流程。
-
明确各相关方的职责与权限。
-
建立定期的数据审计和校验机制,确保配置信息与物理实际的一致性。
-
所有规范和流程需文档化,并对相关人员进行培训。
-
通过 KEPServerEx 读取闸门 PLC 的 Modbus TCP 数据,然后通过 OPC UA 协议分享给物联网平台,您可以按照以下步骤操作:
步骤1:安装并配置 KEPServerEx
-
下载并安装 KEPServerEx: 访问 KEPServerEx 官网 下载并安装 KEPServerEx。
-
创建新的 Modbus TCP 通道:
- 打开 KEPServerEx,并创建一个新的项目。
- 在左侧树形结构中,右键点击 "Channels" 并选择 “New Channel”。
- 选择 Modbus TCP 作为通讯协议,输入相关的 PLC 信息(例如 IP 地址和端口号,通常 Modbus TCP 的端口为 502)。
- 配置通信参数(如数据格式、超时等)。
-
添加设备并配置 Modbus 设备地址:
- 在通道下,右键点击 "Devices" 选择 “New Device”。
- 输入设备名称、IP 地址等信息,确保配置正确的 Modbus 地址(例如线圈、保持寄存器等)。
-
创建标签(Tags)以映射 PLC 数据:
- 在设备下,右键点击 "Tags" 选择 "New Tag"。
- 配置所需读取的 Modbus 地址(例如输入寄存器、保持寄存器、线圈等)。
步骤2:配置 OPC UA 服务器
-
启用 OPC UA 服务器:
- 在 KEPServerEx 中,右键点击 "Communication" 下的 “OPC UA” 选项。
- 选择 "New OPC UA Server"。
- 配置服务器的基本信息(例如服务器端口号、认证方式等)。
-
将 Modbus 数据映射到 OPC UA:
- 将创建的 Modbus 标签与 OPC UA 服务器中的节点相关联。
- 配置 OPC UA 服务器,使其能够通过 OPC UA 协议提供数据。
步骤3:配置物联网平台
-
连接物联网平台:
- 获取物联网平台支持的 OPC UA 客户端或 SDK(不同平台可能支持不同的通信协议,如 MQTT、CoAP 或 OPC UA)。
- 配置物联网平台以从 KEPServerEx 获取 OPC UA 数据。
-
在物联网平台中建立连接:
- 在物联网平台中设置 OPC UA 服务器的端点(URL),这通常是您在 KEPServerEx 配置时设置的服务器地址和端口。
- 配置平台以从 OPC UA 服务器读取数据,并根据需要将数据传输到云端或设备。
步骤4:测试与调试
-
监控数据流动:
- 确保从 PLC 设备通过 Modbus TCP 数据可以成功读取并传输到 KEPServerEx。
- 验证 OPC UA 服务器是否可以从 KEPServerEx 获取到数据。
- 确保物联网平台可以通过 OPC UA 协议正确获取数据。
-
调试问题:
- 如果数据没有正确流动,请检查 KEPServerEx 的日志文件,查看是否有连接或数据传输错误。
- 确保物联网平台正确配置 OPC UA 客户端。
额外资源:
这些步骤应该能帮助您实现从 PLC 通过 Modbus TCP 协议读取数据,并通过 OPC UA 协议共享给物联网平台。如果您遇到具体的技术问题,可以进一步查看相关文档或提供更多信息,我们可以帮助您更详细地解决问题。
KEPServerEx 本身并不直接提供历史数据存储功能(即不内置历史记录数据库),但它可以通过以下几种方式实现自动保存历史数据到文件或数据库(如 SQL Server):
✅ 方法一:使用 KEPServerEx 的 DataLogger Plug-in
这是 Kepware 提供的一个官方附加插件,专门用于将数据记录到数据库或文件中。
📌 功能简介:
- 自动将实时数据记录到 SQL Server、MySQL、Oracle、CSV文件 等。
- 支持定时采样、变化记录(Trigger)、死区设置(Deadband)等。
- 可以设置不同的日志组以采集不同频率、不同来源的点位。
📦 安装与配置步骤:
- 安装 DataLogger 插件(安装包中可选组件);
- 打开 KEPServerEx,点击左侧树形结构中的
DataLogger; - 右键创建一个新的日志组(New Logger Group);
- 选择数据库类型(SQL Server、CSV、ODBC等);
- 配置连接字符串和目标数据库;
- 添加你希望记录的 Tags;
- 设置采样周期或触发条件;
- 启动日志记录服务。
💡 优点:
- 配置简单;
- 原生支持多种数据库;
- 实时或按需记录,自动保存。
✅ 方法二:使用 OPC HDA(历史数据访问)+ 第三方 Historian
KEPServerEx 支持 OPC UA 和 OPC DA,但不支持 OPC HDA(即历史数据访问)作为服务器端。不过,你可以:
- 使用如 OSIsoft PI, Wonderware Historian, 或 Ignition by Inductive Automation 这类带 OPC DA/UA 客户端功能的 Historian 软件连接 KEPServerEx;
- 这些 Historian 会从 KEPServer 读取实时数据并自己做存储,常用数据库后端如 SQL Server、InfluxDB 等。
✅ 方法三:自己开发程序读取数据写入数据库
KEPServerEx 提供 OPC UA、OPC DA、REST API(通过 IoT Gateway 插件)接口,你可以:
- 编写程序(Python、C#、Java等)作为 OPC UA 客户端;
- 实时读取 Tag 数据;
- 写入 SQL Server、PostgreSQL 或文件。
🔁 方法四:使用 IoT Gateway 插件(发布为 MQTT/REST)
- 利用 IoT Gateway 插件将数据发送到一个本地服务(REST、MQTT);
- 由这个服务将数据保存到数据库;
- 适用于和物联网平台或中间件结合的场景。
总结表:
| 方案 | 是否需要插件 | 目标 | 适合人群 |
|---|---|---|---|
| DataLogger 插件 | ✅ | SQL Server、CSV 等 | 初学者和工业现场 |
| OPC 客户端 + 自建存储 | ❌(无需插件) | 任意数据库 | 编程人员 |
| IoT Gateway | ✅ | MQTT、REST API | 与物联网平台集成 |
| 使用 Historian 工具 | ✅/❌ | 工业数据库 | 企业级用户 |
如您是新手,强烈建议使用第一种方式 —— DataLogger 插件,安装配置后可轻松将数据自动记录到 SQL Server 或 CSV 文件中。
✅ 开始配置 KEPServerEx 前,向厂商要哪些信息
在配置 KEPServerEx 前,您必须从闸门控制设备(PLC)厂商那里拿到以下信息:
| 信息项 | 用途 | 示例 |
|---|---|---|
| PLC 的 IP 地址 | 与 PLC 通信的地址 | 如 192.168.1.100 |
| PLC 通信端口 | 通常为 Modbus TCP 的默认端口 502 |
|
| Modbus 通信协议类型 | 确定用哪种驱动 | Modbus TCP/IP |
| PLC 数据寄存器地址清单(点表) | 确定读取/写入的数据位置 | 比如:40001 是闸门开度,00001 是运行状态等 |
| 数据类型说明 | 每个地址的数据格式 | 如 INT16, FLOAT, BOOL 等 |
| 是否需要登录认证 | 某些设备需要账号密码 | 需要时需提供 |
📌 特别注意:请向厂商索要“Modbus 寄存器点表”**,这对后续配置至关重要!
🛠️ 实操:如何配置 KEPServerEx 读取 PLC 的 Modbus TCP 数据
以下是 KEPServerEx 6.x 版本中的实际配置步骤:
① 创建新工程并新建 Channel(通道)
-
打开 KEPServerEx。
-
在左侧项目树中,右键点击 “Connectivity” → 选择 “New Channel”。
-
在弹出窗口中操作:
- Channel Name:输入名称,如
Modbus_Gate。 - 选择驱动程序:选择
Modbus TCP/IP Ethernet→ 点击“Next”。 - 其余选项可以默认 → 一路点击“Next” → 最后点击“Finish”。
- Channel Name:输入名称,如
② 添加 Device(设备)
-
通道创建完后,在刚才的通道下(如
Modbus_Gate),右键点击“Devices” → 选择“New Device”。 -
配置设备信息:
- Device Name:输入设备名称,如
Gate_PLC1。 - 选择“设备型号”为默认。
- 在 “Device ID” 中填
1(如厂商无特别要求)。
- Device Name:输入设备名称,如
-
接下来配置连接:
- IP 地址:填入厂商提供的 PLC IP,例如
192.168.1.100。 - Port(端口):默认填
502。 - Timeout/Retry 设置保持默认即可。
- IP 地址:填入厂商提供的 PLC IP,例如
③ 创建 Tags(标签)
这些标签就是您要从 PLC 获取的数据,比如闸门开度、运行状态等。
-
在刚才的设备下,右键点击 “Tags” → “New Tag”。
-
为每个数据创建一个标签:
- Tag Name:如
GatePosition。 - Address:输入 Modbus 地址,如
40001。 - Data Type:选数据类型,如
Float或Word。 - Scan Rate:保持默认。
- Tag Name:如
🔁 对每个数据点重复以上步骤(如开度、运行状态、报警等)。
④ 验证通信是否成功
- 启动 KEPServerEx 服务(右上角绿色按钮)。
- 打开
Quick Client(内置的实时数据查看工具):- 依次展开
Project → Channel → Device → Tags; - 如果值能够实时刷新,表示通信成功。
- 依次展开
🧯 常见问题及解决方法
| 问题 | 原因 | 解决方式 |
|---|---|---|
| 连接失败 | PLC IP 配置错误 | 核对 IP 和端口 |
标签数据为 Bad |
地址写错或数据类型不匹配 | 确认点表,检查数据格式 |
| 无法读取 | 未开启 PLC 的 Modbus 功能 | 联系厂商确认是否启用 Modbus |
读取值为 0 或不变化 |
PLC 无数据输出 | 核对程序是否已运行数据输出 |
🧭 配置完成后,可以进行下一步:
- 使用 OPC UA 协议将这些数据分享给物联网平台;
- 或使用 DataLogger 插件保存到 SQL Server 数据库。
将数据保存到 SQL Server 或分享给物联网平台。我们将采用零基础、手把手方式,为您提供:
🧩 示例 1:使用 DataLogger 插件将数据保存到 SQL Server
✅ 准备工作(只需准备一次)
| 项目 | 说明 |
|---|---|
| 安装 SQL Server | 推荐使用 SQL Server Express(免费版) |
| 创建数据库 | 可命名为 KEPDataLoggerDB |
| 获取数据库连接信息 | 包括:服务器名、数据库名、用户名、密码 |
| 安装 KEPServerEx 时启用 DataLogger 插件 | 默认已安装,可在安装包中修改 |
🧭 操作步骤:创建日志记录配置
第 ① 步:打开 DataLogger 插件
- 打开 KEPServerEx;
- 在左侧“Connectivity” 下方找到
DataLogger,右键点击 →New Logger Group。
第 ② 步:设置 Logger Group 基本信息
| 项目 | 示例填写 |
|---|---|
| Name | GateLoggerGroup |
| Description | 记录闸门状态和开度 |
| Log Mode | 建议选 On Update 或 Scheduled(例如每5秒) |
第 ③ 步:配置 SQL Server 数据库连接
- 在 “Log To” 中选择
ODBC Data Source; - 点击
Configure打开数据库设置对话框; - 选择一个已有的数据源或创建新的 系统DSN:
🔧 如果您没有 DSN,请这样做:
- 打开电脑的 “ODBC 数据源管理器”(64 位);
- 添加一个新的 “System DSN”;
- 驱动选择:
SQL Server或ODBC Driver 17 for SQL Server; - 配置数据库连接(输入服务器、用户名、密码、数据库名);
- 测试连接通过后关闭。
- 回到 KEP 中,选择您刚配置的 DSN;
- 表名可填:
GateDataLog; - 勾选 “Create Table if not exists”。
第 ④ 步:添加需要记录的 Tags
- 在 Logger Group 中点击 “Add Tags”;
- 勾选您希望记录的 Tag,如
GatePosition、GateStatus等; - 确认时间戳选项为勾选状态;
- 确认后保存。
第 ⑤ 步:启动 DataLogger
点击 KEPServerEx 工具栏上绿色的“运行”按钮; 在 DataLogger 下右键 → Start Logging; 可查看日志状态、数据写入数量等。
🧪 测试结果
可在 SQL Server 中运行如下语句验证数据是否写入:
<SQL>
SELECT TOP 100 * FROM GateDataLog ORDER BY Timestamp DESC;
🛰️ 示例 2:通过 OPC UA 让物联网平台访问数据
KEPServerEx 原生支持 OPC UA,非常适合与上位平台(如 Ignition、组态王、物联网平台)集成。
✅ 配置 OPC UA Server(只需一次)
- 打开 KEPServerEx →
Project→OPC UA Configuration; - 确保“Enable OPC UA”是开启的;
- 记录下:
- Endpoint 地址(如
opc.tcp://127.0.0.1:49320) - 应用名称
- 用户名/密码(如启用身份验证)
- Endpoint 地址(如
🧪 测试工具:Unified Automation OPC UA Client
- 下载并安装:
UaExpert工具; - 添加服务器 → 输入上面提到的 Endpoint;
- 连接成功后展开节点结构;
- 双击
GatePosition、GateStatus等 → 可实时读取数据。
💡 如后续对接物联网平台(如阿里云 IoT、Ignition),它们支持 OPC UA 客户端模式,接入方式类似 UaExpert。
📦 示例 3:提供完整项目模板文件(可导入)
我可以为您生成一个 .opf 项目文件(KEPServerEx 的工程文件),包含:
- 已配置的 Modbus TCP 通道、设备和 Tags;
- 示例 DataLogger 配置;
- OPC UA 配置项。
🎁 请告诉我您准备使用的设备 IP 和寄存器信息(或截图点表),我将帮您定制生成。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)