Тема / Topic: Битовая переменная на включение/выключение
Vaskil
Forum Member / Участник форума
Участник № / Member № 9303
отправлено / posted
Добрый день! Как решается вопрос при наличии в контроллере одного бита на включение и выключение установки, если в ТМ эта переменная разделяется на две: входную и выходную? Допустим эту переменную возвели в 1 при помощи местной панели оператора, в ТМ, выходная переменная будет равна 0. При попытке выключить установку мы этого не сможем сделать, т.к. запись в плк идет при изменении выходной переменной. Т.е. мы сначала должны записать 1, а потом 0. На мой взгляд, полная дичь. Это я описал выключение, а при включении, мы должны сначала выключить, послав 0, а потом включить послав 1. С учетом того, что на кнопки подвешены события на действия оператора, на выходе в ОТ получаем полный бред. Кроме того, если на кнопки навешать подтверждение действия, то работа тм на нажатие отжатие лкм становится не стабильной. Так есть ли механизм превращения в ТМ переменных out и in, в одну inout?
Сообщения / Posts 34 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В Trace Mode 6 источники/приемники (и каналы связи с УСО) могут быть на чтение (input) или на запись (output).
Необходимо сделать два источника/приемника (и каналы для них) - на запись команды по кнопкам и на чтение обратной связи.
Далее, самое простое решение - использовать цветовую индикацию "что можно нажимать и что нельзя".
На Вашем примере "при наличии в контроллере одного бита на включение и выключение установки" создаете две кнопки. Одна взводит этот бит, другая сбрасывает. Обоим кнопкам добавляете цветовую индикацию в зависимости от состояния этого бита.
Отдельно стоит отметить, что в Trace Mode 7 драйвер для S7 встроен (можно обойтись без OPC). Так же есть возможность для каналов output подчитывать значение с устройства (по необходимости).
С другой стороны, стоит рассмотреть возможность разнесения одного бита на включение и выключение установки на разные биты - локальное/местное и удаленное управление, с соответствующей логикой и системами блокировок.
Vaskil
Forum Member / Участник форума
Участник № / Member № 9303
отправлено / posted
quote:Отправитель / Originally posted by АдАстра. Техподдержка: На Вашем примере "при наличии в контроллере одного бита на включение и выключение установки" создаете две кнопки. Одна взводит этот бит, другая сбрасывает. Обоим кнопкам добавляете цветовую индикацию в зависимости от состояния этого бита. [/QB]
Проблема в том, что выходной бит созданного канала в ТМ, изначально равен 0, мы считаем реальное значение бита в УСО, подсветим кнопку стоп, зашлем на выходной канал 0, а далее, в УСО, этот 0 не отработает, поскольку нет изменений выходного канала: был 0 и записываем 0.
Сообщения / Posts 34 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Vaskil
Forum Member / Участник форума
Участник № / Member № 9303
отправлено / posted
Вычитал на форуме следующее предложение:"Можно задать каналу OPC_OUT период пересчета CALC EXE. В этом случае, если подается сигнал в ВХОД, то канал ОТРАБОТАЕТ, даже если его значение не изменилось.". Правильно ли я понимаю, что нужно задать этот период в переменную типа OUT раздела "Источники/Приемники"? Или и в узле тоже нужно задать? Важно, потому что переменных в контроллере много, а благодаря ТМ они превратились в множество каналов и их стало в разы больше.
Если бы я программировал контроллер, то я бы подстроился под особенности ТМ, но в данном случае, я не имею такой возможности. Из-за того, что с ТМ невозможно работать удаленно (не очень понимаю в чем проблема сделать доступной работу с ТМ удаленно?!) вынужден сидеть за 4000км на объекте и мучатся с простой и распространенной задачей: взвести и сбросить бит с кнопки. Более того, придется туда мотаться при любой проблеме. Заложник АДАСТРы ), порекомендую ли я ваш продукт после этого?
Сообщения / Posts 34 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Vaskil
Forum Member / Участник форума
Участник № / Member № 9303
отправлено / posted
Написал программку которая присваивает выходному каналу входной . Вызываю ее по клику лкм, путем записи в переменную числа 2, к которой привязана программа (канал класса call программа). Почему-то она отрабатывает только один раз, что там надо сбрасывать, чтобы она вызывалась вновь?
Сообщения / Posts 34 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Проблема в том, что выходной бит созданного канала в ТМ, изначально равен 0, мы считаем реальное значение бита в УСО, подсветим кнопку стоп, зашлем на выходной канал 0, а далее, в УСО, этот 0 не отработает, поскольку нет изменений выходного канала: был 0 и записываем 0. Все верно. Был описан самый простой вариант. Дальше, необходимо учитывать особенности Вашего объекта.
Вычитал на форуме следующее предложение: "Можно задать каналу OPC_OUT период пересчета CALC EXE. В этом случае, если подается сигнал в ВХОД, то канал ОТРАБОТАЕТ, даже если его значение не изменилось.". И Вы нашли вариант. У канала OUT (запись в OPC) период пересчета устанавливаете Calc Exe.
Правильно ли я понимаю, что нужно задать этот период в переменную типа OUT раздела "Источники/Приемники"? В Источниках/Приемниках нельзя задать период пересчета.
Или и в узле тоже нужно задать? Только настройках канала output.
Из-за того, что с ТМ невозможно работать удаленно (не очень понимаю в чем проблема сделать доступной работу с ТМ удаленно?!) вынужден сидеть за 4000км на объекте и мучатся с простой и распространенной задачей: взвести и сбросить бит с кнопки. Вы можете работать с Trace Mode, сидя в офисе, а результат (компиляции) помещать в удаленную папку (на объекте) или передавать ответственному специалисту на объекте.
Написал программку которая присваивает выходному каналу входной. Зачем? Вы правильно предложили использовать период пересчета Calc Exe.
Почему-то она отрабатывает только один раз, что там надо сбрасывать, чтобы она вызывалась вновь? Программы (точнее каналы вызова шаблонов программ) отрабатываются с заданной периодичностью (в случае периода "однократно" программа отрабатывает однократно при активации). Программа может отрабатываться "только один раз" если при ее отработке произошла ошибка. Проверьте Достоверность (4,I) канала Call.Program. Однако, Программа, для записи считанного значения в канал записи, Вам не нужна. Используйте период пересчета Calc Exe
Сообщения / Posts 17344 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Vaskil
Forum Member / Участник форума
Участник № / Member № 9303
отправлено / posted
Одного Calc Exe не хватило, причины не могу сказать ), просто то срабатывает, то нет. С запуском программы пересылки входа на выход, запись на включение/выключение механизмов работает, пока проблем, что что-то не включилось или не выключилось ,не было. Работать в офисе я не могу, т.к. ключ закуплен заказчиком, он нам его не передает. Закупать ТМ специально для работы в офисе, чтобы туда не ездить, ну может быть, только как бы я проверял работоспособность? В таком случае нет никакой обратной связи. Я считаю, что исполнительная среда может быть под запретом удаленной работы - это нормально, но что касается ТМ и встроенного профайлера, то недоступность удаленной работы вызывает много вопросов.
Сообщения / Posts 34 | Из / From: Россия
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by Vaskil: Одного Calc Exe не хватило, причины не могу сказать ), просто то срабатывает, то нет.
Установка периода пересчета Calc Exe для каналов управления (output) для подачи команды, которая уже есть в канале, достаточна. Вы это можете проверить в простом проекте с одним каналом. Если у Вас в основном проекте это не работает, то проблема в проекте. Стоит разобраться что влияет на передачу команды.
quote:Отправитель / Originally posted by Vaskil: Я считаю, что исполнительная среда может быть под запретом удаленной работы - это нормально, но что касается ТМ и встроенного профайлера, то недоступность удаленной работы вызывает много вопросов.
Вопросы по Лицензионной Политике (ссылка) Вы можете обсудить с нашими коллегами Отдела Продаж по почте sales@adastra.ru или по телефону +7 (495) 771-71-74.