☰
串口服务器固件升级:内置DLT645与IEC104协议解析
2026/10/9 11:12:31 网站建设 项目流程

1. 这次升级到底改了什么:从"能通"到"能懂"的跨越

GW系列串口服务器这次全系固件更新,最核心的变化就一句话:设备内置了DLT645和IEC104两种电力行业主流协议的解析能力。以前你要拿串口服务器接电表、接RTU、接配电终端,得在后端平台或者前置机里再跑一层协议转换软件,现在这部分工作直接下沉到串口服务器里完成了。

我最早接触串口服务器是在一个能耗监测项目上,现场有几十块多功能电表,走的都是RS485总线,上位机要读数据就得在工控机上装一堆协议转换工具,配置繁琐不说,工控机一死机整个数据链路就断了。GW系列这次把DLT645和IEC104吃进固件,等于把原来工控机干的活揽到了串口服务器这个巴掌大的盒子里,架构上少了一个故障点,部署上少了一层配置。

DLT645是什么?它是国内电能表通信的行业标准规约,1997版和2007版最常见。你家里或者厂里那种带RS485接口的智能电表,十有八九说的就是645协议。它的帧格式很有特点——以0x68开头,以0x16结尾,中间是地址域、控制码、数据域和校验码。以前串口服务器只管把串口数据原封不动转成TCP发出去,至于这串字节是什么意思,它不关心。现在它关心了,它能识别出"这是在读A相电压"还是"这是在读正向有功总电能"。

IEC104协议则是电力系统远动通信的标配,全称是IEC 60870-5-104,用在调度主站和变电站RTU之间的通信。它基于TCP/IP,有固定的APCI帧格式(启动字符0x68、长度域、控制域),传输原因、公共地址、信息对象地址这些概念是它的骨架。GW系列支持104之后,你可以直接把变电站的RTU接到串口服务器上,由串口服务器完成104协议的封装和解析,主站侧收到的就是标准的104报文。

这次升级解决的核心问题是"协议落地最后一公里"。很多现场设备只有串口,但上层系统只认TCP或者只认104,中间必须有个东西做翻译。以前这个翻译角色由软件承担,现在由硬件承担。对于集成商来说,这意味着项目交付时少装一套软件、少配一台工控机、少一个需要维护的环节。

适合谁来关注这个更新?做能耗监测、配电自动化、光伏电站监控、充电桩后台、智能楼宇BA系统的集成商和运维人员,只要你的项目里同时出现了"串口设备"和"DLT645或IEC104"这两个关键词,这次升级就跟你直接相关。哪怕你之前没用过GW系列,理解这套逻辑对你选型也有参考价值。

2. 为什么要把协议解析放进串口服务器:架构选型的底层逻辑

2.1 传统方案的三层架构与它的痛点

在GW系列支持协议解析之前,一个典型的电力数据采集架构是这样的:现场电表或RTU通过RS485总线接到串口服务器,串口服务器做透明传输,把串口数据转成TCP报文发给工控机或数据网关,工控机上跑协议转换软件,把DLT645或IEC104报文解析成数据库记录或者MQTT消息,再往上送给平台。

这个三层架构(设备层-传输层-解析层)用了很多年,有它的合理性——串口服务器只做透传,固件简单、稳定、便宜;协议解析放在软件层,升级灵活、协议库丰富。但实际项目做多了就会发现几个绕不开的坑。

第一个坑是工控机的可靠性。工控机是机械硬盘、有风扇、有操作系统,现场灰尘大、温度高、电压不稳,运行一年半载出故障的概率不低。工控机一挂,整个数据链路就断了,而串口服务器往往还在正常工作。你半夜接到电话说数据没了,爬起来一看是工控机死机了,这种经历做运维的都懂。

第二个坑是配置维护的复杂度。工控机上要装协议转换软件,软件要配置串口参数、TCP参数、协议参数、数据库连接,每个项目现场都要重新配一遍。软件版本不一致、授权过期、操作系统兼容性问题,都是隐形成本。更麻烦的是,有些项目甲方不允许你在工控机上装第三方软件,或者工控机是甲方资产你动不了。

