IEC104 服务端
功能概述
IEC104 服务端将数据转发组中的网关变量映射为 IEC 60870-5-104 信息体,向调度主站、保护测控装置或测试工具提供:
- TCP 服务端链路和 STARTDT 数据传输控制;
- 遥信、遥测、累计量和带 CP56Time2a 时标的监视信息;
- 总召唤、累计量召唤、单点读取和主动变化上送;
- 时钟同步、测试、进程复位和延时获得等系统命令响应;
- 单点、双点、步调节、设点和比特串控制命令;
- 服务端状态、客户端会话、分页点表、映射统计和真实总召唤测试。
插件名称为 IEC104Slave。转发组范围、目标启停、公共变量和通道公共字段见数据转发;本页只说明 IEC104 服务端的协议参数、点表映射和专用调试功能。
选择入口
进入“开发配置 → 数据转发”,选择转发组和 IEC104Slave 目标;在目标详情页切换到“调试”查看服务端状态、客户端和点表。
操作步骤
- 创建或选择转发组,新增 IEC104Slave 目标并绑定
TcpService。 - 配置 CA、K/W、写入权限和队列容量,保存并启用目标。
- 在变量属性中填写 IOA、TypeId、CA 覆盖和写入权限。
- 让主站完成 STARTDT,再执行总召唤、点表核对、主动上送和遥控验证。
数据流和链路
采集变量 / 内存变量
│
▼
数据转发组(变量范围、触发、批量)
│
▼
IEC104Slave
├─ TcpService 监听
├─ IEC 104 I / S / U 帧状态机
├─ 稀疏 CA + TypeId + IOA 点表
├─ 总召唤与主动上送队列
└─ 控制命令 → 变量 RPC
│
▼
IEC 104 主站或调度系统
服务端只接受 TcpService 通道。TCP 端口、绑定地址、TLS 证书、连接超时和通道日志等使用标准通道字段配置。
配置前准备
- 准备已存在的采集变量或内存变量,确认值、品质和采集时间能够稳定更新。
- 与主站共同确定公共单元地址(CA)、信息对象地址(IOA)和 TypeId。
- 确认服务端监听 IP、端口、防火墙和主站访问权限。测试环境可以使用
2402、3403等未占用端口。 - 需要遥控时,先确认变量具备可执行的 RPC 写入能力,并准备安全的测试点。
- 需要带时标信息时,为变量选择
30~37类型,并确保源变量的CollectTime正确。
创建服务端目标
- 进入“开发配置 → 数据转发”,新建或选择转发组。
- 点击“新增转发目标”,选择
IEC104Slave。 - 将通道类型设为
TcpService,在“本地绑定地址”填写监听地址,例如0.0.0.0:2402。 - 配置公共地址、窗口、权限和队列容量,保存目标。
- 启用转发组和目标,确认目标运行状态在线。
- 打开目标的“变量属性”,为需要发布的变量填写 IOA、TypeId 和写入权限。
- 使用主站完成 TCP 连接、STARTDT 和总召唤,再核对点值和品质。

