mz-automation/lib60870

GitHub: mz-automation/lib60870

lib60870 是一个用 C 语言实现的 IEC 60870-5-101/104 工业电力通信协议库,为 SCADA 和电力自动化系统提供规约层面的通信支持。

Stars: 584 | Forks: 298

# README lib60870-C {#mainpage} lib60870 是一个用于基于 IEC 60870-5 协议的 C 语言库 目前的实现包含针对 IEC 60870-5-101(应用层和串行链路层)和 IEC 60870-5-104(基于 TCP/IP 的协议)规范的代码。 特性: ## 编译和运行示例: 在 lib60870-C 文件夹中,使用以下命令构建库: `make` 进入 examples 文件夹,并在每个示例目录中 使用以下命令构建示例: `make` 该库和示例也可以使用 _CMake_ 进行构建。 要在单独的文件夹中构建该库,请在项目文件夹下创建一个新的子文件夹, 并运行 cmake 来生成构建文件: `mkdir build` `cd build` `cmake ..` ## 不包含通用代码和 HAL 进行构建 该库包含一些通用代码和一个平台抽象层 (HAL),它们与 MZ Automation 的其他协议库(例如 libiec61850)共享。为了简化这些 协议库的配合使用,可以在编译该库时不包含这些通用部分。 这可以在调用 make 时通过使用 *WITHOUT_HAL* 和 *WITHOUT_COMMON* 定义来实现: `make WITHOUT_HAL=1 WITHOUT_COMMON=1` ## 库配置 有不同的运行时和编译时配置选项。 编译时配置选项可用于为小型嵌入式系统缩减该库的体积。可以通过修改 _config/lib60870_config.h_ 文件来更改编译时配置。 ## 内存分配 该库使用动态内存分配(通过自有函数封装的 malloc/calloc,在需要时可以替换)。 CS104 从站仅在启动时(即调用 _CS104_Slave_create_ 和 _CS104_Slave_start_/_CS104_Slave_startThreadless_ 函数时)使用动态内存分配。 有关详细信息,请查阅 _用户指南_。 ## 联系方式: 该库由 Michael Zillgith 开发,并由 MZ Automation GmbH 提供支持。 ## 许可 该软件可在 GPLv3 (https://www.gnu.org/licenses/gpl-3.0.en.html) 和商业许可协议下进行双重许可。 当在商业和非 GPL 应用程序中使用该库时,您应该购买商业许可。
标签:Bash脚本, 客户端加密, 并发处理