Имитация короткого и длинного нажатия

Стартовая страница Форумы Понять, как работает ПО Использование формул Имитация короткого и длинного нажатия

Просмотр 15 сообщений - с 1 по 15 (из 31 всего)
  • Автор
    Сообщения
  • #5858
    manjey73
    Участник

    Есть выходное реле, как реализовать имитацию короткого и длинного срабатывания без лишнего шума и пыли ?
    например короткое срабатывание это цикл опроса, длинное срабатывание 5 секунд.

    #5859
    manjey73
    Участник

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

    #5861
    MikhailMikhail
    Модератор

    как реализовать имитацию короткого и длинного срабатывания без лишнего шума и пыли ?

    Что имеется ввиду под имитацией?

    выполнение последовательных формул сразу в канале ?

    Формула должна являться выражением, которое вычисляет число. Если нужна последовательность операций, то нужно создавать формулу в таблице формул.

    #5863
    manjey73
    Участник

    Есть выходные реле (например модуль вывода). Им нужно имитировать нажатие кнопки.
    Короткое включение, длинное включение, и комбинация Длинное — пауза — короткое. После действий реле ессно должно отключаться.

    Например что произойдет если сделать так Timeout(CmdVal, 5 sec)

    Timeout — формула задержки. Какие действия надо тут предпринять, чтобы команда прошла успешно и именно то, что передавалось ?

    Или так Timeout(Формула обработки канала(CmdVal), 5 sec)

    • Этот ответ был изменен 4 года, 2 месяца назад от manjey73.
    #5865
    manjey73
    Участник

    Еще такой вопрос, ставлю в канале управления команду CnlSetVal(номер канала), которую вы приводили и даже где-то она у меня работала. Ставлю галочку «Запись событий» и в событиях я ее не вижу. Имею ввиду в базах Events ничего не появляется.

    Да, для всего этого механизма будет использоваться Модуль Автоматиеского управления. Может это сильно упростит задачу, чтобы не создавать кучу каналов ?

    #5866
    manjey73
    Участник

    Вообще не хватает функционала ПЛК 🙂 или хотя бы какого-то подобия.

    Например вот взять Модуль Автоматического управления, он может передать после выполнения какого-то триггера данные в другой канал ? очень упростилась бы задача.

    #5867
    manjey73
    Участник

    2017-05-19 21:03:05 <VHPC><система><ACT> Команда ТУ: канал упр. = 102, ид. польз. = 11
    2017-05-19 21:03:05 <VHPC><система><ACT> Команда ТУ отменена

    Выдает при попытке выполнить CnlValSet(Номер канала), канал Дорасчетный ТИ без формулы. Просто пытаюсь туда записать значение.

    #5874
    MikhailMikhail
    Модератор

    Нужно что-то типа триггера, условие которого будет задано скриптом. Тогда можно будет реализовать нажатие кнопки на время. У меня была похожая задача по СКУД. Для неё был разработан отдельный модуль, который отправлял команды в заданной последовательности. Но конечно удобнее это реализовать в универсальном модуле.

    #5875
    MikhailMikhail
    Модератор

    «Команда ТУ отменена» выдаётся сервером, если значение команды равно double.NaN (для стандартной) или null (для бинарной). Функция CnlValSet сама по себе не вызывает отправку команды. Команду отправляет что-то другое.

    #5877
    manjey73
    Участник

    Да, я уже сообразил, в формуле CnlValSet как раз и присутствует запись команды в Словарь и возврат double.NaN, а входной дорасчетный канал уже из словаря вычитывает значение.
    Раз модуль авт. управления не может обработать такой накал управления, буду думать как это формулами сделать…

    #5879
    MikhailMikhail
    Модератор

    Мне приходилось делать замыкание реле на время с помощью формул. Надо канал установить в 1, когда реле должно быть замкнуто и 0, когда разомкнуто. И создать 2 триггера на замыкание и размыкание.

    #5942
    manjey73
    Участник

    Сделал замыкание реле по времени при помощи Формулы таймера Ton (выложил в формулах).

    Но вот думку гадаю, как сделать чтобы выход срабатывал дважды с разными таймерами удержания выхода ?

    #5944
    MikhailMikhail
    Модератор

    Возможно, ввести переменную для хранения состояния работы флага.

    #5962
    manjey73
    Участник

    Большая проблема, что нет возможности в Модуле Авт. Управления
    1. вызывать на исполнение Канал управления, соответственно с обработкой формулы в канале управления
    2. вызывать команду ТУ с наложением формулы в самом Модуле.

    Реализовал двойное включение реле, пока только с одной паузой включенного состояния и то, такими танцами с бубном. Все из-за того, что нет прямого доступа к записи канала.

    Чтение есть Val(# канала), а записи я так понимаю в таком же виде не существует ?
    Только через словари, соответственно и писать надо через словари.

    Немного изменил CnlValSet так, что у него теперь вторая входная переменная, в которую вношу значение. И все равно танцы с бубнами, так как через модуль с этим сделать ничего нельзя.

    • Этот ответ был изменен 4 года, 2 месяца назад от manjey73.
    #5966
    MikhailMikhail
    Модератор

    Чтение есть Val(# канала), а записи я так понимаю в таком же виде не существует?

    Уточните, что именно нужно и чем не подходит SetVal?

Просмотр 15 сообщений - с 1 по 15 (из 31 всего)
  • Вы должны авторизироваться для ответа в этой теме.