上图只用于定位统一的“开发配置 → 数据转发”入口;进入目标后,IEC104 专用字段和调试页以当前目标实际显示为准。
服务端参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| 公共单元地址 | 1 | 目标级默认 CA,范围 1~65534。变量未单独填写 CA 时使用此值。 |
| 发送窗口 K | 12 | 本端允许尚未确认的 I 帧数量。应不大于主站接收能力。 |
| 接收确认阈值 W | 8 | 收到达到 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 | 标准名称 | 值形状 | 品质/时标 |
|---|---|---|---|
| 1 | M_SP_NA_1 单点信息 | Boolean | 品质在状态字节中,无 CP56 |
| 3 | M_DP_NA_1 双点信息 | 1 或 2 | 品质在状态字节中,无 CP56 |
| 5 | M_ST_NA_1 步位置信息 | 有符号 7 位步值 | 带品质,无 CP56 |
| 7 | M_BO_NA_1 比特串信息 | 32 位无符号 | 带品质,无 CP56 |
| 9 | M_ME_NA_1 归一化测量值 | 16 位有符号 | 带品质,无 CP56 |
| 11 | M_ME_NB_1 标度化测量值 | 16 位有符号 | 带品质,无 CP56 |
| 13 | M_ME_NC_1 短浮点测量值 | 32 位浮点 | 带品质,无 CP56 |
| 15 | M_IT_NA_1 累计量 | 32 位有符号 | 带品质,无 CP56 |
| 20 | M_PS_NA_1 成组单点信息 | 32 位比特串 | 带品质,无 CP56 |
| 21 | M_ME_ND_1 不带品质的归一化测量值 | 16 位有符号 | 无品质,无 CP56 |
| 30 | M_SP_TB_1 带时标单点 | Boolean | 品质 + CP56Time2a |
| 31 | M_DP_TB_1 带时标双点 | 1 或 2 | 品质 + CP56Time2a |
| 32 | M_ST_TB_1 带时标步位 | 有符号 7 位步值 | 品质 + CP56Time2a |
| 33 | M_BO_TB_1 带时标比特串 | 32 位无符号 | 品质 + CP56Time2a |
| 34 | M_ME_TD_1 带时标归一化测量 | 16 位有符号 | 品质 + CP56Time2a |
| 35 | M_ME_TE_1 带时标标度化测量 | 16 位有符号 | 品质 + CP56Time2a |
| 36 | M_ME_TF_1 带时标短浮点 | 32 位浮点 | 品质 + CP56Time2a |
| 37 | M_IT_TB_1 带时标累计量 | 32 位有符号 | 品质 + CP56Time2a |
值和品质注意事项
- 单点使用
false/true;双点编码为1(状态 1)或2(状态 2)。 - 步位、测量和累计量会按 TypeId 转换为协议规定的整数或浮点宽度,超出范围的源值会导致该点建模或更新失败。
- 在线变量的品质字节为有效状态;离线变量会设置无效品质位。TypeId
21按标准不携带品质。 - TypeId
20按 32 位比特串编码,适合发布成组单点状态;它没有对应的控制方向回写类型。
控制方向 TypeId
主站可以使用以下控制命令写入服务端变量。服务端根据监视基础类型寻找对应点,并在目标级和变量级写入开关均开启时调用变量 RPC。
| TypeId | 命令 | 值 | 时标 |
|---|---|---|---|
| 45 | C_SC_NA_1 单点命令 | Boolean | 无 |
| 46 | C_DC_NA_1 双点命令 | 1 或 2 | 无 |
| 47 | C_RC_NA_1 步调节命令 | 步调值 | 无 |
| 48 | C_SE_NA_1 归一化设点 | 16 位值 | 无 |
| 49 | C_SE_NB_1 标度化设点 | 16 位值 | 无 |
| 50 | C_SE_NC_1 短浮点设点 | 32 位浮点 | 无 |
| 51 | C_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,且“已映射”数量符合预期。变量未进入当前转发组或未配置有效点属性时,不会出现在服务端点表。

测试总召唤
在“测试总召发布”中选择主站(留空表示全部已启动主站)、CA 和限定词,然后确认执行。成功后页面显示“已发布 N 个点”,其中 N 是实际编码并发送的信息体数量:
- 有至少一个已完成 STARTDT 的主站且发送成功时显示发布点数;
- 没有已完成 STARTDT 的主站时,先回到“主站连接”确认 STARTDT 状态;
- 发布失败时以结果区的错误信息为准,不要把点表总数当作实际发送数。

运行验证
- 目标状态为在线,监听端口可以从主站所在主机访问。
- 主站完成 STARTDT,服务端调试页的“数据传输客户端数”大于零。
- 点表分页中能看到至少一个遥信、一个遥测和一个带时标点。
- 主站执行站召唤,收到激活确认、分段点值和激活终止,CA、TypeId、IOA、品质和时标均正确。
- 修改一个源变量,观察服务端主动上送;快速连续变化时确认队列长度有界且同一点只保留最新值。
- 对允许写入的安全测试点执行一次选择/执行控制;对只读点确认返回拒绝且源变量不变化。
- 分别验证读命令、累计量召唤、时钟同步、测试、进程复位和延时获得(现场允许时)。
- 停止目标后确认端口释放;重新启用后点表、客户端状态和队列能够重新建立。
常见问题
| 现象 | 检查方法 |
|---|---|
| 主站无法连接 | 检查通道是否为 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、报告和二层服务端。
- 插件索引:查找其它采集或数据转发插件。