IEC60870
Описание
Реализация протокола ГОСТ Р МЭК 60870-5-104 и ГОСТ Р МЭК 60870-5-101 плюс некоторых утилит для его тестирования
Языки
- C97,6%
- CMake1,4%
- Makefile1%
README lib60870-C {#mainpage}
lib60870 библиотека для ГОСТ Р МЭК 60870-5 протоколов на языке C
Текушая реализация содержит код для спецификаций: ГОСТ Р МЭК 60870-5-101 (уровень приложения и уровень связи) и ГОСТ Р МЭК 60870-5-104 (протокол через TCP/IP).
Возможности:
- поддержка всех типов сообщений уровня приложения
- master и slave
- Балансный и Небалансный обмен (для CS 101 последовательных соединений)
- клиент/сервер для CS 104 TCP/IP соединений
- Поддержка группы резервирования CS 104
- CS101 slave/CS104 server: поддержка файловых операций
- Поддержка большинства TLS функций, требуемых по IEC 62351-3 (требуется код третьей стороны mbedtls)
- прортативный C99 код
Также ознакомьтесь с руководством пользователя и справочной документацией API. (https://support.mz-automation.de/doc/lib60870/latest/)
Компиляция и запуск примеров:
В папке lib60870-C создайте библиотеку с помощью
Перейдите в папку examples и создайте примеры с помощью
в каталоге каждого примера.
Библиотеку и примеры также можно собрать с помощью CMake.
Чтобы собрать библиотеку в отдельной папке, создайте новую папку в качестве подкаталога в папке проекта и запустите cmake, чтобы создать файлы сборки:
Сборка без общего кода и HAL
Библиотека содержит некоторый общий код и уровень абстракции платформы (HAL), который используется совместно с другими библиотеками протоколов MZ Automation (например, libiec61850). Чтобы упростить использование этих библиотек протоколов вместе, можно скомпилировать библиотеку без общих частей.
Это можно сделать с помощью определений WITHOUT_HAL и WITHOUT_COMMON при вызове make:
Сборка с поддержкой TLS
Библиотеку можно собрать с поддержкой TLS. Для этого вам необходимо скачать mbedtls версии 2.28.x.
Распакуйте архив mbedtls в папку зависимостей, чтобы папка была такой:
dependencies/mbedtls-2.28
Система сборки cmake автоматически обнаружит источник mbedtls и создаст библиотеку с поддержкой TLS и включенным mbedtls.
При использовании make вам необходимо вызвать make с WITH_MBEDTLS=1.
Конфигурация библиотеки
Существуют различные параметры конфигурации времени выполнения и компиляции.
Параметры конфигурации времени компиляции можно использовать для сокращения библиотеки для небольших встроенных систем. Конфигурацию времени компиляции можно изменить, изменив файл config/lib60870_config.h.
Выделение памяти
Библиотека использует динамическое распределение памяти (malloc/calloc, обернутое собственными функциями, которые при необходимости можно заменить).
Ведомое устройство CS104 использует динамическое распределение памяти только во время установки при вызове функций CS104_Slave_create и CS104_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@libiec61850.ccom.