На форуме обязательно:
  1. Заполнить свой профиль на Русском языке. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

TIA Portal + панель сименс TP700 срабатывание кнопки

Аватара пользователя

Автор темы
Slava33
здесь недавно
здесь недавно
Сообщения: 37
Зарегистрирован: 06 июн 2016, 08:13
Имя: Иванов Вячеслав Валериевич
Благодарил (а): 15 раз

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Slava33 » 04 дек 2016, 21:09

Здравствуйте! Вопрос глупый, и возможно даже не важный для меня сейчас, но как сделать так, что б при нажатии кнопки на панели, включалась переменная, а при отпускании - переменная выключалась?! Какие свойства проиписывать? И ещё, почему может быть задержка реагирования контроллера на нажатие кнопки на панели? Панель та же TP700, контроллер Сименс 313С вроде. Т.е. нажал кнопку - механизм сработал, а вдругой раз сработал, но не сразу а с задержкой до 4х секунд. Закономерность не выявил, может много раз сработать мгновенно, а может подтупливать..


Strohmann
осмотрелся
осмотрелся
Сообщения: 123
Зарегистрирован: 08 ноя 2010, 14:03
Имя: Владимир
Благодарил (а): 3 раза
Поблагодарили: 3 раза

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Strohmann » 05 дек 2016, 06:15

Думаю, изображение проиллюстрирует идею.
В свойствах кнопки нужно использовать события Press и Release, которые вызывают соответственно функции SetBit и ResetBit. Этот бит обрабатывать контроллером как запрос на управление механизмом.
Изображение


POV
здесь недавно
здесь недавно
Сообщения: 21
Зарегистрирован: 12 авг 2008, 10:05
Имя: Патрушев Олег Валерьевич
Благодарил (а): 3 раза
Поблагодарили: 5 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение POV » 05 дек 2016, 09:29

Я бы еще посоветовал использовать функцию SetBitWhileKeyPressed


Strohmann
осмотрелся
осмотрелся
Сообщения: 123
Зарегистрирован: 08 ноя 2010, 14:03
Имя: Владимир
Благодарил (а): 3 раза
Поблагодарили: 3 раза

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Strohmann » 05 дек 2016, 09:42

Спасибо! Век живи, век учись.
Не знал о такой функции. Действительно, она более удобна и прозрачна для понимания.

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 05 дек 2016, 13:28

Я, пожалуй, внесу свои 5 копеек. Пришлось тут общаться с системой из такой панели и CPU1200. Задача была - интегрироваться с этой системой. По разным (опустим их) причинам было решено продублировать часть панели в моей WinCC Flex 2008 RT. Так вот, я изрядно попортил карму и разработчикам панели и себе, пока воспроизвел эту функцию во Флексе, с учетом того, что ее в нем нет и с учетом того, что часть событий было организовано по переднему, а часть - по заднему фронту кнопок. Очень бы рекомендовал использовать обычный SetBit, а потом в контроллере его после "отлова" сбрасывать. Карму и себе и тем, кто после вас работать будет, сбережете. Особенно, с учетом того, что в мануале по SetBitWhileKeyPressed прям английским по белому написано: If the PLC supports BOOL tags, do not use this system function. Use the "SetBit" system function instead.


POV
здесь недавно
здесь недавно
Сообщения: 21
Зарегистрирован: 12 авг 2008, 10:05
Имя: Патрушев Олег Валерьевич
Благодарил (а): 3 раза
Поблагодарили: 5 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение POV » 05 дек 2016, 15:19

Странно, WinCCflex2008SP3 RT поддерживает эту функцию, судя по встроенной справке. Я глюков на старых панелях (до TIA) не наблюдал, хотя, надо признать, использую эту функцию не часто (в основном при замене старых панелей, не только Сименс, и переходе от S5 на S7). Комментарий про тип BOOL занятный (перечитал несколько раз - непонятно что хотели этим сказать разработчики), хотя функция как раз и использует тип BOOL, да и трудно представить контроллер без этого типа. Возможно у Вас, Marrenoloth, дело как раз в том, что управление было построено из двух мест?

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 05 дек 2016, 15:37

Нет. В функцию SetBitWhileKeyPressed _можно_ подставить тег типа BOOL, но она создавалась не под них - у нее явно два параметра: тег и номер бита.

Функция действительно есть, каюсь. Но не смотрел я на нее, видимо, потому, что данные отправлялись из кода, а не просто отображением интерфейса на другой панели. В любом случае, это не отменяет того, что использование ее - не самое хорошее решение. Вам надо ловить бит с негарантированным сроком взведения. SetBit в этом план надежнее - поймали фронт в плк, сбросили бит. Гарантированное единичное включение по циклам контроллера. А SetBitWhileKeyPressed так и будет писать 1 в контроллер, пока палец на кнопке.

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


POV
здесь недавно
здесь недавно
Сообщения: 21
Зарегистрирован: 12 авг 2008, 10:05
Имя: Патрушев Олег Валерьевич
Благодарил (а): 3 раза
Поблагодарили: 5 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение POV » 05 дек 2016, 15:47

Если под "из кода" имелся в виду скрипт, то в скриптах SetBitWhileKeyPressed как раз использовать нельзя. Там в скриптах еще много чего нельзя из функций использовать.
А так, спасибо за комментарий с акцентом внимания, пожалуй буду еще пореже ее использовать.

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 05 дек 2016, 16:07

