IEC 61850 托管服务端
功能概述
该转发目标把转发组内的变量映射为 IEC 61850 MMS 对象。外部客户端可以浏览逻辑设备模型、读取当前值、订阅默认报告和 Journal;只有目标级、变量级及源变量 RPC 权限同时满足时才允许写入。Journal 可以只保存在内存,也可以通过嵌套的“Journal 存储”编辑器持久化。
服务端只使用 TCP 服务 通道。转发组范围、目标启用和公共通道配置见数据转发。
选择入口
进入“开发配置 → 数据转发”,保存转发组范围,新增“IEC 61850 托管服务端”目标,然后打开“目标属性”和“变量属性”。
最小配置
- 将“通道类型”设为
TcpService,默认监听0.0.0.0:102;测试时可改为未占用的高端口。 - 保持“厂商名称”“型号名称”“修订版本”的默认值,或按客户端 Identify 要求填写。
- 保存目标,在“变量属性”中为每个要发布的变量填写唯一对象引用。
- 启用转发组和目标,在目标“调试”页确认模型和数值后再连接外部客户端。
参数说明
目标属性
通道和身份
| 参数 | 默认值 | 配置说明 |
|---|---|---|
| 通道类型 | TcpService | 当前插件只支持 TCP 服务通道。 |
| 本地绑定地址 | 0.0.0.0:102 | 填写监听 IP 和端口。标准 MMS 端口为 102,测试时建议使用未占用的高端口。 |
| 厂商名称 | ThingsGateway | MMS Identify 返回的厂商名称。 |
| 型号名称 | IEC61850_Net | MMS Identify 返回的型号名称。 |
| 修订版本 | 1.0 | MMS Identify 返回的版本字符串。 |
| ACSE 认证密码 | 空 | 非空时客户端必须提交完全相同的 ACSE 密码;为空表示不启用密码认证。 |
容量和文件服务
| 参数 | 默认值 | 取值范围或说明 |
|---|---|---|
| 最大 MMS PDU | 65000 字节 | 不得小于协议最小值且不得超过 65535;对端缓冲区较小时应调低。 |
| 数据集成员上限 | 100 | 单个静态或动态数据集的最大成员数。 |
| 动态数据集上限 | 10 | 单个客户端 association 可以创建的动态数据集数。 |
| 打开文件上限 | 5 | 单个 association 同时打开的 FRSM 文件会话数。 |
| 文件会话超时 | 30000 毫秒 | 空闲 FRSM 会话超过该时间后关闭。 |
| ObtainFile 并发上限 | 5 | 同时执行的文件获取任务数。 |
报告和 Journal
| 参数 | 默认值 | 配置说明 |
|---|---|---|
| BRCB 报告上限 | 1024 | 每个缓冲报告控制块可等待重放的报告数量。 |
| BRCB 字节预算 | 65536 字节 | 每个 BRCB 缓冲区的最大字节数。 |
| 允许写入 | 是 | 目标级 MMS Write 和变量 RPC 总开关;关闭后所有映射对象只读。 |
| Journal 存储 | SQLite、启用 | 打开嵌套编辑器配置数据库类型、连接字符串、表名、保留、时区、缓存、队列和分表。 |
Journal 存储编辑器
默认配置使用 SQLite:
| 字段 | 默认值 | 配置说明 |
|---|---|---|
| Journal 名称 | LLN0$EventLog | 注册在每个逻辑设备下的名称。保持稳定,避免客户端重新配置。 |
| 启用 | 是 | 关闭后不保存 Journal 记录。 |
| 数据库类型 | SQLite | 选择公共事件存储编辑器支持的数据库类型。 |
| 连接字符串 | Data Source=Logs/IEC61850/iec61850_{TargetId}.db;... | 多个目标共用运行目录时保留 {TargetId};路径必须可写,并使用所选数据库的关键字。 |
| 表名 | iec61850_journal | 持久化 Journal 使用的表。 |
| 保留天数 | 30 | 删除早于该天数的记录;0 表示不按时间清理。 |
| 时区 | UTC | 未选择时按 UTC 保存发生时间;客户端要求本地墙钟时间时再选择站点时区。 |
| 缓存 | 是 | 数据库暂时不可用时启用出站缓存。 |
| 队列最大数量 | 100000 | 超过后新记录会被拒绝,需结合内存预算设置。 |
| 缓存文件最大长度 | 262144 字节 | 单个缓存文件的最大长度。 |
| 分表大小 | 2000 | 启用分表时每个物理段的行数。 |
| 分表 | None | 除非数据库和保留策略需要物理分表,否则保持 None。 |
目标变量属性
变量必须先属于转发组范围;变量属性只负责映射,不会把变量加入转发组。
| 参数 | 默认值 | 配置说明 |
|---|---|---|
| 对象引用 | 空 | 必填且在目标内唯一,格式为 LD/LN.DO.DA;FC=XX,例如 LD1/MMXU1.TotW;FC=MX、LD1/LLN0.Mod.stVal;FC=ST。 |
| 允许写入 | 是 | 变量级写入开关;还必须开启目标级“允许写入”,并确保源变量允许 RPC 写入。 |
;FC= 前为 MMS domain/item 路径,功能约束是必填的,例如 ST、MX、SP、CF、CO。对象引用重复或解析失败的变量会被跳过,并在目标日志中记录原因。
当前动态模型支持 Boolean、8/16/32/64 位有符号或无符号整数、32/64 位浮点数以及最长 255 字节的字符串。普通变量编辑器不创建数组、复杂结构、Quality 或 Timestamp 对象。
模型、报告和 Journal 行为
保存变量后,服务端重建模型:每个不同的 LD 成为一个逻辑设备,并注册配置的 Journal 名称。变量变化会更新 MMS 当前值并追加带 UTC 发生时间、值和数据变化原因的 Journal 条目。每个包含映射变量的逻辑设备自动创建 LLN0$Events 数据集及 URCB01、BRCB01 报告控制块。
目标调试
选择 IEC 61850 目标并打开“调试”:
| 功能 | 作用 |
|---|---|
| 运行概览 | 查看监听状态、客户端数、已映射/未映射变量、待处理更新和 Journal 状态。 |
| 模型与值 | 浏览 LD/LN/DO/DA 模型、复制对象引用,并在权限允许时读写值。 |
| 客户端连接 | 查看 association 状态、远端地址、PDU 大小和最近错误。 |
| 资源目录 | 搜索逻辑设备、变量、数据集、Journal 和文件。 |
| Journal | 选择逻辑设备和 Journal,按时间范围分页查询。 |
| 报告/控制块 | 查看自动创建的报告控制块和客户端保留状态;写入和控制操作必须先确认现场安全。 |
| 消息 | 查看 MMS 请求、响应和解析错误。 |


