This is topic ModBus_RTU в релизе 6.10 in forum Драйверы / Device Drivers at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/43/t/000160.html

Posted by sugar (Участник № / Member № 1198) on :
 
После перехода с релиза 6.08 на 6.10 в проекте перестали работать каналы ModBus_RTU.Из перехвата видно что запросы от ТМ6 идут ,ответы приходят.Но в аргументы ничего не попадает.
Используем групповой запрос на 60 слов(Rin_Word).
Единичные запросы принимаем, а с групповыми проблема.
Есть ли значимые отличия между релизами?
На что обратить внимание?

На тестовом проекте в 6.10 релизе единичные запросы принимаются нормально.
Групповые запросы без единичных отправляются и принимаются.Как только включаю канал с единичными запросами сразу перестают отправляться групповые.
Почему???
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Некоторые усовершенствования по групповым запросам в драйвере Modbus в релизе 6.10 имеются, но на групповые запросы Rin_Word они не распространяются.

Пришлите, пожалуйста, на адрес техподдержки перехваты по всем описанным вариантам обмена и проект с инструкциями для моделирования у нас на стенде.
 
Posted by sugar (Участник № / Member № 1198) on :
 
Выяснили что данные не попадали в аргументы группового запроса из-за установленного в них типа REAL.Поставили тип данных UINT и данные появились.
Хотя в релизе 6.08 с этим не было проблем.
Не является ли это ошибкой в релизе 6.10(почему нельзя ставить аргументы REAL при приеме Rin_Word)?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В релизе 6.10 усилены средства контроля типов данных.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
У меня возникла проблема в базовой версии TM6.9 считываю по ModBus RTU регистр типа Float32 выбрав группу Rout_Float(3) считывает корректно. Тоже самое делаю в платной TM6.10 считывает но показывает какую то абру кадабру из чисел. И почему то из четырех приборов опрашивает только 2 или каждый в отдельности.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Пришлите, пожалуйста, Ваш проект на адрес техподдержки hotline@adastra.ru.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Я не стал мучиться по ModBus-RTU переделал проект по протоколу ОВЕН считывает корректно и все регистры но уперся в проблему с модулем МУ110-224.8И один оперативный параметр у него формат данных float24 значения для записи 0..1.0 то есть 0-4 мА формирует 1 - 20мА если дробные 0.5-12мА
использовал Owen_RS485 тип выбрал Bin-Decfloat записываются только 0 и 1 промежуточные дробные игнорирует.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Согласно документации "Тип данных" Bin-Dec float используется только для чтения.
Вам следует использовать
" Тип – тип данных переменной, значение выбирается из меню:
1,2-int, 3-6-float
...
Запись:
...
- канал FLOAT типа OUTPUT – float PIC-формата; "
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
float PIC-формата - что это значит?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Это усеченный до 2 байт (24 бита) стандартный формат FLOAT.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Как мне выбрать float PIC формата.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Я сделал просто кнопку ввести и передать значение. ВВожу 1 работает ввожу 0 работает 0.5 ввожу не работает. Owen_RS485 в нем настроил 18 адрес тип данных float если ставлю не работает
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Если ставлю Bin float и Bin-Dec float работает но воспринимает только 0 или 1. Как мне переделать что бы канал FLOAT стал в формате float PIC как это сделать если не трудно опишите пошагово. например используя для ввода кнопку ввести передать
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Да и вообще если перетаскивать из группы источники приемники канал Owen_RS485 то в случае чтения все нормально если для записи перетащить то запись не происходит. Я привязываю напрямую из группы источники в приемники к аргументу тогда пишет значения.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вам следует использовать
" Тип – тип данных переменной, значение выбирается из меню:
1,2-int, 3-6-float
...
Запись:
...
- канал FLOAT типа OUTPUT – float PIC-формата; "

