Здравствуйте. Подскажите как можно реализовать включение кондиционера с ИПП120, панель находится в режиме слейв, булевую переменную передавать отказывается.
Вид для печати
Здравствуйте. Подскажите как можно реализовать включение кондиционера с ИПП120, панель находится в режиме слейв, булевую переменную передавать отказывается.
Куда она отказывается передавать булевы переменные? Т.е. мастер (кондиционер) умеет делать запросы, на которые ИПП120 отказывается отвечать?
Мастером выступает ПЛК110, на ИПП хотел сделать включение кондиционера и задание уставки, но Овен лоджик говорит что сетевые переменные в режиме слейв не поддерживают булевый тип данных. Как я понимаю режим и задается с помощью булевого оператора
Не понял про bool переменные. Ну изменяйте в слэйве регистры, а контроллером расшифровывайте, если с bool проблемы, хотя непонятно в чем именно. Выкладывайте проекты, заинтересованные люди посмотрят и подскажут брлее подробно, а так гадать что не так нельзя.
Вот что хочу сделать, как забрать переменную Con_r из ИПП не понимаю. Возможно я не в ту сторону думаю
Вот пример упаковки и распаковки 3 бит (с 0 бита по 2 бит) в Маску бит и передача целочисленной. Вложение 81503
Упаковать в 1 регистр можно до 16 бит (с 0 бита по 15 бит) . Сами можете добавить бит сколько надо и упаковать в макрос.
В ПЛК и в Лоджике на ST, упаковку и распаковку бит можно сделать через точку. Mask.0:=b0; Mask.1:=b1; -упаковка
b0:=Mask.0; b1:=Mask.1; - распаковка
ИПП120 это тот же пр200. Регистр 512*16=8192 адрес Coil 0-го бита, 8193 адрес Coil 1-го бита и т.д.
Со стороны ПЛК можете писать напрямую.
Со стороны ИПП через маску бит в целочисленное.
Можно где нибудь пример посмотреть? Опыта с контроллерами у меня мало.
Как в Овен лоджик упаковать в маску я понял, а как в Codesys её распаковать?
Просто:
word.0 и т.д
Вам же кондор все расписал выше...
На скрине пример упаковки и распаковки через точку на CFC Вложение 81590
В ПЛК и в Лоджике на ST, упаковку и распаковку бит можно сделать через точку. Mask.0:=b0; Mask.1:=b1; -упаковка
b0:=Mask.0; b1:=Mask.1; - распаковка
Понял. Спасибо
Чтобы не плодить темы, спрошу тут же. Нужно установить доступ к изменениям уставок по паролю, это у меня получилось. Но если ввести пароль один раз то при выходе из настроек пароль снова не запрашивается. Хочется сделать чтоб пароль запрашивался снова при входе в экран уставок
Если он в виде переменной, то затри эту переменную по таймеру.
Пароль в виде константы
У вас же есть в макросе специальный выход для обнуления вводимого пароля
Вложение 81683
Подключайте как в инструкции на макрос:
Вложение 81684
Спасибо! Все заработало!
Подскажите как на ИПП реализовать архив аварий? Нашел пример на форуме, но там не монохромный дисплей. В общем не могу сообразить.
Вот один из примеров вывода аварий, миганием светодиода, там же есть и другие примеры
Вывод Аварий, 5 штук, миганием светодиода F1 https://owen.ru/forum/showthread.php?t=39169&page=3#21
Трудно найти более неподходящий вариант для ИПП120, кстати, в этой теме(в посте#5), я ссылки давал на более подходящие для ИПП120 варианты: https://owen.ru/forum/showthread.php?t=39169
Я в этой https://owen.ru/forum/showthread.php?t=31113&page=3 теме нашел вывод на экран аварий, только мне бы время возникновения аварии как то прикрутить. Ну и архив бы небольшой
Что мешает взять вариант со временем, до 32 аварий можно запомнить, там же ссылка есть, что мешает-то: https://owen.ru/forum/showthread.php...F2%E0%EF%EA%E8
Если у вас несколько видов аварий, пишите по фронту(спаду) возникновения(исчезновения) аварии её номер(код), для этого потребуется не один бит, а несколько, например для 16 видов аварий нужно иметь 4-е бита в переменной для фиксации номера(кода) аварии!
Вот здесь обсуждали: https://owen.ru/forum/showthread.php?t=26216&page=24
Среди компонентов есть макрос Events, в документе к нему и пример использования.
Ошибся с названием - Event_Log_v1.02
Event_Log_v1.02 с этим макросом у меня при 12 событиях не осталось энергонезависимой памяти
Мой вариант журнала аварий (событий) https://owen.ru/forum/showthread.php...l=1#post294061
аварии высвечиваются в порядке их появления
Журнал на шесть событий (Анимация):
ЗЫ.
Вариант с использованием макроса DC16bit, для вывода названий аварий(событий) https://owen.ru/forum/showthread.php...l=1#post294177
Отказаться от архива я не могу, в ТЗ указано что должно быть.
Всего в системе 12 аварийных сигналов. Мне нужно вывести на экран аварийное событие и дату и время возникновения. Что то типа: "01.12.24 Неиспр. В1.1". Архив и будет хранить только 12 записей и переписывать старые при появлении новых. Конфигурирование ПЛК я более менее переварил, а вот с ИПП как то сложновато, да и опыта нет совсем.
ищите журналы Аварий для ПР200, было несколько вариантов со временем на форуме.
Вас устроит точность до минуты? В смысле, можно вместо секунд(в моём проекте) писать номер(код) аварии, в принципе до 100(два десятичных разряда) видов аварий можно фиксировать, у вас всего 12(вам хватает с избытком), с перспективой расширения до 100 с минимальными изменениями, будут в памяти хранится последние 31 аварии, чего, как я понимаю вам тоже с избытком хватает, короче, не вижу проблем!
Точность до минуты вполне устроит, но нужен не код аварии, а именно расшифровка.
Как всё запущено: код аварии применяется, чтобы бессмысленно энергонезависимую память не занимать, её и так не много, а там к коду аварии привяжете любую надпись, хоть в трёх томах каждая, с точной расшифровкой случившегося и возможными виновниками!
Тогда эта "писанина" будет храниться в ПЗУ, а не в энергонезависимой памяти, которую можно использовать для расширения функционала или как ещё, в смысле, более толково!
Опыта просто нет. Понял я, что в коде есть текстовое поле, куда всё и можно написать.
Есть тот же динамический текст, где к значению переменной привязана необходимая надпись, вот этой переменной может быть код аварии, это как один из вариантов, можно бегущей строкой написать "Войну и мир"! В одной из тем помню с бегущей строкой "заморачивались", там можно всё в подробностях расписать!
Вроде что то получилось. Завтра попробую на панели
А чего у вас мигают постоянно аварии? Так не проще сделать и не мигает ничего Вложение 81719
Один cd32 вместо кучи ненужных блоков DC16bit. У вас код меняется на 0 постоянно Вложение 81718
И начинать надо не с 0 бита, а с первого, тогда коды соответствуют.
Учел замечания. Спасибо