Помогите преобразовать bool в число

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
snowleo
Рядовой
Сообщения: 2
Зарегистрирован: 13 июл 2024, 15:40
Имя: Алексей

Помогите преобразовать bool в число

Сообщение snowleo »

В проекте сигнализации на SIM800 хочу реализовать следующий алгоритм: имеются две переменных типа bool - In1 и In2. При звонке на модуль, хочу что бы в зависимости от их состояний, происходил сброс звонка по количеству гудков.
Т.е. например:
In1==1 и In2==0, тогда сброс после первого гудка вызова;
In1==0 и In2==1, тогда сброс после второго гудка вызова;
In1==1 и In2==1, тогда сброс после третьего гудка вызова;
In1==0 и In2==0, тогда сброс после четвертого гудка вызова;
Для этого использовал блок сравнения и блок мультиплексора, но не могу придумать как реализовать преобразование логических 1 и 0 в число для входа Sel.

Код: Выделить всё

In1  In2  |  Sel
------------------
1     0   |  1
0     1   |  2
1     1   |  3
0     0   |  4
В текстовом виде это реализуется примерно как:

Код: Выделить всё

bool In1, In2;
int Sel;
if (In1==true and In2==false) { Sel=1}
и т.д.
А как реализовать такое используя FBD?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ander
Лейтенант
Сообщения: 516
Зарегистрирован: 31 окт 2023, 12:50
Имя: Андрей
Благодарил (а): 21 раз
Поблагодарили: 95 раз

Re: Помогите преобразовать bool в число

Сообщение Ander »

Переключатель.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 5 раз
Поблагодарили: 9 раз

Re: Помогите преобразовать bool в число

Сообщение WildCat »

Блок bit to byte.
На два входа переменные in1 и in2.
На выходе блока значения от 0 до 3.
Их можно отправить на мультиплексор
snowleo
Рядовой
Сообщения: 2
Зарегистрирован: 13 июл 2024, 15:40
Имя: Алексей

Re: Помогите преобразовать bool в число

Сообщение snowleo »

Про Switch сразу подумал, но там придется реализовывать логическую функцию как минимум из трех switch плюс AND и т.п. Сложный путь. Или я не прав?

Блок bit to byte самое то.

Спасибо за подсказки!
Stranger
Рядовой
Сообщения: 84
Зарегистрирован: 08 фев 2021, 08:35
Имя: Дмитрий
Поблагодарили: 9 раз

Re: Помогите преобразовать bool в число

Сообщение Stranger »

Есть блок называется таблица состояний. Как раз для этого
Аватара пользователя
Phazz
Полковник
Сообщения: 3125
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

Re: Помогите преобразовать bool в число

Сообщение Phazz »

Так это же биты) 0 1 2 4. Через блок преобразования бит в байт можно реализовать
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 5 раз
Поблагодарили: 9 раз

Re: Помогите преобразовать bool в число

Сообщение WildCat »

Stranger писал(а): 16 июл 2024, 07:09 Есть блок называется таблица состояний. Как раз для этого
Этот блок выдает на выход bool. А нужен byte или integer
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Re: Помогите преобразовать bool в число

Сообщение ecoins »

05.Конвертация чисел и символов.ubl
Здесь есть набор всевозможных сервисных блоков с помощью которых решаются подобные задачи.
Эти блоки есть и в FLProg c версии 9.1 в разделе кандидаты.
Со временем разработчик планирует в какой-то форме реализовать в стандартных блоках.
------
FLProg за последние полгода сильно изменился - осваивайте новые средства.
С уважением, ecoins.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

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

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

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