This is topic Побитовые операторы in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000520.html

Posted by andrelek (Участник № / Member № 3209) on :
 
Есть входная 4байтная переменная VAR_INPUT Вход : REAL; END_VAR
в которой в старшем байте хранится
определенное значение. Необходимо переменной Зн1 присвоить значение
старшего байта.
Пробовал написать так:
Зн1=shr(Вход,24);
и так:
Зн1=Вход>>24;
Но появляется ошибка Е0011:Синтаксическая ошибка
Не пойму в чем проблема.
При работе с побитовым оператором система видит число как двоичное?
В справке не описано как пользоваться этими операторами.
 
Posted by andrelek (Участник № / Member № 3209) on :
 
Еще вопрос: глобальная переменная должна быть видна во всех шаблонах программ или только в одном шаблоне?
 
Posted by andrelek (Участник № / Member № 3209) on :
 
И еще не могу понять как константу объявить.
 
Posted by andrelek (Участник № / Member № 3209) on :
 
Значения локальных и глобальных переменных на разных циклах пересчета сохраняют свои значения?
Т.е если в этом цикле переменной присвоить значение в следующем цикле оно будет такое же?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. У Вас 4 байтная переменная должна быть вещественная или чилочисленная?

2. Глобальная переменная видна только для своего шаблона. Отличие от локальной только в том, что она не обнуляется каждый цикл.

3. Что значит объявить константу? У аргумента есть значение по умолчанию.
 
Posted by andrelek (Участник № / Member № 3209) on :
 
1.Целочисленная.
3.Если дать значение по умолчанию, то получим
переменную с указанным значением
VAR myConst: INT:=13; END_VAR
В хелпе сказано что константа должна определяться так
VAR CONSTANT myConst: INT:=13; END_VAR
Получается если указываем значение по умолчанию,
всеравно имеем переменную а не константу.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Если у Вас переменная целочисленная, тогда почему Вы используете тип REAL, а не UDINT?

3. Прямо на белом фоне в программе прописываете эту строчку и работает с константой.
 
Posted by andrelek (Участник № / Member № 3209) on :
 
1.Потму что переменная 4х байтная, из источников-приёмников приходит тоже REAL
3.Понятно, думал что прописывать нужно в редакторе переменных(в хелпе непонятно)
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Это же не правильно. Побайтовые и побитовые операции корректны только для целоцисленных аргументов.
 
Posted by andrelek (Участник № / Member № 3209) on :
 
1.Побитный оператор должен же работать с битами.
Какая ему разница какой тип? Или есть разница?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. У вещественных переменых битов как таковых нет. В данном случае бит это не адрес в переменной, а вполне конкретная часть числа.
 
Posted by andrelek (Участник № / Member № 3209) on :
 
1.Большое спасибо!!!
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2