Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2017, 16:55   #1
Jury.K
Member
 
Регистрация: Jan 2017
Сообщения: 30
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Бассейн.

Доброго дня!
Пытаюсь реализовать алгоритм работы фильтровальной установки для бассейна, на контроллере PIXEL с дополнительными модулями.

Выбор режимов:
1 Фильтрация
2 Промывка
3 Уплотнение
4 Опорожнение
5 Рециркуляция
6 Закрыто

Текущий режим (фактическое положение крана) определяется состоянием дискретных входов 1 - 6.

Кран на 6 положений вот такой(С самодельным приводом)



Переключается режимы последовательно, включением привода и ожиданием изменения сигнала на входах.
Если сигнал не меняется - сигнал аварии переключения.

Схема блока показывающего текущий режим.



Схема блока переключателя режимов



Общая схема




Как создать блок "расписание" которое будет выдавать на "переключатель режимов" код нужного в данный момент режима?

Алгоритм расписания:

Включить фильтрацию в ЗАДАННОЕ ВРЕМЯ и НА ЗАДАННОЕ ВРЕМЯ если режим АВТО активен И текущий режим 1(фильрация).
Это сделано вроде бы...
Если текущий режим отличен от 1 то переключиться на него.
Если в процессе фильтрации ДАВЛЕНИЕ вырастет больше УСТАВКИ, отменить режим фильрации.
Переключить на режим 2 (промывка) на время ДЛИТЕЛЬНОСТЬ ПРОМЫВКИ.
Переключить на режим 3 (уплотнение) на время ДЛИТЕЛЬНОСТЬ УПЛОТНЕНИЯ.
Переключиться обратно на режим 1(Фильтрация).

Все остальные режимы должны выбираться вручную по MODBUS и с панели контроллера. (Ну это не важно сейчас...)

ВО вложении текущая, недоделанная реализация расписания..

Как грамотно передать номер нужного режима?
Вложения
Тип файла: msl Расписание.msl (46.7 Кбайт, 21 просмотров)
Jury.K вне форума   Ответить с цитированием
Старый 19.01.2017, 18:43   #2
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Бассейн.

Смотря как вы хотите загружать... Я рекомендую вам использовать что-то вроде такой схемы (прикладываю макрос). Идея в том, что вы запоминаете из интерфейса "целевой режим" только тогда, когда пришло подтверждение. Грубо говоря, нажали "ок" на панельке. Для того, чтобы при ошибках и просто так ничего никуда не переходило. Можно потом (после выхода на режим) делать сброс регистра (вход r), чтобы там был нуль. Либо прописать другое значение, если это нужно.

Если же вы спрашиваете про передачу номера режима из расписания - то тут вам поможет мультиплексор. Вам нужно отслеживать состояния в расписании, при которых включается тот или иной режим. Поймать номера этих состояний и передать на мультиплексор, в котором на входе будут прописаны константы режимов, соответствующие состояниям.
Вложения
Тип файла: msl режим.msl (2.4 Кбайт, 31 просмотров)


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 20.01.2017, 13:19   #3
Jury.K
Member
 
Регистрация: Jan 2017
Сообщения: 30
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Бассейн.

Спасибо за идею с подтверждением перехода!

По второму вопросу:
Вот получить адрес из булевых состояний я и не могу....

Или это получается очень громоздко.

Получается у меня 4 выхода режимов
1 - значения 1\0
2 - значения 1\0
3 - значения 1\0
4 - значения 1\0

Логически я могу получить 16 состояний.
В данный же момент мне нужен десятичный дешифратор.
Что то типа древней микросхемы к155ид1.
Только с одним выходом...
Jury.K вне форума   Ответить с цитированием
Старый 20.01.2017, 13:26   #4
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Бассейн.

Вот вам простой рецепт:


p.s. а для трим5 есть блок prcd =)


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 20.01.2017, 14:13   #5
Jury.K
Member
 
Регистрация: Jan 2017
Сообщения: 30
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Бассейн.

ОМГ!! Как я это пропустил....?
Ведь читал же справку....
Спасибо!
Jury.K вне форума   Ответить с цитированием
Старый 22.01.2017, 04:01   #6
Jury.K
Member
 
Регистрация: Jan 2017
Сообщения: 30
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Бассейн.

Еще вопрос. Ткните носом новичка пожалуйста

Насколько я понимаю конструкция вида



Выводит информацию в "выход" и на экран контроллера.

При этом переменную "вход" я могу записать в контроллер по modbus.
А переменную "выход" - считать.
Так?

При такой конфигурации:


Я могу записать переменную "Вход" из modbus. И она пройдет на переменную выход. Смогу считать текущее значение переменной по modbus из переменной "Выход".
Или я изменю параметр из меню контроллера и соответственно смогу считать его по modbus.
Правильно?
Jury.K вне форума   Ответить с цитированием
Старый 23.01.2017, 11:56   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Бассейн.

Цитата:
Сообщение от Jury.K Посмотреть сообщение
Еще вопрос. Ткните носом новичка пожалуйста
Всё верно.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 22:27.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024