PDA

Просмотр полной версии : Проблема: МУ110-8Р и MB_WR_REGS



Александр Пястолов
06.08.2018, 10:17
Добрый день! Прошу помощи в решении следующей проблемы:
Анамнез: СПК207 - мастер MB RTU, CodeSys 3.5, Б-ка ModBus 3.5.4.3.
Проблема: ФБ MB_WR_REGS при записи в МУ110-8Р 1 регистр, адрес 50, buf[7]:=0, buf[8]:=(БИТОВАЯ МАСКА ВЫХОДОВ) возвращает исключение 3.
В сети, помимо МУ110 есть ПЧ и реверсивные блоки, которые пишутся данным ФБ нормально. При этом, СКАДА пишет в МУ110-8Р (функция 16) без ошибок.
Также, MB_RD_HOLD_REGS или ..._INP_REGS читают релейный модуль без ошибок.
Замечено: при записи из СКАДы (ф-я 16) и из СПК (MB_WR_REGS) контрольные суммы отличаются (при 1 регистре это buf[9], buf[10] - CRC16).

P.S. В "Конфигураторе МУ" - красная надпись "не найден дескриптор".

Ильнур Гибадуллин
07.08.2018, 09:38
Добрый день! Прошу помощи в решении следующей проблемы:
Анамнез: СПК207 - мастер MB RTU, CodeSys 3.5, Б-ка ModBus 3.5.4.3.
Проблема: ФБ MB_WR_REGS при записи в МУ110-8Р 1 регистр, адрес 50, buf[7]:=0, buf[8]:=(БИТОВАЯ МАСКА ВЫХОДОВ) возвращает исключение 3.
В сети, помимо МУ110 есть ПЧ и реверсивные блоки, которые пишутся данным ФБ нормально. При этом, СКАДА пишет в МУ110-8Р (функция 16) без ошибок.
Также, MB_RD_HOLD_REGS или ..._INP_REGS читают релейный модуль без ошибок.
Замечено: при записи из СКАДы (ф-я 16) и из СПК (MB_WR_REGS) контрольные суммы отличаются (при 1 регистре это buf[9], buf[10] - CRC16).

P.S. В "Конфигураторе МУ" - красная надпись "не найден дескриптор".

Вопрос решается в ходе личной переписки. О результатах будет написано позже.

Александр Пястолов
14.08.2018, 14:20
Названная выше проблема заключается в порядке формирования буфера обмена Modbus.
Следующий порядок вызывал ошибку (исключение 3): buf[7] - данные, buf[8] - данные и т.д.
Подразумевался следующий порядок для ф-ии 16, применимый в других ПЛК.
buf[0] - адрес slave
buf[1] - функция 16
buf[2-3] - адрес регистра (50)
buf[4-5] - кол-во регистров = 1
buf[6] - кол-во байт
buf[7] - данные
buf[8] - данные
Функциональный блок MB_WR_REGS переформирует буфер.
Вот ответ инженера технической поддержки "ОВЕН": "Попробуйте записать в нулевой или первый байт буфера".
Что успешно заработало... Запись данных в модуль вывода происходит, однако возвращается ошибка 255 (таймаут).
То же касается и модуля аналогового ввода 8I.
Ответ инженера технической поддержки "ОВЕН": "Такая реализация биб-ки Modbus.lib. Данная биб-ка будет пересобрана в будущем."

Вот и хорошо.

Выражаем благодарность инженеру "ОВЕН" за оперативную консультацию, что особенно ценно во время пуско-наладочных работ.