В БК создан канал №1 "КАНАЛ""Копировать". Копируется атрибут "Достоверность" канала №2. В канале №2 атрибут "Достоверность" формируется с помощью FBD-программы. Канал №1 создан для того, чтобы в ОТ по появлению "1" в атрибуте "Достоверность" канала №2 записать сообщение в ОТ. В канале №1 (тип канала H) поставлен флаг "отчет", созданы сообщения оператора (для "0" и для "1"). Соответственно в message.alr есть две строки для этих сообщений. Но при возникновении "1" в канале №1 в ОТ появляется строка предыдущего сообщения файла message.alr (т.е. на 2 строки назад, т.к. для каждой сигнализации создано по 2 строки). Провели эксперимент и канал №1 сделали просто ПУСТОЙ. Посылая вручную значения "0" и "1" в канал №1, получаем правильное сообщение в ОТ.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Пришлите Ваш проект на техподдержку для проверки.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Я рассмотрел Ваш проект и там имеет место следующее: Атрибут Достоверность состоит из двух недостоверностей: Аппаратная (0-й бит), Программная (1-й бит). Размерность канала MAG10CP01ZM02, который копирует Достоверность канала MAG10CP001 установлена в 1 бит. Только дело в том, что данная установка не влияет на само значение в канале, а лишь дает доступ к специальным атрибутам "Бит 1", "Буит 2" и т.д., а также скрывает сообщения в окне настройки сообщений для ОТ. Но в реальном времени в атрибутах Реальное, Выход, Выход и Аппаратное такого 1-битного канала по прежнему можно передавать 16-битные значения и они будут также обрабатываться. Что и происходит - ведь у канала MAG10CP001 Достоверность = 2, а это 1-й бит (начиная с нуля), это второе сообщение "Датчик MAG10CP002 - НОРМА" и "Датчик MAG10CP002 - НЕИСПРАВНОСТЬ" в канале MAG10CP01ZM02, просто их не видно в окне настройки сообщений, пока не выставить этому каналу другую размерность в битах. Выход на данный момент такой - создать программу, которая из входящего значения будет выделять только 0-й бит и выдавайть его на выход, и подключить эту программу на Трансляцию канала MAG10CP01ZM02 (а также других аналогичных). Тогда ненужные биты будут "отсеяны" и в ОТ не будут попадать сообщения по ним.
Posted by Сафронов (Участник № / Member № 408) on :
Значит по-поводу атрибута "число бит" в справке написано некорректно. Цитирую фразу из раздела Архивирование/Отчет тревог/Сообщения по реальным значениям/Контроль дискретных параметров : "Число контролируемых битов задается в бланке Маски и эмуляция диалога Реквизиты ..."
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Да - некорректно, этот параметр условный, в любом случае атрибут работает с 16-битным значением.
Posted by Сафронов (Участник № / Member № 408) on :
Описанную выше ситуацию обошли путем превращения 2-х битного атрибута "Достоверность" в однобитный атрибут с помощью FBD.
Новая проблема. В редакторе представления данных для окна просмотра отчета тревог задали флаги "только неквитированные" и "показывать последнюю". В МРВ почему-то этоти флаги куда-то исчезают, и квитирование происходит появлением зеленой галочки в строке, а не стиранием строки. Но это еще не все. Последняя тревога вообще не квитируется до тех пор, пока не появится новая. Тогда начинают квитироваться все. Но и это еще не все. В любой момент времени может появиться тревога, которая не хочет квитироваться ни при каких обстоятельствах. Разве только действует на нее такие манипуляции: правой клавишей мыши выбираем свойства окна и вручную проставляем нужные нам флаги, а потом убираем их и еще раз проставляем. Это все написано для окна просмотра отчета. В самом отчете квитирование происходит в то время, как мы пытаемся квитировать в окне просмотра. Что-то очень сложно все получается с окном просмотра отчета тревог. Что посоветуете?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Спасибо за сообщение - внесли в базу на исправления. Обойти пока эти ошибки не представляется возможным.