аналог оператора If в языке FBD

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Denis111
Рядовой
Сообщения: 10
Зарегистрирован: 29 окт 2016, 09:05
Откуда: Рыбинск

аналог оператора If в языке FBD

Сообщение Denis111 »

Друзья, чего то я туплю, подскажите пожалуйста такую простую вещь для языка FBD - как выставить единицу на том или ином пине в зависимости от значения переменной (boolean). Т.е. если если переменная принимает значение 1, то зажигаем светодиод на пине 5, а если 0 - то на пине 6. Думал переключатель DMS использовать, но он не принимает на вход Set булеву переменную.
zhulen820
Сержант
Сообщения: 194
Зарегистрирован: 29 авг 2016, 22:44
Откуда: Серпухов
Имя: Александр

аналог оператора If в языке FBD

Сообщение zhulen820 »

Выход pin6 надо просто сделать инверсным. Правой мышкой по выходу и нажать 'инвертировать'

Добавлено (02.12.2016, 23:45)
---------------------------------------------
Выход pin6 надо просто сделать инверсным. Правой мышкой по выходу и нажать 'инвертировать'
Аватара пользователя
Rovki
Полковник
Сообщения: 4899
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Контактная информация:

аналог оператора If в языке FBD

Сообщение Rovki »

Прямое значение на пин 5 ,а инверсное на пин 6
Электронщик до мозга костей и не только
Denis111
Рядовой
Сообщения: 10
Зарегистрирован: 29 окт 2016, 09:05
Откуда: Рыбинск

аналог оператора If в языке FBD

Сообщение Denis111 »

Понял, спасибо. В общем то и на одном пине можно сделать оба светодиода - один на GND посадить, а другой на +.
А если у меня переменная Integer, и в зависимости от числа разные варианты действий - переключателем DMS надо пользоваться?
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

аналог оператора If в языке FBD

Сообщение Олег »

На мой взгляд аналог if это компаратор, правда в си я не знаток.
Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас

аналог оператора If в языке FBD

Сообщение Dev1 »

Олег писал(а):На мой взгляд аналог if это компаратор, правда в си я не знаток.
Можно сказать и так, только очень урезанный. С 1 условием и 1 результатом, причем булейным.
Win10-64 FLProg v7.5.2 Portable :fie:
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

аналог оператора If в языке FBD

Сообщение Олег »

Dev1 писал(а):С 1 условием и 1 результатом, причем булейным.
Не уверен, но вроде чтобы поставить несколько условий, то и if надо писать несколько раз, так-же как и поставить несколько компараторв. А результаты не булейные можно получить с посощью switch на выходе компаратора.
Аватара пользователя
Rovki
Полковник
Сообщения: 4899
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Контактная информация:

аналог оператора If в языке FBD

Сообщение Rovki »

Аналог IF это SEL
Электронщик до мозга костей и не только
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

аналог оператора If в языке FBD

Сообщение Олег »

Если SEL в смысле Switch, то на входе только бинарные значения. Или вы что-то другое имели ввиду?
Аватара пользователя
Rovki
Полковник
Сообщения: 4899
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Контактная информация:

аналог оператора If в языке FBD

Сообщение Rovki »

вот sel- тернарная,условная операция сравнения
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Rovki 03 дек 2016, 10:29, всего редактировалось 1 раз.
Электронщик до мозга костей и не только
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

аналог оператора If в языке FBD

Сообщение Олег »

Я так понял что топикстартера возможности FBD в FLProg интересуют, а не языка FBD в общем.
Аватара пользователя
Rovki
Полковник
Сообщения: 4899
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Контактная информация:

аналог оператора If в языке FBD

Сообщение Rovki »

Если в FLprog нет SEL ,то нужно сделать а пока можно на элементах
или использовать мультиплексор
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
Аватара пользователя
Rovki
Полковник
Сообщения: 4899
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Контактная информация:

аналог оператора If в языке FBD

Сообщение Rovki »

