Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Имитация короткого и длинного нажатия
- В этой теме 30 ответов, 2 участника, последнее обновление 6 лет, 10 месяцев назад сделано manjey73.
-
АвторСообщения
-
19.05.2017 в 16:18 #5858manjey73Участник
Есть выходное реле, как реализовать имитацию короткого и длинного срабатывания без лишнего шума и пыли ?
например короткое срабатывание это цикл опроса, длинное срабатывание 5 секунд.19.05.2017 в 16:54 #5859manjey73УчастникИ еще попутный вопрос по формулам.
Они разбиваются на две части, первая это обработка канала, вторая статуса.
Возможна ли запись и выполнение последовательных формул сразу в канале ?19.05.2017 в 19:58 #5861MikhailМодераторкак реализовать имитацию короткого и длинного срабатывания без лишнего шума и пыли ?
Что имеется ввиду под имитацией?
выполнение последовательных формул сразу в канале ?
Формула должна являться выражением, которое вычисляет число. Если нужна последовательность операций, то нужно создавать формулу в таблице формул.
19.05.2017 в 20:14 #5863manjey73УчастникЕсть выходные реле (например модуль вывода). Им нужно имитировать нажатие кнопки.
Короткое включение, длинное включение, и комбинация Длинное — пауза — короткое. После действий реле ессно должно отключаться.Например что произойдет если сделать так Timeout(CmdVal, 5 sec)
Timeout — формула задержки. Какие действия надо тут предпринять, чтобы команда прошла успешно и именно то, что передавалось ?
Или так Timeout(Формула обработки канала(CmdVal), 5 sec)
- Этот ответ был изменен 6 лет, 11 месяцев назад от manjey73.
19.05.2017 в 20:21 #5865manjey73УчастникЕще такой вопрос, ставлю в канале управления команду CnlSetVal(номер канала), которую вы приводили и даже где-то она у меня работала. Ставлю галочку «Запись событий» и в событиях я ее не вижу. Имею ввиду в базах Events ничего не появляется.
Да, для всего этого механизма будет использоваться Модуль Автоматиеского управления. Может это сильно упростит задачу, чтобы не создавать кучу каналов ?
19.05.2017 в 20:28 #5866manjey73УчастникВообще не хватает функционала ПЛК 🙂 или хотя бы какого-то подобия.
Например вот взять Модуль Автоматического управления, он может передать после выполнения какого-то триггера данные в другой канал ? очень упростилась бы задача.
19.05.2017 в 21:05 #5867manjey73Участник2017-05-19 21:03:05 <VHPC><система><ACT> Команда ТУ: канал упр. = 102, ид. польз. = 11
2017-05-19 21:03:05 <VHPC><система><ACT> Команда ТУ отмененаВыдает при попытке выполнить CnlValSet(Номер канала), канал Дорасчетный ТИ без формулы. Просто пытаюсь туда записать значение.
22.05.2017 в 09:27 #5874MikhailМодераторНужно что-то типа триггера, условие которого будет задано скриптом. Тогда можно будет реализовать нажатие кнопки на время. У меня была похожая задача по СКУД. Для неё был разработан отдельный модуль, который отправлял команды в заданной последовательности. Но конечно удобнее это реализовать в универсальном модуле.
22.05.2017 в 09:30 #5875MikhailМодератор«Команда ТУ отменена» выдаётся сервером, если значение команды равно double.NaN (для стандартной) или null (для бинарной). Функция CnlValSet сама по себе не вызывает отправку команды. Команду отправляет что-то другое.
22.05.2017 в 09:39 #5877manjey73УчастникДа, я уже сообразил, в формуле CnlValSet как раз и присутствует запись команды в Словарь и возврат double.NaN, а входной дорасчетный канал уже из словаря вычитывает значение.
Раз модуль авт. управления не может обработать такой накал управления, буду думать как это формулами сделать…23.05.2017 в 11:06 #5879MikhailМодераторМне приходилось делать замыкание реле на время с помощью формул. Надо канал установить в 1, когда реле должно быть замкнуто и 0, когда разомкнуто. И создать 2 триггера на замыкание и размыкание.
25.05.2017 в 17:19 #5942manjey73УчастникСделал замыкание реле по времени при помощи Формулы таймера Ton (выложил в формулах).
Но вот думку гадаю, как сделать чтобы выход срабатывал дважды с разными таймерами удержания выхода ?
25.05.2017 в 17:32 #5944MikhailМодераторВозможно, ввести переменную для хранения состояния работы флага.
26.05.2017 в 16:44 #5962manjey73УчастникБольшая проблема, что нет возможности в Модуле Авт. Управления
1. вызывать на исполнение Канал управления, соответственно с обработкой формулы в канале управления
2. вызывать команду ТУ с наложением формулы в самом Модуле.Реализовал двойное включение реле, пока только с одной паузой включенного состояния и то, такими танцами с бубном. Все из-за того, что нет прямого доступа к записи канала.
Чтение есть Val(# канала), а записи я так понимаю в таком же виде не существует ?
Только через словари, соответственно и писать надо через словари.Немного изменил CnlValSet так, что у него теперь вторая входная переменная, в которую вношу значение. И все равно танцы с бубнами, так как через модуль с этим сделать ничего нельзя.
- Этот ответ был изменен 6 лет, 11 месяцев назад от manjey73.
29.05.2017 в 08:42 #5966 -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.