第三个坑是故障定位的困难。数据不通了,是电表的问题、串口服务器的问题、还是工控机软件的问题?排查起来要一层一层试。串口服务器只透传,它不知道数据内容对不对;工控机软件报错,你又不知道是串口没数据还是协议解析错了。定位一个问题花半天时间是常事。

2.2 协议下沉到边缘设备的优势

GW系列把DLT645和IEC104解析放进串口服务器固件,本质上是把解析层从工控机下沉到了边缘设备。这个思路跟这几年边缘计算的大方向是一致的——数据在靠近源头的地方处理,减少中间环节。

最直接的好处是架构简化。原来的三层变两层:设备层(电表/RTU)→ 边缘层(GW串口服务器,完成采集+解析+转发)→ 平台层。工控机这个环节可以省掉了,或者工控机只做展示和存储,不做协议转换。少一个环节就少一个故障点,少一个需要维护的软件。

第二个好处是响应实时性提升。串口服务器直接解析协议,采集周期可以做到更短。以前工控机轮询几十块电表,每块表要等响应、要处理超时,一轮下来可能要几十秒。现在串口服务器内置的协议栈可以更高效地调度轮询,实测下来采集周期能压缩不少。

第三个好处是配置标准化。串口服务器的配置是固化的、结构化的,你配好一个模板可以批量复制到同型号设备上。不像工控机软件,每台机器都要单独装、单独配,还容易出兼容性问题。对于有几十上百个站点的项目,这个优势非常明显。

第四个好处是数据可读性增强。透传模式下,你在网络抓包看到的就是一串十六进制字节,不知道什么意思。协议解析模式下,串口服务器可以把解析后的数据以JSON或者Modbus寄存器映射的方式输出,调试的时候一目了然。比如你看到{"addr":"000000000001","voltage_a":220.5,"current_a":1.23},比看68 01 00 00 00 00 00 68 11 04 33 33 33 33要直观得多。

2.3 为什么是DLT645和IEC104这两个协议

电力行业协议很多,GW系列首批选择DLT645和IEC104,背后有明确的市场逻辑。

DLT645对应的是电能计量场景。国内智能电表保有量以亿计,几乎所有带通信功能的电表都支持645协议。能耗监测、电力抄表、预付费系统、充电桩计费,这些场景都绕不开645。它的协议相对简单,帧格式固定,解析难度不大,但应用面极广。

IEC104对应的是电力自动化场景。变电站综合自动化、配电自动化、调度自动化,这些系统的主站和终端之间通信用104。它的协议比645复杂,有ASDU(应用服务数据单元)结构、有传输原因、有时标,但它是电力系统远动的通用语言。

这两个协议一个管"计量",一个管"监控",覆盖了电力行业最主流的两个数据采集需求。GW系列先支持这两个,说明产品定位很明确——瞄准电力行业的数据采集和传输。后续如果扩展到Modbus RTU/TCP、IEC61850等协议,那适用面会更广,但那是后话。

注意:协议解析功能需要固件版本支持,老设备可能需要升级固件。升级前务必确认硬件版本是否兼容,以及升级后配置是否会丢失。建议先在测试环境验证,再批量升级。

3. DLT645协议解析的实操细节与参数配置

3.1 DLT645帧结构快速理解

要配好645协议解析,你得先知道645的帧长什么样。一个标准的645帧由这几部分组成:

  • 起始符:1个字节,固定为0x68
  • 地址域:6个字节,BCD码格式,低位在前。比如电表地址是000000000001,在帧里就是01 00 00 00 00 00
  • 起始符:又是1个字节的0x68
  • 控制码:1个字节,表示帧类型。0x11是读数据,0x91是读数据应答,0x14是写数据,0x94是写数据应答
  • 数据域长度:1个字节,表示后面数据域有多少字节
  • 数据域:变长,读数据时是数据标识编码(4个字节),应答时是数据标识+数据
  • 校验码:1个字节,从起始符到数据域的累加和模256
  • 结束符:1个字节,固定为0x16

举个例子,读地址为000000000001的电表的A相电压(数据标识02010100),发送帧是:

68 01 00 00 00 00 00 68 11 04 33 33 34 33 XX 16

其中33 33 34 33是数据标识02010100每个字节加0x33后的结果(645协议规定数据域每个字节要加0x33传输)。校验码XX是前面所有字节的累加和。

