Просмотр полной версии : Как в CODESYS обнулить переменные при обрыве RS-485?
Здравствуйте! использую аналоговый модуль МВ110-8а подключаюсь через конфигуратор к ПК - вижу все подключенные входы(датчики температуры). Отключаю кабель rs-485 вижу, что обрыв связи - все ок(данных с датчиков нет). Подключаю модуль к плк110-30 в кодесис через modbus (master)>rs-485-1>universal modbas device>real input module все ок(данные с датчика). Вопрос: в режиме работы программы при отлючении кабеля rs-485 у меня не обнуляются значения(данные с датчика), а сохраняются значения до обрыва. Понимаю, что элементарные настройки, но не могу найти...
lara197a
25.10.2017, 12:00
отслеживайте ошибку связи в конфигураторе.
по ней определяйте качество данных.
А как вы хотели получать данные без фиксации значения?
это правильно, что полученное значение фиксируется, до обновления.
Нет обновления- нет изменения.
отслеживайте ошибку связи в конфигураторе.
по ней определяйте качество данных.
А как вы хотели получать данные без фиксации значения?
это правильно, что полученное значение фиксируется, до обновления.
Нет обновления- нет изменения.
т.е. получается я должен для всего проекта - предусмотреть обрыв rs-485??? работать со значениями если нет ошибки?
Зачем ерничать? Я не сталкивался конкретно с такой ситуацией. Думал обрыв rs-485 - обрыв сигнала в плк. Лучше подскажите как решить ситуацию, у меня около 30 сигналов получилось в итоге... все завязано с нагревом емкостей, на днях отлетел провод и нагрев продолжался...
Сергей Лысов
25.10.2017, 17:25
Лучше подскажите как решить ситуацию, у меня около 30 сигналов получилось в итоге... все завязано с нагревом емкостей, на днях отлетел провод и нагрев продолжался...
В модуле Modbus Master есть переменная Last Error. Если там появилось 81 - оборвался кабель. В теле программы добавьте проверку.
lara197a
25.10.2017, 18:20
Вывод делается на основании правильного ответа слейва или его отсутствия.
А можно простенький пример?
вдруг отвалился один модуль, а не оборвался кабель?
Сергей Лысов
25.10.2017, 18:55
вдруг отвалился один модуль, а не оборвался кабель?
Для вашей ситуации обрыв кабеля или повреждение модуля одинаковый результат - авария.
любой модуль отвалится, а ошибка одна? и хоть как ищи причину? правильно понял?
любой модуль отвалится, а ошибка одна? и хоть как ищи причину? правильно понял?
я пока что понял, что ошибка одна, но, скажем так, у меня 12 модулей, мне не подходит это)))
Сергей Лысов
25.10.2017, 20:47
я пока что понял, что ошибка одна, но, скажем так, у меня 12 модулей, мне не подходит это)))
Откройте руководство по программированию контроллера. Оно находится на странице прибора внизу. Почитайте про Last Adress. Потом про Last Error. И подумайте как это может помочь вам для решения вашей задачи.
Возникает ошибка 81 на 4 модуле(адресе). Помогает обычный перезалив программы. Подскажите как правильно организовать рестарт на языке LD.
Алексей Терентьев
22.11.2017, 05:14
Возникает ошибка 81 на 4 модуле(адресе). Помогает обычный перезалив программы. Подскажите как правильно организовать рестарт на языке LD.
Вообще перезапуск программы контроллера это не лучший способ восстановить связь с модулями. У вас ведь процесс идет. На моих объектах этот вариант вообще недопустим. Нужно разобраться с причинами пропадания связи. Проверить контакты на 485 паре, попробовать уменьшить скорость обмена особенно, если модули не в одном шкафу.
А по вашему вопросу: сделайте бесконечный цикл с входом в него по пропаданию связи с модулем. На ST:
IF нет связи THEN
WHILE 1=1 DO ; END_WHILE
END_IF
Тогда ПЛК перезагрузится по срабатыванию сторожевого таймера. На LD не пишу, сходу подсказать не могу.
Здравствуйте.
Есть вариант по проще.
(*==============================Перезапуск ПЛКххх :-) ========================== *)
WHILE blnReset_PLCxxx DO;END_WHILE;
Где "blnReset_PLCxxx" это и есть переменная перезапуска контроллера. Переводим в True и ПЛКххх перезагружается.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot