Форум АСУ ТП » Программное обеспечение верхнего уровня » SCADA "КРУГ-2000" » Как работать с отдельными битами четырехбитового числа

Страниц (1): [1]
 

1. SantaJohn - 05 Февраля, 2012 - 07:00:05 - перейти к сообщению
Я только начал изучать СКАДА, и сразу же столкнулся с проблемой. Через ОРС-сервер передаю из контроллера четырехбайтовое число, в котором каждый бит является признаком какой-либо ситуации. В ОРС-сервере переменная типа DWORD. В круге создал канал и привязку к тэгу, где указал тип "Беззнаковое целое (4 байта)". Но сложность возникла в том, что в круге (в БД) есть только вещественные, логические и строковые переменные. Нет переменных типа "целое". Когда я данные помещаю в переменную АВ (текущее значение) или РВ (текущее значение), то они автоматически получают тип "вещественное". Соответственно, я не могу с такой переменной работать в КРУГОЛЕ, используя функции работы с битами, поскольку им требуется целое число. Если же в КРУГОЛЕ преобразовывать число из вещественного в целое, то данные искажаются, поскольку реально-то число в переменной уже было целым, поэтому алгоритм преобразования его не правильно интерпретирует. К тому же, после преобразования число обрезается до 2 байт. Не совсем понятно, зачем вообще в круголе есть тип Цел32, если все функции работы с целыми числами понимают только Цел16. Всю голову уже сломал, подскажите пожалуйста. В каком-то месте я чего-то, видимо, не понимаю.
2. LopukhinVA - 06 Февраля, 2012 - 10:02:28 - перейти к сообщению
Добрый день,
Для корректного использования 4-х байтовых целых чисел в Базе данных, получаемых через OPC-клиент, необходимо их привязывать к атрибутам переменных аналогичного формата.
Такими атрибутами являются:
- в переменной типа ВА (входная аналоговая) атрибуты:
№68 Физическое начало шкалы (код АЦП)
№69 Физический конец шкалы (код АЦП)
- в переменной типа АВ (аналоговая выходная) атрибут:
№36 Постоянная времени по заданию

Powered by ExBB 1.1.3