lib60870:基于 IEC 60870-5 协议的 C 语言库(译)

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

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

特性:

  • 支持所有应用层消息类型
  • 主站和从站
  • 平衡和不平衡链路层(用于 CS 101 串行通信)
  • 用于 CS 104 TCP/IP 通信的客户端/服务器
  • CS 104 冗余组支持
  • 可移植的 C99 代码

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

编译和运行示例:

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

make

转到 examples 文件夹,在每个示例文件夹使用如下命令构建示例

make

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

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

mkdir build
cd build
cmake ..

构建不带通用代码和 HAL 的版本

该库包含一些公共代码和与 MZ Automation 的其他协议库(例如 libiec61850)共享的平台抽象层(HAL)。如果要简化使用所有这些协议库,可以在没有公共部分的情况下编译库。

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

make WITHOUT_HAL=1 WITHOUT_COMMON=1

构建支持 TLS 的版本

该库可以构建支持 TLS。为了做到这一点,您必须下载 2.16.12 版本 mbedtls。

解压缩 dependencies 文件夹中的 mbedtls tar 包,保证以下文件存在

dependencies/mbedtls-2.16.12

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

使用 make 时,需要带 WITH_MBEDTLS=1 选项调用 make

make WITH_MBEDTLS=1

库配置

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

编译时配置选项可用于在小型嵌入式系统中缩小库大小。可以通过修改文件 _config/lib60870_config.h 来更改编译时配置。

内存分配

该库使用动态内存分配(malloc/caloc 由自己的函数包装,这些函数可以在需要时替换)。

CS104 从机仅在启动时使用动态内存分配(当调用函数 CS104_slave_createCS104_Slave_start/CS104_Slave_startThreadless_)。

有关详细信息,请参阅 User Guide

联系方式:

该库是由我的 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 了解更多详细信息。

贡献

如果你想为库的改进和开发做出贡献,请给我发评论、功能请求、错误报告或补丁。

对于不是微不足道的贡献,我要求您签署一份贡献者许可协议。请联系 info@mz-automation.de


英文原文:https://github.com/mz-automation/lib60870
API参考:https://support.mz-automation.de/doc/lib60870/latest/index.html


Share Tweet Send
0 Comments
Loading...
You've successfully subscribed to 隔窗听雨
Great! Next, complete checkout for full access to 隔窗听雨
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.
豫ICP备19045256号-1