电表应答帧类似,只是控制码变成0x91,数据域里多了电压值。

3.2 GW串口服务器的645配置项

在GW系列的管理界面里,配置645协议解析通常需要设置这几个参数:

配置项说明典型值
工作模式选择"DLT645解析"而非"透明传输"DLT645
串口参数波特率、数据位、停止位、校验位2400/8/1/E(645常见)
表地址范围轮询的电表地址起始和结束000000000001-000000000010
轮询间隔每轮采集的时间间隔5-30秒
数据标识需要采集的数据项02010100(电压)等
超时时间等待电表应答的最长时间500-1000ms
重试次数超时后重试次数2-3次
转发协议解析后数据以什么格式输出JSON/MQTT/Modbus TCP

这里重点说几个容易配错的点。

波特率:645电表常见的是2400bps,但新表也有4800和9600的。配错了就是完全没数据,或者收到乱码。最稳妥的办法是查电表说明书,或者用串口调试工具试几个常见波特率看哪个能收到正确应答。

校验位:645标准规定是偶校验(Even),但有些厂家电表是无效验。如果配了偶校验收不到数据,试试改成无效验。这个坑我踩过,现场一批表有的要校验有的不要,最后统一改成无效验才都通了。

表地址范围:不要设太大。如果你只接了10块表,地址范围就设10个,设成1-100的话,串口服务器会去轮询不存在的地址,每轮都要等超时,采集效率极低。我见过有人设了1-255,结果一轮采集要十几分钟。

数据标识:645的数据标识是4个字节,常见的有:

  • 02010100:A相电压
  • 02020100:A相电流
  • 02030000:瞬时总有功功率
  • 00000000:正向有功总电能
  • 00010000:正向有功总电能(费率1)

不同厂家的电表支持的数据标识可能略有差异,配置前最好用调试工具读一下确认。

3.3 实操:用GW串口服务器采集645电表数据

假设你有一块地址为000000000001的645电表,接在GW串口服务器的RS485口上,要采集A相电压和正向有功总电能,转发给平台。

第一步,接线。RS485的A接A,B接B,GND接GND。如果总线长、设备多,终端电阻要加上。GW串口服务器的RS485口一般有内置终端电阻,通过拨码开关或者配置项控制。

第二步,登录GW管理界面。通常是通过浏览器访问串口服务器的IP地址,默认IP看说明书。登录后找到"串口设置"或者"工作模式"。

第三步,配置串口参数。波特率2400,数据位8,停止位1,校验位Even。流控无。

第四步,选择工作模式为"DLT645"。这时候界面会展开645相关的配置项。

第五步,配置轮询参数。表地址起始000000000001,结束000000000001(只有一块表)。轮询间隔10秒。超时时间800ms。重试2次。

第六步,配置数据标识。添加两条:02010100和00000000。给它们分别起个名字,比如"电压"和"总电能"。

第七步,配置转发。选择MQTT转发,填上平台地址、端口、主题。或者选择Modbus TCP,把解析后的数据映射到寄存器地址。

第八步,保存并重启串口服务器。观察状态灯和数据日志。如果配置正确,你应该能在日志里看到类似这样的输出:

[645] Poll addr=000000000001, DI=02010100 [645] Response: voltage=220.5V [645] Poll addr=000000000001, DI=00000000 [645] Response: energy=1234.56kWh

如果收不到数据,先检查接线和串口参数,再用串口调试工具直接接电表确认电表本身能通信。

实操心得:645电表的地址有时候不是连续排列的,现场可能有1、3、5、7这样的跳号。GW串口服务器如果只支持连续地址范围轮询,跳号的表会被反复超时。解决办法是分多个轮询组,每组设不同的地址范围。或者把不存在的地址的超时时间设短一点,减少等待。

4. IEC104协议解析的配置要点与调试方法

4.1 IEC104的帧格式与传输机制

IEC104的帧比645复杂,它有三种帧类型:I帧(信息传输帧)、S帧(确认帧)、U帧(控制帧)。每个帧都以0x68开头,第二个字节是长度域(最大253),然后是4个字节的控制域。

I帧的控制域第一个字节的bit0是0,包含发送序号和接收序号。S帧的控制域第一个字节是0x01,只包含接收序号。U帧的控制域第一个字节是0x03,用于启动、停止、测试等控制功能。

I帧的数据部分就是ASDU,包含类型标识(1字节)、可变结构限定词(1字节)、传输原因(2字节)、公共地址(2字节)、信息对象地址(3字节),然后是信息元素。

常见的类型标识有:

  • 1:单点信息(遥信)
  • 3:双点信息
  • 9:归一化测量值
  • 11:标度化测量值
  • 13:短浮点数测量值
  • 30:单点信息带时标
  • 36:短浮点数测量值带时标

传输原因常见的有:

  • 3:突发(突发上送)
  • 5:被请求(响应总召)
  • 20:响应站召唤
  • 1:周期、循环

4.2 GW串口服务器的104配置项

GW系列配置104协议解析时,通常有两种角色可选:104服务端(模拟主站去采集串口设备)和104客户端(把串口设备的数据以104协议上送给主站)。具体支持哪种取决于固件版本,配置前要确认清楚。

如果是104服务端模式,配置项包括:

配置项说明典型值
工作模式选择"IEC104服务端"IEC104 Server
监听端口104服务监听的TCP端口2404
公共地址ASDU公共地址1
信息对象地址起始遥信/遥测的起始地址1/16385
总召周期主站总召唤的间隔15分钟
遥信映射串口设备的状态量映射到104遥信按位映射
遥测映射串口设备的模拟量映射到104遥测按寄存器映射
时标类型是否带时标CP56Time2a

如果是104客户端模式,配置项包括:

配置项说明典型值
工作模式选择"IEC104客户端"IEC104 Client
主站IP104主站的IP地址平台地址
主站端口104主站的端口2404
公共地址本设备在104网络中的地址1
总召响应是否响应主站总召是
突发上送数据变化时是否主动上送是

4.3 104调试的常见坑与排查思路

104协议调试比645麻烦,因为它有握手过程、有序号确认、有超时重传。以下是我实际调试中遇到的几个典型问题。

问题一:TCP连上了但104不通。104建立连接后,客户端会先发U帧启动帧(0x68 0x04 0x07 0x00 0x00 0x00),服务端回U帧确认(0x68 0x04 0x0B 0x00 0x00 0x00)。如果这一步没完成,后面的I帧都不会发。排查方法是抓包看U帧有没有交互。如果没有,检查端口对不对、防火墙有没有拦。

问题二:总召没响应。主站发总召(类型标识100,传输原因6),设备应该回总召激活确认(传输原因7),然后逐个上送数据,最后回总召激活终止(传输原因10)。如果设备没响应,检查公共地址对不对、信息对象地址有没有配、总召响应开关有没有打开。

问题三:遥测值不对。104的遥测有归一化值、标度化值、短浮点数三种格式。归一化值是-1到1之间的小数,标度化值是-32768到32767的整数,短浮点数是IEEE754浮点数。如果主站收到的值明显不对,先确认类型标识和值格式是否匹配。比如主站按短浮点数解析,设备发的是归一化值,那肯定不对。

问题四:序号不连续导致连接断开。104的I帧有发送序号和接收序号,每发一个I帧发送序号加1,每收一个I帧接收序号加1。如果序号乱了,对方会认为连接异常并断开。这种情况常见于网络不稳定或者设备处理不过来。解决办法是增大超时时间、减少上送频率、检查网络质量。

注意:104协议对实时性要求高,如果串口服务器同时处理多个串口设备的104上送,要注意CPU负载。GW系列不同型号的处理能力不同,选型时要确认带载能力。一般单串口型号处理几十个104信息对象没问题,上百个就要考虑更高型号。

5. 协议解析模式下的性能考量与选型建议

5.1 轮询效率与响应时间的关系

串口服务器做协议解析,本质上是它在主动轮询串口设备。轮询效率直接决定了数据刷新速度。影响轮询效率的因素有:

波特率:2400bps下,一个645帧(约20字节)传输需要约83ms。9600bps下只需要约21ms。如果电表支持高波特率,尽量用高的。

设备数量:轮询是串行的,一块表响应完才轮询下一块。10块表每块响应50ms,一轮就是500ms。100块表就是5秒。如果轮询间隔设得比一轮时间还短,就会堆积。

