Ну если ты написал волшебные взаимоблокирующие цепочки, то и тот метод с булевыми переменными отлично выглядит. Он даже удобнее - не нужно помнить цифры режимов.Автоматизатор писал(а):т.к. не надо ничего сбрасывать дополнительно. Режим однозначно интерпретируется.
Выбор ПО Siemens
Re: Выбор ПО Siemens
Re: Выбор ПО Siemens
и не надо помнить, в комменте переменной типа INT пишешь - 0-РУЧНОЙ, 1-АВТОМАТ, 2-ПОЛУАВТОМАТМихайло писал(а):Ну если ты написал волшебные взаимоблокирующие цепочки, то и тот метод с булевыми переменными отлично выглядит. Он даже удобнее - не нужно помнить цифры режимов.Автоматизатор писал(а):т.к. не надо ничего сбрасывать дополнительно. Режим однозначно интерпретируется.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Выбор ПО Siemens
Волшебные цепочки выглядят ужасно!Михайло писал(а):волшебные взаимоблокирующие цепочки
Кроме того, на панели можно легко менять надпись с названием текущего режима, используя Text List.
Re: Выбор ПО Siemens
Или картинку.Автоматизатор писал(а):Кроме того, на панели можно легко менять надпись с названием текущего режима, используя Text List.
Re: Выбор ПО Siemens
Вот так выглядят. Работает однако.Автоматизатор писал(а):Волшебные цепочки выглядят ужасно!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Выбор ПО Siemens
у фронта темповая переменная? ох уж этот лад, глаза режет)
Re: Выбор ПО Siemens
Ага, перед N_TRIG поставил #Local_mode (static varable), но не #Remote_control (физический селектор). Триггер нужен для принудительного включения системы в РУЧНОЙ режим после работы в МЕСТНОМ. Считаю, логичней включать РУЧНОЙ режим в результате вЫключения МЕСТНОГО, а не от селектора переключения МЕСТНЫЙ/УДАЛЁННЫЙ. Способ переключения режима может измениться, а реакция схемы должна оставаться прежней.
Я раньше писал для местных контроллеров на "ассембелрном" языке и неохотно вникал в релейку, но на STEP7 почему-то быстро подсел на LAD, мне понравилось
Я раньше писал для местных контроллеров на "ассембелрном" языке и неохотно вникал в релейку, но на STEP7 почему-то быстро подсел на LAD, мне понравилось
Re: Выбор ПО Siemens
темповые нельзя использовать для фронта, бери статовые. STL
Re: Выбор ПО Siemens
Я не правильно понял вопрос. Она "статовая" и есть. Local static varable. Не Temp. И не Input.
С темповыми уже давно испытал на себе их случайное состояние при вызове функций Теперь даже и не представляю, где можно применять темповую переменную. И не применяю.
С темповыми уже давно испытал на себе их случайное состояние при вызове функций Теперь даже и не представляю, где можно применять темповую переменную. И не применяю.
Re: Выбор ПО Siemens
Если есть необходимость сохранять и при перезагрузках, то лучше тогда задейстовать Input/Output и сохранять в меркерах.toshio писал(а):Я не правильно понял вопрос. Она "статовая" и есть. Local static varable. Не Temp. И не Input.
Можно, можно применять, просто использовать их в пределах одного выполнения программы, и перед следующим вызовом (цикле и т.п.) лучше предварительно обнулять.toshio писал(а): С темповыми уже давно испытал на себе их случайное состояние при вызове функций Теперь даже и не представляю, где можно применять темповую переменную. И не применяю.
Re: Выбор ПО Siemens
Зачем же в меркерах, когда есть Статические переменные, в которых значения сохраняются при перезагрузке.
И первоначальное значение можно задавать.
И первоначальное значение можно задавать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Выбор ПО Siemens
после перезагрузки default и будет))) Это в DB можно сохранять, и то надо указывать, как и собственно адреса меркеров. А вот в FC кроме дефолта ничего и не будет)))
Re: Выбор ПО Siemens
Пример применения 1: Сделал какие-то вычисления, результат кинул в #Temp1, начал новые вычисления, результат новых вычислений кинул в #Temp2. Затем #Temp1 разделил на #Temp2, результат сохранил в нормальную переменную. После этого временные переменные больше не используются в цикле.toshio писал(а):С темповыми уже давно испытал на себе их случайное состояние при вызове функций Теперь даже и не представляю, где можно применять темповую переменную. И не применяю.
Пример применения 2: Таким же образом можно временно запоминать промежуточные логические переменные. Это очень удобно, если логическая цепочка очень длинная и не помещается в ширину экрана. Часть длинной логической цепочки вешается на катушку #Temp и эту часть затем можно заменить одним контактом #Temp.
|
+--||----||----||----||----||----||----||----||----(#Temp1)
|
+--||----||----||----||----||----||----||----||----(#Temp2)
|
|#Temp1 #Temp2
+--||---------||-----(Q0.0)
|
Re: Выбор ПО Siemens
Пытаюсь систематизировать мою программу.
Вот на конвейере имеется станция натяжения конвейерной ленты. Станция натяжения управляется местными кнопками, а также удалёнными из СКАДы. Из СКАДы также можно задавать усилие натяжения (пороговые значения).
Вопрос про тэги: где объявлять тэги для управления станцией натяжения? В разделе PLC Tags или в функциональном блоке, из которого вызывается FB управления станцией натяжения?
В PLC Tags тэги можно сгруппировать в таблицы по назначению (физические органы управления, дистанционные управляющие органы - кнопки в СКАДе, тэги с задающими значениями (INT и т.д.) .
Как лучше? Учитывая, что внутри конвейера подобных узлов, требующих самостоятельного управления, несколько.
Например. Есть локальная и удалённая кнопка квитирования ошибки ACK. Я могу создать тэги этих кнопок в списке тэгов FB, а могу в списке тэгов PLC Tags.
Вот на конвейере имеется станция натяжения конвейерной ленты. Станция натяжения управляется местными кнопками, а также удалёнными из СКАДы. Из СКАДы также можно задавать усилие натяжения (пороговые значения).
Вопрос про тэги: где объявлять тэги для управления станцией натяжения? В разделе PLC Tags или в функциональном блоке, из которого вызывается FB управления станцией натяжения?
В PLC Tags тэги можно сгруппировать в таблицы по назначению (физические органы управления, дистанционные управляющие органы - кнопки в СКАДе, тэги с задающими значениями (INT и т.д.) .
Как лучше? Учитывая, что внутри конвейера подобных узлов, требующих самостоятельного управления, несколько.
Например. Есть локальная и удалённая кнопка квитирования ошибки ACK. Я могу создать тэги этих кнопок в списке тэгов FB, а могу в списке тэгов PLC Tags.
Re: Выбор ПО Siemens
если тегов немного, то делаю таблицы по типам сигналов AI DI DO AO, если тегов много, то по узлам
Re: Выбор ПО Siemens
Т.е. все тэги, отвечающие за связь с физическими входами/выходами, объявляются в PLC Tags и группируются разными способами. Это понятно.
А как быть с тэгами, отвечающими за связь с виртуальными кнопками и тэгами, в которые задаю параметры из СКАДы? Их тоже в PLC Tags объявлять?
А как быть с тэгами, отвечающими за связь с виртуальными кнопками и тэгами, в которые задаю параметры из СКАДы? Их тоже в PLC Tags объявлять?
Re: Выбор ПО Siemens
Кажется у меня в голове каша и она сейчас убежит
Re: Выбор ПО Siemens
Кстати, раньше моя программа была сгруппирована по узлам, т.е. в одном функции управления конвейером вызывались подфункции запуска/останова, моточасы, обработка аналоговых сигналов, касающихся только этого конвейера.
Сенсей заставил меня всё перегруппировать - в одной функции обработки ошибок вызываются подфункции обработки ошибок всех узлов, также с моточасами - всё сгруппировано в одно место. Также вызов подфункций управления каждого узла теперь сгруппированы в отдельной функции.
Сенсей заставил меня всё перегруппировать - в одной функции обработки ошибок вызываются подфункции обработки ошибок всех узлов, также с моточасами - всё сгруппировано в одно место. Также вызов подфункций управления каждого узла теперь сгруппированы в отдельной функции.
Re: Выбор ПО Siemens
Я практически не использую область памяти M (которая в PLC Tags), храню все в датаблоках DB. Разбиваю данные на несколько датаблоков. Даю им имена типа "Кнопка", "Лампа", "Переключатель", "Индекс", "Таймер", "Энергонезависимая_память" и т.д. Кстати, не стесняйтесь использовать кириллицу в именах переменных, Портал ее отлично поддерживает!
Затем программа читается следующим образом: "Таймер".Включение_конвейера - это значит выдержка времени на включение конвейера. "Кнопка".Насос_вкл - кнопка "включить насос". Даже комментарий писать не нужно!
Затем программа читается следующим образом: "Таймер".Включение_конвейера - это значит выдержка времени на включение конвейера. "Кнопка".Насос_вкл - кнопка "включить насос". Даже комментарий писать не нужно!
Re: Выбор ПО Siemens
Надо заметить, что я приверженец широкого применения глобальных переменных в ПЛК. Если грамотно называть переменные и грамотно распределять по датаблокам, то никаких коллизий данных не должно быть.