Отправка команды на канал без устройства?

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

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Записи
  • #38157
    akofor@mail.ru
    Участник

    Добрый день. Возможно ли задать значение каналу (какого-либо типа), отправив на него команду, если канал не привязан к устройству и, соответственно, нет драйвера коммуникатора, который бы обработал эту команду. Возможно ли создать такой канал, что при отправке на него команды (например, из веб-станции) со значением 100, канал принимал значение 100?

    #38160
    akofor@mail.ru
    Участник

    Либо же, если в коде логического модуля можно перехватывать приходящие на канал команды, и с помощью ServerContext.WriteCurrentData записывать значение команды в канал…

    #38161
    akofor@mail.ru
    Участник

    Касательно моей второй мысли: да, можно
    public override void OnCommand(TeleCommand command, CommandResult commandResult)
    {
    int cn = command.CnlNum;
    double cv = command.CmdVal;
    CnlData newOutputData = new CnlData(cv, 1);
    ServerContext.WriteCurrentData(cn, newOutputData);
    }

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

    #38170
    Mikhail
    Модератор

    Добрый день!
    Да. Тип канала- расчётный/выходной. Выходная формула SetData()

    #38212
    saprin8
    Участник

    Чтобы не создавать доп канал можно в свой же канал во входную формулу поставить Val(), ну а в выходную уже SetVal или как Михаил выше написал SetData. Соответственно если отправлять нужно разные числа в канал, то вместо определенного числа нужно ставить в формулу Cmd. Тогда окно всплывающее (Ну и на схеме поставить значение в дин.текст «Отправить команду»)

    #38213
    manjey73
    Участник

    Val() может не воспринять статус канала после перезагрузки сервера. Иногда важно использовать именно SetData. Но если это какой-то более простой, достаточно в Расчетном/Выходном ставить Val() и SetVal(CnlNum, Cmd)
    А дальше уже по ситуации. Можно даже инициализировать канал после перезагрузки.
    Михаил давал формулу GetDefaultData — есть в темах, вместо Val() во входной.

    #38221
    Mikhail
    Модератор

    Функция GetDefaultData будет добавлена в шаблон новых проектов в следующем релизе.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Для ответа в этой теме необходимо авторизоваться.