Добрый день уважаемые! Подскажите пожалуйста, как сделать цикл побитового опроса переменной? Где у меня ошибка?
Вложение 44051
Вложение 44052
Вид для печати
Добрый день уважаемые! Подскажите пожалуйста, как сделать цикл побитового опроса переменной? Где у меня ошибка?
Вложение 44051
Вложение 44052
Добрый день.
Побитовый доступ (через точку) возможен только через константы.
Посмотрите библиотеку Util - в ней есть ФБ Extract и Putbit - они помогут в вашем случае.
вместо IF crash1.i = TRUE THEN используйте IF (SHR(crash1,i) AND 16#1) > 0 THEN
Я обычно делаю вот таким образом:
Вложение 44053
Переменная Cr_string будет иметь значение самого нижнего по программе Crash.xx=TRUE. Сброс происходит автоматически в начале каждого цикла.
Спасибо, правда я не разобрался еще что такое SHR() и 16#1, но я догадываюсь как это работает. Хороший способ, интересный, буду изучать.
Подскажите тогда еще такой вопрос, возможно ли с помощью одной переменной STRING поочередно выводить разные данные в окно? как у меня в примере переменная cr_string может принимать несколько значений подряд, и хотелось бы что бы они выводились поочередно
Avdey
1. Это язык LD.Цитата:
Насколько я понимаю это язык FBD? А на ST можно перевести?)
2. Перевести можно, только смысл? Букав больше, наглядности меньше.
Кроме того, в LD проще строить какую-нибудь глушилку аварии\события в случае надобности.Код:Cr_string:="Отсутствуют";
IF Crash.0 THEN Cr_string:="Потеря основного питания"; END_IF;
IF Crash.3 THEN Cr_string:="Авария вентилятора притока"; END_IF;
IF Crash.4 THEN Cr_string:="Авария вентилятора вытяжки"; END_IF;
В принципе для данной задачи надо копать в сторону Ararm Manager.Цитата:
возможно ли с помощью одной переменной STRING поочередно выводить разные данные в окно? как у меня в примере переменная cr_string может принимать несколько значений подряд, и хотелось бы что бы они выводились поочередно