Данная внешняя компонента предназначена для отправки/получения данных по протоколу Modbus с использованием TCP соединения. Тестирование происходило как на реальных контроллерах, так и на эмуляторе ModRSsim2.
Тестировалось с версией платформы 1С:Предприятие 8.3.17.2306
В компоненте использована библиотека Libmodbus
Методы компоненты:
- ПодключитьКонтроллер1 – подключение к контроллеру, для задания порта и адреса используются свойства УстановитьПортКонтроллер1 и УстановитьАдресКонтроллер1.
- ПрочитатьЗначениеКонтроллер1(Регистр, Количество) – чтение данных из контроллера, возвращается массив данных, в качестве разделителя используется "&".
- ЗаписатьЗначениеКонтроллер1(Регистр, Значение) - записывает данные целочисленного типа в регистр.
- ЗаписатьВсеКонтроллер1(Регистр, Количество, СтрокаДанных) - запись массива данных в регистры.
Строка данных – строка разделенная “;” , например - "1;2;3;4;5". Количество элементов строки должно соответствовать количеству указанных регистров для записи.
В новой версии компоненты добавлен следующий функционал:
- Новое свойство “АвтоПереподключение” – автоматическое переподключение к контроллеру в случае потери соединения.
- Реализована работа с 32-bit Float значениями – функции ПрочитатьFloatЗначениеКонтроллер1(Ячейка, КоличествоЯчеек) и ЗаписатьFloatЗначениеКонтроллер1(Ячейка, КоличествоЯчеек, Значение). ВНИМАНИЕ!!! Работа с Float данными проверялась только с эмуляторами. Необходимо также учесть, что в данном случае одной переменной типа 32-bit Float соответствует 2 регистра, запись этих значений в контроллер используете с осторожностью, читайте документацию к используемому Вами контроллеру.
Компонента работает только с целочисленными значениями. Библиотека libmodbus собрана в статике. Для этого изменен define при статической компиляции # define MODBUS_API __declspec(dllimport) на:
# define MODBUS_API extern
В архиве исходники как библиотеки libmodbus, так и самой компоненты.
Внешняя компонента собрана для 32 и для 64 битной платформ.