ML - Just-do-it (hands on) Basics, of Machine Learning
概念、习惯用语对照表 #
| 类别 | 传统叫法 | 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/