Если у вас частотник на том же RS485-1 и скоростью 4800 , зачем у вас два Модбас-мастера ? Сделайте в одном два UMD с адресами 1 и 2. Но это потом, сначала вообще уберите Модбас мастер на частотник.
А лучше сделайте новый проект и работайте только со своим контроллером IVK-120, пока не заработает.
И ещё у вас PLC_PRG 2 вообще не запускается, вы специально так сделали?
Последний раз редактировалось kondor3000; 10.12.2021 в 15:20.
Проблема в том что ПЛК на действующей установке, контролирует работу водоочистки, поэтому приходится в этом проекте упражняться. Два Модбас-мастера для пробы сделал (по вашему же совету)), PLC_PRG 2 - это CFC версия изготовителя оборудования, для практики для себя переделал в ST, этот вариант и используется.
На данный момент ситуация такая: подключился через АС4 к ноутбуку с InSAT\MasterOPC Universal Modbus Server. А-В совпало, связь есть, но с данными непонятка.
На фото в приложении видно что все запросы GOOD.
Tag1 и Tag2 - попытка попарного чтения целой и дробной части накопленного объема V1, нулевые значения.
Tag3 - индекс скорости RS232 (2:=4800b/s, вроде как соответствует).
Tag4 - адрес Modbus = 1 (соответствует).
Tag6 - заводской номер прибора (не соответствует, либо это программный номер, не совпадающий с тем что на корпусе).
Tag7 - заводской номер преобразователя расхода (значение=0, возможно и не установлен номер ПР на ИВК).
Tag8 и Tag9 - попытка попарного чтения целой и дробной части накопленного объема V1 другой командой.
Tag5 и Tag10 - параметры, значения которых не могу проверить, поэтому непонятно корректные данные или нет.
Прикрепил инструкции Взлет.
Есть идеи куда копать?
Увидел что в инструкции (ivk102p_82019111_modbus.pdf) сказано что Регистры хранения содержат настроечные параметры, а регистры ввода содержат
измеренные и вычисленные значения. (функция 3: чтение нескольких регистров хранения,
4: чтение нескольких регистров ввода).
Хотя во второй инструкции (prtkl_Modbus_standart_data.pdf) сказано что старшая цифра логического адреса = 4 (Holding Register – функция 3).
Попробовал функцией 4 прочитать по адресу 32784 (INPUT_REGISTERS), тип в устройстве uint, так же значение =0.
Не могу понять, в ivk102p_82019111_modbus.pdf логический адрес 432785 тип unsigned long, а в первой таблице prtkl_Modbus_standart_data.pdf при старшей цифре логического адреса=4 - Holding Register – 16 битные данные (word, uint). То есть и тип другой и функция чтения другая.
Последний раз редактировалось Александр; 13.12.2021 в 10:27.
Снимок экрана (1).png
В описании Modbus из инета говорится: 0x4 - Чтение регистров данных
Эта функция используется для последовательного чтения от 1 до 125 регистров данных.
Нумерация регистров начинается с нуля. Регистры 16-ти битные, беззнаковые или знаковые (в
дополнительном коде). 32-х битные регистры разбиваются на два 16-ти битных слова в формате
[HIword, LOWword].
Как читать один 32-битный регистр двумя 16-битными словами - непонятно
Последний раз редактировалось Александр; 13.12.2021 в 10:28.
Исходя из того что измеренные данные в регистрах ввода, по Таблица регистров ввода типа целое значение 4 байта, по адресу 32822 (целая часть), и 49192 (дробная часть) вот такие цифери получились:
Снимок экрана (2).png
Но накопленный объем = 778,747
Снимок экрана (3).png
Непонятно всё это
Последний раз редактировалось Александр; 13.12.2021 в 11:05.
Снимок экрана (6).png
На данный момент ситуация такая: последний вариант (Tag1: address-32822, целая часть объема), при установке "старшим словом вперед") дает 6-значное число, которое соответствует целой части и дробной, только без запятой между ними )).
Tag2 - попытка получить дробную часть, показывает ерунду.
Tag3 - адрес 49178 (текущий измеренный расход) показывает корректно, ту же цифру что и на ИВК102, в том же виде.
Непонятно что делать с 6-значным накопленным объемом, нужна только целая часть (первые три знака).
Последний раз редактировалось Александр; 13.12.2021 в 11:41.
Если правильно читает скорость и адрес и неправильно номер прибора, то возможно переставлены байты или WORD-ы в номере.
По поводу парного чтения, вам уже написал, в вашей версии не используется похоже. Попробуйте вот с этого адреса объём считать 1 Целая часть.jpg
PS пока писал, вы сами сделали тоже. А что с накопленным, сколько в приборе и сколько показывает? И что за объём V2, непонятно?
А дробную часть, старшим словом вперёд сделали?
Последний раз редактировалось kondor3000; 13.12.2021 в 11:54.
Скорее всего номер прибора неправильный из-за перестановки байт. Уже ушел оттуда, не могу проверить, но уверен что так и есть.
Накопленный объем V1 в приборе 779,075 а ОРС-сервер получает 779075. V2 - накопленный объем по второму каналу, не используется.
Попытался в ПЛК (32bit_input_module, и также попробовал варианты RegisterInputModule, RealInputModule) обратиться к адресу 32822 (функция 4), то же самое что и раньше, lastError меняется с кода 81 на 89.
Последний раз редактировалось Александр; 13.12.2021 в 12:00.