Страница 12 из 33 ПерваяПервая ... 2101112131422 ... ПоследняяПоследняя
Показано с 111 по 120 из 343

Тема: ПР200 на четырёхзначной логике

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Geenerator Посмотреть сообщение
    Следующий шаг, это сделать логические элементы четырёхзначной логики

    И - (Минимум)
    ИЛИ - (Максимум)
    НЕ - (Инверсия)

    И можно собрать RS триггер
    Х2n, а не Х1n.
    Разьясните эту таблицу, не могу никак понять. N это что?

  2. #2

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Х2n, а не Х1n.
    Разьясните эту таблицу, не могу никак понять. N это что?
    Согласен, немного напутал. Рисунок исправил.
    Изображения Изображения
    • Тип файла: jpg Logic.jpg (92.5 Кб, Просмотров: 8)
    Последний раз редактировалось Geenerator; 25.04.2025 в 23:38.

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ну вот я сделал с помощью нейросетей и т.п. , когда вы покажете реализацию
    Если честно, вы создали столько кипиша из ничего. Перепутал таблицы, с кем не бывает.

    Я привёл картинку четырёхзначного триггера, два объединённых логических элемента МАКС-НЕ. Операция НЕ - это побитовое отрицание 00 - 11 , 01 - 10
    Конфигурацию для ПР200 так же привожу.

    Завязывайте с вашей нейросетью.
    Изображения Изображения
    • Тип файла: jpg Logic.jpg (92.5 Кб, Просмотров: 18)
    Вложения Вложения

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вы здесь не нашли понимания, поэтому я намекал общаться с любой нейросетью, хоть от яндекса, они все будут к вам доброжелательны, вот их и простите сделать за вас следующие шаги
    Я предпочитаю без нейросетей обходиться )))

    Эти логические элементы делаются так же элементарно.

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    я аж пивом поперхнулся, ну ка покажите элементарный блок согласно своей таблицы истинности, вас помоему все просили уже показать хоть какую то реализацию, хоть чего нибудь
    Горячая пятница, пытался показать таблицу истинности триггера и всё перепутал...

  6. #6
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,119

    По умолчанию

    Цитата Сообщение от Geenerator Посмотреть сообщение
    Горячая пятница, пытался показать таблицу истинности триггера и всё перепутал...
    Вы ж даже во времени путаетесь. Таблицу показали в среду
    Цитата Сообщение от Geenerator Посмотреть сообщение
    ..

  7. #7
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,119

    По умолчанию

    Ну а для МихаилГл )) на основании примера от capzap и поста #122 от вашего покорного слуги,
    даже с дрожащими руками (пятница же) этот сраный тригер реализуется тупо переносом кривопоказанной (защитившим диссертации видимо можно) таблицы

    Код:
    case X1 * 100 + X2 * 10 + Q of
       000: сраный тригер := 0;
       001: сраный тригер := 1;
       002: сраный тригер := 2;
       003: сраный тригер := 3; 
    
       010: сраный тригер := 3;
       011: сраный тригер := 3;
       012: сраный тригер := 3;
       013: сраный тригер := 3;
    
       020: сраный тригер := 3;
       021: сраный тригер := 3;
       022: сраный тригер := 3;
       023: сраный тригер := 3;
       ...
       
       300: сраный тригер := 0;
       .. и дальше сраный тригер := 0;
    end_case
    дальше, кому надоть - сами. С очевидными сокращениями. 0 или 3 могут уехать в else. Да и сокращать можно по всякому

    Вышепредложенная книжка толстая. Мож там и этот вариант есть, не претендую. Но если нет - претендую))
    Думаю что Geenerator её еще пока не дочитал, поэтому побирается на форуме.


    --
    Ой.
    Тригер - странный
    ))


    --
    Цитата Сообщение от capzap Посмотреть сообщение
    я аж пивом поперхнулся,
    Я Вас по спине постучал. Не благодарите.
    Последний раз редактировалось Валенок; 25.04.2025 в 16:50.

  8. #8

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    так если трудности с исходными данными, реализацию то когда ждать в таком случае, вас ни кто не тянул за язык говорить что всё элементарно
    Страница 91 - можно прочитать самостоятельно.

    https://publ.lib.ru/ARCHIVES/M/''Mas...%E9.(1991).pdf

    Реализуются элементарно!!! минимум и максимум двух чисел трудно сделать ? инверсию двоичного числа трудно сделать ?

  9. #9
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,119

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ...пример реализации логической машины состояний с использованием четырёхзначной логики
    Но ведь подменены понятия. Это пример банального автомата, а с "использованием четырёхзначной логики" это набор стандартных операторов "четырёхзначной логики".
    Ожидаются операторы для 1,2,3 и 4 входных элементов. Иначе это все профанация и смесь всего что-то тока можно.
    Например
    Код:
     IF Input1 = 0 AND Input2 = 0 THEN
         PumpState := 0; // Переход в состояние Ложь
     END_IF;
    оператор AND_для_4х_логики_для_2х_операндов

    Немного википедии
    Булева логика допускает ... 4 унарных оператора; добавление третьего значения в троичной логике приводит к общему количеству .. 27 различных операторов для одного входного значения. ...
    Аналогично, там, где булева логика допускает ... 16 различных двоичных операторов (операторов с 2 входами), троичная логика допускает ... 19 683 таких оператора...
    Тенденции очевидны.




    Да и приведен вариант уже сокращенный - "выносы за скобки" и т.п. Полный вариант это:
    Код:
    Input1,
    Input2: INT(0..3);
    --
    
    case PumpState of
      0: 
         case Input1 of 
           0: 
              case Input2 of
                0: .. 
                ..
     	    3: ..
              end_case
           ..
           3: 
              case Input2 of
                0: .. 
                ..
     	    3: ..
              end_case
           ..
      ..
       case Input1 of 
           0: 
              case Input2 of
                0: .. 
                ..
     	    3: ..
              end_case
           ..
           3: 
              case Input2 of
                0: .. 
                ..
     	    3: ..
              end_case
           ..
        end_case
    end_case

    А што такое
    Код:
    case PumpState of
      0: 
         case Input1 of 
           0: 
              case Input2 of
                0: .. 
                ..
     	    3: ..
              end_case
    .. и до конца? Это просто функция (а может и оператор - много их там должно быть) для 3-х 4-х вариантных (дарю термин) аргументов, такого вида:
    Код:
    PumpState := f(Input1, Input2, PumpState);
    а как её обработать? дык
    Код:
    case Input1 * 16 +  Input2 * 4 + PumpState of
      0:   PumpState  := ...
    ...
      63:  PumpState  := ...
    end_case
    Всё. Просто всё.


    А можно охренительно быстро и без case?
    Можно. Просто массив M[0..63] of INT с заранее заданными значенииями. И тогда просто:
    Код:
    PumpState := M[Input1 * 16 +  Input2 * 4 + PumpState];
    И всё. Но с маленьком ньюансом. Надо запрыгнуть в 5-ти значную логику чтоб добавить, например, 4 - оставить как есть.

    И тогда вся функция:
    Код:
    X := M[Input1 * 16 +  Input2 * 4 + PumpState];
    if X <> 4 then
      PumpState := X;
    end_if
    а учитывая что на текущих железках даже с доп.значением(4) на массив 64 байта это слезы, а коли зачем-то нужно ужать то и 24 байта (хотя непонятно, не уйдут ли сэкономленные 40 байт в код) теряет смысл какое-то кодирование этих 1..3 да и может 4 операндовых операций этой "4-ичной логики" на 2-ичной машине. Тупо набор быстроадресуемых таблиц.

    А массив не хочется (входных очень много) и для повышения наглядности (а это пипец какой важный фактор)
    сделать не
    Код:
    X := Input1 * 16 +  Input2 * 4 + PumpState
    а (следите за руками)
    X := Input1 * 100 + Input2 * 10 + PumpState;
    тогда фрагмент

    CASE PumpState OF
    0: // Ложь
    IF Input1 = 1 THEN
    PumpState := 1; // Переход в состояние Истина
    ELSIF Input1 = 2 THEN
    PumpState := 2; // Переход в состояние Неопределённость
    END_IF;
    превращается (в шорты?)
    Код:
    case X of
      000:  PumpState := PumpState;
      010:  PumpState := PumpState;
      020   PumpState := 2;
      030:  PumpState := PumpState;
      100:  PumpState := 1;
      110:  PumpState := 1;
      120:  PumpState := 1;
      130:  PumpState := 1;
      200:  PumpState := PumpState;
      210:  PumpState := PumpState;
      220:  PumpState := 2;
      230:  PumpState := PumpState;
      300:  PumpState := PumpState;
      310:  PumpState := PumpState;
      320:  PumpState := 2;
      330:  PumpState := PumpState;
    а зачем нам лишнее?
    Код:
    case X of
      020   PumpState := 2;
      100:  PumpState := 1;
      110:  PumpState := 1;
      120:  PumpState := 1;
      130:  PumpState := 1;
      220:  PumpState := 2;
      320:  PumpState := 2;
    И это чистые состояния без шулерского подмешивания какой-то примитивной 2-ичной логики с её IF и т.п)))
    (мелкие ошибки могут быть - я этот диссер не рецензировал)
    Последний раз редактировалось Валенок; 25.04.2025 в 17:08.

  10. #10

    По умолчанию

    Вообще n удалили. Я так и не пончл смысла этого индекса. Номер операции, или что... Как понять эту систему?

Страница 12 из 33 ПерваяПервая ... 2101112131422 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 08.01.2025, 19:16
  2. ПР200 на троичной логике
    от Geenerator в разделе Программируемые реле
    Ответов: 177
    Последнее сообщение: 04.07.2021, 21:14
  3. ПР200 + ПР200 (или МВ110, МУ110)
    от antonlis в разделе Программируемые реле
    Ответов: 32
    Последнее сообщение: 27.06.2017, 12:07
  4. ПР200 Пропадание связи USB - ПР200. Решено
    от PGK в разделе Программируемые реле
    Ответов: 0
    Последнее сообщение: 18.01.2017, 11:37
  5. ПР200+НПТ1 Пределы измерения ПР200 в режиме 4-20ma
    от Алексей Геннадьевич в разделе Программируемые реле
    Ответов: 13
    Последнее сообщение: 06.04.2016, 20:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •