IEC 60870-5-104 主站
功能概述
IEC 104 主站用于连接保护测控装置、RTU、远动机和 IEC 104 仿真从站,完成 STARTDT 链路建立、总召唤、累计量召唤、主动上送接收、时钟同步、应用层测试、进程复位、延时获得和遥控。
插件名称为“Iec104Master”,类型标识为 Iec104Master。通道、设备、变量、启停和公共权限见采集配置;本页只说明 IEC 104 特有参数、地址、特殊方法和调试页。
选择入口
进入“开发配置 → 采集配置”,选择 TCP Client 通道下的 Iec104Master 设备;点击页面右上角“更多功能”打开运维工作台,选择“调试”,再打开“协议调试 · Iec104Master”。
操作步骤
- 创建 TCP Client 通道并填写从站 IP、端口和公共通道参数。
- 创建 IEC104Master 设备,配置 CA、发送窗口 K、空闲测试间隔 T3 和采集间隔;需要组召唤时,在每个采集变量地址填写与从站一致的
group。 - 确认 STARTDT 数据传输已启动,再执行总召唤或等待主动上送。
- 通过报告监视、点值、时钟同步和遥控页完成现场验证。
通信流程
主站启动后按以下顺序工作:
- TCP Client 连接从站。
- 发送
STARTDT_ACT,等待STARTDT_CON,进入数据传输状态。 - 首次连接及断线重连后,按每个公共地址执行一次总召唤;之后按打包间隔执行组召唤或总召唤,自发上送持续更新。
- 按发送窗口 K 管理发出的 I 帧;收到合法 I 帧后立即回复 S 帧,确认不等待业务处理或发送前延时。
- 链路空闲达到 T3 时发送 TESTFR,超时或异常时关闭并按网关生命周期重连。
创建主站
- 进入“开发配置 → 采集配置”,新建
TCP Client通道。 - 在“远程地址”填写从站地址和端口,例如
127.0.0.1:2402。 - 在通道下创建设备,选择
Iec104Master。 - 填写 IEC 104 主站参数,保存并启用通道、设备。
- 点击“更多功能”,打开“调试 → 协议调试 · Iec104Master”,确认“数据传输已启动”后再执行总召唤。

主站参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| 公共单元地址 | 1 | 未指定公共地址的手动协议命令使用此默认值;采集变量必须填写 ca。范围 1~65534。 |
| 失败重试次数 | 0 | 总召唤失败后的立即重试次数。过高会导致从站反复重建会话。 |
| 发送窗口 K | 12 | 本端允许未确认 I 帧的最大数量。必须不超过从站接收能力。 |
| 空闲测试间隔 T3 | 20000 ms | 链路无业务流量时发送 TESTFR 的间隔。 |
| 总召唤完成超时 | 180000 ms | 总召唤或组召唤从激活到激活终止的最大等待时间。 |
连接超时、缓存超时、SSL、心跳和通道并发数属于公共 TCP Client 通道设置。主站固定逐帧发送 S 确认(W=1),无需配置 W 或 T2。召唤间隔使用变量打包间隔;变量未填写采集间隔时使用设备采集间隔。
地址格式
IEC 104 变量地址使用三个必填十进制字段,可追加召唤组号:
ca=公共单元地址;type=类型标识;ioa=信息体地址
示例:
ca=1;type=13;ioa=100
ca=2;type=30;ioa=1001;group=16
| 字段 | 范围 | 说明 |
|---|---|---|
ca | 1~65534 | 必填公共单元地址。 |
type | 1~255 | IEC 104 类型标识。 |
ioa | 0~16777215 | 三字节信息体地址。 |
group | 1~16 | 可选召唤组号,对应 QOI 21~36,必须与从站点表一致。未分组时省略整个 group 段,不填写 group=0 或空值。 |
同一个 IOA 在不同 CA 或 TypeId 下是不同点。配置变量时不要只填写 IOA,也不要把 TypeId 当作数据类型名称。
监视方向类型
| TypeId | 名称 | 常用网关类型 | 时标 |
|---|---|---|---|
| 1 | 单点信息 M_SP_NA_1 | Boolean | 无 |
| 3 | 双点信息 M_DP_NA_1 | Byte(值为 1 或 2) | 无 |
| 5 | 步位置信息 M_ST_NA_1 | Int16(有效值为有符号 7 位) | 无 |
| 7 | 位串信息 M_BO_NA_1 | UInt32 | 无 |
| 9 | 归一化测量值 M_ME_NA_1 | Int16 | 无 |
| 11 | 标度化测量值 M_ME_NB_1 | Int16 | 无 |
| 13 | 短浮点测量值 M_ME_NC_1 | Float | 无 |
| 15 | 累计量 M_IT_NA_1 | Int32 | 无 |
| 20 | 成组单点信息 M_PS_NA_1 | UInt32 | 无 |
| 21 | 不带品质的归一化测量值 M_ME_ND_1 | Int16 | 无品质 |
| 30 | 带时标单点 M_SP_TB_1 | Boolean | CP56Time2a |
| 31 | 带时标双点 M_DP_TB_1 | Byte(值为 1 或 2) | CP56Time2a |
| 32 | 带时标步位 M_ST_TB_1 | Int16 | CP56Time2a |
| 33 | 带时标位串 M_BO_TB_1 | UInt32 | CP56Time2a |
| 34 | 带时标归一化测量 M_ME_TD_1 | Int16 | CP56Time2a |
| 35 | 带时标标度化测量 M_ME_TE_1 | Int16 | CP56Time2a |
| 36 | 带时标短浮点 M_ME_TF_1 | Float | CP56Time2a |
| 37 | 带时标累计量 M_IT_TB_1 | Int32 | CP56Time2a |
当前编解码器只解析上表 TypeId。标准中其它保留或未实现的类型不会被自动转换;带时标类型的时间来自 CP56Time2a,没有时标时使用主站接收时间。数据类型必须与从站点表和 TypeId 语义一致。
控制方向类型
| TypeId | 控制类型 | 值格式 | 选择后执行 |
|---|---|---|---|
| 45 | 单点命令 C_SC_NA_1 | Boolean | 支持 |
| 46 | 双点命令 C_DC_NA_1 | 1 或 2 | 支持 |
| 47 | 步调节命令 C_RC_NA_1 | 步调值 | 支持 |
| 48、49 | 归一化/标度设定值 | Int16 | 支持 |
| 50 | 短浮点设定值 | Float | 支持 |
| 51 | 比特串命令 | UInt32 | 支持 |
| 58~64 | 上述命令的 CP56Time2a 版本 | 对应值格式 + 时标 | 支持 |
写变量通常使用 TypeId 45/58 单点或 46/59 双点。其它控制类型通过“发送控制命令”特殊方法执行,并必须先确认从站实际支持。
特殊方法
在变量或设备的“特殊方法”中选择以下页面选项:
| 页面选择值 | 用途 | 参数 |
|---|---|---|
| 执行总召唤 | 站召唤或组召唤 | 限定词,公共地址;站召唤限定词通常为 20,组召唤为 21~36。 |
| 执行累计量召唤 | 累计量召唤 | 限定词,公共地址。 |
| 读取信息对象 | 读取单个信息体 | 公共地址,信息对象地址。 |
| 执行链路测试 | 发送 TESTFR 链路测试 | 无参数。 |
| 发送测试命令 | 应用层测试命令 | 计数器,公共地址。 |
| 同步设备时钟 | 下发 CP56Time2a 时钟 | 时间戳,公共地址。 |
| 复位进程 | 发送进程复位 | 限定词,公共地址。 |
| 延时获得 | 发送延时获得命令 | 延时毫秒,公共地址。 |
| 选择单点遥控 | 选择单点命令 | 地址,状态,时标。 |
| 执行单点遥控 | 执行单点命令 | 地址,状态,时标。 |
| 选择双点遥控 | 选择双点命令 | 地址,状态,时标。 |
| 执行双点遥控 | 执行双点命令 | 地址,状态,时标。 |
| 发送控制命令 | 执行 45~51 或 58~64 任意控制 | 地址,值,选择,限定词,时标。 |
时间戳使用 ISO 8601 文本,例如 2026-08-28T10:20:30+08:00。从站拒绝时间范围或格式错误时,先检查网关系统时间和时区。
设备调试
打开“协议调试 · Iec104Master”后可使用:
| 功能 | 作用 |
|---|---|
| 链路状态 | 查看 CA、K/W、序号、收发计数、未确认帧和最近错误,并执行链路测试。 |
| 点值与召唤 | 执行总召唤、累计量召唤或单点读取,并分页核对 CA、TypeId、IOA、值、品质和时标。 |
| 报告监视 | 分页查看主动上送和召唤响应,按接收时间排序,并展开报告中的点值。 |
| 遥控操作 | 选择 45~51 或 58~64 控制类型,执行选择或操作。 |
| 系统命令 | 执行时钟同步、应用层测试、进程复位和延时获得。 |
| 消息 | 查看协议消息、错误、请求和响应摘要。 |
| 功能 | 作用 |
|---|---|
| 协议调试工作区 | 在同一设备页面集中执行链路、召唤、点值、报告、时钟、遥控和系统命令验证。 |
链路状态与点值召唤
先在“链路状态”确认 TCP 通道在线且数据传输已启动,再点击“链路测试”。切换到“点值与召唤”,输入限定词和 CA 后执行总召唤,确认返回的点数量、品质和时标。总召唤过程中不要同时执行遥控。