验证方法
- 确认目标在线,TCP 服务端口正在监听。
- 在“运行概览”确认已映射数量与填写有效对象引用的变量数量一致。
- 使用 IEC 61850 客户端执行 Identify、GetNameList 和 Read,核对一个变量的值和功能约束。
- 改变源变量,确认 MMS 当前值和 Journal 条目同步更新。
- 在安全测试点验证一次允许写入,再在只读点确认 Write 被拒绝。
- 开启持久化时重启目标,确认同一数据库和表继续产生新 Journal。
常见问题
| 现象 | 检查方法 |
|---|---|
| 目标无法启动 | 通道类型、绑定地址、端口占用、防火墙和 Journal 连接字符串。 |
| 客户端无法建立 association | 端口可达性、ACSE 密码、最大连接数、PDU 大小和客户端 MMS 配置。 |
| 客户端看不到变量 | 转发组范围、对象引用格式、重复引用、功能约束和“运行概览”的未映射列表。 |
| 读取值异常 | 源变量类型、在线状态、对象路径和“模型与值”页。 |
| 写入被拒绝 | 目标级/变量级“允许写入”、源变量 RPC 权限、类型转换和现场联锁。 |
| Journal 为空 | Journal 启用状态、已映射变量、Journal 名称、查询时间范围及是否产生过变量变化。 |
| Journal 持久化失败 | 数据库路径权限、连接字符串、缓存队列上限和目标日志。 |
| 报告未收到 | 在“资源目录”确认数据集、URCB/BRCB 名称,再检查客户端保留状态和 association。 |
| 变化延迟或丢失 | 查看待处理更新和目标日志;降低源变量变化频率或在内存预算内提高队列/存储上限。 |
相关文档
- 数据转发:转发组范围、触发、目标启停和公共缓存。
- IEC 61850 主站:作为客户端连接 IEC 61850 服务端。
- 证书管理:维护公共安全通道使用的证书。
- 插件索引:其它采集和数据转发插件。