PDA

Просмотр полной версии : ИПП120 после перезагрузки не передает сигналы на ПР



Complexair
29.10.2021, 12:05
Добрый день. Может быть поможете с такой проблемой.
У нас реализовано 4 вентиляционных клапана с точным позиционированием. Управляются с помощью аналоговых выходов. Через ИПП мы выставляем значение каждого клапана, где 0 - закрыт, 1 - управление через PID, 2 - открыт на 100%. После перезапуска по пропаданию питания, все вентиляционные клапаны становятся закрыты, хотя на ИПП и ПР значения 1 стоит, т.к. стоит энергонезависимость.
Как мне сделать так, чтобы после перезагрузки устройств, у меня они работали в автоматическом режиме?

kondor3000
29.10.2021, 14:56
Добрый день. Может быть поможете с такой проблемой.
У нас реализовано 4 вентиляционных клапана с точным позиционированием. Управляются с помощью аналоговых выходов. Через ИПП мы выставляем значение каждого клапана, где 0 - закрыт, 1 - управление через PID, 2 - открыт на 100%. После перезапуска по пропаданию питания, все вентиляционные клапаны становятся закрыты, хотя на ИПП и ПР значения 1 стоит, т.к. стоит энергонезависимость.
Как мне сделать так, чтобы после перезагрузки устройств, у меня они работали в автоматическом режиме?

Вы не написали, кто у вас Мастер и не выложили программы ПР и ИПП.

melky
29.10.2021, 15:43
Скорее всего ошибка в логике программ(ы) в принципе. После того, как вы задаете после сбоя 0 а потом 1 начинает работать правильно?

Смотрите программу в ПР, возможно где-то начало работы происходит по триггеру, либо по фронту, либо по спаду, может и таймер какой и так далее...
Чудес не бывает.

Complexair
29.10.2021, 18:24
Мастер ИПП120, Пр200 Слэйв. С радостью поделюсь программой, но не знаю как сюда ее закинуть

dan75
29.10.2021, 18:29
В расширенном режиме ответа прикрепить файл в формате .owl

Complexair
29.10.2021, 18:30
После того как задаю 0, а потом 1 все начинает работать правильно. У меня fSel стоит, исходя из значения переменной он выбирает логику, где 0 - закрыто, 1 значение ПИД регулятора, 2 - 100% открытие. Так вот после перезапуска почему-то fSel не видит что переменная задана 1, хотя на ИПП и ПР пишет переменную 1

Complexair
29.10.2021, 18:33
Вот программа на ИПП и на ПР

dan75
29.10.2021, 21:04
Проекты, где какой-либо параметр можно менять из мастера и слейва одновременно, не делаются так просто. Как минимум, там используется макрос, отслеживающий, в каком из приборов первым изменилось значение. Пример программы с обменом между ИПП и ПР был у Юрия Реваки.
Пока что попробуй в проекте на ИПП убрать в настройках переменных КВ12-КВ23 галку "запись по изменению". Или вообще запретить их чтение (вместо "функция чтения 0х03" ставим "нет"). Варики костыльные, но возможно и заработает. А там можно и программу неспеша переписать.

melky
29.10.2021, 23:12
dan75 правильнее будет так - ПР200 должно быть плевать на ИПП120, если после перезапуска или в процессе работы нет связи то работаем по внутренней логике, и если в переменной была 1, то запускаем ПИД.

короче ИПП120 никак не долно влиять на логику работы ПР200, кроме изменения переменных. Ну или какой там ПР у автора

dan75
29.10.2021, 23:46
melky Ему и плевать. Насколь понимаю, фокусы начинаются в момент установления связи.

kondor3000
30.10.2021, 10:26
Вот программа на ИПП и на ПР

Надо просто поставить таймер на 1-2 сек, и при подаче питания, переключать fSel из 0 в 1. А энергонезависимость наверно лучше отключить, проверьте.

И ещё у автора все переменные Float, начинаются с чётного адреса, кроме одной, адрес 527. Не помню точно, для ПР это принципиально?

dan75
30.10.2021, 22:17
Надо просто поставить таймер на 1-2 сек, и при подаче питания, переключать fSel из 0 в 1. А энергонезависимость наверно лучше отключить, проверьте.

Ну тоже такой себе костылик. Прежде, чем это делать, надо глянуть, как ПР себя ведёт, когда мастер вообще не подключен. По идее, все сетевые переменные должны сохраняться в энергонезависимой памяти. Сдаётся мне, что это всё мастер воду мутит. Вот в нём и надобно программу исправлять.

Ревака Юрий
31.10.2021, 09:23
Есть варианты когда ИПП120 мастер, а ПР200 слейв и наоборот, демонстрация тут https://www.youtube.com/watch?v=YibiaUavC20, общий принцип передачи данных один, можно отключать панель и потом подключать, данные должны синхронизироваться, думаю можно взять за основу для любого проекта, костыли можно выкинуть:)

kondor3000
31.10.2021, 10:06
Никто так и не ответил на вопрос


И ещё у автора все переменные Float, начинаются с чётного адреса, кроме одной, адрес 527. Не помню точно, для ПР это принципиально?
Если есть выравнивание, то остальные регистры тоже сместятся и будет бардак. Как раз те переменные, с которыми проблема и возможно это и есть причина.

Ревака Юрий
31.10.2021, 16:36
Никто так и не ответил на вопрос

Если есть выравнивание, то остальные регистры тоже сместятся и будет бардак. Как раз те переменные, с которыми проблема и возможно это и есть причина.

Никуда они не не сместятся, 1 регистр для INT, два для FLOAT, дальше размещайте как угодно, я обычно делаю с четным адресом, ну и INT с FLOAT стараюсь не смешивать, так удобнее потом смотреть группой тем же Modbus Poll.