Добрый день!
Возможно тема не для этой ветки. Можно смело переносить.
Вопрос следующий.
Дано:
arOPC. Симуляция. 3 переменные (var1, var2, result : word). Диапазон изменения var1 и var2 0..12.
SCADA: те же переменные, объявлены как внешние с привязкой к OPC. Переменная result1 объявлена как внутренняя.
Надо:
При установке любого бита в переменных var1 и var2 установить соответствующие биты в result либо в 1 либо в 0 согласно правилу. Например var1 принимает значение 210 (102) и var2 принимает 010. Соответственно result должен из значения 1111 1111 1111 11112 принять значение 1111 1111 1111 11012.
Простой скрипт (односекудный):
begin
result1.value := NOT (var1.Value or var2.Value); (так же пробовали и с .AsInt)
result.value := NOT (var1.Value or var2.Value);
end;
Вопросы:
1. result1.value := NOT (var1 or var2); - работает, но есть вопрос №2. result.value := NOT (var1 or var2); - не работает.
2. Все переменные типа word (согласно руководству Word 16 бит Положительные целые числа 0…65535). НО result1 = -1. Почему?
Проверьте у себя. Возможно что- то делаю не так. Жду Ваших ответов или вопросов.