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