跳到主要内容

IEC104 服务端

功能概述

IEC104 服务端将数据转发组中的网关变量映射为 IEC 60870-5-104 信息体,向调度主站、保护测控装置或测试工具提供:

  • TCP 服务端链路和 STARTDT 数据传输控制;
  • 遥信、遥测、累计量和带 CP56Time2a 时标的监视信息;
  • 总召唤、累计量召唤、单点读取和主动变化上送;
  • 时钟同步、测试、进程复位和延时获得等系统命令响应;
  • 单点、双点、步调节、设点和比特串控制命令;
  • 服务端状态、客户端会话、分页点表、映射统计和真实总召唤测试。

插件名称为 IEC104Slave。转发组范围、目标启停、公共变量和通道公共字段见数据转发;本页只说明 IEC104 服务端的协议参数、点表映射和专用调试功能。

选择入口

进入“开发配置 → 数据转发”,选择转发组和 IEC104Slave 目标;在目标详情页切换到“调试”查看服务端状态、客户端和点表。

操作步骤

  1. 创建或选择转发组,新增 IEC104Slave 目标并绑定 TcpService
  2. 配置 CA、K/W、写入权限和队列容量,保存并启用目标。
  3. 在变量属性中填写 IOA、TypeId、CA 覆盖和写入权限。
  4. 让主站完成 STARTDT,再执行总召唤、点表核对、主动上送和遥控验证。

数据流和链路

采集变量 / 内存变量


数据转发组(变量范围、触发、批量)


IEC104Slave
├─ TcpService 监听
├─ IEC 104 I / S / U 帧状态机
├─ 稀疏 CA + TypeId + IOA 点表
├─ 总召唤与主动上送队列
└─ 控制命令 → 变量 RPC


IEC 104 主站或调度系统

服务端只接受 TcpService 通道。TCP 端口、绑定地址、TLS 证书、连接超时和通道日志等使用标准通道字段配置。

配置前准备

  1. 准备已存在的采集变量或内存变量,确认值、品质和采集时间能够稳定更新。
  2. 与主站共同确定公共单元地址(CA)、信息对象地址(IOA)和 TypeId。
  3. 确认服务端监听 IP、端口、防火墙和主站访问权限。测试环境可以使用 24023403 等未占用端口。
  4. 需要遥控时,先确认变量具备可执行的 RPC 写入能力,并准备安全的测试点。
  5. 需要带时标信息时,为变量选择 3037 类型,并确保源变量的 CollectTime 正确。

创建服务端目标

  1. 进入“开发配置 → 数据转发”,新建或选择转发组。
  2. 点击“新增转发目标”,选择 IEC104Slave
  3. 将通道类型设为 TcpService,在“本地绑定地址”填写监听地址,例如 0.0.0.0:2402
  4. 配置公共地址、窗口、权限和队列容量,保存目标。
  5. 启用转发组和目标,确认目标运行状态在线。
  6. 打开目标的“变量属性”,为需要发布的变量填写 IOA、TypeId 和写入权限。
  7. 使用主站完成 TCP 连接、STARTDT 和总召唤,再核对点值和品质。

数据转发目标配置入口

上图只用于定位统一的“开发配置 → 数据转发”入口;进入目标后,IEC104 专用字段和调试页以当前目标实际显示为准。

服务端参数

参数默认值说明
公共单元地址1目标级默认 CA,范围 165534。变量未单独填写 CA 时使用此值。
发送窗口 K12本端允许尚未确认的 I 帧数量。应不大于主站接收能力。
接收确认阈值 W8收到达到 W 的 I 帧后发送 S 帧确认。
允许写入目标级控制回写总开关。关闭后所有控制命令均拒绝。
发送延迟0 ms每次协议发送前的等待时间。仅在对端明确要求节流时调整。
待上送点上限4096主动变化队列的有界容量。同一点连续变化会合并为最新值,超过容量会记录警告。
选择超时30 s选择后执行点在执行前保持有效的时间。超时后必须重新选择。

链路参数的配合

IEC 104 使用三类 APCI 帧:

作用
I 帧携带 ASDU 和发送/接收序号,承载总召、读、控制和监视信息。
S 帧只携带接收确认序号,用于确认 I 帧。
U 帧STARTDT、STOPDT 和 TESTFR 的激活与确认。

主站必须先完成 STARTDT_ACT/STARTDT_CON,服务端才会接受 I 帧,也只有已完成 STARTDT 的客户端才会收到调试页发起的测试总召唤。

变量属性和地址

保存服务端目标后,在“变量属性”中为转发组范围内的每个变量配置以下字段:

参数默认值说明
公共单元地址可覆盖目标级 CA,范围 165534
信息对象地址0必填的三字节 IOA,范围 016777215
召唤组号可选第 116 组,对应 QOI 2136;为空的点仅参与总召唤。
类型标识ScaledMeasurement监视方向 TypeId,必须与主站点表和源变量值语义一致。
允许写入当前变量是否接受对应控制方向的 RPC 回写。必须与目标级开关同时开启。
选择后执行为当前点启用 Select-Before-Operate(SBO)流程。

点的逻辑键为 CA + 监视基础类型 + IOA。带 CP56Time2a 的类型会按对应基础类型匹配控制命令;相同 CA、基础类型和 IOA 不得重复映射。变量属性不会把变量自动加入转发组,必须先将变量纳入当前转发组范围。

总召唤(QOI=20)返回指定 CA 的全部点;组召唤仅返回该 CA 下组号匹配的点。调试页的召唤发布使用相同规则,空组不返回点。自发变化上送不受召唤组号限制。

监视方向 TypeId

以下是 IEC104Slave 目标属性提供的监视类型。带时标类型会使用源变量 CollectTime 生成 CP56Time2a;无时标类型使用服务端发送时刻。

TypeId标准名称值形状品质/时标
1M_SP_NA_1 单点信息Boolean品质在状态字节中,无 CP56
3M_DP_NA_1 双点信息12品质在状态字节中,无 CP56
5M_ST_NA_1 步位置信息有符号 7 位步值带品质,无 CP56
7M_BO_NA_1 比特串信息32 位无符号带品质,无 CP56
9M_ME_NA_1 归一化测量值16 位有符号带品质,无 CP56
11M_ME_NB_1 标度化测量值16 位有符号带品质,无 CP56
13M_ME_NC_1 短浮点测量值32 位浮点带品质,无 CP56
15M_IT_NA_1 累计量32 位有符号带品质,无 CP56
20M_PS_NA_1 成组单点信息32 位比特串带品质,无 CP56
21M_ME_ND_1 不带品质的归一化测量值16 位有符号无品质,无 CP56
30M_SP_TB_1 带时标单点Boolean品质 + CP56Time2a
31M_DP_TB_1 带时标双点12品质 + CP56Time2a
32M_ST_TB_1 带时标步位有符号 7 位步值品质 + CP56Time2a
33M_BO_TB_1 带时标比特串32 位无符号品质 + CP56Time2a
34M_ME_TD_1 带时标归一化测量16 位有符号品质 + CP56Time2a
35M_ME_TE_1 带时标标度化测量16 位有符号品质 + CP56Time2a
36M_ME_TF_1 带时标短浮点32 位浮点品质 + CP56Time2a
37M_IT_TB_1 带时标累计量32 位有符号品质 + CP56Time2a

值和品质注意事项

  • 单点使用 false/true;双点编码为 1(状态 1)或 2(状态 2)。
  • 步位、测量和累计量会按 TypeId 转换为协议规定的整数或浮点宽度,超出范围的源值会导致该点建模或更新失败。
  • 在线变量的品质字节为有效状态;离线变量会设置无效品质位。TypeId 21 按标准不携带品质。
  • TypeId 20 按 32 位比特串编码,适合发布成组单点状态;它没有对应的控制方向回写类型。

控制方向 TypeId

主站可以使用以下控制命令写入服务端变量。服务端根据监视基础类型寻找对应点,并在目标级和变量级写入开关均开启时调用变量 RPC。

TypeId命令时标
45C_SC_NA_1 单点命令Boolean
46C_DC_NA_1 双点命令12
47C_RC_NA_1 步调节命令步调值
48C_SE_NA_1 归一化设点16 位值
49C_SE_NB_1 标度化设点16 位值
50C_SE_NC_1 短浮点设点32 位浮点
51C_BO_NA_1 比特串命令32 位无符号
58~64上述 45~51 命令的 CP56Time2a 版本对应值带时标

启用“选择后执行”时,主站必须发送选择命令,再在选择超时内发送同值的执行命令;选择值、会话和点地址任一不匹配都会被拒绝。未启用时,执行命令可以直接回写,选择命令只返回确认。

系统命令和总召唤

服务端处理以下系统 ASDU:

