简介:这是KEPServerEX工业通讯服务器的完整中文操作手册,面向工业自动化工程师、系统集成商以及OPC DA/UA应用开发者,覆盖从系统环境准备、项目创建到设备接入与数据采集的完整实施链路,可应用于车间设备联网、SCADA数据采集、MES对接等典型现场。手册系统介绍了OPC DA、OPC UA、DDE、FastDDE/SuiteLink、iFIX本机接口等多种通信方式,深入讲解通道与设备的属性配置、扫描模式、冗余机制、通信序列化等关键技术点,同时包含标记管理、CSV导入导出、别名映射、事件日志分析、存储转发机制以及Configuration API自动化管理服务的使用方法,并对OPC UA证书管理和访问权限设置做了专门说明,帮助读者规避工业现场常见的安全与连接故障。资源包内含1个PDF文档,大小4.34MB,全文图文对照且目录完整,支持按需检索,便于离线学习。当前已有3637人学习下载,无论初次接触KEPServerEX的新手,还是需要快速查阅配置细节的资深维护人员,都能从中获得实用的操作指引与排错思路。
1. 一份中文手册,能省下调试期的三天:KEPServerEX 到底做什么
以前接一条混料产线的数据采集,三百多个点位要往组态软件里敲,地址、数据类型、量程逐个对齐,改了 PLC 程序上位机就得跟着改一遍,凌晨还在现场对着点位表翻。后来换成 KEPServerEX 这类通讯服务器,设备侧只接一次,上层 OPC DA、OPC UA、DDE 这些接口全由它统一转发,点位逻辑收敛到一处。这份中文手册是官方用户手册的汉化版,从系统要求、通道设备标记三层配置,到 CSV 批量导入、Configuration API 自动化管理,再到事件日志排错,都有完整操作路径。适合做上位机集成、SCADA 数据采集、产线信息化改造的工程师,新手能按章节复现,老手能查参数边界。
2. 先吃透三层模型:通道、设备、标记的配置边界与选型
KEPServerEX 的项目结构是强分层的:通道在最外层,设备挂在通道下,标记挂在设备下。很多第一次用的人上来就建标记,结果发现地址解析、通信参数没地方配,就是因为没理解这一层套一层的建模逻辑。这一章把三层模型拆开讲,顺带说明每一层该在什么场景下做取舍。
2.1 通道层:物理链路参数的集中配置点
通道对应一条物理通信链路,以太网就配 IP、端口、网卡,串口就配 COM 口号、波特率、数据位、停止位和校验方式。手册里通道属性页列出了常规、高级、以太网通信、串行通信、以太网封装、通信序列化、网络接口、写入优化这几组,实际项目里最值得盯的是三处。
第一是网络接口。多网卡工控机上,通道默认走系统路由,可能把 OPC UA 的流量发到错误网卡上。手册里“指定的网络适配器在通道上无效”这条日志说的就是这事,配通道时显式指定网卡,能免掉一类很隐蔽的通信故障。第二是通信序列化,同一通道下多个设备并发请求时,可以选轮询所有设备或仅轮询有活动标记的设备两种策略。默认配置下如果通道里有设备离线,整个通道的轮询周期会被拖长,这是典型的通道级故障放大。第三是写入优化,把多个写请求合并处理后下发,对串口这类半双工链路效果很明显,能降低总线上帧的数量。
打个比方:通道就是水管,设备是水龙头,标记是出水口。水管口径不够或者阀门没对,后面配再多标记也白搭。
2.2 设备层:扫描模式、自动降级和冗余切换
设备挂在通道下,对应一台具体的 PLC、仪表或者控制器。设备属性页里最重要的几项是操作模式(启用或禁用)、扫描模式(按固定间隔轮询还是设备主动上报)、请求超时、重试次数、自动降级策略。
自动降级这个功能值得单独说。现场设备偶尔断链是常态,如果设备无响应时通道还按原频率去请求,超时等待会占满整个通道的请求队列。开启自动降级后,服务器会主动减少对该设备的轮询频率,设备恢复后再自动升回来。事件日志里会记“设备已自动降级”和“设备已启用自动降级”,看到这两条就知道策略生效了。
设备冗余也是手册里的重点,冗余模式下要定义主设备和备用设备,以及切换条件。切换会触发从上一次正常通信状态重新建立连接。我的习惯是配置冗余的同时把事件日志级别调高,否则切换发生时没有记录,后面排查链路抖动会非常被动。设备属性里的“时间同步”和“定时”两项容易被忽略,前者用于需要时钟对齐的协议场景,后者用来控制设备轮询的启停时段,适合只在白班采集的产线。
2.3 标记层:数据类型、缩放和多标记生成
标记是真正承载数据的最小单元。手册把标记分成静态标记(用户定义)和动态标记两类。静态标记就是项目里手工定义的点,地址指向设备寄存器,比如 Modbus 协议里 40001 对应保持寄存器。动态标记的地址在运行时才解析,适合地址由外部系统计算出来的场景,比如按配方动态切换采集点。
标记属性里的缩放项,很多项目没用上但用了能省不少事。传感器输出 4-20mA,对应寄存器原始值是 0-65535,要显示成 0-100 的工程值,不缩放就得在上位机做一次换算。手册里“验证错误位于某标记: 缩放参数无效”这条报错,常见原因就是原始值范围填反了——把最小值写成最大值,运行后数据全是乱的。填完缩放参数,上线前在测试面板里手动写几个边界值,确认两个端点都对得上再交付。
多标记生成功能也提一下,它可以根据设备的寄存器起始地址和数量批量生成一组标记,适合连续寄存器区域批量建点。手册里事件日志记录的“自动生成的标记已存在,无法覆盖”说明批量生成时撞了名字,生成前要清理重名标记,或者在生成规则里加上统一前缀。
2.4 标记组与别名映射:批量订阅和短地址寻址
标记组是给客户端订阅用的逻辑分组。OPC DA 客户端按组订阅,一个组里的标记共享刷新周期,所以要把刷新频率不同的点拆到不同组。手册里标记组属性页能配置是否允许动态添加标记、组内标记的排序方式,这些配置不复杂,但直接影响客户端侧的浏览体验。
别名映射则是把一长串地址短化。比如 Channel1.Device1.ModbusAddress40001 这种完整路径,映射成 Tank1_Level,OPC 客户端订阅时直接用短名,写脚本也清爽。手册里特别提示别名不能以英文下划线开头,也不能包含双引号,导入 CSV 时如果别名无效,整条记录会被拒绝,不会只跳过那一个字段。这个细节在批量导入时很坑,后面第 4 章再展开。
3. 从零搭一个 OPC UA 项目:向导、CSV 导入与验证
这一章按“装之前核对系统要求 → 创建通道设备 → 添加标记 → CSV 批量导入 → 运行时测试”的顺序走一遍。手册本身是文档资源,所以这里用步骤和格式示例代替代码块,每一步都说清楚为什么要这么做。
3.1 先核对系统要求,别在 Windows 版本上翻车
手册开头列的系统要求值得先过一遍。操作系统上,Windows 10 专业版和企业版 x86/x64、Windows 8/8.1、Windows Server 2012/2016/2019 x64 都在支持列表里,但 Windows Server Core 部署明确不支持。64 位系统上服务器跑在 WOW64 兼容子系统里,手册给出的最低配置是 1 GHz 处理器、1 GB 内存和 530 MB 可用磁盘空间,还要一张以太网卡。
现场最容易翻车的是标准用户权限。安装完后,默认的应用程序数据目录是 C:\ProgramData\,标准用户必须对这个目录有读写权限,否则启动时直接弹“此帐户没有权限运行该应用程序”。更隐蔽的是只读权限也能进入配置界面,但保存项目时才会报错,所以装完第一时间用 Windows 资源管理器把自定义用户组的读写权限加上,不要等报错再回头找。注意运行服务器不需要执行权限,给读写就够了。
另外一个备份层面的习惯:.config 目录里存的是当前运行的项目文件、证书实例信息和其他运行配置,手册明确建议把 .config 目录纳入备份计划。很多项目只备份 .opf 项目文件,漏掉 .config,换机器恢复时证书对不上,UA 客户端全部连不上。
3.2 建通道和设备:两个向导的正确打开方式
新建项目后先走通道创建向导,选好驱动类型,然后填通信参数。以太网设备填 IP 和端口,串口设备填 COM 号和波特率。一个项目里可以建多个通道,每个通道对应一条独立链路。我一般把不同物理链路的设备拆到不同通道,避免一台设备的重试占满另一条链路的请求窗口。
设备创建向导挂在通道下,核心要填设备 ID 或站号,协议不同叫法不同,Modbus 叫从站地址,部分协议叫节点号。这里有一个踩过的坑:设备 ID 的类型或字节序选错,通信会一直起不来,因为协议栈拿到的地址字节序不对,日志里还不一定能直接看到错误。配置完设备后,建议先回到通道属性页做一次设备发现,手册里“设备发现超出最大允许设备数”这条日志提示发现过程有上限,现场设备数量大的话分段发现更稳妥。
设备建完,下一步是添加标记。常见做法是先在设备下手工添加一个测试标记,确认地址语法正确、能读到数据,再批量生成或导入。手工添加时标记属性里要填标记名、地址、数据类型,地址语法在对应驱动的帮助文档里,不同协议差别很大,别拿 Modbus 的地址格式去套别的协议。
3.3 CSV 批量导入:格式细节决定成败
项目点位过百后手工添加不现实,手册里的 CSV 导入导出就是干这个用的。CSV 文件的第一条记录是标识记录,用来声明字段名,后续每条记录对应一个标记。经过实际验证可用的最小格式如下:
Tag Name,Address,Data Type Tank1_Level,40001,Word Tank1_Temp,40002,Word Flow_Meter_1,30001,Word导入时服务器按标识记录里的字段名解析每一行。手册列出了几类很典型的导入失败原因:标识记录缺失、字段名重复、字段名无法识别、标记名以下划线开头、地址缺失。尤其是“名称不能包含双引号或以下划线开头”这一条,见过不止一次——编辑 CSV 时用了 Excel 的自动填充前缀,导入时忘删,整批记录被拒绝,日志里只给一条“记录索引指向记录名称”的提示,不逐行解释。
导入前建议用文本编辑器检查编码和 BOM 头,Excel 另存的 CSV 经常带 UTF-8 BOM,某些版本下服务器会解析出异常。导入后去事件日志看统计:创建标记数 X,覆盖标记数 Y。如果 X 远小于预期,回到 CSV 逐行检查字段名和地址列。导出的场景也一样,导出 CSV 记录时如果标记或组名超过最大名称长度,事件日志会直接报错,长命名规范要在建点之前定好。
3.4 保存、备份和运行时测试
项目保存时,手册里几个文件格式要分清:默认的 OPF 是二进制项目文件,JSON 是明文可读格式,SOPF 是加密项目文件。启用项目加密后只能存成 SOPF 或 JSON,不能存成 OPF;停用加密时反过来不能存 SOPF。这一对约束很多人不知道,导致换环境迁移项目时反复报“不支持在启用项目文件加密的情况下将项目文件保存为 .OPF 文件类型”。我的做法是迁移前先导出一份 JSON,换个环境再导入,绕开格式限制。
运行时测试这步,手册“测试项目”一节给了完整路径:先启动服务器运行时,再从客户端工具浏览标记。我用得最多的是 OPC UA 客户端,把通道、设备、标记三层结构展开,确认 Quality 列是 Good、Value 列有数据。如果 Quality 显示 Bad 或 Uncertain,基本是地址写错或设备未响应。测试面板里顺手写一个值验证写通道,能确认写入链路和数据类型映射都没问题。
4. 高频故障排查:驱动、数据类型、证书与存储的五个坑
排查问题前先说方法论:KEPServerEX 自带的诊断入口很关键。手册里有两块直接能派上用场——事件日志和通信诊断。事件日志记录服务器级和通道级的事件,通信诊断可以针对单个通道做帧级跟踪,抓包级别的排查不用再依赖外部工具。下面五个坑是现场遇到频率最高的,每个都按现象、原因、解决三步写。
4.1 设备驱动加载失败
现象:事件日志里出现“未找到设备驱动程序,或者无法加载”或“无法加载驱动程序 DLL”。通道和设备建好后,设备状态一直显示未连接。
原因:驱动 DLL 文件缺失、版本不匹配,或者同一个驱动程序存在多个副本。手册里有一条很直白的提示:无法加载驱动因为存在多个副本,请移除冲突的驱动并重新启动应用程序。系统里装了不同版本的驱动文件时,Windows 可能加载到错误的那一个。
解决:先到安装目录确认驱动文件存在,再检查是否有重复文件,把旧版本清掉。刚升级过版本的话,重启一次服务器让驱动重新加载。如果驱动 DLL 依赖的 VC 运行库缺失,事件日志会给出操作系统错误码,按错误码装对应运行库即可。这套操作对插拔了加密狗或授权文件的环境也适用,驱动加载的权限问题往往和 DLL 路径强相关。
4.2 写入失败:数据类型不匹配
现象:客户端写入时返回“写入请求失败。写入数据类型无法转换为标记数据类型”。测试面板里能读到数据,但写操作就是弹错。
原因:OPC 客户端写入的数据类型和标记定义的数据类型不一致。比如标记定义成 Word,客户端按 Float 写,转换失败就拒绝。手册里还有一条“缩放写入数据时出错”,意思更明确——数据本身类型对得上,但缩放换算那一步算出了越界值。
解决:打开标记属性页核对 Data Type 定义,把客户端写入类型改成一致。如果协议本身支持多种类型映射,优先在标记属性里选择协议推荐的类型,不要在客户端侧做隐式转换。标记启用了缩放的话,检查原始值和工程值的范围设置,确认写入的是工程值而不是原始值,很多现场把这两个搞混。
4.3 OPC UA 连接证书问题
现象:UA 客户端能发现服务器,但建立会话时握手失败。服务器日志出现“缺少服务器实例证书”或“UA 服务器证书过期”。
原因:OPC UA 采用证书双向验证,服务器实例证书丢失、过期,或证书信任链不完整都会握手失败。手册里还有两条类似的:Config API SSL 证书包含错误签名、Config API 无法加载 SSL 证书。名称虽然带 Config API,本质都是证书文件本身出了问题。
解决:用 OPC UA 配置管理器重新生成服务器实例证书,更新到证书存储。客户端侧的受信任证书列表也要同步更新,两边互相信任才能建立会话。证书更换后必须重启 UA 服务,因为端点配置在启动时加载,不重启会继续用旧证书,日志里会一直刷“无法初始化端点配置”。
4.4 存储并转发数据存不进去
现象:启用了“存储并转发”模式,通信中断期间应该有缓存,但日志报“由于磁盘已满,存储并转发数据存储无法存储数据”或“已达到存储大小限制”。恢复通信后发现中断期间的数据丢了。
原因:存储并转发服务要在本地磁盘缓存数据,磁盘满或缓存大小设置得太小都存不进去。手册里还有一条“无法连接或附加到存储并转发数据存储,正在使用内存存储”,意思是缓存落不了盘、退化成内存缓存,重启就丢数据。
解决:清理磁盘或把数据存储位置改到大分区,同时手动调大存储大小限制。看到“正在使用内存存储”这条日志必须马上处理磁盘,再分析数据链路。另外,存储并转发服务启动时如果遇到数据存储文件损坏,服务会重建数据存储并记录一条“连接数据存储时文件损坏,已重新创建数据存储”,这条提示不代表数据丢失,但要知道它重建的是本地缓存文件,不是源设备的数据。
4.5 应用程序数据目录权限不足
现象:标准用户启动服务器,弹窗提示“此帐户没有权限运行该应用程序”,配置界面进不去,或者能进但保存项目时报错。
原因:服务器默认在 C:\ProgramData\ 存放项目文件、.config 运行配置和证书信息,Windows 标准用户对该目录只有继承的只读权限。手册里明确说,仅有读取权限不足以对产品进行配置,但只读权限却可能允许本不该访问的用户读取文件夹内容。
解决:在 Windows 资源管理器里给对应的自定义用户组加读写权限,不要给所有用户开权限。给完权限要重启一次服务器。手册特别建议不要管理单个用户或默认的 Users 组,而是创建自定义用户组,把需要权限的账号加进去。权限配置完后,建议顺手把 .config 目录的备份策略也确认一遍,前面第 3 章提过,证书和运行配置都在这个目录里,漏掉它备份不完整会出大问题。
5. Configuration API 自动化:把重复配置写进脚本
设备上百台、点位上千个的项目,靠界面逐个建通道设备不现实。手册里 Configuration API 这一章就是干这个的,把配置操作从图形界面搬到 REST 接口上。
5.1 API 的定位:改配置,不碰实时数据
Configuration API 服务是一套 REST 风格的接口,用来管理服务器配置,能创建通道、设备、标记、标记组,能改属性、删对象、管理用户和用户组。但要注意,这些操作针对的是项目配置,不是实时数据读写。实时数据要走 OPC DA 或 OPC UA 接口,这是两个不同的体系,别混在一起。
手册里列出了文档端点、运行状况端点、内容检索等几个入口。我的习惯是先调运行状况端点确认服务正常,再执行创建操作。服务启动时事件日志会写“Configuration API 已启动,无 SSL 用于端口 <端口号>”或“有 SSL 用于端口”,看到无 SSL 那条就知道当前是 HTTP 明文模式,生产环境要尽快启用 SSL。
5.2 用 REST 调用创建通道和设备
创建通道的请求大致是这样,具体字段名以手册通道属性页为准:
curl -X POST "http://localhost:<api端口>/configuration/channels" \ -H "Content-Type: application/json" \ -d '{ "name": "Ch1_Modbus", "driverid": "<驱动ID>", "properties": { "TcpIpAddress": "192.168.1.10", "TcpPort": 502 } }'driverid 要填实际选用的驱动名称,不同驱动对应的 ID 字符串不一样,手册里“设备需求轮询”一节也提到了设备驱动接口的调用方式。通道创建成功后,再往通道下创建设备,请求路径不变但要带上通道名。创建完建议调用一次查询接口确认通道和设备都出现在运行时项目里,然后再加标记。批量场景下,把创建逻辑写进循环,注意每次调用之间做响应码判断,手册里专门有一节“Configuration API 服务 - 响应码”,不认识的响应码先查文档再重试,不要盲目循环。
5.3 并发和会话锁:配置界面开着会挡脚本
手册里“Configuration API 服务 - 并发客户端”和“内容检索”两节,说明了并发上限和查询过滤的用法。有个容易忽略的点:配置会话是独占的。配置界面打开时,API 的写操作可能拿不到写入权限,日志里会出现“配置会话由某用户启动”到“分配到某用户的配置会话已结束”之间的时间窗口,期间 API 写操作都会被拒。批量导入场景,先把配置界面关掉再跑脚本,可以少踩很多并发锁的坑。
另外,用户和用户组管理也可以走 API。手册里列出了创建用户、更新用户、创建用户组、配置用户组项目权限这些操作。用到权限控制的场景,建议把用户配置也写进脚本,这样整套交付环境能一键重建,不用在界面上手工逐条录入。
5.4 设备需求轮询与运行时重新初始化
有设备是自动生成标记、按需轮询的场景,API 建完设备后要触发“设备需求轮询”,才能让设备侧自动完成标记生成。事件日志里的“正在尝试对设备自动生成标记”和“已完成设备的自动标记生成”两条记录,就是这一过程的开始和结束。如果生成的标记数量不对,参考第 4 章的驱动排错思路,先看设备是否响应,再查地址范围配置。
配置改完还有一步:运行时重新初始化。API 对项目的修改不会百分百即时生效到运行中的服务器,部分属性变更要触发“运行时重新初始化”才加载。手册里“重新初始化运行时服务”一节说的就是这个动作,事件日志的“运行时重新初始化已启动”和“运行时重新初始化已完成”能确认是否顺利完成。从那以后,我每次跑完配置脚本都会强制查一遍“运行时重新初始化已完成”的日志,确认了再交付,希望帮到你。
6. 进阶技巧:用统计信息标记盯住通道健康
配置落地只是开始,运行期的通道健康监控才是真正拉开差距的地方。这里有个不太被注意但很实用的功能:系统标记里的统计信息标记。
系统标记是服务器内置的一类特殊标记,不是设备驱动产生的数据点,而是反映服务器自身运行状态。手册里把它们分成属性标记、统计信息标记、调制解调器标记、通信序列化标记几类。属性标记反映服务器、通道、设备级别的属性状态,统计信息标记反映通信质量相关的计数。把统计信息标记接入 OPC UA 客户端后,通道健康状况直接从上位机侧可见,不用每次跑到现场开诊断工具。
最实用的几个统计项是:设备扫描次数、通信错误计数、重复次数、队列深度。设备扫描次数增长说明轮询在正常推进,通信错误计数持续增长说明链路质量在恶化。把这两个项做成阈值告警,比盯着客户端数据死看要提前半拍发现问题。事件日志配合统计标记一起看,能快速分清是设备侧问题还是通道侧问题:错误计数涨但事件日志没有驱动级报错,多半是物理链路闪断;计数涨且伴随“设备未响应”,多半是设备侧或地址配置出问题。
以前吃过亏:一个通道网络闪断,诊断工具没开,等到客户端告警才发现是通信问题。后来把设备扫描次数和错误计数做成 OPC UA 告警项,配合事件日志联动,每次改完配置先跑一遍统计项验证,确认扫描计数在增长再离开现场。从那以后我每次配完通道都先看一遍统计标记再收工,希望帮到你。
本文还有配套的精品资源,点击获取