This is topic Значение выходного параметра не поступает в COM порт in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Добрый день. Пишу программу управления установкой, в которой есть управление клапаном. Нужно передавать на модуль управления величину открытия клапана. Протокол MODBUS, обмен идет по COM порту. Делаю это следующим образом: 1. Есть окно с кнопками. 2. По нажатии на кнопку выполняется программа, выходным аргументом (OUT) которой есть величина открытия клапана 3. Этот аргумент привязан к каналу типа Float, который связан с источником типа W_FLOAT(16).
Впроцессе проверки определено, что программа выполняется, значение выходному параметру присваивается, но в COM порт ничего не уходит.
Подскажите, в каком направлении копать. ЗЫ. Если нужна дополнительная информация - предоставлю.
[ 03.07.2020, 10:50: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Канал имеет какой направление, OUT? В какой атрибут программа записывает число, во входное значение? Если число записано в канал, попробуйте принудительно отработать его через атрибут EXEC. Следите за атрибутом Достоверность канала.
Posted by Booster0 (Участник № / Member № 8431) on :
Направление канала OUT , программа пишет в "входное значение"
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Для простоты локализации проблемы сделайте тестовый проект. В нем оставьте только два источника ModBus RTU - один для чтения регистра, второй для записи этого же регистра.
"попробуйте принудительно отработать его через атрибут EXEC". Извините, а как это сделать?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Для принудительной отработки канала OUT необходимо в Панели МРВ найти этот канал, найти его атрибут 39, EXEC и ввести 1. При этом значение данного атрибута изменится с - на E. После отработки канала атрибут вернется к -.
Posted by Booster0 (Участник № / Member № 8431) on :
Выставил аттрибут канала EXEC в 1, через какое-то время он с Е вернулся к -, но команда в СОМ порт так и не ушла. Что мне дальше делать?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Установите в файл *.cnf ключ: DEBUGON=200 как создать этот файл описано в http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/55/t/000001.html Запустите проект, попытайтесь записать команду в порт. В профайлерный текстовый протокол в этой же папке узла проекта появится диагностическая информация в т.ч. по работе с портом. Если самостоятельно расшифровать не получится, пришлите проект и папку узла проекта целиком после тестирования на адрес технической поддержки.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
UPD: Для тестирования рекомендуем сделать простой тестовый проект только с этим каналом/источником. Исключить программы, экраны или другие компоненты, которые могут управлять каналом. Писать в канал вручную через дерево каналов - Панель МРВ.
Posted by Booster0 (Участник № / Member № 8431) on :
Добрый день. Простой тестовый проект (канал - источник) работает, команда в сом порт уходит. Рабочий проект (экран Панель_управления_15 - любая кнопка - программа Панель_управления_HCV_15 - канал R_R_15 - источник HCV_15_W_Float(16)) не работает. Проекты высылаю на адрес техподдержки
[ 06.07.2020, 13:52: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
В логах тестового проекта есть ошибка (17:33:3) ERR_RS:COM1 err=9 ch=Du15_W_Float(16)#1[2]
См. раздел "Коды диагностируемых ошибок": " 9, ERR_RT_TIMEOUT – превышен таймаут; " Устройство не отвечает на запрос. Чаще всего такая ситуация возникает по следующим причинам: - неправильно задан номер устройства в запросе, - устройство с заданным номером выключено или не подключено к сети, - в сети COM-порта высокий уровень помех, запрос доходит до устройства в искаженном виде и не принимается устройством.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
В логах Рабочего проекта ошибок нет. Есть запись (12:16:51) INF_RS:COM1 TRANSACTION=1743 ERROR=0 BYTES=35387
По логам двух проектов все строго наоборот - тестовый не работает, а рабочий работает.