系统命令
在“系统命令”中确认时间戳、CA 和从站时区后执行“时钟同步”。该操作会修改从站时钟,必须在测试窗口执行,并记录修改前后的时间差。“复位进程”同样属于高风险操作,只能在现场允许时执行。
遥控操作
- 选择 Single 或 Double。
- 填写完整地址和目标值;Double 只能使用
1或2。 - 选择后执行模型先点击“遥控选择”,收到正确认后点击“执行命令”。
- 观察 CommandTermination 和变量反馈;失败时不要重复执行,先检查选择状态和联锁。
报告监视
报告监视按接收时间分页显示 ASDU,默认从新到旧排列;展开一行可以查看该报告的点值。来源用于区分主动上送和召唤响应,切换页码或排序时会重新查询对应范围。

召唤与自发上送
首次连接及断线重连后,每个 CA 先执行一次总召唤(QOI=20),建立初始值。同一个 CA 的多个打包任务共用这次初始化。
当前设备所有参与采集的协议变量都填写 group 时,按“CA + 召唤组号 + 打包间隔”建立周期组召唤任务。组号来自从站配置,不会按变量顺序自动分配。例如 group=1 请求 QOI=21,group=16 请求 QOI=36。同组变量使用不同间隔时会形成不同打包任务。
只要有一个参与采集的协议变量未填写 group,整个设备的周期任务统一改为总召唤,按“CA + 打包间隔”打包,不再发送组召唤。禁用变量、只写变量和特殊方法变量不参与这项判断。
两种情况下均持续接收自发上送并更新变量,召唤间隔直接使用打包间隔。合理设置采集间隔,避免召唤过密占用从站处理能力。
验证清单
- 链路状态显示数据传输已启动。
- 链路测试成功,发送窗口 K 不超过从站能力,收到 I 帧后可及时观察到 S 确认。
- 总召唤返回激活确认和激活终止,CA 正确。
- 至少验证一个无时标遥信、一个带时标遥信、一个遥测和一个品质无效值。
- 报告监视能看到最新时间,并且变量值与报告点一致。
- 在批准的测试点上完成一次单点或双点选择后执行。
- 需要时验证时钟同步、应用层测试、进程复位和延时获得的返回原因。
常见问题
| 现象 | 检查方法 |
|---|---|
| TCP 连接被拒绝 | 检查从站端口、IP、防火墙、端口占用和通道启用状态。 |
| 数据传输未启动 | 查看 STARTDT_ACT/CON 消息;确认从站支持 IEC 104 链路启动。 |
| 总召唤无点 | 核对限定词、CA、从站点表、变量 TypeId 和 IOA 范围。 |
| 报告监视没有数据 | 确认从站主动上送开关、Cause、报告监视页刷新状态和变量映射。 |
| 点值或品质不正确 | 对照 TypeId、时标类型、品质字节和网关数据类型。 |
| 遥控失败 | 核对 TypeId、CA、IOA、值、选择/执行顺序、限定词和现场联锁。 |
| 组召唤无点或点不全 | 核对 group 与从站组号;确认所有采集变量均已填写组号,并检查 QOI 是否为组号加 20。 |
| 频繁断链或窗口满 | 检查 K、T3、S 确认和网络丢包,增大打包间隔以减少召唤频率。 |
| 时间同步失败 | 检查 CP56Time2a 文本、网关时区、从站权限和 TypeId 103/对应时钟服务。 |
相关文档
- 采集配置:通道、设备、变量、启停和公共字段。
- IEC104 服务端:在网关中发布 IEC 104 信息体和遥控。
- IEC 61850 托管主站:MMS、报告、GOOSE、SV、文件和 Journal。