Определение статуса по значению

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

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Записи
  • #45533
    manjey73
    Участник

    Нарисовалась проблема.

    Входная формула канала — Cnl; Cnl ==0? 501: Stat()

    А так же пробовал такую Cnl; Cnl ==0? 501: CnlStat

    Так вот, при отсутствии связи в таблице устройства у нас --- что не равно 0, но статус мне выставляет как будто канал = 0.

    Как это победить? мне нужен статус, приходящий от Коммуникатора в данном случае, когда идет обрыв связи… А он мне выдает статус 501

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

    Статус, приходящий от Коммуникатора, CnlStat

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

    При отсутствии связи Коммуникатор отправляет значение = 0, статус = 0.

    #45536
    manjey73
    Участник

    Не понял юмора, почему Cnl = 0 при отключении устройства?
    С чего вдруг Коммуникатор отправляет 0, Cnl же это данные Коммуникатора?

    для тестирования использую Modbus Симулятор, в логе Коммуникатора вижу обрыв связи, все как положено. Попытки соединения и т.д.

    #45537
    manjey73
    Участник

    Блин… не очень это правильно. 0 это тоже значение и оно может быть 0 или может быть не 0. И получается, что в БД пишется 0 (не так важно, что статус тоже 0).

    Не должно быть значение нуля из Коммуникатора. Это и без того усложняет всякие формулы, если нам необходимо контролировать что-то через значения.

    Cnl; (Cnl == 0 && CnlStat > 0) ? 501: CnlStat

    з.ы. и вот вся эта писанина уже порядком надоедает 🙂

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