lib60870:基于 C99 的 IEC 60870-5 协议实现项目

Official repository for lib60870 an implementation of the IEC 60870-5-101/104 protocol (read-only mirror)

分支6Tags15
文件最后提交记录最后更新时间
1 年前
6 个月前
1 年前
6 个月前
9 年前
6 个月前
1 个月前
8 个月前
6 个月前

README lib60870-C {#mainpage}

lib60870 库:基于 IEC 60870-5 协议的 C 语言实现

当前实现包含 IEC 60870-5-101(应用层和串行链路层)和 IEC 60870-5-104(基于 TCP/IP 的协议)规范的代码。

功能特点:

  • 支持所有应用层消息类型
  • 主站与从站功能
  • 平衡式和非平衡式链路层(适用于 CS 101 串行通信)
  • CS 104 TCP/IP 通信的客户端/服务器功能
  • CS 104 冗余组支持
  • CS101 从站/CS104 服务器:文件服务支持
  • 支持 IEC 62351-3 要求的大多数 TLS 功能(需第三方代码 mbedtls)
  • 安全认证支持(IEC 60870-5-7:2013)作为商业可用附加组件提供
  • 可移植的 C99 代码

另请参考用户指南和 API 参考文档(https://support.mz-automation.de/doc/lib60870/latest/)

编译和运行示例:

在 lib60870-C 文件夹中,使用以下命令构建库:

make

进入 examples 文件夹,并在每个示例的目录中使用以下命令构建示例:

make

该库和示例也可以使用 CMake 构建。

要在单独的文件夹中构建库,请在项目文件夹的子目录中创建一个新文件夹,并运行 cmake 以生成构建文件:

mkdir build

cd build

cmake ..

不包含通用代码和 HAL 的构建

该库包含一些通用代码和平台抽象层(HAL),这些代码与 MZ Automation 的其他协议库(例如 libiec61850)共享。为了简化这些协议库的协同使用,可以编译不包含通用部分的库。

这可以通过在调用 make 时使用 WITHOUT_HALWITHOUT_COMMON 定义来实现:

make WITHOUT_HAL=1 WITHOUT_COMMON=1

构建带 TLS 支持的库

该库可以构建为支持 TLS。为此,您必须下载 mbedtls 2.28.x 版本。

将 mbedtls 压缩包解压缩到 dependencies 文件夹中,确保存在以下文件夹:

dependencies/mbedtls-2.28

cmake 构建系统将自动检测 mbedtls 源代码,并构建包含 TLS 支持和 mbedtls 的库。

使用 make 时,您必须使用 WITH_MBEDTLS=1 调用 make:

make WITH_MBEDTLS=1

库配置

存在不同的运行时和编译时配置选项。

编译时配置选项可用于为小型嵌入式系统精简库。可通过修改文件_config/lib60870_config.h_来更改编译时配置。

内存分配

该库使用动态内存分配(通过自有函数封装的malloc/calloc,必要时可替换)。

CS104从站仅在设置阶段(调用函数_CS104_Slave_create_以及_CS104_Slave_start_/_CS104_Slave_startThreadless_时)使用动态内存分配。

有关详细信息,请参阅《用户指南》。

联系方式:

该库由Michael Zillgith开发,并得到MZ Automation GmbH的支持。

如遇错误报告、提示或需要支持,请联系info@mz-automation.de。

许可协议

本软件可采用GPLv3(https://www.gnu.org/licenses/gpl-3.0.en.html)和商业许可协议双重许可。

在商业和非GPL应用中使用本库时,您应购买商业许可。

商业许可与支持

MZ Automation GmbH提供支持和商业许可选项。详情请联系info@mz-automation.de。

贡献

如果您希望为库的改进和开发做出贡献,请向我发送意见、功能请求、错误报告或补丁。

请勿向github仓库提交拉取请求。github仓库是只读副本。拉取请求可能会被无提示地忽略。

对于非 trivial 的贡献,我要求您签署贡献者许可协议。请联系info@mz-automation.de。

项目介绍

官方仓库,存放着lib60870库,该库是IEC 60870-5-101/104协议的一种实现。【此简介由AI生成】

定制我的领域