Да я, в общем, так, высказать мнение... Тут на форуме поднимали тему best practice, вот, мне кажется, это немного туда, в ту степь... :)


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2419
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 58 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Михайло » 05 дек 2016, 19:17

Что-то Вы запутали. Что надо делать-то тогда, если не SetBitWhileKeyPressed?

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 05 дек 2016, 20:48

SetBit же! И сбрасывать бит в контроллере или в конце цикла каждый цикл контроллера, или слазу после отлавливания фронта. Именно в контроллере. :)


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2419
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 58 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Михайло » 06 дек 2016, 04:47

Понял, неудобно. Пусть лучше жмут кнопку до упора, пока не сработает. :roll:

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 06 дек 2016, 07:11

А чем неудобно? Я понимаю, что по-другому и непривычно, но почему неудобно?


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2419
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 58 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Михайло » 06 дек 2016, 16:21

Неудобно. Нужно делать лишние телодвижения по сбросу.

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 06 дек 2016, 16:27

Ну да. Нужно. Зато не нужно городить велосипеды с отлавливанием повторных нажатий.


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2419
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 58 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Михайло » 06 дек 2016, 16:37

Что за повторные нажатия? И что за велосипеды? Вроде не беспокоит. Наверное из-за перегруженного обмена данными?

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 06 дек 2016, 16:56

Ну на нажатие же должно быть одно действие? А если кнопка отвечает за, к примеру, переход на следующий шаг программы, то без отлова позитивного фронта уже не обойтись. Иначе, пока оператор держит кнопку, программа будет шагать вперед. Вот и приходится прописывать позитивный фронт. Имхо, проще в конце прописать чохом общий сброс всех кнопок, чем для каждой в каждом месте проверки писать отлов фронта.


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2419
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 58 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Михайло » 06 дек 2016, 17:08

А это... Для меня наоборот лучше ловить фронт, если нужно ловить фронт.


sprohor
здесь недавно
здесь недавно
Сообщения: 53
Зарегистрирован: 05 дек 2016, 16:55
Имя: не форум и был
Поблагодарили: 1 раз
Забанен: Бессрочно

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение sprohor » 06 дек 2016, 17:23

Marrenoloth сам запутался и других пытается запутать...
Функция Установить_Пока_Нажата_Кнопка очень удобна и использовал её лет... десять (?) для булевых значений и в старых панелях и сейчас в портальных тоже.
А если кнопка отвечает за, к примеру, переход на следующий шаг программы, то без отлова позитивного фронта уже не обойтись. Иначе, пока оператор держит кнопку, программа будет шагать вперед.
Это не проблема кнопок панели, а проблема программиста обработки желаемого действия. Некоторые любят на одну кнопку повесить и включение и выключение, а потом удивляются поведению системы :)

По задержкам реакции на нажатие или отображение - посмотрите установленное время обновления конкретного тэга = по умолчанию для добавляемых тэгов автоматически устанавливается 1 секунда... на новых панелях с Эзернетом устанавливаю 100 миллисекунд.

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 06 дек 2016, 17:24

Чую холивар "Автосброс против Сет-Ресета управляющих битов"! :ges_clap2:

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 07 дек 2016, 11:07

sprohor писал(а):Источник цитаты Marrenoloth сам запутался и других пытается запутать...

Семен, спасибо, а в каком месте я запутался? (Кстати, у вас ошибка в имени в профиле, если не ошибаюсь.)
Я, кажется, достаточно четко описал возникающие проблемы. И, да, это проблема программиста. Возможно, что того, кто будет дорабатывать программу после вас. Я не навязывал свое мнение, и не говорил, что SetBitWhileKeyPressed не будет работать.


sprohor
здесь недавно
здесь недавно
Сообщения: 53
Зарегистрирован: 05 дек 2016, 16:55
Имя: не форум и был
Поблагодарили: 1 раз
Забанен: Бессрочно

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение sprohor » 07 дек 2016, 13:38

Как бы на картинке видно, что кнопке можно прописать разные варианты реакции на разные события или их комбинации.
Изображение
Дальше уже дело программиста как обрабатывать события Клика, Начало Нажатия, Начало Отпускания или Состояния_Пока_Нажато...
для логики управления может быть нужен уровень или автоматом будет получаться "фронт" в RS-триггере или на счётном входе счётчика... всё зависит от фантазии программиста.

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 07 дек 2016, 14:37

А я где-то говорил, что нельзя? Я где-то говорил, что не будет работать? Я высказал свое имхо на тему того, как делать правильнее. Вы почему-то утверждаете, что я запутался, не не уточняете где. Я действительно хочу узнать что я не понимаю и расширить свой кругозор!


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2419
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 58 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Михайло » 07 дек 2016, 14:52

Оно может плохо работать, если интерфейс "ПЛК-ЧМИ" перегруженный или цикл программы ПЛК слишком большой. Придется быть терпеливее и нажимать кнопочки подольше.
Ну и второй момент: при переходе на другой экран нажатая кнопка останется нажатой. Есть даже настройка такая в WinCC "сбросить состояние кнопок при выходе из экрана". Если состояние кнопки управляется в ПЛК, то такой проблемы нет вообще.

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 523
Зарегистрирован: 05 окт 2009, 10:51
Имя: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз
Контактная информация:

TIA Portal + панель сименс TP700 срабатывание кнопки

Сообщение Marrenoloth » 07 дек 2016, 16:06

А вот про идею "одной рукой зажать кнопку, а второй поменять экран" я не подумал, спасибо, буду знать про такие приколы! Придется же будет как-то с ними бороться рано или поздно! :ges_slap: