Самым простым и правильным способом будет привести переменную к необходимому типу на ПЛК и использовать в скаде готовую переменную без преобразований. В ином случае, можно создать внутреннюю переменную, в которую будет записываться результат вычислений. Затем создать скрипт по событию "Изменились переменные (https://simple-scada.com/help/script/changemulvar.html)", добавить в список скрипта исходную переменную, произвести необходимые расчеты и записать результат во внутреннюю переменную. Например:
var
aVar: TM_Variable;
begin
aVar := GetVariableByName(Variable.Name + '_Calc'); // ищем внутреннюю переменную
if (aVar <> nil) and (Variable.AsInt >= 32768) then // если значение исходной переменной >= 32768, то
aVar.Value := 32768 - Variable.AsInt // записываем во внутреннюю расчитанное значение
else // иначе
aVar.Value := Variable.AsInt; // записываем во внутреннюю значение внешней переменной
end.
Это универсальный скрипт, в список которого можно добавить нужные переменные значения которых требуется рассчитывать. Для каждой такой переменной нужно создать внутреннюю переменную с тем же именем + приставка. В примере используется приставка "_Calc". К примеру, исходная переменная имеет имя "MyVar", а внутренняя имеет имя "MyVar_Calc" и т.д.