При создании канала путем D&D-перетаскивания OUT-приемника из слоя "Источники/Приемники" в узел должен появиться OUT-канал соответствующего типа (в данном случае FLOAT-OUT).
C экрана аргумент OUT (связанный с кнопкой) должен быть привязан к атрибуту ВХОДНОЕ_ЗНАЧЕНИЕ этого канала.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Ура спасибо) получилось
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
И еще один вопрос остался. Приборы ОВЕН модули вывода МВ110-224.8Р и прибор МВ110-224.8И в случае если команда периодически не повторяется уходят в аварию. Каким образом их удерживать на связи. Как периодически повторять запись в них. В канале есть значение если оно не меняется но RTM включен что бы прибор не уходил в аварию.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Создайте программу, которая будет периодически посылать "1" в атрибут 39 (EXEC) соответствующего канала.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Спасибо получилось работает
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
добрый день. У меня возник вопрос. Допустим произошел обрыв провода по которому связываются приборы или прибор сломался этот прибор со скадой связан по протоколу Овен. Как мне в скаде увидеть что прибор отвалился. Есть ли какой то атрибут кнала Owen_RS485 или еще что то?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
У каждого канала, связанного с "Источником", при нарушении связи с "Источником" взводится в "1" атрибут 4 (ДОСТОВЕРНОСТЬ).
См. раздел "Каналы и системные переменные/Общие атрибуты каналов/Атрибуты каналов, отображаемые профайлером".
Существует диагностическая переменная @e_PLC1Type типа INPUT, фиксирующая код последней ошибки транзакций с указанием COM-порта.
Значение переменной сбрасывается только принудительно подачей ">0" в аналогичную переменную типа OUT.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Owen_RS485 добавил еще один. Канал OUTPUT прежние на этом модуле работают добавил еще не работает. Не понимаю как это драйвер работает все сделал также как и прежде. Те что раньше были созданы работают новые добавляю не работают
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Для проверки правильности работы конкретного канала OUT остановите все остальные каналы, работающие по этому COM-порту.
Посылайте нужное Вам значение этим каналом OUT в модуль ОВЕН.
Если при этом функция канала не отрабатывает, надо смотреть правильность адресации, правильность форматов в настройках соответствующего компонента слоя "Источники/Приемники".
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
А вот ограничение по точкам ввода вывода может действовать. Что имеется ввиду под этим ограничением. У меня реальных точек ввода вывода с внешними устройсвами всего 11 хотел добавить 12 не работает.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Может я отправлю вам свой проект. Не могу разобраться почему добавленный регистр для записи не работает.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
У нас нет возможности моделировать все пользовательские проекты. И используемых Вами в проекте приборов нет в наличии.
Надо проводить отладку и диагностику в достаточном объеме непосредственно на Вашем стенде.

Вы провели тестирование по предложенной выше методике:
"Для проверки правильности работы конкретного канала OUT остановите все остальные каналы, работающие по этому COM-порту.
Посылайте нужное Вам значение этим каналом OUT в модуль ОВЕН.
Если при этом функция канала не отрабатывает, надо смотреть правильность адресации, правильность форматов в настройках соответствующего компонента слоя "Источники/Приемники". "?

Задайте в конфигурационном файле диагностический ключ
DEBUGON=F0004200
Убедитесь, что проблемный канал OUT действительно отрабатывает свою функцию.

Сравните по протоколу профайлера транзакции для каналов OUT - работающего и "неработающего".

И все-таки, если есть возможность вернуться к протоколу Modbus RTU, продиагностировать и наладить обмен с устройствами будет намного проще.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Я отправил проект свой на hotline@adastra.ru.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
Да можно вернуться к Modbus RTU но у меня при считывание возникали проблемы до записи я вообще не дошел бросил. Канал считвал но значение было не коректное.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
@e_PLC1Type как воспользоваться этой переменной? Не пойму каким образом обратиться к этой системной переменной
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. По проекту ответ дан почтой.

2. Мы готовы поддержать Ваши усилия при переходе на Modbus RTU (безусловно более перспективное решение).

3. Диагностическую переменную @e_PLC1Type (Input) привязываете к каналу HEX16 (INPUT), который показывает Вам номер COM-порта и код ошибки.

Для сброса этого сообщения надо иметь канал HEX16 (OUT), который привязан к диагностической переменной @e_PLC1Type (Out).
Любая активизация этого канала, вплоть до взведения в "1" атрибута 39 (EXEC), при ведет к сбросу значения полученной ошибки.
 
Posted by Бычков Константин (Участник № / Member № 7036) on :
 
добрый день. Вопрос не по теме но нужно по сигналам 2х концевиков что бы клапан на мониторе менял цвета желтый если ни один не замкнут зеленый если замкнут открытый и красный если замкнут закрытый. Как это сделать?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если сигналы от концевиков Вы принимаете в разные биты одного канала HEX16, то следует использовать тип индикации
"Набор {Arg & Конст = Конст} – индикация набора выполнения условий Arg & Конст = Конст.",
где Arg привязан к РЕАЛЬНОМУ значению канала HEX16.

Если сигналы от концевиков приходят в разные каналы, придется их выделять программно и формировать значение аргумента программы, по которому можно реализовать описанный выше метод индикации.

В связи с тем, что "вопрос не по теме", топик закрывается.
Для новой темы открывайте, пожалуйста, новый топик.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2