пустое значение в коммуникаторе

Стартовая страница Форумы Взаимодействие с устройствами OPC пустое значение в коммуникаторе

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

    Добрый день!
    В коммуникаторе поле прописывается как system.byte[]. Качество: good
    т.е. на входе никаких значений не было, а вот в табличке Текущие данные КП это поле уже имеет вид : название канала[0] значение 0,000 номер канала.
    И в БД уже прописывается со значение 0
    Вот тут и проблема что когда приходит 0 то начинается путаница.
    Можно как то сменить не 0 а к примеру 99 или в идеале чтоб в настройках КП появилось поле куда можно было бы ввести дефолтное число которое не будет пересекаться с рабочими.

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

    Добрый день!
    Можете добавить ссылки на скриншоты и журнал линии связи, в котором видно, что приходит от OPC-сервера?

    #8646
    malec
    Участник

    Журнал линии связи
    Данные КП

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

    В случае массива получаемое значение не пишется. Скорее всего, приходит 0.
    С помощью формулы для входного канала №2088 Вы можете в случае 0 установить любое значение или, например, неопределённый статус.
    Пример формулы канала:
    Cnl; Cnl > 0 ? CnlStat : 0

    #8651
    malec
    Участник

    где нужно вводить формулу?

    #8652
    malec
    Участник

    когда на входе будет 0 чтобы заменить на 9 нужно сделать так?
    Cnl; Cnl > 0 ? CnlStat : 9

    #8653
    malec
    Участник

    0
    нет 0
    На скринах видно в первом случае значение в орс есть и оно передается. Во втором нету, но в канале все равно прописывается 0. Такая формула(Cnl > 0 ? CnlVal : 7) в обоих случаях дает val=7 Видимо нужна формула по сложнее.

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

    Во втором случае, когда значения нет, в Коммуникатор всё равно приходят данные по теги НС? Если да, то судя по всему, они равны 0, т.к. если статус GOOD, то должно же быть какое-то значение.

    когда на входе будет 0 чтобы заменить на 9 нужно сделать так?

    Cnl > 0 ? Cnl : 9

    #8657
    malec
    Участник

    Может и приходит что то но я вижу только то что показал на скринах во втором сообщении. Как в формуле написать проверку типа: if(empty($a)) или if(!$a)

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

    Надо посмотреть в отладчике, что именно содержится в получаемом массиве. То есть как воспринимает драйвер Rapid SCADA «пустые» данные. Исходя из этого решать, как обрабатывать.
    Я могу это сделать на коммерческой основе.

    #8661
    malec
    Участник

    Увы но нет возможности. Сам я это сделать не смогу?

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

    Если Вы знакомы с C#, то сможете, я помогу советами через форум.

    #8664
    Kazam
    Участник

    Добрый день! OPC сервер от логики, скажем так не очень надежный.
    Попробуйте наш драйвер, ссылка: Драйвер СПТ941

    Он еще и архивы умеет читать и писать их в базу данных PostgresSQL =)

    #8666
    malec
    Участник

    Добрый день!
    У меня gsm модемы и опрос по csd так что выбирать не приходится. Думаю Ваш драйвер не умеет это делать…

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

    CSD ещё жив 🙂

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