拓冰建站拓冰建站
首页 / 资讯中心 / 正文

KEPServer EX6实战:Modbus采集、MQTT上云与REST接口一站式配置指南

做工业数据采集的人应该都有过这种体会现场设备五花八门PLC、电表、变频器、温控仪底层清一色走Modbus数据采上来之后一部分要推到云端的MQTT Broker喂给物联网平台另一部分还得开个REST接口让MES、ERP或者自己写的管理系统能直接拉数据。以前这个架构想落地往往要拼凑好几套软件——OPC网关、MQTT转发工具、REST中间件中间还得写一堆脚本粘来粘去光是联调就能耗掉好几天。KEPServer EX6这个软件很多人对它的印象还停留在“OPC Server”上觉得它就是个把Modbus转成OPC UA的老牌网关。但如果你仔细看过它的插件列表会发现6.x版本早就把MQTT和REST Server做成了标准组件。换句话说一台设备、一套工程Modbus采集、MQTT上云、REST对外服务这三件事可以在一个界面里全部配完不需要再单独部署任何中间件。这篇文章就围绕这套“一站式”配置把我实际部署中踩过的坑和验证过的步骤完整梳理出来希望能给正在做同类项目的朋友省点时间。1. KEPServer EX6的定位与整体架构设计1.1 先搞清楚KEPServer EX6到底适合干什么很多人一上来就问“KEPServer和组态软件有什么区别”这里先把这个概念理清楚。组态软件比如WinCC、组态王的核心是“画面报警趋势”它把数据采集当成一个内嵌功能来用而KEPServer EX6的核心就是“数据接入与分发”它负责把各种乱七八糟的协议统一成一套标准的数据模型再通过不同的客户端接口把数据送出去。换句话说组态软件是“给人看的”KEPServer是“给其他系统用的”。EX6在这条路上又往前走了一步。它的插件架构里除了经典的OPC DA/UA、DDE、ODBC之外还内置了IoT GatewayMQTT、REST Server、EFM数据记录等组件。实际项目里最常用的组合就是Modbus驱动负责采集IoT Gateway负责把标签推送到MQTT BrokerREST Server负责让外部系统按需读取或写入标签。1.2 三个协议在工程里各自扮演什么角色我习惯用“采、传、取”三个字来记忆这三个协议的分工。Modbus负责“采”它是整个系统的数据源头对接下层设备MQTT负责“传”它解决的是设备数据如何主动上报到云端或MQTT Broker的问题REST Server负责“取”它解决的是外部应用如何按需读取或写入数据的问题。这个分工在逻辑上是互补的。MQTT走的是发布/订阅模式适合数据主动推送比如每秒钟上报一次设备状态REST走的是请求/响应模式适合按需查询比如上位机系统只在需要的时候调用一次接口拿当前值。两者可以同时启用互不冲突。我在一个实际的能源管理项目里就是这样用的Modbus采电表数据MQTT每分钟推送一次能耗数据到云平台做报表REST接口则提供给本地运维系统临时查点和写点。1.3 网关心态不要把所有计算都塞进KEPServer有一点必须提醒KEPServer EX6虽然功能很全但它本质上还是网关不是计算引擎。我在初学的时候走过弯路喜欢在它里面做大量数据变换比如写不少高级标签做温度补偿、流量累计计算结果发现调试麻烦、性能也不理想。后来学乖了所有需要复杂运算的逻辑全部放到上层平台或者MQTT下游的Node-RED里去处理KEPServer只负责把原始数据准确、快速地搬过来。这个定位想清楚之后配置思路就清晰了底层的标签尽量保持“一设备一地址一标签”的干净结构计算逻辑外置整个系统跑起来会稳定很多。2. 准备工作与环境搭建2.1 安装时容易忽略的几个选项KEPServer EX6的安装包在官方渠道可以直接下载基本是“下一步”式安装但有三个点我建议你留意一下。第一安装时选择“完整安装”而不是“典型安装”。典型安装只会装上OPC DA和模拟驱动而Modbus、IoT Gateway、REST Server这些关键插件需要额外勾选。第二如果以后要用OPC UA方式访问建议在安装过程中一并把“OPC UA Server”和“OPC UA Client”组件选上避免后面为了加组件又要重跑安装程序。第三IoT Gateway和REST Server组件在默认安装界面可能藏得比较深要先展开“Iot Gateway”和“Server”这两类插件再勾选。安装完成后启动KEPServer EX6 Administration左侧会列出所有已安装的驱动和插件。如果看不到IoT Gateway或REST Server说明安装时没勾选对应组件需要重新运行安装包修复安装。2.2 工程文件的组织与驱动选择在KEPServer左侧的“Connectivity”树中右键点击“Channel”可以新建通道。通道里选什么驱动直接决定你后面面对的设备类型。我在项目里选驱动的一般原则是场景驱动选择说明PLC/仪表网口通信Modbus TCP/IP现代设备基本都走这个串口仪表/老PLCModbus RTU Serial485总线常见网口转串口模块Modbus TCP/IP 接模块避免串口驱动不稳定问题调试模拟Simulator驱动先验证通道再换真实设备一个通道下可以挂多个设备比如“通道1-ModbusTCP”下面挂A站电表、B站PLC。每个设备有独立的ID和设备地址采集互不干扰。设备下面再分标签组标签组可以理解成文件夹用来管理某台设备的全部点位。我在做项目的习惯是通道按“通信链路”分设备按“物理设备”分标签组按“业务模块”分。比如一个厂房里有5台电表走同一个网段我会建一个“ModbusTCP-厂房电表”通道下面挂5个设备每个设备下面再按“电压电流”“电能”“需量”分标签组。这样以后维护点位关系的时候非常方便。2.3 给新手的基础概念补课如果你之前没接触过KEPware体系有几个基础概念必须先搞懂否则配置过程中很容易懵。通道Channel是通信链路它定义了“用什么驱动”“走什么网络接口IP/串口”“超时重试怎么处理”。设备Device是通道下面挂在总线上的具体设备需要填写设备IDModbus从站地址。标签Tag是数据点一个标签对应设备里的一个寄存器或线圈。数据流向是“通道-设备-标签组-标签”标签才包含实际数据值。理解了这个层级后面处理地址格式、数据类型、扫描周期的时候就不会晕。3. Modbus配置的核心细节3.1 Modbus TCP配置步骤Modbus TCP的配置是所有Modbus协议里最简单的。新建通道选择“Modbus TCP/IP”驱动设置本机网卡IP作为采集网口然后创建设备填写从站设备的IP地址、端口号默认502和从站设备ID。设备ID这里有个常见误区很多人以为Modbus TCP不用设备ID其实TCP模式里单元IDUnit ID默认填1但当设备是网关后面的某个从站时可能需要改成实际的从站地址。我之前遇到过一台DCS系统网关后面挂了5个从站所有TCP请求都打到网关IP上就靠单元ID区分是谁这时候不填对就完全收不到数据。3.2 Modbus RTU串口配置要点串口配置比TCP麻烦一些参数比较多波特率、数据位、校验位、停止位必须和从站设备完全一致否则连不上。我用过的仪表里最常见的是9600-8-N-1但也遇到过38400-8-E-1的老设备还有奇葩的使用2位停止位的。除了通信参数还有一个“Inter-Character Timeout”和“Message Timeout”的概念。很多人在串口通信不稳定时只会调波特率其实韦德链路超时参数更重要。KEPServer里“Request Timeout”建议3000ms左右“Retry Attempts”建议2次。如果现场有多台设备共享总线还要设置好“Polling Interval”默认100ms差不多但设备多了以后要适当调大。我实际碰到过一种情况一台485电表莫名其妙地偶发延迟查了很久才发现是电表的从站响应时间本身很长KEPServer的默认超时时间不够导致三次超时后直接把设备标记为“错误状态”。后来把Request Timeout调到5000ms问题就消失了。所以遇到“采着采着就掉线”的情况先别急着怀疑通信线先看从站响应时间是否超过超时阈值。3.3 区域映射与地址格式Modbus寄存器分成四个区域新手最容易在这里出错。0区是线圈Coils可读可写对应KEPServer里的“Coil”1区是离散输入Discrete Input只读3区是输入寄存器Input Registers只读的16位寄存器4区是保持寄存器Holding Registers可读可写的16位寄存器。绝大多数仪表的数据都在3区和4区。KEPServer的地址格式一般写法是“设备地址类型地址编号”。比如“40001”表示4区第一个保持寄存器“30001”表示3区第一个输入寄存器“00001”表示0区第一个线圈“10001”表示1区第一个离散输入。注意这里的地址编号是PLC风格的“1起始”也就是第一个寄存器的地址是40001而不是40000。在KEPServer中新建标签时“Address”字段就是填这些。还有一个细节有些设备说明书用十六进制地址比如“0x0000”对应40001换算时别搞错。另外一个技巧是国产仪表地址编号经常是“400001”这种6位数多了一个位实际含义是一样的只是不同厂家有不同习惯。3.4 字节序与字序数据跳变的重灾区16位寄存器本身没问题但很多遥测值需要组合两个16位寄存器构成32位浮点数即IEEE 754格式的Float。这时候就涉及“字节序”和“字序”的问题而且这是Modbus采集数据“看起来不对”的头号原因。KEPServer对每个标签都可以单独设置“Data Type”为Float、Long等同时还有“Byte Order”Big Endian / Little Endian和“Word Order”High/Low Word First两个参数。简单说如果采集到的浮点数和真实值差了好几倍或者像乱码大概率就是这两个顺序选反了。我的调试习惯是找“一个已知确定数值的寄存器”比如额定电压220.5V然后切换几种Endian组合观察哪个组合读出来的值和实际接近。运气好的话两次就试出来了。这个只能靠试因为厂家说明书极少会写清楚字节序。3.5 扫描周期与性能优化KEPServer的驱动默认会对所有标签轮询但轮询顺序和频率是有优化空间的。每个标签组可以单独设置“Scan Rate”也就是轮询间隔默认100ms。如果一台设备下的标签很多比如一台电表有几百个遥测点建议把标签拆分成多个标签组并给不重要的标签组设置更大的扫描间隔比如500ms、1000ms重要的组保持100ms。这样做的好处是避免所有标签挤在同一批请求里导致单次Modbus报文过长某些老设备处理不了超过125个寄存器的一次读请求。有个非常实用的设置KEPServer支持“Optimized Read”优化读取即同一连续地址范围的多个标签会自动合并成一条Modbus报文。所以新建标签时尽量把同一台设备、地址连续的标签放在同一个标签组里能明显降低总线负载。实测下来同样50个标签乱序分散摆放和按顺序集中摆放轮询一轮的时间能差出好几倍。4. MQTT配置让数据主动“跑”到云端4.1 IoT Gateway的基本逻辑KEPServer EX6的MQTT功能是通过“IoT Gateway”插件实现的。这个插件的思路是把指定的标签集合Tag Group作为数据源按你设定的Topic和周期向MQTT Broker发布消息。它的配置入口在报表栏中没有单独显示需要在“参数”界面的“服务器/设备”列表中展开找到“IoT Gateway”然后右键属性在弹出界面中启用“允许通过MQTT实现远程通信”并填写Broker相关信息。有一点需要注意IoT Gateway在6.x版本中有两种使用模式。一种是内置的“MQTT Client”模式直接作为MQTT客户端连接外部Broker另一种是“IoT Gateway”模式它本身也提供OPC UA接口用于和另一台KEPware或第三方MQTT网关对接。我们接入阿里云MQTT、EMQX、Mosquitto这些场景用的都是“MQTT Client”模式。4.2 MQTT Broker连接配置在IoT Gateway设置里填入MQTT Broker的地址和端口。本机测试可以用EMQX默认1883端口上云一般要填阿里云MQTT或腾讯云IoT的接入地址。需要注意很多云平台的接入地址带有“ssl://”或“tcp://”前缀填写时通常只需要地址本身和端口号但认证信息要严格按平台要求填写。用户名和密码Client ID也要核对。云平台一般要求Client ID唯一有些平台还会把Client ID跟设备三元组绑定。我之前接阿里云MQTT时因为Client ID里忘了带设备证书的认证信息Broker那边一直报“Connection refused: not authorized”折腾了半小时才反应过来。Certificates证书这一块如果使用TLS加密连接需要在“Certificate”选项中加载CA证书和客户端证书。本地开发时为了省事可以直接用不加密的1883端口生产环境一定要上TLS不然设备数据在公网上相当于裸奔。4.3 Topic设计与发布配置Topic的命名规则直接决定下游解析的方便程度。我见过有人把所有设备的数据都发布到一个Topic结果下游消费端写了一大堆奇奇怪怪的判断逻辑。这里给你一个我验证过的命名方案factory/line1/device_001/data factory/line1/device_001/status factory/line2/device_002/data它的优点是层级清晰方便Broker做权限控制和主题过滤。MQTT支持通配符订阅比如订阅“factory/line1/#”就能收到line1全部设备的数据订阅“factory//device_001/data”就能收到所有产线下device_001的数据。这个设计如果从一开始就规划好后面扩展产线设备会非常省心。KEPServer里MQTT标签配置要比普通标签多一点。你可以把标签组织成“MQTT Tag Group”在IoT Gateway下新建这个组的“Publish Interval”决定了多久发一次数据。我一般设10秒或者30秒如果数据变化频率不高还可以在“Deadband”设置死区比如电压变化超过1V才发一次这样能大幅降低消息量和云平台流量费用。4.4 数据格式JSON还是二进制KEPServer发布MQTT消息时的数据格式有两种常用选择一种是它的专有格式Compact格式另一种是标准JSON格式。如果下游消费端是自己写的建议直接用JSON字段清晰又不依赖KEPware的SDK。举个例子一台电表的三个遥测标签发布成JSON大概长这样{ timestamp: 2025-01-15T10:30:00.000Z, device: Meter_01, tags: { Voltage_AB: 400.5, Current_A: 120.3, ActivePower: 48.2 } }这种格式在Node-RED、Grafana、阿里云IoT平台里都能直接被解析非常顺手。如果在IoT Gateway里选择了专有格式虽然解析效率高但跨平台调试就麻烦了所以我一般建议直接用JSON。4.5 QoS与消息可靠性MQTT的QoS分成0、1、2三级。QoS 0是“发了就不管”最快但可能丢消息QoS 1是“至少一次”Broker没确认就重发可能重复QoS 2是“恰好一次”最可靠但性能开销最大。在KEPServer的IoT Gateway里可以给发布消息设置QoS。我的经验是周期性遥测数据用QoS 0足够因为丢了一条下个周期还有但报警、跳变事件这类关键消息至少用QoS 1宁可重复也不能丢。如果你对接的是云平台还要在Topic上设置“保留消息”Retain属性这样新订阅的设备上线后立刻能拿到最新值而不是干等到下一次发布。这里有个容易被忽略的坑某些云平台的Topic自带“发布”和“订阅”权限区分KEPServer作为发布端时只能把消息发布到“已授权的发布Topic”如果你把订阅Topic填进去了消息是发不出去的但Broker侧不报错导致你排查很久都找不到原因。所以配置云平台时要先确认这个Topic的权限是“PUB”不是“SUB”。5. REST Server配置让外部系统随时取数5.1 REST Server能干什么在EX6里REST Server插件的作用是把KEPServer中的数据以REST API的形式暴露出去外部系统通过HTTP请求就可以读取标签值甚至写入控制指令。有一种典型的误解是“REST Server和MQTT功能重复了”。其实两者解决的问题完全不同MQTT适合主动推送数据流REST适合外部系统按需查询。比如你的WEB端管理系统要展示实时电压它不可能去订阅MQTT网络隔离、权限管理都麻烦但调用一个HTTP GET请求拿到JSON结果就完事了对开发人员来说大大降低了接入门槛。5.2 启动与基本配置在KEPServer的“Parameters”里选择“REST Server”插件右键属性先设置“Enabled”为“是”然后配置监听端口默认端口一般设置为39320也可以改成其他闲置端口。在绑定地址Bind Address上如果是本机测试用127.0.0.1就行如果是给局域网其他系统调用要绑定到本机局域网IP或0.0.0.0。注意Windows防火墙要放行这个端口不然局域网内其他机器访问会被拦掉。REST Server通常还要求设置身份验证方式。本地调试可以先用“None”生产环境建议启用账号密码或Token认证避免任何能连到服务器IP的人都能读数据。5.3 API结构与常用端点KEPServer的REST API结构遵循一种基于标签资源的路由方式。最基本的两个操作是读取标签列表和读取标签值。假设你的REST Server地址是http://192.168.1.10:39320想读取某个设备下全部数据典型的请求是GET http://192.168.1.10:39320/iotgateway/read请求参数里可以指定要读取的标签路径。返回的JSON格式一般是{ id: 1, result: true, values: [ { id: Channel1.Device1.Voltage_AB, value: 400.5, quality: 192, timestamp: 2025-01-15T10:30:00.000Z } ] }这里的“Channel1.Device1.Voltage_AB”就是我前面说的“标签全路径”格式是通道名.设备名.标签组名.标签名。写值时用的是POST /iotgateway/write请求体带id和value字段。5.4 用REST API做联调的一个案例我记得有一次做MES对接对方的开发人员说他们的系统只支持HTTP调用不打算接OPC UA。我原本以为要给他写一个WebService中间层后来发现直接用KEPServer的REST Server就能解决。我在KEPServer里配好REST Server然后给那个开发人员发了一份接口说明他直接在Java里用HttpClient发了一个GET请求就拿到了实时数据写入操作也就是一个POST JSON的事。整个联调不到半小时就结束了。这件事让我确定了一点REST Server虽然只是一个附加组件但在实际工程中它能把“别人想接你的数据”这件事的门槛降到最低。5.5 权限与安全配置设备接入的外部系统不一定全都可信任REST Server的权限控制必须重视。KEPServer的REST Server支持“Anonymous”匿名和“Windows Authentication”Windows身份验证两种基础模式。局域网内可信网络匿名模式可以接受如果要对外网开放最好在前面再套一层API网关或者反向代理做Token校验。另外如果REST Server和MQTT同时启用建议在KEPServer的项目里把“写操作权限”做区分。比如某些控制类标签只允许内部MQTT消息写入不开放给REST接口避免外部系统误操作导致现场设备动作。KEPware的标签属性里可以设置“Access Rights”为“只读”或“读/写”这个属性同样会作用到REST接口上。6. 三个协议协同工作的工程实践6.1 一个完整的配置示例为了让你更直观地理解整套配置流程我画一个典型的“电力监控项目”配置案例。假设现场有一台电表Modbus TCP地址是192.168.0.10端口502从站地址1需要采集电压、电流、功率三个遥测值并把数据推送到云平台MQTT同时开放REST接口给厂内管理系统。第一步新建通道“ModbusTCP-Power”选择Modbus TCP/IP驱动绑定本机192.168.0.100Request Timeout设3000msRetry Attempts设2。第二步在通道下新建设备“Meter_01”设备IP填192.168.0.10端口502从站地址1。第三步在设备下新建标签组“ElectricData”建三个标签电压标签Address填“40001”数据类型Float电流标签Address填“40003”功率标签Address填“40005”。第四步配置MQTT在IoT Gateway设置中启用MQTT Client模式填入Broker地址例如192.168.0.200:1883用户名密码按实际填新建MQTT组把Meter_01的三个标签加进去发布周期10秒消息格式选JSON。第五步配置REST Server启用并绑定0.0.0.0:39320认证方式选匿名。到这里整个数据链路就已经通了电表被Modbus采集、标签值每10秒发布到MQTT、REST接口随时可供外部系统读取。6.2 性能调优的几条经验三个协议同时开性能问题最容易出现在“同一份数据被多个通道重复采集”上。KEPServer有一个“Tag Aliasing”机制可以建立别名标签让不同接口OPC、MQTT、REST引用同一个物理标签而不是复制标签。我见过同事在一个项目里为了让OPC客户端和MQTT都能读到电表数据在物理标签旁边又复制了一份一模一样的标签组结果同一台电表被轮询了两次双倍报文占用总线还导致设备偶尔超时。用Alias别名标签指向同一个物理标签就完全不会出现这个问题。另外MQTT发布周期的设置要结合标签扫描周期来配置。假如标签扫描周期是100ms但MQTT发布周期是10秒那就意味着每个周期只发“最近一次的值”不会累积数据。这个行为是正常的但如果你需要历史趋势就不能只靠MQTT推周期快照要在KEPServer旁边再接一个数据记录组件或者用云平台的时序数据库。6.3 断线重连与容错策略工业现场网络不可能永远稳定Modbus设备掉线、MQTT Broker临时重启、REST Server被防火墙拦截都是常态。KEPServer对这三种情况都有相应的处理策略。Modbus设备掉线后KEPware会把标签质量Quality标记为“Bad”但不会自动清除数值。你可以在“设备属性-冗余/容错”中设置“如果从站设备无响应则尝试重连”重试间隔和次数可以调整。MQTT连接断开后IoT Gateway会自动重连重连周期在系统设置里可以配置。这里建议开启“Last Will”遗嘱和“Retain”保留设置让Broker知道“这个采集网关掉线了”从而触发云平台报警逻辑。不少云平台如阿里云就是靠遗嘱消息判断设备上线下线的KEPware侧配好遗嘱云平台端就能实时感知到采集盒子断网了。REST Server被防火墙拦截是另一个容易犯的错服务器上测试接口正常局域网其他机器访问超时九成是Windows防火墙入站规则没放行39320端口。这个问题不算KEPServer本身的故障但在项目交付时几乎每次都会遇到建议提前在部署文档里写清楚需要放行的端口。7. 常见问题与排查技巧7.1 Modbus采集不到数据的排查路径Modbus的排查我总结成“IP通不通、报文回不回、地址对不对、类型准不准”四步走。第一步先确认网络通不通用ping 192.168.0.10看看设备IP能不能通。第二步用Modbus测试工具比如Modbus Poll手动发一条报文确认设备确实返回数据。第三步对比KEPServer里的地址和工具里的地址是不是对应同一个寄存器。第四步检查数据类型特别是浮点数的字节序字序问题。这里强烈建议手上常备一个Modbus Poll或者Modbus Slave软件。Modbus Poll作为主站工具可以直接模拟KEPServer读取设备的过程能快速定位问题是出在设备侧还是KEPServer侧。我在现场排查时常常是“先用Poll读一把再用KEPware读一把”哪个能读出来就说明哪边的问题。7.2 MQTT收不到数据的排查技巧如果Broker上迟迟收不到MQTT消息按下面顺序排查。先看KEPServer的“系统日志”里有没有报错信息比如“Connection to broker failed”或者“Topic not authorized”。再看MQTT Broker侧的用户权限有些Broker默认只允许订阅不允许发布KEPServer作为发布端自然发不出去但Broker端不会主动报告。然后用MQTT客户端工具比如MQTTX或者Mosquitto的mosquitto_sub订阅同一个Topic看看到底有没有消息过来。最后确认KEPServer的“Publish Interval”到底有没有生效我第一次用IoT Gateway时把这个周期设成0结果一次都不发后来改成10才正常。有一个容易忽略的点是KEPServer里新建的MQTT标签组默认可能没有“激活”发布你需要在IoT Gateway管理界面里把这个组的状态改为启动。如果标签组没有启动系统日志甚至不会报错只会静默地不发消息。7.3 REST Server请求失败的常见原因REST API请求失败首先要区分是连接失败还是鉴权失败。连接失败一般是端口没监听或者防火墙拦截检查一下netstat输出和防火墙规则鉴权失败会有HTTP 401状态码这时候看看填的Token或账号密码是否正确。有一种情况比较坑如果REST Server绑定的地址是127.0.0.1局域网内其他机器是永远访问不到的这时候要把绑定地址改成0.0.0.0或者具体的局域网IP。另外KEPServer的REST Server对跨域CORS支持一般如果你是浏览器里的前端JS直接调用可能会碰到跨域限制建议在调用链路上再加一层代理或网关来解决。7.4 系统性能下降的排查思路如果三个协议都启用整套系统跑了一段时间后感觉响应变慢优先检查“标签数量”和“发布频率”的组合。比如你建了500个标签全部以100ms扫描并且MQTT每1秒发布一次全量JSON这相当于每次请求都要序列化500个字段系统负担自然会大。解决办法有三个方向一是把扫描周期调大或启用死区让数据变化才触发发布二是按业务拆分MQTT组关键数据高频发布次要数据低频发布三是减少JSON字段只把必要的标签加入发布组减少序列化开销。8. 实操总结与个人体会这套配置做完之后我最大的体会是KEPServer EX6把工业数据接入这件事从“拼积木”变成了“拧螺丝”。以前Modbus转MQTT要写Python脚本监听串口再发到Broker中间还要处理崩溃重启现在纯界面操作就能把采集、转发、接口三层逻辑理清楚而且整个系统运行稳定不用维护“胶水代码”。但我也必须提醒一句工具越强越考验你前期的整体规划。如果你一开始就没有设计好通道、设备、标签的层级也不考虑MQTT的Topic规范后面设备一多必然会乱。而且KEPware的授权是按“驱动点位数”来计算的标签建了很多不用的既浪费授权点数也拖累性能。所以建标签时一定“按需建”不用的一律不建宁可在后面加也不要一上来就铺几百个。最后再分享两个小技巧吧。第一个每次大幅修改完标签结构建议在KEPware里“重启服务器”一次让配置完全生效不然有时候改完地址还是旧值。第二个真机调试前先用自带的Simulator驱动建一个模拟通道把MQTT发布和REST接口全部调通了再换真实设备这样能帮你避开“设备问题”和“配置问题”混在一起时的双重地狱。实际上我后面几个项目都开始把KEPServer EX6当成一个统一的数据接入底座前端接Modbus网关后端同时对接企业的MQTT物联网平台、REST管理系统和OPC UA历史库所有点位只维护一遍。这个思路在中小型项目里效率提升是非常明显的。如果你也在搭类似的数据采集架构希望这份整理能帮你少走点弯路。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门