ML - Just-do-it (hands on) Basics, of Machine Learning

ML - Just-do-it (hands on) Basics, of Machine Learning

2026-03-01. Category & Tags: IEC61850, Simulator, Emulator

概念、习惯用语对照表 #

类别 传统叫法 IEC 61850 建模方式 IEC 61850 常见类型 fc (Functional Constraint 功能约束) 数据形态 典型内容 常见服务 四遥对应 备注
状态量 DI (Digital Input 数字输入), DO (Digital Output 数字输出) Data Object (数据对象) + Data Attribute (数据属性) + Functional Semantics (功能语义) SPS (Single Point Status 单点状态), DPS (Double Point Status 双点状态), INS (Integer Status 整数状态), ENS (Enumerated Status 枚举状态) ST (Status 状态) 离散量 位置、告警、动作、闭锁 读、上送 遥信 状态类
模拟量 AI (Analog Input 模拟量输入) Data Object (数据对象) + Data Attribute (数据属性) + Functional Semantics (功能语义) MV (Measured Value 测量值), CMV (Complex Measured Value 复数测量值/复合测量值) MX (Measured Value 测量值) 模拟量 电流、电压、功率、频率、温度 读、周期上送、变位上送 遥测 测量类
控制 DO (Digital Output 数字输出) Data Object (数据对象) + Data Attribute (数据属性) + Functional Semantics (功能语义) SPC (Single Point Controllable 单点可控), DPC (Double Point Controllable 双点可控) CO (Control 控制) 命令 分、合、启、停、投退、复归 选执、直执 遥控 控制类
调节 AO (Analog Output 模拟量输出) Data Object (数据对象) + Data Attribute (数据属性) + Functional Semantics (功能语义) INC (Integer Controllable 整数可控), APC (Analogue Setpoint Controllable 模拟设定值可控) SP (Set Point 设定值) / SG (Setting Group 定值组) / SE (Setting Group Editable 可编辑定值) 数值 / 组态 / 参数 目标值、给定值、限值 / 组号、切组、活动组 / 整定值、延时、门槛、限值 读、写 / 读、切换 / 读、写、整定 遥调 设点类 / 定值组类 / 定值编辑类

文章的部分内容被密码保护:

实现方案 #

方案 使用环境(你能怎么跑它) 开源/许可 开源项:主要编程语言 A:客户端写入/控制 B:手动改值(GUI 点点改) 自动变化/曲线仿真 SCL 导入 备注
Redisant IEC61850 服务端、客户端模拟器(免费版适合玩) 原生安装包:Windows / Apple Silicon / Apple Intel / Linux 闭源商用;有试用但过期 不适用 页面未细写导入方式 付费版功能覆盖:报告/定值组/文件/GOOSE 等(免费版不能改数据)
robidev/iec61850_open_server + iec61850_open_client (2026-03 尚在开发,GGIO 都不支持) 推荐 Docker Compose 一键跑;宿主机可为 Windows/Linux/macOS(只要装 Docker)。client 也可本机 Python 直接跑 开源 Apache-2.0,但是依赖 libiec61850 的 GPLv3 可能影响合规 open_server: Python + C + Java 为主;open_client: Python + JavaScript 为主 有(浏览器 UI 里点数据写值/控制;仿真 tab 可 modify) 有(play/pause + modify 仿真量) .scd(示例/说明里用 scd 实例化) 最接近 " 免费版商用 GUI 仿真器 " 的体验
st-ing/61850-sim 设计为 Docker 容器运行(宿主机 Windows/Linux/macOS 均可,只要 Docker) 开源 C 作为 MMS server 可被客户端访问(但它核心是仿真端自动更新) 不主打(更偏自动跑数,不是 GUI 逐点编辑器) 强(频率/系数/随机/正弦等配置) ICD/CID/IID(挂载到容器) 适合批量起很多 IED/压测(README 提到可扩展到 200 IED)
beanit/IEC61850bean(OpenIEC61850) Java:Windows/Linux/macOS(有 JVM 就行) 开源(Apache-2.0) Java 默认没有 “server 侧 GUI 改值 “;一般是你自己写脚本/界面/API 去改模型值 取决于你怎么写(可编程驱动) 有相关 SCL/模型能力(用于 server/client) 更像 " 自己做可控模拟器 " 的底座
OpenMUC IEC 61850 Server service Java:Windows/Linux/macOS(有 JVM 就行) 开源(按 OpenMUC 发布) Java(OpenMUC 自述为 pure Java) 主要是把 OpenMUC channel 的新数据映射/推送到 server 不主打 GUI 手改(更偏配置映射) 取决于数据源(CSV/采集/脚本) .cid + channels.xml mapping 更像工程化 " 数据管道 + 61850 Server 映射 "

ps:

Redisant IEC61850 服务端没有把 ICD 里的 brcbDinA-F、urcbAinA-F 和 dsParameter1 真正对外提供, asdf.icd 文件里“声明了”这些报告控制块和数据集,但实际服务端进程,并没有真的把它们建出来并开放给客户端访问。 更具体一点:

  • ICD 里有名字,比如 brcbDinA-F、urcbAinA-F、dsParameter1,所以客户端按这个名字去做 GI 或 readDataSetValues() 是合理的。
  • 各种客户端调用都失败,这通常说明服务端运行时模型里没有这些对象,或者对象没启用/没绑定到真实点值。
  • 在 IEC 61850 里,ICD 只是配置/描述文件,不等于服务端实现本身。服务端程序必须根据这个模型真正创建 DataSet、ReportControlBlock,并把它们关联到实际的数据点,客户端才能总召或读 dataset。
  • 你现在这个本地 demo 服务端更像是“只实现了少量单点读写示例”,没有把 ICD 里那套完整的 LLN0 dataset/RCB 体系同步实现出来,所以客户端按名字访问时拿不到东西。 简单理解就是:
  • asdf.icd 说“应该有这些总召/数据集对象”
  • 但 8102 上正在跑的服务端代码,没有真正“按这个 ICD 把对象做出来” 所以才出现:
  • 客户端代码没报连接失败
  • 但 GI 和 dataset read 都读不到实际结果

refs: S1 https://redisant.cn/iec61850server S2 https://github.com/robidev/iec61850_open_server S3 https://github.com/robidev/iec61850_open_client S4 https://github.com/st-ing/61850-sim S5 https://www.beanit.com/iec-61850/ S6 https://www.beanit.com/iec-61850/user-guide/ S7 https://www.openmuc.org/solutions/ S8 https://www.openmuc.org/openmuc/user-guide/