Для этого нужно извлечь биты в отдельные переменные. Сделать это можно двумя способами:
1. Через OPC-сервер. Создать на OPC-сервере 16 Boolean переменных и указать для каждой требуемый бит. Затем импортировать переменные в скаду, включить архивацию и добавить их в тренды.
2. Через скада-систему. Для этого, нужно создать внутренние переменные с типом данных Boolean и однотипными именами, например vrMyVar_Bit_0, vrMyVar_Bit_1 и тд., где "vrMyVar" – это имя переменной на OPC-сервере, из которой нужно извлечь биты. Затем нужно создать скрипт с типом события "Изменились переменные", добавить переменную "vrMyVar" в список скрипта, как это описано по ссылке и написать такой скрипт:
В результате выполнения данного скрипта, в переменные vrMyVar_Bit_0, vrMyVar_Bit_1 и тд. будут извлечены биты из переменной. Это универсальный скрипт, поэтому в список скрипта можно добавить другие переменные, из которых требуется извлечь биты в отдельные Boolean переменные. Далее у переменных vrMyVar_Bit_0, vrMyVar_Bit_1 и тд. включить архивацию и добавить в тренды.Код:var I: Integer; aVar: TM_Variable; begin if not IsFirstChange then // пропускаем первое изменение(запуск, перезапуск проекта) for I:= 0 to 15 do begin aVar := GetVariableByName(Variable.Name + '_Bit_' + IntToStr(I)); if aVar <> nil then // если переменная существует aVar.Value := GetBit(Variable.AsInt,I); // извлекаем из нее биты end; end.




Ответить с цитированием
