Иммется цепочка: Контроллер -> OPC -> ПК Необходимо отображать состояние дискретного входа. Создал канал по OPC-переменной. На графическом экране разместил ГЭ "Текст" с отображением значения. Привязал канал к аргументу. Тип данных bool. В OPC отображается значение на входе "1", а у меня 65535. В чем может быть проблема?
[ 15.04.2013, 13:40: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
По определению переменная типа BOOL преобразуется в число по алгоритму "0/не 0". Общая функция компилятора в качестве "не 0" подставляет инвертированный 0, т.е. 65535. При выводе на экран можно выбрать тип индикации (цветом или текстом) бинарного типа, используя сравнения или маскирование.
Posted by hill2k (Участник № / Member № 5979) on :
А еще такой вопрос: имеется канал HEX16 типа output, opc-переменная - дискрет, output. Эта переменная управляет переключением режимов работы установки. Т.е. подаем единицу - дистанционное управление, еще раз - местное. Я посылаю с кнопки 1 в аргумент (тип OUT, тип данных bool), привязанный к каналу, в его первый бит. Мониторю состояние входа через OPC-сервер и если он был в 0 состоянии, то иногда сразу, а иногда через раз он становится 1 и режим меняется, но после этого он не возвращается в 0 состояние, а остается 1 и не реагирует на повторное нажатие кнопки. Пытался поставить и восстанавливать значение и посылку 0 при отжатии кнопки - ничего не выходит. Как можно это исправить?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Задайте функцию управления XOR с константой "1". Тогда при каждом нажатии кнопки будет поочередно посылаться команда 0 и 1.