超时时间:不存在的地址或者故障设备会等到超时才跳过。超时时间设太长,一轮时间就被拉长。建议超时时间设为正常响应时间的2-3倍。

重试次数:重试会增加一轮的时间,但能提高数据完整性。对于实时性要求不高的场景,可以设2-3次重试;对于实时性要求高的,设1次或者不重试。

一个实用的估算公式:一轮时间 ≈ 设备数量 × (帧传输时间 + 设备处理时间 + 超时等待时间) / 成功率。比如20块表,每块帧传输20ms、处理30ms、超时等待0ms(都正常),成功率100%,一轮就是1秒。如果成功率90%,有2块表要超时800ms,一轮就变成1秒+1.6秒=2.6秒。

5.2 不同型号的带载能力对比

GW系列有多个型号,串口数量、网络接口、CPU性能不同,带载能力也不同。以下是根据常见配置的估算(具体以官方规格书为准):

型号类型串口数典型带载(645电表)典型带载(104信息对象)
单串口基础型120-30块50-100个
双串口标准型240-60块100-200个
四串口增强型480-120块200-400个
八串口高性能型8150-200块400-800个

这些数字是估算,实际取决于轮询频率、数据量、网络状况。选型时建议留30%余量,不要跑满。

5.3 什么场景适合用协议解析模式

不是所有场景都适合把协议解析放进串口服务器。以下是我的判断标准:

适合的场景:

  • 现场没有工控机,或者不想用工控机
  • 设备数量中等(几十到上百),轮询频率要求不高(秒级)
  • 需要标准化配置、批量部署
  • 对架构简洁性要求高,不想维护多层软件

不太适合的场景:

  • 设备数量极大(上千),需要分布式采集
  • 需要复杂的业务逻辑处理(如费率计算、需量统计)
  • 需要存储历史数据、做趋势分析
  • 协议种类多,需要灵活扩展

对于复杂场景,GW串口服务器可以作为边缘采集层,把解析后的数据以MQTT或Modbus TCP送给上层平台,由平台做业务处理。这样既利用了边缘解析的实时性和可靠性,又保留了平台的灵活性。

6. 从透传到解析:升级迁移的注意事项

6.1 固件升级前的准备工作

如果你手上已经有GW系列串口服务器在跑透传模式,想升级到协议解析模式,有几件事必须先做。

确认硬件版本:不是所有硬件版本都支持协议解析。查一下设备标签上的硬件版本号,对照官方发布说明确认。如果硬件不支持,升级固件也没用。

备份当前配置:升级固件通常会清空配置,或者配置格式会变。升级前把当前配置导出备份,升级后重新配置。如果配置项多,截图保存也行。

准备测试环境:不要直接在生产环境升级。找一台同型号设备,或者在生产环境的备用设备上先升级测试。确认协议解析功能正常、转发正常、平台能收到数据,再批量升级。

通知相关人员:升级过程中数据会中断,如果平台有报警机制,提前通知运维人员避免误报。升级时间选在业务低谷期。

6.2 配置迁移的实操步骤

假设你原来用透传模式,串口服务器把电表数据透传给工控机,工控机上的软件做645解析。现在要改成串口服务器直接解析,工控机软件可以停掉或者改成只接收解析后的数据。

第一步,记录原来的串口参数。波特率、数据位、停止位、校验位,这些不能变,变了电表通信就不正常。

第二步,记录电表地址列表。原来工控机软件里配了哪些地址,现在要配到串口服务器里。如果地址多,整理成表格。

第三步,记录数据标识列表。原来工控机软件采集哪些数据项,对应的645数据标识是什么。这个信息通常在软件的配置里能找到。

第四步,在串口服务器上配置协议解析。按前面章节说的步骤,配串口参数、表地址、数据标识、转发方式。

第五步,配置转发目标。如果原来工控机软件把数据写数据库,现在串口服务器直接发MQTT给平台,那平台的接收端要相应调整。如果平台只认工控机软件的接口,那可能需要在平台侧加一个MQTT接收模块。

第六步,测试验证。先接一块表测试,确认数据正确。再逐步增加表数量,观察轮询周期和成功率。最后全量切换。

6.3 回退方案的设计

任何升级都要有回退方案。如果协议解析模式跑起来有问题,要能快速切回透传模式。

保留原工控机软件:升级后先不要卸载工控机上的协议转换软件,保持它可用。如果串口服务器解析有问题,把串口服务器切回透传模式,工控机软件继续跑。

保留原配置文件:串口服务器的原配置导出保存,回退时导入即可。

分批次升级:如果有多个站点,先升级一个站点观察一周,没问题再升级其他站点。不要一次性全升。

监控关键指标:升级后重点监控数据完整率、采集周期、设备在线率。如果数据完整率下降超过5%,或者采集周期明显变长,就要排查原因,必要时回退。

实操心得:我一般会在升级前用串口调试工具把每块表的645应答抓一遍,存成文件。升级后用串口服务器的日志对比,看解析出来的值跟原始报文是否一致。这个方法能快速发现解析错误,比只看平台数据靠谱。

7. 协议解析功能的边界与后续扩展思路

7.1 当前功能的适用边界

GW系列的DLT645和IEC104解析功能虽然实用,但要知道它的边界在哪里。

645方面:主要支持标准的读数据命令(控制码0x11),写数据命令(0x14)可能不支持或者需要特殊配置。费率数据、需量数据、事件记录这些复杂数据项的支持程度要看固件实现。不同厂家的645电表在数据标识上可能有差异,不是所有表都能即插即用。

104方面:主要支持遥信、遥测的上送和总召响应。遥控(类型标识45、46)可能不支持,或者需要额外授权。文件传输、参数设置这些高级功能通常不在串口服务器的支持范围内。104的平衡传输模式(2bit)和非平衡传输模式(1bit)的支持情况也要确认。

性能方面:串口服务器的CPU和内存有限,同时解析大量设备、大量数据项时,性能会下降。如果项目规模大,建议用多个串口服务器分担,或者用更高性能的型号。

7.2 后续可能的扩展方向

从产品迭代的角度看,GW系列后续可能会在几个方向扩展。

协议种类增加:Modbus RTU/TCP是最有可能的下一步,毕竟Modbus在工业领域的普及度比645和104还高。IEC61850是电力系统的新标准,但实现复杂度高,可能放在更高端型号上。BACnet、OPC UA这些楼宇和工业物联网协议也有可能。

边缘计算能力增强:现在只是协议解析,后续可能加入简单的计算功能,比如功率因数计算、需量统计、越限判断。这样串口服务器不仅能采集,还能做初步的数据处理。

云平台对接:现在转发主要是MQTT和Modbus TCP,后续可能直接对接主流云平台,简化配置。

安全功能增强:104协议本身没有加密机制,后续可能加入TLS加密、访问控制等安全功能。

对于用户来说,选型时不用等所有功能都齐全,先看当前功能能不能解决你的核心问题。GW系列支持645和104,对于大部分电力数据采集场景已经够用了。后续功能可以通过固件升级获得,但前提是硬件支持。

7.3 给集成商的选型建议

如果你正在做项目选型,以下几点供参考。

先明确协议需求:项目里到底用什么协议?645还是104,还是两个都有?有没有Modbus?协议确定了再选型号。

估算设备数量和数据量:多少块表、多少个104信息对象、采集频率要求多高?这些决定了需要什么性能的型号。

考虑现场环境:温度范围、电磁干扰、安装空间、供电方式。工业现场和楼宇环境的要求不同,选型时要看工作温度、防护等级、电源输入范围。

确认平台接口:串口服务器解析后的数据要送给谁?平台支持MQTT还是Modbus TCP?接口对不上就要加转换层,那就失去简化架构的意义了。

留扩展余量:项目初期可能只有几十块表,但后续可能扩容。选型时留30%-50%的余量,避免后期换设备。

测试后再批量:不管选什么型号,先拿一台测试。用实际设备、实际协议、实际平台联调,确认没问题再批量采购。测试中发现的坑,比规格书上的参数更有参考价值。

我个人在实际项目中的体会是,协议解析功能确实能简化架构、降低维护成本,但它不是万能的。对于简单场景,它能让你的方案更优雅;对于复杂场景,它可能只是整个方案中的一环。关键是想清楚你的核心需求是什么,然后选择匹配的工具。GW系列这次升级给了做电力数据采集的人一个新的选择,用不用、怎么用,取决于你的具体场景。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询