Считывание битовой маски с Овен МВ110

Стартовая страница Форумы Взаимодействие с устройствами Считывание битовой маски с Овен МВ110

Просмотр 5 сообщений - с 16 по 20 (из 20 всего)
  • Автор
    Сообщения
  • #2345
    Mikhail
    Модератор

    Насколько я понял, с формулой получилось?

    Есть несколько вопросов по онлайн обучению

    Технические средства: Skype + JoinMe
    Минимальное время — 2 часа (120 минут). В хорошем случае за это время можно сделать обзор основных возможностей системы, показать как взаимосвязаны приложения, настроить тестовое подключение и отображение данных с устройства. Т.е. бегло пройтись по настройкам от начала и до конца. Если известны требования к Вашей системе, то можно вместе рассмотреть варианты решений.
    Записать бойца можно. Если обучаться будет больше, чем 1 человек, то полагаю, что на это потребуется больше времени, т.к. появится больше вопросов от Вас.
    Наиболее эффективно — заранее сформулировать задачу и вместе её решить в процессе обучения.
    По стоимости напишите, пожалуйста, запрос на емаил.

    #2461
    lopezmil
    Участник

    С формулой не получилось. Я понял в чём была моя ошибка и исправил её. Но как работает формула, я так и не понял. В примере скады для очистных сооружений есть описание этого скрипта :

    Создадим канал «Активация регистр» с номером 300, типом Телеизмерение и сигналом 1. В коммуникаторе проверим, что сигнал 1 соответствует считываемому регистру.
    Так как в панели используются биты 0-3, пропишем еще 4 канала (Активация 1 — 4, каналы 301 — 304) со следующими параметрами:
    Тип: Дорасчётный ТИ
    Исп. формулу: флаг установлен
    Формула: GetBit(300,0) – для первой активации и по аналогии GetBit(300,1) для второй и т.д.
    Таким образом, в каналах 301-304 мы получаем 0 или 1 в зависимости от того, установлен ли бит состояния Активации.

    Так как в вашем шаблоне для МВ110-16Д уже существует канал 291 с сигналом 1 считывающий битовую маску с 52 регистра, его я оставил без изменения.
    По аналогии с примером создаю три канала 308, 309, 310:
    Тип: Дорасчётный ТИ (пробовал и Дорасчётный ТС)
    Исп. формулу: флаг установлен
    Формула: GetBit(291,0), GetBit(291,1), GetBit(291,2)
    Хочу считать состояние первых трёх битов.
    Но происходит следующее, при передаче в сервер и перезапуске мой 291 канал, в котором считывается битовая маска приобретает номер канала 310 и более не считывает битовую маску 52 регистра.

    #2462
    lopezmil
    Участник

    Изменение номера канала с 291 на 310 я вижу в коммуникаторе в Данных КП

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

    Нужно так: GetBit(Val(291),0)
    Т.к. в функцию передаётся готовое значение, из которого извлекается бит, а не номер канала.

    #2475
    lopezmil
    Участник

    Спасибо! Теперь я понял как это работает.

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