# mmslite **Repository Path**: shaowencai/mmslite ## Basic Information - **Project Name**: mmslite - **Description**: 一个轻量级的 IEC61850 服务器实现 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 0 - **Created**: 2025-07-30 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MMSLite IEC61850 服务器 ## 工程概述 MMSLite 是一个轻量级的 IEC61850 服务器实现,支持 MMS(Manufacturing Message Specification)协议,用于变电站自动化系统中的设备通信。本工程实现了 IEC61850 协议的核心功能,包括报告服务、日志服务、文件服务等。 ## 目录结构 ``` mmslite/ ├── .vscode/ # VS Code 配置文件 ├── src/ # 源代码 ├── IEC61850Cfg.xml # IEC61850 配置文件 └── Makefile # 构建脚本 ``` ## 源代码结构 | 文件名称 | 功能描述 | |---------|---------| | iec61850.c/h | IEC61850 协议核心实现,包括报告服务、日志服务等 | | mms.c/h | MMS 协议实现 | | sclparse.c/h | SCL(Substation Configuration Language)解析 | | config.c/h | 配置文件处理 | | net.c/h | 网络通信实现 | | debug.c/h | 调试功能 | | myalloc.c/h | 内存分配管理 | | xml.c/h | XML 解析 | | file2struct.c/h | 文件转结构工具 | | xml2struct.c/h | XML 转结构工具 | | main.c | 主程序入口 | | heap.c/h | 堆内存管理 | ## 构建方法 ### 依赖项 - C 编译器(支持 C99 标准) - Make 工具 - 网络库 ### 构建步骤 1. 进入工程目录,执行构建命令: ```bash make ``` 3. 构建完成后,可执行文件将生成在 `Debug/` 或 `Release/` 目录中。 ## 配置说明 ### IEC61850 配置文件 `IEC61850Cfg.xml` 是 IEC61850 服务器的主要配置文件,包含以下配置项: - 监听端口 - BRCB(Buffered Report Control Block)数量 - 日志数量 - ICD 文件名 ### ICD 文件 ICD(IED Capability Description)文件描述了 IED(Intelligent Electronic Device)的能力和配置,包括: - 逻辑设备 - 逻辑节点 - 数据对象 - 数据属性 - 报告控制块 - 日志控制块 本工程包含以下 ICD 文件: - `邵温财.cid` ## 使用方法 ### 启动服务器 1. 确保配置文件 `IEC61850Cfg.xml` 正确配置 2. 运行编译生成的可执行文件: ```bash ./Debug/mmslite ``` ### 客户端连接 客户端可以通过以下步骤连接到 IEC61850 服务器: 1. 建立 TCP 连接到服务器的监听端口 2. 发送 COTP(Connection-Oriented Transport Protocol)连接请求 3. 发送 MMS 初始化请求 4. 开始 MMS 通信,包括: - 读取数据 - 写入数据 - 使能报告 - 读取日志 ### 报告服务 服务器支持以下报告服务: - **URCB**(Unbuffered Report Control Block):非缓冲报告 - **BRCB**(Buffered Report Control Block):缓冲报告 - **周期性报告**:按照设定的周期发送报告 - **变位报告**:当数据发生变化时发送报告 - **通用报告**:根据客户端总召唤请求发送报告 ## 功能特性 1. **轻量级实现**:代码简洁,资源占用少 2. **完整的 IEC61850 支持**:支持报告服务、日志服务、文件服务等所有核心功能 3. **多客户端支持**:支持多个客户端同时连接 4. **配置灵活**:通过 XML 配置文件和 ICD 文件进行配置 5. **调试功能**:提供详细的调试信息 ## 故障排除 ### 常见问题 1. **连接失败**:检查网络连接和监听端口配置 2. **报告不发送**:检查报告控制块是否正确使能,以及数据集是否有变化 3. **数据错误**:检查 ICD 文件和数据点配置是否正确 ### 日志和调试 服务器会输出详细的调试信息,包括: - 客户端连接信息 - 报文接收和发送信息 - 报告发送状态 - 错误信息 ## 注意事项 1. 本工程是一个轻量级实现,适用于资源受限的环境 2. 请确保配置文件和 ICD 文件的正确性 3. 对于多客户端场景,请注意服务器的资源使用情况 4. 如需扩展功能,请参考 IEC61850 标准文档 ## 参考资料 - IEC 61850 标准系列 - MMS(Manufacturing Message Specification)标准 - SCL(Substation Configuration Language)标准 ## 许可证 本工程采用 MIT 许可证,详见 LICENSE 文件。