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

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

  1. #111

    По умолчанию

    Подведу небольшой итог.

    На верхнем уровне программирования уже давно пришли к "Машине состояний", где описывается набор определённых состояний в которые переходит программа в зависимости от входных переменных.

    Я пришёл к "логической Машине состояний" на основе четырёхзначной логики, где каждое состояние имеет логическое значение. Четырёхзначная логика полностью совместима с двоичной и по этому предложенную "логическую Машину состояний" можно реализовывать в контроллерах на традиционных языках программирования ST, FB и т.д.

    Если алгоритм работы контроллера простой, то можно обойтись привычными инструментами, а когда алгоритм сложный, то "логическая Машина состояний" может значительно облегчить программирование.


    На данном этапе диалог по предложенной теме зашёл в тупик, если будут конструктивные вопросы - я на них отвечу

  2. #112

    По умолчанию

    Цитата Сообщение от Geenerator Посмотреть сообщение
    Подведу небольшой итог.

    На верхнем уровне программирования уже давно пришли к "Машине состояний", где описывается набор определённых состояний в которые переходит программа в зависимости от входных переменных.

    Я пришёл к "логической Машине состояний" на основе четырёхзначной логики, где каждое состояние имеет логическое значение. Четырёхзначная логика полностью совместима с двоичной и по этому предложенную "логическую Машину состояний" можно реализовывать в контроллерах на традиционных языках программирования ST, FB и т.д.
    [/B]
    пишите книгу короче. Если вы - непризнанный гений, то лучший способ что-то доказать оппонентам, это выпустить свой труд в печатном виде, чтобы потом детям в школе учителя говорили, показывая на портрет на стене: - При жизни учёного его труды не оценили должным образом, потому что прочстому человеку трудно понять всю гениальность его теории, предвидевшей будущее"

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

    По умолчанию

    Цитата Сообщение от In_Da_Cher_A Посмотреть сообщение
    .. показывая на портрет на стене: - При жизни учёного его труды не оценили должным образом, потому что прочстому человеку трудно понять всю гениальность его теории, предвидевшей будущее"
    возможно и
    "Узок их круг ... Страшно далеки они от народа" (С) ВИЛ

    Я, наивный, всегда думал что для архитектора проектирующего многоэтажку проектирование фундамента это вообще плёвое дело. Но тут:
    1. Краешки показанных спроектированных фундаментных блоков вызывают сомнения в "плёвости" этого для проектанта. И закрадываются (так и не развеянные) сомнения в надежности этой многоэтажки.

    2. Любая логика строится на неких кирпичиках так и не показанных. И да - сделанных своими ручками.

    3. Возможно что автор до сих пор думает что он Прометей, но свет иногда мешает спать после трудового дня. Да и пожарные могут не дать разрешения на такие перформансы, с них же потом спросят если что.

    4.
    На верхнем уровне программирования уже давно пришли к "Машине состояний", где описывается набор определённых состояний в которые переходит программа в зависимости от входных переменных.
    Это к чему? Автор предполагает что здесь аудитория первоклашек?

    5.
    Я пришёл к ..... Четырёхзначная логика полностью совместима с двоичной и по этому предложенную "логическую Машину состояний" можно реализовывать в контроллерах на традиционных языках программирования ST, FB и т.д.
    Автор пришел "к.." - хорошо. А дальше?

    "Четырёхзначная логика полностью совместима с двоичной"
    Да. Но и не только 4-х

    "совместима .. и по этому"
    Не аргумент. Не была бы совместима - все равно возможность реализовывать осталась бы. Про автоматы сообщили выше.

    "можно"
    Можно? Да. Но можно <> нужно. Не обосновали. Нет даже вменяемого ТЭО. А с этим Э на текущий момент и у 3-ичной логики швах.

    ".. реализовывать"
    А это наиболее интересный вопрос. Он просто сквозит через всю тему. За чей счет банкет?
    Последний раз редактировалось Валенок; 25.04.2025 в 11:53.

  4. #114

    По умолчанию

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

    Давайте рассмотрим пример реализации логической машины состояний с использованием четырёхзначной логики на языке Structured Text (ST). В этом примере мы будем использовать четыре состояния:

    0 - Ложь (False)
    1 - Истина (True)
    2 - Неопределённость (Unknown)
    3 - Противоречие (Contradiction)
    Следующий шаг, это сделать логические элементы четырёхзначной логики

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

    И можно собрать RS триггер
    Изображения Изображения
    • Тип файла: jpg Logic.jpg (92.5 Кб, Просмотров: 8)
    Последний раз редактировалось Geenerator; 25.04.2025 в 23:37.

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

    По умолчанию

    Цитата Сообщение от 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.

  6. #116

    По умолчанию

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

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

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

  7. #117

    По умолчанию

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

  8. #118

    По умолчанию

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

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

  9. #119

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    ... Как понять эту систему?
    Дык сама таблица нарисована с ошибкой. Чо уж тут

    Точно родителей нужно вызывать.
    Изображения Изображения
    Последний раз редактировалось Валенок; 25.04.2025 в 16:09.

Страница 12 из 35 ПерваяПервая ... 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

Ваши права

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