TypeId命令说明
100总召唤按限定词和 CA 发布当前点表,并返回激活确认/激活终止。
101累计量召唤按限定词筛选 TypeId 15/37 累计量。
102读命令返回指定 CA + IOA 的单点信息。
103时钟同步接收 CP56Time2a,并返回确认。
104测试命令返回应用层测试确认。
105进程复位返回复位确认。
106延时获得返回延时值确认。

总召唤限定词由服务端校验为 203620 表示站召唤,2136 表示组召唤。总召唤发布按 CA 和 TypeId 分组,受 APDU 长度和发送窗口限制,点数较多时会分成多个 I 帧。

目标调试

进入“开发配置 → 数据转发”,选择 IEC104 服务端目标并打开“调试”。专用工作区包含以下页签:

功能作用
核心状态查看服务端在线状态、默认 CA、K/W、点数、主站连接数、已启动数据传输的主站数、待上送变化和变量映射统计。
主站连接按会话筛选并分页查看 STARTDT 状态、序号、未确认帧、最近活动和最近错误。
点值与召唤按关键字筛选点表,并按 CA、TypeId、IOA、品质、时标或写入状态排序。
测试总召发布选择已完成 STARTDT 的主站、CA 和限定词,执行真实总召发布。
消息查看协议消息、错误、请求和响应摘要。

核心状态

先在“核心状态”确认服务端在线、主站已完成 STARTDT,且“已映射”数量符合预期。变量未进入当前转发组或未配置有效点属性时,不会出现在服务端点表。

IEC104 服务端核心状态

测试总召唤

在“测试总召发布”中选择主站(留空表示全部已启动主站)、CA 和限定词,然后确认执行。成功后页面显示“已发布 N 个点”,其中 N 是实际编码并发送的信息体数量:

  • 有至少一个已完成 STARTDT 的主站且发送成功时显示发布点数;
  • 没有已完成 STARTDT 的主站时,先回到“主站连接”确认 STARTDT 状态;
  • 发布失败时以结果区的错误信息为准,不要把点表总数当作实际发送数。

IEC104 服务端测试总召发布

运行验证

  1. 目标状态为在线,监听端口可以从主站所在主机访问。
  2. 主站完成 STARTDT,服务端调试页的“数据传输客户端数”大于零。
  3. 点表分页中能看到至少一个遥信、一个遥测和一个带时标点。
  4. 主站执行站召唤,收到激活确认、分段点值和激活终止,CA、TypeId、IOA、品质和时标均正确。
  5. 修改一个源变量,观察服务端主动上送;快速连续变化时确认队列长度有界且同一点只保留最新值。
  6. 对允许写入的安全测试点执行一次选择/执行控制;对只读点确认返回拒绝且源变量不变化。
  7. 分别验证读命令、累计量召唤、时钟同步、测试、进程复位和延时获得(现场允许时)。
  8. 停止目标后确认端口释放;重新启用后点表、客户端状态和队列能够重新建立。

常见问题

现象检查方法
主站无法连接检查通道是否为 TcpService、绑定地址、端口占用、防火墙和目标启用状态。
主站连接但不能收发 I 帧在“主站连接”查看是否完成 STARTDT;服务端在 STARTDT 前会拒绝 I 帧。
总召唤没有点检查 CA、限定词、转发组范围、目标变量属性、TypeId 和 IOA;再看映射统计中的未映射数。
调试总召返回没有 STARTDT 客户端先让主站完成 STARTDT_ACT/CON,再执行测试总召。
点表出现重复映射警告确认 CA、监视基础类型和 IOA 的组合唯一;带时标类型按基础类型去重。
带时标值不正确检查源变量 CollectTime、时区和 TypeId 3037,不要把本地时间当作 UTC 直接写入。
遥控被拒绝同时检查目标级“允许写入”、变量级“允许写入”、控制 TypeId、CA、IOA、选择顺序和 RPC 权限。
TypeId 20 值不符合预期确认源变量可转换为 32 位无符号值,并按比特位约定解释成组单点状态;该类型不用于控制回写。
主动上送延迟或丢失查看待上送队列和目标日志;降低源变量变化频率或提高“待上送点上限”,并检查 K/W 和网络丢包。
品质一直无效检查源变量在线状态和采集链路;TypeId 21 不携带品质,不能用该类型验证品质字节。

相关文档

  • 数据转发:转发组范围、触发、批量、目标启停和公共通道字段。
  • IEC104 主站:主站地址格式、总召、时钟同步、报告监视和遥控操作。
  • IEC 61850 托管服务端:MMS 模型、Journal、报告和二层服务端。
  • 插件索引:查找其它采集或数据转发插件。