Этот топик включает в себя следующие страницы / This topic is comprised of pages 1 2
Автор / Author
Тема / Topic: Неудобное управление кнопками
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Очень неудобное управление, когда один и тот же бит может меняться как в контроллере так и с ТМ6. 1 вариант: - Допустим имеется кнопка(2 состояния, привязка-бит1 канала1 Input, тип передачи НЕ-ИЛИ, значение 1, Результат-бит1 канала1 Output), например для смены режима работы; - Нажали, изменился режим работы (режим1->режим2),бит перешел в 1, - Во время работы в контроллере бит перешел в 0, включился режим1 (например из-за аварии или поменяли с панели), Кнопка отжалась, - Нажимаем повторно для включения бита, кнопка нажалась, неверно отображая значение канала. Оператор будет видеть, что режим2 включился хотя это не так, так как привязанный к кнопке бит канала Output только еще перешел в 0, - только после повторного нажатия на кнопку, включается бит и включается режим2. Аналогичная ситуация, если сначала сменить режим в контроллере, чтобы вернуть его, требуется двойное нажатие на кнопку.
2 вариант: - Допустим имеются 2 кнопки с типом передачи Прямая, кнопка1 в бит заносит 1, другая заносит 0 (количество состояний не важно), - Во время работы в контроллере бит перешел в 0, Кнопки отжались, - Сколько не нажимай на кнопку1 бит из 0 в 1 не перейдет, хотя она висит нажатой уверяя оператора что режим2 включен, пока не нажмешь на кнопку2, они обе становятся нажатой, только после этого при нажатии на кнопку1 сменится бит из 0 в 1.
Неужели для такой элементарной операции как смена бита нужно какой-то программный код впихивать?
Хочу, чтоб ТМ6 оторажал верные значения и биты переключались с 1го нажатия. Разжуйте пожалуйста мне как надо сделать, а лучше пришлите простенький проектик на steklogaz-auto@mail.ru.
отправлено / posted
Обычно в таких случаях выполняется две привязки по функции: одна (дополнительная) как текущее состояние атрибута канала, а вторая (основная) как принимающая результат. Функция НЕ-ИЛИ для расчета использует дополнительную привязку. А так как у вас конечный приемник не локальный, а в контроллере, то и дополнительная привязка посылки должна быть каналом Input, который запрашивает значение канала из контроллера. А то получается, что Вы текущее значение берете не из приемника данных, а из "середины" вашей цепочки передачи данных. Поэтому и путаница возникает, когда значение меняется в контроллере.
IP / IP: IP адрес / IP address |
Baikal_E
Forum Haunter / Завсегдатай форума
Участник № / Member № 4135
отправлено / posted
Валерию Брагину: что касается 2 варианта, то поставьте в основных свойствах кнопки1 привязку к аргументу, в который посылаете 1. На другой кнопке привязку в основных свойствах можно не ставить. У себя сделал, работает.
Сообщения / Posts 127 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Основная проблема у меня не в состоянии кнопки. Если в основных свойствах ничего не привязывать (Два состояния-false), только посылать значения, то проблема остается.
Дело в том, что если послать единицу например в бит1 канала Output, то повторно она не пошлется, пока в этот же бит не послать 0 из ТМ6. А этот канал Output не видит изменения канала Input, привязанного к одной и той же ячейке памяти.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
quote:Отправитель / Originally posted by Baikal_E: поставьте в основных свойствах кнопки1 привязку к аргументу, в который посылаете 1. У себя сделал, работает.
отправлено / posted
На самом деле проблема есть. И ноги ее - отсутствие какнала типа "вход/выход". Поясняю - допустим, устройство включено со скады, бит1 - в 1 как в канале "вход" так и в канале "выход". Теперь устройство выключается с панели или программы или еще как локально. Тогда бит1 - в 0 в канале "вход" а в канале "выход" - по прежнему 1! Теперь со скады пытаемся включить устройство - делаем инверсию 0 -> 1 и пишем в канал "выход". Вот только он не передает значение в устройство, ибо не было изменения значения канала!!! Надо "дергать" атрибут "EXEC"!!! А это не нормально, ибо операция - рутинная!!! Сделайте возможность настойки автоматической посылки 1 атрибут "EXEC" в настройках кнопки.
IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
А40, а можно поподробней про Exec, я вообще думал, что это включение пересчета на старте.
Уважаемая поддержка, если не затруднит, пришлите мне пожалуйста простенький пример подобной операции.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
На эту же кнопку вешаете еще одну функцию прямой посылки 1 в атрибут EXEC этого же канала. Тогда в случае, когда в канале 1, вы шлете кнопкой 1, по посылке в EXEC ненулевого значения МРВ будет принудительно выполнять выдачу значения канала его приемнику. Сам EXEC будет сбрасываться автоматом сервером МРВ, поэтому в самой кнопке его сбрасывать не надо - достаточно будет прямой посылки 1 в него. Минус - на каждую посылку в экране придется еще по аргументу для атрибута EXEC этого же канала создать.
IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Romсheg, с посылкой в EXEC также глухо, после первого запуска МРВ бит в 1 не меняется, или меняется когда быстро жмешь на кнопку раз 20. По второй кнопке (где прямая посылка в 0 и тоже EXEC) бит в 0 не сбрасывается, а наоборот в 1, если он уже 0. Вообще глюки странные, буду с нетерпением ждать пример и релиз 6.07.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
A40
unregistered
отправлено / posted
Атрибут EXEC меняется (грубо) на один цикл МРВ. Т.е. Установили -> МРВ передал в оборудование -> МРВ сбросил.
IP / IP: IP адрес / IP address |
отправлено / posted
Возможно, все участники обсуждения не очень хорошо понимают поставленную задачу. Пришлите, пожалуйста, Ваш проект на hotline3@adastra.ru с описанием задачи и выполняемых Вами процедурах.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Проект отправлен на hotline3. И еще вопрос: как сделать, чтобы при изменении одного бита в контроллере через EXEC остальные в этом слове не сбрасывались?
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Baikal_E
Forum Haunter / Завсегдатай форума
Участник № / Member № 4135
отправлено / posted
Тут можно не использовать EXEC. Просто пишите в тот бит(атрибуты 10-25 для Hex), который хотите изменить.
Сообщения / Posts 127 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
убирал EXEC, все равно все слово сбрасывается в 0, когда меняю один бит кнопкой.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Baikal_E
Forum Haunter / Завсегдатай форума
Участник № / Member № 4135
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
В проекте который я вам отправил, к кнопке привязан первый бит канала, при нажатии на кнопку сбрасывается все слово. Пробывал в области памяти HR и CIO.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Конечно будет сбрасываться все слово. Вам же в начале проекта нужно подчитать значение из контроллера с помощью программы во все каналы дискретные Output.
quote:Отправитель / Originally posted by AdAstra Technical Support: В релизе 6.07 не нужно будет даже создавать дополнительный аргумент.
Пример выложим в ближайшее время.
Пожалуйста, выложите соответствующий пример в связи с выходом релиза. Или имеется в виду, что теперь можно задавать атрибут внутри ГЭ? Но тогда есть риск, что обращение к оборудованию будет двойное - 1 при автоматической смене значения атрибута и 2 повторно при срабатывании атрибута EXEC
IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
quote:Отправитель / Originally posted by AdAstra Technical Support: Вам же в начале проекта нужно подчитать значение из контроллера с помощью программы во все каналы дискретные Output.
В начале проекта, это при запуске МРВ имеется в виду однократно? Вообще предполагается, что все биты будут менятся постоянно в течении работы.
Для прямой передачи для бита 1, реализована принудительная подача в контроллер с помощью атрибута Exec
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Уважаемая поддержка, погонял ваш проект, но реализовано только то, что все слово не сбрасывается при смене бита.
Привязал к каналу input источник Omron_IP input, к каналу Output источник Omron_IP output.
1. По поводу группы кнопок НЕ_ИЛИ: а) Между установкой и сбросом бита должно пройти не менее 2 секунд, иначе кнопка не сработает - не очень удобно. б) Если бит поменялся в контроллере, кнопка его поменяет только со 2-го раза.
2. По поводу группы кнопок ПРЯМАЯ: а) Если бит1 включился в контроллере, правая кнопка его не отключет сколько не нажимай, пока не нажмешь любую другую и потом снова на правую кнопку. б) Если бит1 отключился в контроллере, то все нормально, включается кнопкой с первого раза. в) Если биты 2-4 поменялись в контроллере, то соответственно левые кнопки не включают их, правые не отключают пока не нажмешь любые другие кнопки и потом снова на них.
Изначально в проекте к каналу input был привязан канал Output. Если так оставить, то все слово сбрасывается при смене бита и все недостатки остаются.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1) а) А по другому нельзя, значение должно уйти в контроллер, а после это прийти подтверждение в канал Input. Это как минимум 2 цикла.
б) Он всегда меняет бит, считанный с контроллера. Если он его не успел подчитать, то может возникнуть такая ситуация.
2. Вы опять же скорее всего не подчитали их из контроллера.
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
quote:Отправитель / Originally posted by AdAstra Technical Support: 2. Вы опять же скорее всего не подчитали их из контроллера.
Убедительная просьба дополнить тестовый проект данной возможностью, а то я чтото пытался сделать в этом плане, ничего не вышло.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
У нас Omron Ethernet, все недостатки работы примера с данным оборудованием, описанные в моем сообщении от 29-07-2010 13:15 в пунктах 1(б),2(а,в) так и остались.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Спасибо, кнопки заработали. Добавил к демо-проекту картинку-кнопку, привязал к картинке канал1 input бит1, но привязка не работает, в версии ТМ 6.06.3 это работает.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
quote:Отправитель / Originally posted by AdAstra Technical Support: Привязка к битам в релизе 6.07 работает.
Я знаю, но у меня не работает привязка именно к картинке ГЭ "Картинка-кнопка" в основных свойствах.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
A40
unregistered
отправлено / posted
Возвращаясь к принудительной посылке значения в канал через атрибут EXEC - как настроить канал типа Out, чтобы при изменении его значения (In) оно не передавалось в физический выход?
IP / IP: IP адрес / IP address |
отправлено / posted
Добавить в канал программу трансляцию, которая будет блокировать отсылку нового значения.
Сообщения / Posts 25 | Из / From: Russia
| IP / IP: IP адрес / IP address |
отправлено / posted
Просто привязать шаблон к каналу и не присваивать реальное значение аппаратному.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
A40
unregistered
отправлено / posted
А дальше? Какое значение "вытолкнется" при установке атрибута EXEC? Если аппаратное никогда не меняется. Или при при установке атрибута EXEC процедура трансляции тоже вызовется и можно обработать данный атрибут соответствующем образом?
IP / IP: IP адрес / IP address |
отправлено / posted
1) Посмотрите раздел "Обработка в канале FLOAT" для канала Output.
Т.е. в этой программе есть на входе аппаратное значение, на выходе реальное. Какую связь между ними Вы установите, решать Вам. Если аппаратное не меняется, Вы все равно можете послать в реальное все что угодно. Т.е. дальше уйдет то значение, которое Вы перешлете в реальное значение канала.
2) При установке атрибута Exec канал отрабатывает полностью, в том числе и программа-трансляцция.
3) Не посылать значение в физический выход можно и отключив канал от источника с помощью атрибута Подключение.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Уважаемая поддержка, удалось ли решить проблему с привязкой бита к картинке объекта "картинка-кнопка"?
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Мы Вам отправили пример с растровым изображением, реализующий нужную функцию.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Уважаемая поддержка, при работе кнопок в вашем тестовом проекте возникает каждый раз неприятная ситуация, когда при нажатии наример на кнопку бит1 прямой передачи из канала Output на удаленный адрес передается текущее его значение, и только на следующем цикле - результат логического ИЛИ. Данная ситуация приводит к некорректной работе программы в PLC. Можно ли это как то избежать?
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Там отдельно есть кнопки передачи НЕ_ИЛИ или прямая передача. У них разный функционал.
На следующем цикле результат логического ИЛИ по нажатию кнопки с прямой передачей передаваться не может. Так эта кнопка всегда передает только одно значение.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
1) Это понятно, функционал разный, а проблема у всех одинакова и видна в просмотре компонентов.
2) Если на следующем цикле не может передаваться результат, значит в одном цикле в канал передаются два значения друг за другом.
Объясню подробней: включаем профайлер, в канале Input реальное например 4511, в канале Output - 0, нажимаем на кнопку, например из группы Прямая Бит1 Включить, В результате реальное в канале Input - 0, и через секунду нужные нам 4511. в канале Output - 4511, Далее канал Input меняется на 1234, и при следующем нажатии на любую кнопку, в канал Input заносится 4511, и только после этого результат OR, XOR или AND.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Да, контроллер управляет этими битами тоже, некоторые он может отключить, так же их могут поменять через панель или другой МРВ дублированный. Например, через панель включили/выключили некоторые биты, в результате в канале Input 1234.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Синхронизировать управление в таком случае невозможно. Управляться все должно из одного места.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
Double Force - это тот же МРВ, только при выходе его из строя, его подменяет сразу же второй такой же. На функции управления это влияние не оказывает.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Валерий Багин
Forum Haunter / Завсегдатай форума
Участник № / Member № 3467
отправлено / posted
quote:Отправитель / Originally posted by AdAstra Technical Support: Мы Вам отправили пример с растровым изображением, реализующий нужную функцию.
В данном примере не всегда срабатывает кнопки, то есть кнопку нажимаю, в канал Output значение идет всегда, а до контроллера не всегда доходит, где-то в 30% случаев. Приходится повторно нажимать. От паузы между нажатиями не зависит, жду по 10 секунд, прежде чем нажать повторно.
Сообщения / Posts 125 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Этот топик включает в себя следующие страницы / This topic is comprised of pages 1 2