Не работает канал управления

  • В этой теме 33 ответа, 3 участника, последнее обновление 1 год назад сделано Mikhail.
Просмотр 15 сообщений - с 16 по 30 (из 34 всего)
  • Автор
    Сообщения
  • #38943
    manjey73
    Участник

    Еще раз. Коммуникатор — Линия связи — Устройство

    Там последние команды отображаются — сравнивайте.
    Зачем логи просто из Коммуникатора, которые и так вам показывают, что от админа послана команда?

    И второе — что именно вы посылаете, что делаете? Cmd в данном случае равно 0 при настройке «Отправить команду сразу» — выше же писал.

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

    Запись в логе Коммуникатора странная:
    Команда с ид. 7516486054669790999 на устройство 1 от

    Должно быть «от ScadaServer»

    #38945
    manjey73
    Участник

    На мнемосхеме выбрать Отправить Команду вместо «сразу».
    Окно команд появляется?, при нажатии Вкл — срабатывает ?

    #38948
    RomanPertsev
    Участник

    У коммуникатора нет страницы данных, есть Параметры линии, Статистика линии, уточните пожалуйста что вы имеете в виду.
    Если говорим про Статистика линии — Журнал линии где виден обмен по сети Модбасс, то там много групп, которые постоянно циклично опрашиваются один за другим, я пытался заметить что-нибудь при нажатии кнопок и ракеты, но отдельных команд которые бы можно было сразу заметить при нажатии кнопки или ракеты в этом листенге не появляется.
    Если вы имеете ввиду журнал ScadaComm, то его скрины есть (два файла, они подписаны как «…журнал Коммуникатора»).

    #38949
    manjey73
    Участник

    Жмете Паузу и листаете, при необходимости открываете файлик лога линии из папки ScadaComm\Log

    В линии есть Устройство — будет таблица с переменными, внизу появляются последние 10 команд, там указано, что передается.

    Так же из Устройство в Линии можно руками послать команду, выбрав нужный тег команды и значения в различных режимах.

    • Ответ изменён 1 год назад пользователем manjey73.
    #38951
    RomanPertsev
    Участник

    Если смотреть прям Коммуникатор — Линия связи — Устройство, то таблица привязки каналов к тегам и текущие значения, так вот при нажатии кнопок или ракеты значения в этой таблице для канала 1061 никак не меняются, даже при нажатии ракета, возможно что не успевают отобразится.

    На мнемосхеме при нажатии кнопки, если для её канала предварительно выбрано действие «Отправить команду (не сразу)» появляется дополнительное диалоговое окно (Откл/Вкл), я нажимаю Вкл, диалоговое окно как положено закрывается и появляется «бегущий круг» и ничего далее не происходит. Устройство не получает сигнал.

    #38952
    RomanPertsev
    Участник

    Почему оно равно нулю? Я же выложил вам скрин настройки канала 1061, там есть входная и выходная формулы. Когда я нажимаю кнопку, то этому каналу должна присвоится единица.

    #38953
    RomanPertsev
    Участник

    Да увидел. Если пролистать вниз, то внизу журнала «Устройства» есть дополнительная таблица «Недавних команд»
    При нажатии кнопки появляются строки
    Code=cmd1, val=0, 000
    Почему присваивается значение 0?

    • Ответ изменён 1 год назад пользователем RomanPertsev.
    #38955
    RomanPertsev
    Участник

    Что нужно сделать чтоб при нажатии кнопки туда отправлялась 1?

    #38956
    manjey73
    Участник

    Потому что при «Отправить команду сразу» Cmd всегда равно 0 — вы его не можете изменить без формул.
    Когда вызывается Окно команды, там вы вводите значение, соответственно изменить Cmd можно без применения формул, так как вы его вводите вручную.

    Если при «Отправить команду» на мнемосхеме у вас ничего не происходит, а из таблицы происходит непонятно. Это одинаковые действия.

    #38957
    manjey73
    Участник

    Когда вы нажимаете кнопку «Вкл» в окне команд — туда посылается 1.
    Когда вы используете «Отправить команду сразу» там 0, потому что никто не знает, что туда надо посылать, может 25, а не 1. И тут надо изменять сам Cmd.
    То есть команда должна выглядеть иначе, типа
    SetBit(DataRel(-), 0, Некая_Формула_Над(Cmd))

    #38958
    manjey73
    Участник

    При этом вы упорно не хотите посмотреть, какие данные команд у вас отправляются в
    Коммуникатор — Линия связи — Устройство.

    #38959
    RomanPertsev
    Участник

    SetBit(DataRel(-), 0, 1)
    Спасибо большое, вы меня выручили. Я повторял видеоурок «Быстрый старт», там не было таких тонкостей.

    #38960
    RomanPertsev
    Участник

    С утра до вечера, потратил всё воскресенье на это и так бы не разобрался без вашей помощи. 🙂

    #38961
    manjey73
    Участник

    Добавить в скрипты

    // Логическое НЕ
    public double NOT(double val)
    {
        bool boolVal = val > 0;
        return Convert.ToDouble(!boolVal);
    }

    Тут будет как бы триггер, так как во входной формуле у нас GetBit используется, и после включения там должна быть 1.

    Ну и так сделать.

    SetBit(DataRel(-1), 0, NOT(Val()))

    Может поможет для мнемосхемы. Но убьет для таблицы 🙂 или в ней сделать одну кнопку «Переключить» и пофигу что посылать…

    • Ответ изменён 1 год назад пользователем manjey73.
Просмотр 15 сообщений - с 16 по 30 (из 34 всего)
  • Для ответа в этой теме необходимо авторизоваться.