аналог оператора If в языке FBD
аналог оператора If в языке FBD
Друзья, чего то я туплю, подскажите пожалуйста такую простую вещь для языка FBD - как выставить единицу на том или ином пине в зависимости от значения переменной (boolean). Т.е. если если переменная принимает значение 1, то зажигаем светодиод на пине 5, а если 0 - то на пине 6. Думал переключатель DMS использовать, но он не принимает на вход Set булеву переменную.
-
- Сержант
- Сообщения: 194
- Зарегистрирован: 29 авг 2016, 22:44
- Откуда: Серпухов
- Имя: Александр
аналог оператора If в языке FBD
Выход pin6 надо просто сделать инверсным. Правой мышкой по выходу и нажать 'инвертировать'
Добавлено (02.12.2016, 23:45)
---------------------------------------------
Выход pin6 надо просто сделать инверсным. Правой мышкой по выходу и нажать 'инвертировать'
Добавлено (02.12.2016, 23:45)
---------------------------------------------
Выход pin6 надо просто сделать инверсным. Правой мышкой по выходу и нажать 'инвертировать'
- Rovki
- Полковник
- Сообщения: 4899
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Контактная информация:
аналог оператора If в языке FBD
Прямое значение на пин 5 ,а инверсное на пин 6
Электронщик до мозга костей и не только
аналог оператора If в языке FBD
Понял, спасибо. В общем то и на одном пине можно сделать оба светодиода - один на GND посадить, а другой на +.
А если у меня переменная Integer, и в зависимости от числа разные варианты действий - переключателем DMS надо пользоваться?
А если у меня переменная Integer, и в зависимости от числа разные варианты действий - переключателем DMS надо пользоваться?
аналог оператора If в языке FBD
На мой взгляд аналог if это компаратор, правда в си я не знаток.
аналог оператора If в языке FBD
Можно сказать и так, только очень урезанный. С 1 условием и 1 результатом, причем булейным.Олег писал(а):На мой взгляд аналог if это компаратор, правда в си я не знаток.
Win10-64 FLProg v7.5.2 Portable ![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
аналог оператора If в языке FBD
Не уверен, но вроде чтобы поставить несколько условий, то и if надо писать несколько раз, так-же как и поставить несколько компараторв. А результаты не булейные можно получить с посощью switch на выходе компаратора.Dev1 писал(а):С 1 условием и 1 результатом, причем булейным.
аналог оператора If в языке FBD
Если SEL в смысле Switch, то на входе только бинарные значения. Или вы что-то другое имели ввиду?
- Rovki
- Полковник
- Сообщения: 4899
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Контактная информация:
аналог оператора If в языке FBD
вот sel- тернарная,условная операция сравнения
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Rovki 03 дек 2016, 10:29, всего редактировалось 1 раз.
Электронщик до мозга костей и не только
аналог оператора If в языке FBD
Я так понял что топикстартера возможности FBD в FLProg интересуют, а не языка FBD в общем.
- Rovki
- Полковник
- Сообщения: 4899
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Контактная информация:
аналог оператора If в языке FBD
Если в FLprog нет SEL ,то нужно сделать а пока можно на элементах
или использовать мультиплексор
или использовать мультиплексор
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 4899
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Контактная информация:
аналог оператора If в языке FBD
Переключатель свитч - это и есть SEL ,он работает с аналоговыми сигналами на входе в том числе INT
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
аналог оператора If в языке FBD
Как я понимаю, SWITCH годится только для булевых величин, потому что он выбирает только из двух вариантов.
А если например есть 5 диапазонов какой то переменной и в каждом диапазоне должна быть своя реакция, то как быть? Вроде переключатель мультиплексор [MUX] подходит, но я не понимаю как у него вход настраивать. Там вход для величины Integer, но где прописать что вот в этих пределах Sel передавай величину со входа v0, в этих - в v1 и т.д.?
А если например есть 5 диапазонов какой то переменной и в каждом диапазоне должна быть своя реакция, то как быть? Вроде переключатель мультиплексор [MUX] подходит, но я не понимаю как у него вход настраивать. Там вход для величины Integer, но где прописать что вот в этих пределах Sel передавай величину со входа v0, в этих - в v1 и т.д.?
аналог оператора If в языке FBD
Я про это и говорил, чтобы делать не булевое условие и результат получать не булевый можно поставить компаратор, а на его выход switchDenis111 писал(а):Как я понимаю, SWITCH годится только для булевых величин, потому что он выбирает только из двух вариантов.
Ваша задача не совсем понятна, но если вы имеете ввиду что у вас на пять возможных входных значений каждому соответствует свое выходное, то можно ставить 5 компараторов, пять блоков switch, с выходов switch запись в переменную, на вход EN которого подается сигнал от блока изменения значения.
Можно сделать и на мультиплексоре, тогда switch не нужен, а в переменную после компараторов записываются значения от 0 до 4 и это переменная подключается ко входу Sel.
аналог оператора If в языке FBD
Компаратор и есть условие if. Например if (temp < 50) {оператор 1} else {оператор2}. Ставим компаратор на входе верхнем переменная temp, на нижнем константа 50 и выбираем условие <. Если условие выполнено то получаем на выходе лог 1, далее цепляем другие блоки что бы выполнить оператор 1. Пока условие не выполнено на выходе компаратора будет 0, т.е. else и тут уже работаем с 0 что бы выполнить оператор 2. В этом есть некоторое неудобство переноса с си на блочную систему.
Грубо говоря компаратором мы получаем только подтверждение выполнение условия 1, либо не выполнения 0.
Грубо говоря компаратором мы получаем только подтверждение выполнение условия 1, либо не выполнения 0.
Последний раз редактировалось Dev1 03 дек 2016, 15:28, всего редактировалось 1 раз.
Win10-64 FLProg v7.5.2 Portable ![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
- Rovki
- Полковник
- Сообщения: 4899
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Контактная информация:
аналог оператора If в языке FBD
Вы про информацию по входам или про управление переключателя .По входам любой тип ,управление булевое ,так как 2 входа ...?????????Олег писал(а):Я про это и говорил
Электронщик до мозга костей и не только
аналог оператора If в языке FBD
Мы говорим про оператор if. Выше приведенный пример от Dev1:
if (temp < 50) {оператор 1} else {оператор2}
при помощи switch не выполнить, так-как проверку выполнения условия temp < 50 можно сделать только компаратором., а потом уже можно и switch использовать, если значения нужны цифровые или текстовые, а не 0 и 1.
if (temp < 50) {оператор 1} else {оператор2}
при помощи switch не выполнить, так-как проверку выполнения условия temp < 50 можно сделать только компаратором., а потом уже можно и switch использовать, если значения нужны цифровые или текстовые, а не 0 и 1.
аналог оператора If в языке FBD
По компаратору все понятно, спасибо большое.
Давайте еще разберем вопрос по переключателю мультиплексору MUX - каким образом происходит выбор с какого входа(v0, v1...) передается сигнал, в зависимости от сигнала на входе Sel ? Цифру что ли с номером входа (v0, v1...) на Sel надо передавать?
Давайте еще разберем вопрос по переключателю мультиплексору MUX - каким образом происходит выбор с какого входа(v0, v1...) передается сигнал, в зависимости от сигнала на входе Sel ? Цифру что ли с номером входа (v0, v1...) на Sel надо передавать?
аналог оператора If в языке FBD
Да, цифру, номер входа 0,1,2 и т.д. Я писал выше, на выход компаратора вешаете переменную со входом разрешения записи. выход компартора подключаете к EN, а на вход данных ставите константы 0,1,2 и т.д.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей