跳到主要内容

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、端口、防火墙和主站访问权限。测试环境可以使用 2402、3403 等未占用端口。
  4. 需要遥控时,先确认变量具备可执行的 RPC 写入能力,并准备安全的测试点。
  5. 需要带时标信息时,为变量选择 30~37 类型,并确保源变量的 CollectTime 正确。

创建服务端目标​

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

数据转发目标配置入口

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

服务端参数​

参数默认值说明
公共单元地址1目标级默认 CA,范围 1~65534。变量未单独填写 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,范围 1~65534。
信息对象地址0必填的三字节 IOA,范围 0~16777215。
召唤组号空可选第 1~16 组,对应 QOI 21~36;为空的点仅参与总召唤。
类型标识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 双点信息1 或 2品质在状态字节中,无 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 带时标双点1 或 2品质 + 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 双点命令1 或 2无
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延时获得返回延时值确认。

总召唤限定词由服务端校验为 20~36:20 表示站召唤,21~36 表示组召唤。总召唤发布按 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 30~37,不要把本地时间当作 UTC 直接写入。
遥控被拒绝同时检查目标级“允许写入”、变量级“允许写入”、控制 TypeId、CA、IOA、选择顺序和 RPC 权限。
TypeId 20 值不符合预期确认源变量可转换为 32 位无符号值,并按比特位约定解释成组单点状态;该类型不用于控制回写。
主动上送延迟或丢失查看待上送队列和目标日志;降低源变量变化频率或提高“待上送点上限”,并检查 K/W 和网络丢包。
品质一直无效检查源变量在线状态和采集链路;TypeId 21 不携带品质,不能用该类型验证品质字节。

相关文档​

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