Страница 1 из 1

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

Добавлено: 15 июл 2024, 20:54
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?

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

Добавлено: 15 июл 2024, 21:01
Ander
Переключатель.

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

Добавлено: 15 июл 2024, 21:03
WildCat
Блок bit to byte.
На два входа переменные in1 и in2.
На выходе блока значения от 0 до 3.
Их можно отправить на мультиплексор

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

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

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

Спасибо за подсказки!

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

Добавлено: 16 июл 2024, 07:09
Stranger
Есть блок называется таблица состояний. Как раз для этого

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

Добавлено: 16 июл 2024, 11:30
Phazz
Так это же биты) 0 1 2 4. Через блок преобразования бит в байт можно реализовать

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

Добавлено: 16 июл 2024, 11:33
WildCat
Stranger писал(а): 16 июл 2024, 07:09 Есть блок называется таблица состояний. Как раз для этого
Этот блок выдает на выход bool. А нужен byte или integer

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

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