Переключатель свитч - это и есть SEL ,он работает с аналоговыми сигналами на входе в том числе INT
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
Denis111
Рядовой
Сообщения: 10
Зарегистрирован: 29 окт 2016, 09:05
Откуда: Рыбинск

аналог оператора If в языке FBD

Сообщение Denis111 »

Как я понимаю, SWITCH годится только для булевых величин, потому что он выбирает только из двух вариантов.
А если например есть 5 диапазонов какой то переменной и в каждом диапазоне должна быть своя реакция, то как быть? Вроде переключатель мультиплексор [MUX] подходит, но я не понимаю как у него вход настраивать. Там вход для величины Integer, но где прописать что вот в этих пределах Sel передавай величину со входа v0, в этих - в v1 и т.д.?
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

аналог оператора If в языке FBD

Сообщение Олег »

Denis111 писал(а):Как я понимаю, SWITCH годится только для булевых величин, потому что он выбирает только из двух вариантов.
Я про это и говорил, чтобы делать не булевое условие  и результат получать не булевый можно поставить компаратор, а на его выход switch
Ваша задача не совсем понятна, но если вы имеете ввиду что у вас на пять возможных входных значений каждому соответствует свое выходное, то можно ставить 5 компараторов, пять блоков switch, с выходов switch запись в переменную, на вход EN которого подается сигнал от блока изменения значения.
 Можно сделать и на мультиплексоре, тогда switch не нужен, а в переменную после компараторов записываются значения от 0 до 4 и это переменная подключается ко входу Sel.
Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас

аналог оператора If в языке FBD

Сообщение Dev1 »

Компаратор и есть условие if. Например if (temp < 50) {оператор 1} else {оператор2}. Ставим компаратор на входе верхнем переменная temp, на нижнем константа 50 и выбираем условие <. Если условие выполнено то получаем на выходе лог 1, далее цепляем другие блоки что бы выполнить оператор 1. Пока условие не выполнено на выходе компаратора будет 0, т.е. else и тут уже работаем с 0 что бы выполнить оператор 2. В этом есть некоторое неудобство переноса с си на блочную систему.
Грубо говоря компаратором мы получаем только подтверждение выполнение условия 1, либо не выполнения 0.
Последний раз редактировалось Dev1 03 дек 2016, 15:28, всего редактировалось 1 раз.
Win10-64 FLProg v7.5.2 Portable :fie:
Аватара пользователя
Rovki
Полковник
Сообщения: 4899
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Контактная информация:

аналог оператора If в языке FBD

Сообщение Rovki »

Олег писал(а):Я про это и говорил
Вы про информацию по входам или про управление переключателя .По входам любой тип ,управление булевое ,так как 2 входа ...?????????
Электронщик до мозга костей и не только
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

аналог оператора If в языке FBD

Сообщение Олег »

Мы говорим про оператор if. Выше приведенный пример от Dev1:
if (temp < 50) {оператор 1} else {оператор2}
при помощи switch не выполнить, так-как проверку выполнения условия temp < 50 можно сделать только компаратором., а потом уже можно и switch использовать, если значения нужны цифровые или текстовые, а не 0 и 1.
Denis111
Рядовой
Сообщения: 10
Зарегистрирован: 29 окт 2016, 09:05
Откуда: Рыбинск

аналог оператора If в языке FBD

Сообщение Denis111 »

По компаратору все понятно, спасибо большое.
Давайте еще разберем вопрос по переключателю мультиплексору MUX - каким образом происходит выбор с какого входа(v0, v1...) передается сигнал, в зависимости от сигнала на входе Sel ? Цифру что ли с номером входа (v0, v1...) на Sel надо передавать?
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

аналог оператора If в языке FBD

Сообщение Олег »

Да, цифру, номер входа 0,1,2 и т.д. Я писал выше, на выход компаратора вешаете переменную со входом разрешения записи. выход компартора подключаете к EN, а на вход данных ставите константы 0,1,2 и т.д.
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей