PDA

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



Страницы : [1] 2

Geenerator
19.04.2025, 16:30
Всех приветствую!
Я уже открывал подобную тему на этом форуме, только по троичной логике, но явно не нашёл понимания, основной причиной стало то, что на данный момент отсутствует элемент памяти с тремя состояниями.

Я хотел бы обсудить использование четырёхзначной логики в проектах OwenLogic, например для ПР200.
Двоичная логика всем известна, она имеет два состояния 1 - истина и 0 - ложь, её можно представить одним битом
Если рассмотреть четырёхзначную логику, то можно выделить четыре состояния, которые представлены двумя битами и следующими логическими значениями
00 – Нет, 01 – истина, 10 – ложь, 11 – не может быть

Если провести сравнение двоичной и четырёхзначной логик, то можно предложить следующую аналогию из физики. Есть координата X и есть процесс изменения координаты X или скорость. Скорость является первой производной от координаты dX/dt.

По такому же принципу можно сказать что двоичная логика – это логика событий X, то есть событие либо произошло «1», либо не произошло «0», а четырёхзначная логика – это логика движения (скорости), объект может двигаться в положительном направлении «01», в отрицательном направлении «10», не двигаться «00», находиться в состоянии не возможности движения или аварии «11»

Вопрос, где может применяться четырёхзначная логика движения. Ответ, там где присутствует движение, например в регуляторе тепла
00 – регулируемая величина достигнута
01 – значение регулируемой величины выше уставки
10 – значение регулируемой величины ниже уставки
11 – значение вышло за допустимые пределы регулирования – авария

Следующий пример, движение осей металлообрабатывающего станка
00 – ось станка не движется
01 – ось станка движется в принятом положительном направлении Х+
10 – ось станка движется в принятом отрицательном направлении Х-
11 – ось станка не может двигаться по причине аварии

Двоичная логика (логика событий) и четырёхзначная (логика движения) взаимодополняют друг друга, т.е. движение приводит к событию

Николай Суриков
19.04.2025, 16:50
Еще можно поговорить о двестипятидесятишестизначной логике, или вообще об шестьдесятпятьтысячпятьсоттридцатьшестизначной логике.
Вообще можно все состояния объекта описать и в пространстве и во времени и в будущее и в прошлое.

melky
19.04.2025, 17:17
Ваша скорость двести?, -Да, -Не может быть. :)

Глупости не городите, чтобы сравнить выход за уставки, вам ещё необходимо сравнивать значение с уставкой, и вы все равно упретесь в двоичную логику, так нахрена тогда?

МихаилГл
19.04.2025, 18:00
11 – значение вышло за допустимые пределы регулирования – авария

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

Geenerator
19.04.2025, 19:06
Еще можно поговорить о двестипятидесятишестизначной логике, или вообще об шестьдесятпятьтысячпятьсоттридцатьшестизначной логике.
Вообще можно все состояния объекта описать и в пространстве и во времени и в будущее и в прошлое.

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

Geenerator
19.04.2025, 19:29
Ваша скорость двести?, -Да, -Не может быть. :)

Глупости не городите, чтобы сравнить выход за уставки, вам ещё необходимо сравнивать значение с уставкой, и вы все равно упретесь в двоичную логику, так нахрена тогда?

Здесь речь идёт о логике движения. Прошу представить станок с ЧПУ при работе которого всё постоянно находиться в движении, причём по нескольким осям.
Двоичная логика - это основа, принципы остаются те же. Есть событие - это двоичная логика, а есть движение к событию, что тоже важно анализировать.

https://rutube.ru/video/07475cfe44b8639ae42e55f9e5bf59bd/?t=20&r=plwd

Geenerator
19.04.2025, 19:43
Для двоичной логики на протяжении 200 лет разрабатывался математический аппарат - и операции над числами, и операции над множествами чисел, законы преобразования выражений (и де Моргана в частности), и минимизации функций (руками и автоматически), и выравнивания скоростей прохождения сигналов через микросхемы (правила IBM). И самое главное - под двоичную логику существует аппаратная поддержка - и логика микросхем и логика сохранения на носителях.

Для троичой логики изначально существовало аппаратное обеспечение (какая-то ЭВМ), поэтому была разработана математика. Но ЭВМ не выдержала конкуренции. А с ЭВМ ушла и троичная логика. Читал, что в качестве разминки для ума в каком-то ВУЗе её преподают студентам. Ну, вот как в школе изучают геометрию и тригонометрию, интегралы и дифференциальное счисление - для общего развития (только не обманывайте меня, что за всю жизнь пользовались этим багажом более 2-3 раз).

Для 4-значной логики совсем нет математического аппарата, физической реализации. А если предлагать применение целых чисел - то целые числа и так уже есть.

Итого, за всеми N-ичными системами сначала стоит аппаратная реализация, под неё разрабатывается математика, после всего - идёт внедрение теории и практики.

Будем материалистами, а не идеалистами - без физики и математика не нужна, тем более внедрение при помощи эмуляции на другой аппаратной основе.

У четырёхзначной логики с двоичной никаких конфликтов по сложению, вычитанию, умножению, делению НЕТ все правила работают. По памяти для ЭВМ тоже проблем нет, представляется в виде двух бит. С математической реализацией так же вопрос решён, мы использовали четырёхзначную логику в экспертной системе " Диагностика+" - успешно работает.
https://transform.ru/diagnostika/

Cs-Cs
19.04.2025, 23:35
Прошу представить станок с ЧПУ при работе которого всё постоянно находиться в движении Ага... "Ться" и логика.
ОК, представили станок. Который Bayk делал (участник форума). Станок отрезает металлическую рейку, которая выдаётся после проката через ролики.
В станке есть привод ножа, который режет эту рейку. Нож весит около 20 кг. Там гидравлика и суровая гильотина. Итак:
* Логика "01" - движение X+. Нож РЕЗКО и на 100% скорости РВАНУЛ догонять заготовку до нужного места реза. Из-за резкого рывка стартовый ток сервопривода зашкалил, а ШВП (шариковинтовую передачу) перекосило.
* Логика "Х3" - нож догнал рейку и движется с её скоростью.
* Логика "Х4" - нож делает отрез.
* Логика "10" - движение X-. Нож РЕЗКО стартует в обраном направлении до исходной точки без плавного разгона...
* Логика "00" - нож остановлен. Вся масса в 20 кг резко впиливается в край станка, ломает привод и ШВП
* Логика "ШТ" - Штраф и Тюрьма
(А нужно соблюдать плавность разгона и торможения и ещё и синхронизировать по энкодеру с движением отрезаемой рейки)

...а вообще всё просто. Дайте нам пример реализации этой логики на ОВЕН ПР200. Чтобы прям вот далеко не ходить. А готовые FB и то, как их привязывать к дискретным входам и выходам ПРки. Вот у нас есть, к примеру, ворота. Там есть кнопки Открыть, Закрыть, Стоп, Датчик препятствия. Ну и контакторы управления двигателем (выходы).
Вот как это всё сделать на этой четвертичной логике? Как подвести кнопки к этой логике и как выдат сигналы на контакторы?
Прям вот выложите проект!

Сергей0308
19.04.2025, 23:36
Вроде этот вопрос уже обсуждали в преведущий раз, в смысле, самая эффективная с точки зрения хранения единицы информации - это троичная логика, так как "3" наиболее близко к значению основания натурального логарифма(2,718), короче, рассматривать для практического применения логику более троичной даже теоретически нет никакого смысла!
Если только, что весь смысл - в отсутствии всякого смысла!

Geenerator
20.04.2025, 00:40
Вы лукавите.

В самом первом сообщении приведены три варианта состояний трёх разных устройств и все три описания разные. Просто совпало, что состояний оказалось ровно 4.
Для булевой алгебры состояние задаётся как ответ на вопрос и возможно получение состояния всей установки, как "AND" ответов на такие же точно вопросы к составным частям установки.
Например,
"насос готов?" = "вода перед насосом готова?" AND "электропитание насоса готово?" AND "переключатель режима в АВТ готов?" AND ...

Такой же пример для 4-значной логики как будет выглядеть? Как набор из 4*4=16 правил AND к переменным 4-значной логики?
Да, я поверхностно знаком с "нечёткой логикой", но там значения в % и готовый матаппарат с опорой на теорию вероятности. Он достаточно сложный, поэтому не распространённый на практике.

В целом, я не готов спорить на сугубо теоретические темы. Не могу принять предлагаемую логику из-за её неэффективной эмуляции на существующем аппаратном обеспечении (использовать ячейку памяти 8 бит для хранения 2 бит, отсутствуют встроенные в микроконтроллер команды для обработки таких данных), а также из-за отсутствия внятного описания.

То, что некий программный продукт запущен с применением такой логики - ни о чём не говорит, современные компьютеры "вывозят" неэффективные программы за счёт производительности процессора. А объектно-ориентированный подход за счёт переопределения операторов прячет в исходнике неэффективное использование памяти.

Сейчас рассматриваем две логики двоичную (логика событий) и четырёхзначную (движения). Вторая взаимо дополняет первую, то есть логика "движения" может участвовать в логике "событий" как событие и наоборот, события могут говорить о наличии движения

Ось движется в направлении X+ = команда вперёд AND привод в состоянии работа
Ось движется в направлении X- = команда назад AND привод в состоянии работа
Ось в состоянии СТОП = NOT команда вперёд AND NOT команда назад AND привод в состоянии готов
Ось в состоянии авария = (команда вперёд OR команда назад) AND NOT привод в состоянии работа

Включить насос смазки = Ось движется в направлении X+ AND давление выше уставки

Теоретическая часть так же работает, четырёхзначная логика не моё изобретение, я только применил её для решения инженерных задач

Geenerator
20.04.2025, 01:14
Ага... "Ться" и логика.
ОК, представили станок. Который Bayk делал (участник форума). Станок отрезает металлическую рейку, которая выдаётся после проката через ролики.
В станке есть привод ножа, который режет эту рейку. Нож весит около 20 кг. Там гидравлика и суровая гильотина. Итак:
* Логика "01" - движение X+. Нож РЕЗКО и на 100% скорости РВАНУЛ догонять заготовку до нужного места реза. Из-за резкого рывка стартовый ток сервопривода зашкалил, а ШВП (шариковинтовую передачу) перекосило.
* Логика "Х3" - нож догнал рейку и движется с её скоростью.
* Логика "Х4" - нож делает отрез.
* Логика "10" - движение X-. Нож РЕЗКО стартует в обраном направлении до исходной точки без плавного разгона...
* Логика "00" - нож остановлен. Вся масса в 20 кг резко впиливается в край станка, ломает привод и ШВП
* Логика "ШТ" - Штраф и Тюрьма
(А нужно соблюдать плавность разгона и торможения и ещё и синхронизировать по энкодеру с движением отрезаемой рейки)

...а вообще всё просто. Дайте нам пример реализации этой логики на ОВЕН ПР200. Чтобы прям вот далеко не ходить. А готовые FB и то, как их привязывать к дискретным входам и выходам ПРки. Вот у нас есть, к примеру, ворота. Там есть кнопки Открыть, Закрыть, Стоп, Датчик препятствия. Ну и контакторы управления двигателем (выходы).
Вот как это всё сделать на этой четвертичной логике? Как подвести кнопки к этой логике и как выдат сигналы на контакторы?
Прям вот выложите проект!

Давайте попробуем представить данный станок в четырёхзначной логике
00 - Нож не движется
01 - Нож движется вверх
10 - Нож движется вниз
11 - авария привода ножа
Ещё понадобиться датчик наличия листа метала, конечники наличия ножа в верхнем и нижнем положении и в соответствии с этим выстраиваем алгоритм.

По поводу конфигурации для "ворот" я подумаю, нужно какое то время.

Geenerator
20.04.2025, 01:22
Вроде этот вопрос уже обсуждали в преведущий раз, в смысле, самая эффективная с точки зрения хранения единицы информации - это троичная логика, так как "3" наиболее близко к значению основания натурального логарифма(2,718), короче, рассматривать для практического применения логику более троичной даже теоретически нет никакого смысла!
Если только, что весь смысл - в отсутствии всякого смысла!

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

Сергей0308
20.04.2025, 01:57
В прошлый раз без элемента памяти из трёх состояний со мной даже разговаривать не захотели, пока процессор не изобретут не приходи - такой был разговор. А если искать смысл, то есть конкретные прикладные задачи, где четырёхзначная логика успешно применима.

Если ваша система такая хорошая, в смысле, обеспечивает вам конкурентные преимущества, так логично это не обсуждать, даже никому об этом не говорить, чтобы другие не стали её использовать!
Зачем трубить о её преимуществах?

melky
20.04.2025, 05:16
Видел клапан привода на 4-й логике. Да их полно на самом деле. 00 - стоп в любой точке, 10 - закрываем, 11 открываем. 01 не было.
1 - это подача питания на вход привода. Входов ессно два.
В остальных случаях управляющие устройства с одним входов (контактор, реле)
Все остальное, придумываем сами, даже комбинации И, ИЛИ на несколько входов, которые в конечно счёте приведут к одному управляющему.

МихаилГл
20.04.2025, 05:34
Ось в состоянии авария = (команда вперёд OR команда назад) AND NOT привод в состоянии работа

Это авария незапуска привода, а как же авария неостанова?

Кроме этого для направлений еще нужны условия: работает вперед и работает назад...

Для реверсивных механизмов ваша система не подходит. Не запустился вперед, не запустился назад, не остановился вперед, не остановился назад... И т.д.

Шире ставьте задачу, а то похоже на слабенькую диссертацию. Оппоненты завалят на защите...

melky
20.04.2025, 05:39
А там добавят ещё два бита в том же байте, например в старшей тетраде и тоже обзовут четверной логикой :)

melky
20.04.2025, 08:22
Вообще использование 2,3 и более битов широко распространено в сообщении ошибок в разных приборах.
Встречал такое, когда в байт запихивали сразу 2 или 3 переменных. Скажем две 3-х битных и одну 2-битную.
Где как раз и реализован этот механизм с различными состояниями.
000, 001, 011, 010, 101 и так далее.
Кроме формирования состояния и ошибок не встречал.
Так что ничего нового автор как бы и не придумал. Независимо от прибора или программы, где он хочет это применить.
В ПР выше написанное делается так же легко. Вычленить нужные биты и превратить в числа она умеет.

Cs-Cs
20.04.2025, 08:54
Давайте попробуем представить данный станок в четырёхзначной логике
00 - Нож не движется
01 - Нож движется вверх
10 - Нож движется вниз
11 - авария привода ножа
Ещё понадобиться датчик наличия листа метала, конечники наличия ножа в верхнем и нижнем положении и в соответствии с этим выстраиваем алгоритм.
Но станок работает НЕ так!! если он будет работать так, как ты написал, он сломается на втором резе!!!
1. Нож делает отрез мгновенно. Для этого надо включить гидравлический клапан электромагнитом. Там нет таких состояний ножа, когда он медленно ездит для отреза.
2. Нож нужно двигать вместе с материалом, так как материал при отрезе НЕ останавливается, а продолжает двигаться. Для этого нужна рампа разгона и торможения ножа, чтобы его скорость начала плавно расти, совпала со скоростью материала (рейки), потом при совпадении скоростей он сделал отрез и потом поехал на исходную позицию с нарастанием и уменьшением скорости.
3. Как датчики наличия материала и крайних положений ножа будут работать с 4х логикой? Они же бесконтактные. У них три провода: + Питания, - Питания, Выход сигнала. Там нет 4х проводов и 4х логики датчика.


По поводу конфигурации для "ворот" я подумаю, нужно какое то время. Да-да! Мы ждём рабочий пример с логикой, который работает с двоичными кнопками и двоичными контакторами. Больше нам ничего не надо.

Geenerator
20.04.2025, 09:37
Если ваша система такая хорошая, в смысле, обеспечивает вам конкурентные преимущества, так логично это не обсуждать, даже никому об этом не говорить, чтобы другие не стали её использовать!
Зачем трубить о её преимуществах?

Система "Диагностика+" разработана уже давно, все коммерческие и научные плюшки на её основе уже получены. Есть более интересные разработки в этом направлении, а четырёхзначная логика уже "устаревшая", так что можно поделиться.

Geenerator
20.04.2025, 10:08
Видел клапан привода на 4-й логике. Да их полно на самом деле. 00 - стоп в любой точке, 10 - закрываем, 11 открываем. 01 не было.
1 - это подача питания на вход привода. Входов ессно два.
В остальных случаях управляющие устройства с одним входов (контактор, реле)
Все остальное, придумываем сами, даже комбинации И, ИЛИ на несколько входов, которые в конечно счёте приведут к одному управляющему.

Четырёхзначная логика хорошо подходит для регулирования, какими либо процессами.
По поводу четвёртого состояния клапана, я делал аварийное состояние, когда система регулирования не работает и нужно перевести клапан в среднее состояние (на половину открытое).

Geenerator
20.04.2025, 10:29
Это авария незапуска привода, а как же авария неостанова?
Кроме этого для направлений еще нужны условия: работает вперед и работает назад...
Для реверсивных механизмов ваша система не подходит. Не запустился вперед, не запустился назад, не остановился вперед, не остановился назад... И т.д.
Шире ставьте задачу, а то похоже на слабенькую диссертацию. Оппоненты завалят на защите...

В данном случае нужно сформулировать задачу и определить, какие двоичные "события" определяют логические состояния четырёхзначной логики.
Что подразумевается под состоянием СТОП, движение в положительном направлении, движение в отрицательном направлении, состоянии авария и дальше выстраивать алгоритм.

Четырёхзначная логика подходит не для всех задач. Нужно иметь два четко противоположных состояния, которые можно отследить.

melky
20.04.2025, 10:41
ок. 00 - выключен, 10 - включен, 01 - движение в обратном направлении, 11 - движение в прямом направлении а если надо больше, то что? вторая переменная на два бита или расширение еще на 1 бит, но тогда уже и не четвертное все вдруг стало.

Geenerator
20.04.2025, 11:33
Мне кажется, что подменяются термины.

В данном описании говорится не о 4-ричной логике, где каждый элемент (переменная) может принять 4 состояния, а о введении ещё одной сущности к описанию объекта управления - слова состояния.
Т.е. не появляется новой 4-ричной алгебры, в которой при помощи двух операций (как в теории полей чисел или как она называется) определяется взаимодействие этих состояний.
Предлагается вычисление наиболее востребованных в алгоритме состояний объекта управления.

То, что предвычисленных состояний оказалось ровно 4 - это или случай или закономерность или подгон.

Но не это хочу донести - предлагается предвычисление наиболее употребимых состояний и сохранение их в переменной состояния (флагов). Это не про 4-ричную систему, а про библиотеку управления движением с наборами предвычисленных состояний для разных классов объектов (насос, задвижка, отсечной клапан, сервопривод).

Возможно, как готовая библиотека это будет интересно, но OwenLogic пока не обладает возможностями работы со структурами, перечислимыми типами, именованными константами - на данном этапе развития нормальная библиотека нереализуема.

Давайте вернёмся к началу, есть двоичная логика и её можно сравнить с аналогом из физики, например координата. Изменение координаты во времени есть скорость или первая производная по времени dX/dt. Для понятия "скорость" разве вводятся новые алгебраические правила ? , это просто физическая величина более "тонкого" порядка. Если дойдёт дело до теории, то я смогу это показать.

Двоичная логика отвечает за "события" в системе (произошло событие / не произошло событие), четырёхзначная логика отвечает за движение к этим событиям. И должен сказать, что не во всех задачах нужны переменные, показывающие такие движения.

Geenerator
20.04.2025, 11:45
Вообще использование 2,3 и более битов широко распространено в сообщении ошибок в разных приборах.
Встречал такое, когда в байт запихивали сразу 2 или 3 переменных. Скажем две 3-х битных и одну 2-битную.
Где как раз и реализован этот механизм с различными состояниями.
000, 001, 011, 010, 101 и так далее.
Кроме формирования состояния и ошибок не встречал.
Так что ничего нового автор как бы и не придумал. Независимо от прибора или программы, где он хочет это применить.
В ПР выше написанное делается так же легко. Вычленить нужные биты и превратить в числа она умеет.

В больших проектах, где много переменных очень часто используются СЛОВА (8 бит) и над словами применяются групповые операции сравнения, вычитания, инверсии и т.п.
Я очень часто так делаю, когда проводятся однотипные операции над различными устройствами. Удобство в том, что можно использовать уже числа.

В данном случае слово будет разделено по два бита, которые имеют четыре возможных логических состояния .

Сергей0308
20.04.2025, 13:20
Так он, насколько смог понять(терминов подходящих он не подбирает) хочет создать битовую маску дискретных состояний и работать с целочисленной логикой, потому что это проще, в смысле, меньше в разы элементов на полотне программы!
Кстати, я так почти всегда поступаю, когда дискретная логика достаточно сложная!
Может ему мои проекты посмотреть, в смысле, прежде чем велосипед изобретать - посмотреть что продают в велосипедных магазинах?
Это я так думаю!

https://owen.ru/forum/showthread.php?t=39169&p=429835&viewfull=1#post429835

https://owen.ru/forum/showthread.php?t=36564&p=385145&viewfull=1#post385145

https://owen.ru/forum/showthread.php?t=12691&p=361508&viewfull=1#post361508

https://owen.ru/forum/showthread.php?t=36452&p=440735&viewfull=1#post440735

https://owen.ru/forum/showthread.php?t=26216&p=415570&viewfull=1#post415570

https://owen.ru/forum/showthread.php?t=12691&p=248907&viewfull=1#post248907

https://owen.ru/forum/showthread.php?t=26216&p=432040&viewfull=1#post432040

https://owen.ru/forum/showthread.php?t=26216&p=376273&viewfull=1#post376273

https://owen.ru/forum/showthread.php?t=37017&p=393985&viewfull=1#post393985

https://owen.ru/forum/showthread.php?t=26216&p=412743&viewfull=1#post412743

https://owen.ru/forum/showthread.php?t=26216&p=405907&viewfull=1#post405907

83289

Geenerator
20.04.2025, 23:16
Но станок работает НЕ так!! если он будет работать так, как ты написал, он сломается на втором резе!!!
1. Нож делает отрез мгновенно. Для этого надо включить гидравлический клапан электромагнитом. Там нет таких состояний ножа, когда он медленно ездит для отреза.
2. Нож нужно двигать вместе с материалом, так как материал при отрезе НЕ останавливается, а продолжает двигаться. Для этого нужна рампа разгона и торможения ножа, чтобы его скорость начала плавно расти, совпала со скоростью материала (рейки), потом при совпадении скоростей он сделал отрез и потом поехал на исходную позицию с нарастанием и уменьшением скорости.
3. Как датчики наличия материала и крайних положений ножа будут работать с 4х логикой? Они же бесконтактные. У них три провода: + Питания, - Питания, Выход сигнала. Там нет 4х проводов и 4х логики датчика.

Да-да! Мы ждём рабочий пример с логикой, который работает с двоичными кнопками и двоичными контакторами. Больше нам ничего не надо.

В случае станка я не нахожу 2-х противоположных состояний, нож работает в импульсном режиме. Процесс резки синхронизирован с подачей материала и четырёхзначная логика тут не нужна.

Рассмотрим задачу автоматизации ворот, я прикрепил картинку конфигурации.
Для реализации четырёхзначной логики следует выделить 4-ре состояния системы:
- СТОП
- Открытие ворот
- Закрытие ворот
- Авария
Эти четыре состояния в данном случае я просто вывел на лампочки для сигнализации. Данные состояния можно использовать как "двоичные события" в других логических цепочках.

83295

Geenerator
21.04.2025, 00:49
Да, дифференциальное счисление - это раздел математики, который взаимодействует с разделом геометрической алгебры.

Есть булева алгебра, а Вы предлагаете библиотеку управления объектами, для которой разработали регистры флагов наиболее востребованных состояний. Дальше ФБ не вычисляют эти состояния, а берут их напрямую из регистра флагов. Такое впечатление возникло из-за того, что в Вашем примере команда формировалась не при помощи собственных операций над состояниями, а при помощи булевой алгебры над отдельными флагами регистров состояний.

Т.е. вместо описания библиотеки и её идеологии, по ошибке утверждаете, что это 4-значная логика.

Да, для работы насосной группы такая библиотека не востребована.
Для контроля перемещения объекта (ворот, резака) - возможно, именно она и требуется.

Именно Вы пришли с предложением ввести новую логику.
Т.к. в настоящее время в нашем распоряжении нет готовых вычислительных устройств с 4 состояниями каждого элемента, то можно это эмулировать целыми числами.
Продемонстрируйте минимальный пример, где задача будет легче на абстрактном уровне решаться при помощи этой 4-значной логики.

А так. Вы вбросили непонятную идею и настаиваете, чтобы её другие начали реализовывать. Покажите примеры, разработайте библиотеку ФБ, участвуйте в обсуждении задач на форуме, демонстрируйте простоту их решения при помощи абстрактных моделей 4-значной логики, спрятанной за простотой использования библиотек.

Как у Соломона - если не сейчас - то когда? если не здесь - то где? если не я - то кто?


Если дошло дело до Соломона, то пришло время философии. Давайте найдём аналогии из смежных областей
Всем известен электрический закон расчёта мощности P=UI
U - напряжение - это разность потенциалов. Разность потенциалов либо есть, либо её нет.
I - ток - ключевое свойство, может течь по проводнику либо в прямом направлении, в обратном направлении, либо не течь.
P - мощность - это характеристика электрической цепи качественно другого уровня включающее в себя понятие ток и напряжение

Переходим к логике и ищем аналогии
Двоичная логика: двоичная система счисления, 2 логических уровня 1-истина, 0-ложь - очень похоже на напряжение
Троичная логика: троичная сбалансированная система счисления, 3 логических уровня +1, 0, -1 - очень похоже на ток
Четырёхзначная логика: четыре логических уровня 00, 01, 10, 11. При этом, можно увидеть и двоичную логику в состояниях 00, 11 и троичную в состояниях 01, 00, 10

Из вышеприведённых философских рассуждений можно сделать вывод, что состояния четырёхзначной логики не случайны, а закономерны.
Я не настаиваю на использовании данной логики, просто если вам понравиться, то вы можете использовать её в своих проектах.

МихаилГл
21.04.2025, 03:38
Мда... Крутое у вас представление управления воротами. Нажали кнопку открыть... Потом через секунду нажали кнопку закрыть...

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

1exan
21.04.2025, 04:13
В случае станка я не нахожу 2-х противоположных состояний, нож работает в импульсном режиме. Процесс резки синхронизирован с подачей материала и четырёхзначная логика тут не нужна.

Рассмотрим задачу автоматизации ворот, я прикрепил картинку конфигурации.
Для реализации четырёхзначной логики следует выделить 4-ре состояния системы:
- СТОП
- Открытие ворот
- Закрытие ворот
- Авария
Эти четыре состояния в данном случае я просто вывел на лампочки для сигнализации. Данные состояния можно использовать как "двоичные события" в других логических цепочках.

83295

Четыре состояния видно в примере, а четырёхзначной ЛОГИКИ - не наблюдается

Cs-Cs
21.04.2025, 04:16
В случае станка я не нахожу 2-х противоположных состояний, нож работает в импульсном режиме. Процесс резки синхронизирован с подачей материала и четырёхзначная логика тут не нужна.Почему это? Движение ножа вперёд (по ходу движения материала) и назад (против хода движения материала)? Сам же говорил про X+ и X-.

Эти четыре состояния в данном случае я просто вывел на лампочки для сигнализации. Данные состояния можно использовать как "двоичные события" в других логических цепочках.НЕ ПОНЯЛ!!! ГДЕ ЛОГИКА-ТО? Где 4х-значные элементы "И", "ИЛИ", "НЕ"?..
На примере показана обычная двоичная логика, на которую рассчитана ПРка!
Я ожидал увидеть Макросы для ПРки, которые на входе и выходе принимают 4х-значную логику и заточены под неё! А это - мошенничество!

В общем, это не логика, а весеннее обострение. Типа шарообразной шахматной доски: концепт крутой, но из-за гравитации фигуры сваливаться будут. Жесть.

melky
21.04.2025, 06:23
Магниты добавьте, и фигуры падать не будут.
Сама доска упадет :)

Geenerator
21.04.2025, 08:41
Я обратил внимание, что тему перевели в раздел ТРЁП. Печально что обсуждение логики - это трёп, я думал что администраторы форума лучшего мнения о принципах мышления.

Ладно, благодарю за конструктивную беседу - всего доброго!!!

melky
21.04.2025, 09:04
Geenerator ну фактически это треп и есть. Просто предположение, из того, что было сказано выше. Все определяет железо. Если троичная логика не прижилась в компьютерах (и правильно, что не прижилась, имхо) то выше и подавно.
Если все можно построить на двоичной логике, программно ее расширить до любых пределов . То есть вы сами определяете какая логика у вас будет в тех или иных реализациях. Этого вполне достаточно.
Опять же, приняли за стандарт byte а не бит тоже вполне логично. Вам нужен бит? - обратитесь к определенному биту байта, или используйте весь байт если не жалко. Вам нужно слово? - используйте два байта. И так далее.
Опять же, вам нужен массив слов, то по сути это массив байт * 2.

Cs-Cs
21.04.2025, 09:31
тему перевели в раздел ТРЁП И правильно перевели. Потому что нас не обманешь!
Вот конкретные претензии (я имею право так говорить, потому что когда я что-то изобретаю - я пишу на своём сайте статью и показываю в ней то, как изобретение работает и где я его применяю):
1. На твоём сайте часть разделов (про возможности системы) вообще пустая.
2. Ты говорил, что деньги уже получены, и коммерческой тайны нет. Но тогда ГДЕ описание концептов и методики применения?
3. Где описание 4хичной математики-то? Всех этих AND, OR, NOT, XOR - самых базовых логических элементов любой логики.
4. Где практические примеры применения? Мы их не видели даже на примере даже твоего собственного продукта.

Вместо чёткой ДОКУМЕНТАЦИИ и МЕТОДИКИ ПРИМЕНЕНИЯ мы слышим "Давайте сделаем аналогию с интегралами d-шо-то-там" или "Ой, я обиделся, я непонятый гений".
Ближайшая аналогия интегратора - это сливной бачок унитаза. Потому что он давление воды по времени интегрирует. Типа dP/dt. И что дальше?
И как мы должны понять, что такое 4х логика и зачем она нужна? Из "ться", из обидок, из примера ворот, где логики не было?
Какие у логики структуры данных? Какова базовая африметика? Как работают логические элементы?
Я даже давал намёк: ведь МОЖНО БЫЛО БЫ прям на базе ПРки накатать Макросы (FB, Function Block), которые получали бы переменную числового типа (например, 0, -1, +1, 100) и реализовывали бы все функции 4х логики. И ещё два FB преобразования сигналов из 2х в 4х.
Но примеров и концептов не было! Наверное я за миллиона два смог бы разработать такие FBшки. Заплатил бы 50% Артёму Кашканову (про него вообще СТЫДНО НЕ ЗНАТЬ - вообще, такое надо было ему предлагать сначала) и разработал бы...

Geenerator
21.04.2025, 16:48
И правильно перевели. Потому что нас не обманешь!
Вот конкретные претензии (я имею право так говорить, потому что когда я что-то изобретаю - я пишу на своём сайте статью и показываю в ней то, как изобретение работает и где я его применяю):
1. На твоём сайте часть разделов (про возможности системы) вообще пустая.
2. Ты говорил, что деньги уже получены, и коммерческой тайны нет. Но тогда ГДЕ описание концептов и методики применения?
3. Где описание 4хичной математики-то? Всех этих AND, OR, NOT, XOR - самых базовых логических элементов любой логики.
4. Где практические примеры применения? Мы их не видели даже на примере даже твоего собственного продукта.


Я не понимаю в чём обман ???

Есть двоичная логика у которой два состояния 1 и 0 (истина и ложь). Данную логику можно отнести к логике СОБЫТИЙ, событие произошло - ИСТИНА, не произошло - ЛОЖЬ. Данную логику можно закодировать одним битом, т.е. элементом памяти из двух состояний
Если повысить разрядность логики и перейти на четырёхзначную логику, то и свойства данной логики так же поменяются. Данная логика будет уже описывать ДВИЖЕНИЕ и иметь четыре состояния и кодируется двумя элементами памяти из двух состояний.
00 - НЕТ движения
01 - движение в положительном направлении X+
10 - движение в отрицательном направлении X-
11 - движения НЕ МОЖЕТ БЫТЬ (авария)

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

Пока я не вижу понимания самого факта существования четырёхзначной логики, а вы уже хотите писать FB. Пока это действительно ТРЁП ...

Cs-Cs
21.04.2025, 16:59
Я НЕ понимаю, как 4х логика будет делаться в OwenLogiс.
Вот сейчас как: взял AND/OR/NOT/XOR, соединил линиями - и получил искомое.
В этом случае линия - это двоичная логика. Она или 0 или 1.
Так вот как на OwenLogic нарисовать некие блоки и так же соединить их линиями (одна линия = один вход или выход блока), чтобы там была 4х логика?

Я и хочу этот пример. Чтобы были все эти базовые операции для 4х логики, и чтобы на них можно было сделать, скажем, четриггер (триггер с 4 состояниями).

Geenerator
21.04.2025, 17:39
Я НЕ понимаю, как 4х логика будет делаться в OwenLogiс.
Вот сейчас как: взял AND/OR/NOT/XOR, соединил линиями - и получил искомое.
В этом случае линия - это двоичная логика. Она или 0 или 1.
Так вот как на OwenLogic нарисовать некие блоки и так же соединить их линиями (одна линия = один вход или выход блока), чтобы там была 4х логика?

Я и хочу этот пример. Чтобы были все эти базовые операции для 4х логики, и чтобы на них можно было сделать, скажем, четриггер (триггер с 4 состояниями).

Спешить точно никуда не нужно.

Меня попросили показать пример использования четырёхзначной логики для решения задачи открытия/закрытия ворот.

Я создал УЧЕБНУЮ конфигурацию, в которой по нажатию кнопки ОТКРЫТЬ - ворота открываются, по нажатию кнопки ЗАКРЫТЬ - ворота закрываются, по нажатию кнопки СТОП или срабатыванию датчика препятствия ворота останавливаются.
На основе логики "событий" я выделил четыре состояния четырёхзначной логики "движения"
1. Ворота не открываются и не закрываются (СТОП)
2. Ворота открываются
3. Ворота закрываются
4. Авария, одновременно открытие и закрытие

Данные четырёхзначные логические значения можно рассматривать как "события" и выводить на лампочку или в любые другие логические цепочки. В этом есть понимание или снова оман?

melky
21.04.2025, 17:48
Cs-Cs все просто. Эта линия будет int (красненькая), в которой будут цифры от 0, до 3 и больше этих циферок никогда не будет.. Добавите еще бит - какая получится логика там по названию? макс цифра будет 7 ну и т.д.

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

1exan
21.04.2025, 18:32
В Википедии есть страничка (https://en.wikipedia.org/wiki/Four-valued_logic) про четырехзначную логику (и более общая про многозначную логику тоже есть (https://ru.wikipedia.org/wiki/Многозначная_логика)), на которой есть такая фраза:

...Не следует путать четырехзначную математическую логику (использующую операторы, таблицы истинности, силлогизмы, логическое исчисление, теоремы и т.д.) с [протоколами связи], построенными с использованием двоичной логики и отображающими ответы с четырьмя возможными состояниями, реализованными с помощью значений типа Boolean...

Вот здесь тоже похоже случай такой путаницы

Cs-Cs
21.04.2025, 19:18
четырёхзначные логические значенияВот это и ОБМАН. На примере я НЕ вижу ОДНОЙ линии связи и ОДНОГО значения, которе имеет 4 варианта.
Я вижу ДВА ДВУХЗНАЧНЫХ. А это - не 4хлогика. Это две булевы логики. И в программе ПРки использоваы стандартные булевы компоненты. А не 4х компоненты, которые надо было с нуля создать.
Я же не зря упоминаю, что здесь пахнет Артёмом Кашкановым. И НИКТО на это не отреагировал. А между тем чувак разрабатывает свои процессоры и компьютеры, и обозревает разные устройства. Вплоть до ВОЗДУШНОЙ логики (пневмоники) - где логические элементы И, ИЛИ, НЕ построены на базе пластиковых панелек, в которых давление дующего воздуха открывает или закрывает разные выходы. В общем, построенные на законе Бернулли.
Ссылку на такую ДИЧЬ оставлю для тех, кому интересно, если видео ещё не удалили (у меня скачано): https://www.youtube.com/watch?v=nqAuyOA64bA
...с 8:46 и далее Артём показывает PID-регулятор на 8 каналов на пневматической логике. Из логических элементов. Которые работают на воздухе.
Поэтому, если говорить о 4х логике - то (я ещё раз подсказываю) нужно создать в ПРке Макросы, которые на входе и выходе принимали бы целочисленные переменные (чтобы их можно было соединять ОДНОЙ линией связи), скажем, -1, 0, 1, 2, и внутри реализовали бы логические операции над ними.
Вот тогда это была бы 4х логика, в качестве памяти использущая 32-битную.

melky Я ему это третий раз говорю. Но он упёрт. Даже про Артёма Кашканова не знает ни фига =)

Geenerator
21.04.2025, 22:53
Вот это и ОБМАН. На примере я НЕ вижу ОДНОЙ линии связи и ОДНОГО значения, которе имеет 4 варианта.
Я вижу ДВА ДВУХЗНАЧНЫХ. А это - не 4хлогика. Это две булевы логики. И в программе ПРки использоваы стандартные булевы компоненты. А не 4х компоненты, которые надо было с нуля создать.
Я же не зря упоминаю, что здесь пахнет Артёмом Кашкановым. И НИКТО на это не отреагировал. А между тем чувак разрабатывает свои процессоры и компьютеры, и обозревает разные устройства. Вплоть до ВОЗДУШНОЙ логики (пневмоники) - где логические элементы И, ИЛИ, НЕ построены на базе пластиковых панелек, в которых давление дующего воздуха открывает или закрывает разные выходы. В общем, построенные на законе Бернулли.
Ссылку на такую ДИЧЬ оставлю для тех, кому интересно, если видео ещё не удалили (у меня скачано): https://www.youtube.com/watch?v=nqAuyOA64bA
...с 8:46 и далее Артём показывает PID-регулятор на 8 каналов на пневматической логике. Из логических элементов. Которые работают на воздухе.
Поэтому, если говорить о 4х логике - то (я ещё раз подсказываю) нужно создать в ПРке Макросы, которые на входе и выходе принимали бы целочисленные переменные (чтобы их можно было соединять ОДНОЙ линией связи), скажем, -1, 0, 1, 2, и внутри реализовали бы логические операции над ними.
Вот тогда это была бы 4х логика, в качестве памяти использущая 32-битную.


Вижу готовность к следующему шагу, если предыдущие объяснения кажутся тривиальными.

Четырёхзначная логика структурно состоит из двухзначной и трёхзначной логических систем, по этому может участвовать как в двоичных операциях, так и в троичных.
Состояние 00 - СТОП по сути является сигналом "готов", а состояние 11 - авария является сигналом "не готов" и относится к характеристикам двоичной логики
Состояния 01 00 10 это трёхзначная логика +1 0 -1
Без понимания данного вопроса дальнейшие рассуждения будут затруднительными.

Я ознакомился с разработками Артёма Кашканова, безусловно у него интересные темы, которые близки к тому что я сейчас рассказываю. Он использует потоки воздуха в специальных конструкциях для создания логических элементов. То есть использует "движение" воздуха.

Емельянов Кирилл
22.04.2025, 02:21
Geenerator, дайте определение термина "логика"

Geenerator
22.04.2025, 08:26
Geenerator, дайте определение термина "логика"

Кирилл, вы видели раздел форума в котором находиться данная тема ???

Главная -> Форум-> Разное -> Трёп (Курилка)

Здесь ТРЁПОМ занимаются и определений никаких не дают. За определениями вам в другие ветки форума :p

melky
22.04.2025, 09:17
Geenerator о, уже съезжать начали :) а по факту вам правильно сказали, нужны FB встроенные в firmware прошивки пробора для такой работы и новая линия связи, например зелененькая :) где одна линия сразу будет нести в себе 2 бита информации. Все остальное от лукавого, что реализовано повсеместно в принципе. Ну в рамках определения ошибок я такое встречаю часто в разных приборах.

Geenerator
22.04.2025, 09:59
Geenerator о, уже съезжать начали :) а по факту вам правильно сказали, нужны FB встроенные в firmware прошивки пробора для такой работы и новая линия связи, например зелененькая :) где одна линия сразу будет нести в себе 2 бита информации. Все остальное от лукавого, что реализовано повсеместно в принципе. Ну в рамках определения ошибок я такое встречаю часто в разных приборах.

melky, я уже несколько раз пытался объяснить, попробую ещё раз. Есть логика "напряжения" - это двоичная логика, подали напряжение - реле сработало, сняли напряжение - отключилось. Следующий тип логики "токовая", это троичная логика, ток (воздух) движется в положительном направлении, ток движется в отрицательном направлении, ток не движется.

Теперь внимание, реле замкнулось и по замкнутым контактам может протекать ток.
Таким образом, четырёхзначная логика - это взаимодействие двоичной и троичной логик, тока и напряжения числа 2 и числа 3. "Движение" приводит к "событиям", события приводят к движению.
Этот вопрос понятен ???

melky
22.04.2025, 10:03
Geenerator давайте по другому. Вам дали двоичную логику, на базе которой вы можете построить хоть черта лысого, а не только 4-ричную.
А теперь представьте, у вас нет двоичной логики ВООБЩЕ... Так что производители железа в свое время пришли к тому, что база должна быть всегда. Что вы на ней будете создавать - ваше с...обственное дело. :)
хоть двадцатиричную придумайте.

МихаилГл
22.04.2025, 10:05
Это что за логика такая, "напряжение"... Есть реле с катушкой, реагирующей на -, 0 и +...

Сергей0308
22.04.2025, 11:09
Мне кажется, надо для начала с терминами определится, чтобы хотя бы приблизительно понимать о чём речь, в смысле, мне кажется(для понимания) надо логику называть четверичной, а четырёхзначной это не правильно и что самое главное непонятно для большинства людей!
Если с этим хотя бы разберёмся, станет намного понятней, мне так кажется!

https://klausnick.livejournal.com/1990006.html

https://vk.com/@arma_vir_market_moskva-osnovy-chetverichnoi-logiki-gl4-i-realizaciya-ventilei-dlya

http://phg.su/basis2/X20.HTM

Geenerator
22.04.2025, 11:12
Geenerator давайте по другому. Вам дали двоичную логику, на базе которой вы можете построить хоть черта лысого, а не только 4-ричную.
А теперь представьте, у вас нет двоичной логики ВООБЩЕ... Так что производители железа в свое время пришли к тому, что база должна быть всегда. Что вы на ней будете создавать - ваше с...обственное дело. :)
хоть двадцатиричную придумайте.

melky, а вы смелый человек!!! Давайте пойдём дальше... Снова обращаемся к физике, есть координата X, изменение координаты во времени есть скорость или "движение" - это четырёхзначная логика. Теперь повышаем разрядность, изменение скорости по времени есть ускорение и это уже восьмизначная логика

Китайцы в этом вопросе пытались разобраться, но в основе всего двоичная логика
https://sun9-44.userapi.com/impg/Eeua-BDknu5kzGvqE4jAyql8rWjk7jtOSfoVBA/-O2QEwLBW34.jpg?size=604x453&quality=95&sign=f26655b158a1d543d0a2a6be249952fa&type=album

melky
22.04.2025, 11:19
Китайцы в этом вопросе пытались разобраться, но в основе всего двоичная логика Умные люди были, не чета вам, изобретающим велосипед.

Geenerator
22.04.2025, 11:53
Мне кажется, надо для начала с терминами определится, чтобы хотя бы приблизительно понимать о чём речь, в смысле, мне кажется(для понимания) надо логику называть четверичной, а четырёхзначной это не правильно и что самое главное непонятно для большинства людей!
Если с этим хотя бы разберёмся, станет намного понятней, мне так кажется!


Сергей0308, согласен, название "четверичная" логика более уместное! Правда в теме уже заявлена четырёхзначная, думаю можно и так и так называть.

Geenerator
22.04.2025, 16:00
Умные люди были, не чета вам, изобретающим велосипед.

У меня есть опыт, когда не подготовленному человеку даёшь информацию и он просто её отвергает.

Основные идеи по схемотехнике четырёхзначной логики я почерпнул из этой книги
А.Б. Кметь Четырёхзначная логика Реализация операций.

В предложенном варианте логические значения передаются числами от 0 до 3, но к этому нужно ещё подойти.

https://publ.lib.ru/ARCHIVES/M/''Massovaya_biblioteka_injenera_''Elektronika''_(s eriya)/%CA%EC%E5%F2%FC%20%C0.%C1._%20%D7%E5%F2%FB%F0%E5%F 5%E7%ED%E0%F7%ED%E0%FF%20%EB%EE%E3%E8%EA%E0.%20%D0 %E5%E0%EB%E8%E7%E0%F6%E8%FF%20%EE%EF%E5%F0%E0%F6%E 8%E9.(1991).pdf

Емельянов Кирилл
23.04.2025, 00:49
Geenerator, непонятно одно, зачем вы льёте воду? Все "четырёхзначные" алгоритмы что вы выше привели, у любого программиста должны быть в подкорке, это же элементарно. Какая цель этого словоблудия?

Валенок
23.04.2025, 08:13
Как зачем льёт? Что бы кто то другой вложил свои деньги/время/ресурсы в неясные перспективы предполагаемые сумрачным гением.
Лучший способ работы с таким предложил Х.Насреддин. Причём простой, двоичный "дай руку/держи руку"

Имхо лучший ответ самый первый, от Николая Сурикова. Есть минимально различимая "ичность" и "скольковлезет-ичность". Почему тут упор в 4 неясно.

Geenerator
23.04.2025, 08:24
Geenerator, непонятно одно, зачем вы льёте воду? Все "четырёхзначные" алгоритмы что вы выше привели, у любого программиста должны быть в подкорке, это же элементарно. Какая цель этого словоблудия?

Кирилл, я вам уже написал один раз
Главная -> Форум-> Разное -> Трёп (Курилка)
Я в данной теме занимаюсь ТРЁПОМ, то есть словоблудием. У словоблудия цель - убить время, своё и других.

В начале темы я всё подробно объяснил, если вам не достаточно приведённых аргументов, то убедить в актуальности темы я не в состоянии.

Cs-Cs
23.04.2025, 11:40
Пример FBшек для 4хзначной логики так и не был предоставлен.
Одни слова. Как у этого... Эльбруса, вот. Каждый раз: "Мы можем лучше, выше, сильнее, но нам надо ещё немного 100500$ вливаний"

Geenerator
23.04.2025, 12:32
Пример FBшек для 4хзначной логики так и не был предоставлен.
Одни слова. Как у этого... Эльбруса, вот. Каждый раз: "Мы можем лучше, выше, сильнее, но нам надо ещё немного 100500$ вливаний"

Cs-Cs, вы следите за темой ?

https://owen.ru/forum/showthread.php?t=41240&p=462422&viewfull=1#post462422

Cs-Cs
23.04.2025, 13:24
Слежу. Но я - практик. ЗАЧЕМ мне старые совкрвые книжки, если я хочу пример реального применения?

Geenerator
23.04.2025, 16:23
Слежу. Но я - практик. ЗАЧЕМ мне старые совкрвые книжки, если я хочу пример реального применения?

Хорошо, можно сделать первый шаг.
Основа любой логики - это элемент памяти

Принимаем логический алфавит четырёхзначной логики {0, 1, 2, 3}

Предлагаю реализовать в OwenLogic Четырёхзначный RS триггер
Таблицы истинности прилагаю

melky
23.04.2025, 16:41
Ну так реализуйте и дайте пощупать :) или за вас еще есть и мороженное жрать ?

Geenerator
23.04.2025, 17:55
Ну так реализуйте и дайте пощупать :) или за вас еще есть и мороженное жрать ?

Похоже общения не получается :confused:

melky
23.04.2025, 17:57
Geenerator то есть вы сделали вброс и хотите, чтобы за вас все намалевали в OwenLogic ? :)
ну знаете ли....

Валенок
23.04.2025, 17:59
.. хотите, чтобы за вас все намалевали в OwenLogic ? ....
Дык же уже

...Что бы кто то другой вложил свои деньги/время/ресурсы .

Geenerator
23.04.2025, 18:03
Geenerator то есть вы сделали вброс и хотите, чтобы за вас все намалевали в OwenLogic ? :)
ну знаете ли....

Блин, такой план провалился. Как же это я так лопухнулся...

Всё, я осознал свою ошибку, пошёл сам писать элементарный FB с двумя входами и одним выходом.

Валенок
23.04.2025, 18:12
Всё, я осознал свою ошибку, пошёл сам писать элементарный FB с двумя входами и одним выходом.
Не. Все за вас метнулись писать его. Будете в жюри принимать работы?
А если он "элементарный" то что он за 5 дён еще не выложен то?

Geenerator
23.04.2025, 18:33
Не. Все за вас метнулись писать его. Будете в жюри принимать работы?
А если он "элементарный" то что он за 5 дён еще не выложен то?

Всё всё, больше такого не повториться!!! Приношу свои извинения что посмел дать учебное задание для закрепления материала.

Валенок
23.04.2025, 18:55
... что посмел дать учебное задание для закрепления материала.
А ничего не попутали? Не готовились родителей вызывать за невыполнение?

Cs-Cs
23.04.2025, 19:55
Ну НАФИГА нам ТЕОРИЯ!
Я же сказал: если это применяется в твоей системе - РАССКАЖИ! ПОКАЖИ ЖИВОЕ применение.
Чтоб мы поняли, ЗОЧЕМ.

Валенок
23.04.2025, 20:45
Ну НАФИГА нам ТЕОРИЯ!.
да и какая? вот это


Основа любой логики - это элемент памяти

?
Уже можно расходится.

Geenerator
23.04.2025, 22:58
Ну НАФИГА нам ТЕОРИЯ!
Я же сказал: если это применяется в твоей системе - РАССКАЖИ! ПОКАЖИ ЖИВОЕ применение.
Чтоб мы поняли, ЗОЧЕМ.

Основная причина, по которой я выкладываю информацию по четырёхзначной логике - это обсуждение данного вопроса. Если нет желания обсуждать - то у меня нет желания выкладывать.
Есть ещё одно наблюдение, если что то досталось на халяву, то оно не цениться, а если человек приложил хоть какие то усилия, то отношение совсем другое

У меня вопрос к Валенок, я от него ни одного толкового сообщения в теме не видел, а понтов как будто диссертацию по логике защитил. Угомоните кто нибудь его

Petrovi4
23.04.2025, 23:54
Есть ещё одно наблюдение, если что то досталось на халяву, то оно не цениться, а если человек приложил хоть какие то усилия, то отношение совсем другое

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


Если нет желания обсуждать - то у меня нет желания выкладывать.
Так было бы за восемь страниц выложено хоть что то, что можно обсуждать, по обсуждали бы. А так, просто треп ни о чем...

Geenerator
24.04.2025, 00:17
Так было бы за восемь страниц выложено хоть что то, что можно обсуждать, по обсуждали бы. А так, просто треп ни о чем...

У меня огромная просьба, если вы не понимаете данную тему, она вам не интересна - проходите мимо.

Я никому ничего не навязываю, найдутся люди которые сочтут эту информацию полезной.

melky
24.04.2025, 06:09
Ну вам уже дали направление, как это сделать "зелёной" линией. Дальше от нас то вы чё хотите?
Внутри. Такого FB все равно будет двоичная логика.
Хотя можно по принципу макроса boolean сделать, который по моей просьбе когда-то AI! сделал. Выкладывал его неоднократно.

Валенок
24.04.2025, 08:27
Есть ещё одно наблюдение, если что то досталось на халяву, то оно не цениться, а если человек приложил хоть какие то усилия, то отношение совсем другое
Ё-маё, тут же хотели всех одарить халявой, "не каждый день мальчикам достается красить забор", да? снизошли и показали краешек сакрального знания а дальше типа сами? А сами тут будете мудрой совой?



Есть ещё одно наблюдение, если что то досталось на халяву..
Есть одно еще одно наблюдение. Даже 2:
1.Если всё достается не на халаву, то понимаешь что если нужно чтоб другие что-то сделали этих других нужно заинтересовывать.
и далее более важно
2.А других взрослых людей заинтересовывать - "ой смотрите какая блестящая лопата, давайте этой лопатой копать мне картошку" - глупо.
Но до п.2 доходят не все, понимаю, поэтому предлагаю вам:
"ой смотрите какая блестящая лопата, смотрите как много/быстро картошки я этой лопатой копаю". Собственно об этом вам, несомненно защитившему диссертацию по логике, говорят в чуть ли в каждом посте. Но видимо сильный отрыв от 2-ичной логики мешает это понять.




У меня вопрос к Валенок, я от него ни одного толкового сообщения в теме не видел,...
Так я вижу какие-то хотелки типа вот вам картиночка, соорудите мне то-то и то-то. Причем уже 2-й заход - началось когда то всё с 3-ичной. На такие "толковые" предложения тут есть специальная тема.


А по поводу ...

... Угомоните кто нибудь его
то немного этодругина

...Я в данной теме занимаюсь ТРЁПОМ, то есть словоблудием. У словоблудия цель - убить время, своё и других..

Валенок
24.04.2025, 08:28
.. найдутся люди которые сочтут эту информацию полезной.
и покрасят мне забор?

Geenerator
24.04.2025, 08:36
Ну вам уже дали направление, как это сделать "зелёной" линией. Дальше от нас то вы чё хотите?
Внутри. Такого FB все равно будет двоичная логика.
Хотя можно по принципу макроса boolean сделать, который по моей просьбе когда-то AI! сделал. Выкладывал его неоднократно.

Дальше я от вас хочу обсуждения предложенной темы, при условии что собеседнику это интересно !!!

Про двоичную логику, повторюсь ещё раз - это основа и она полностью совместима с четырёхзначной. Два двоичных элемента - это один четверичный.

Сергей0308
24.04.2025, 08:59
Существует двоичная система счисления, троичная, четверичная и т. д., в обычной жизни мы используем десятичную, нам так проще и привычней(на пальцах считать), так зачем кто-то будет использовать вместо привычной и понятной ему двоичной логики - четверичную, это мазохизмом попахивает, или ему надо обратится на сайт института имени Сербского, как говорят это их профиль!

Geenerator
24.04.2025, 09:29
Существует двоичная система счисления, троичная, четверичная и т. д., в обычной жизни мы используем десятичную, нам так проще и привычней(на пальцах считать), так зачем кто-то будет использовать вместо привычной и понятной ему двоичной логики - четверичную, это мазохизмом попахивает, или ему надо обратится на сайт института имени Сербского, как говорят это их профиль!

Сергей0308, я уже об этом говорил... Есть два основных принципа построения логики, на основе напряжения (1,0) и на основе тока (+1 0 -1). К двоичной логике мы привыкли и её используем, к троичной логике мы не привыкли, но это так же рабочая система. Четверичная логика является естественным объединением двух логических систем и все наработки двоичной логики могут быть перенесены в четверичную

В логике тока (троичной) есть свои преимущества и их так же нужно использовать.

Cs-Cs
24.04.2025, 09:47
Так ГДЕ выдержка из ДОКУМЕНТАЦИИ на твои же проекты (которые на сайте были) о том, КАК у ВАС используется вся эта логика?
Это же так просто: когда делается проект, на него делается документация. А в документации есть раздел, где описывается обоснование всех применённых решений.
Вот мы все ждём, что из этой документации будет скопирован сюда кусочек текста. И мы сразу поймём пример и смысл.
Пока же нас кормят какой-то мистикой типа "Троичная - это полторы двоичных, четвертичная - две двоичных" или, как всякие инфоцыгане "только купив всё именно у нас вы поймёте, как вам станет круто".
Хотим КОНКРЕТНЫХ примеров (кейсов) ИСПОЛЬЗОВАНИЯ ЧЕТВЕРТИЧНОЙ ЛОГИКИ.

Cs-Cs
24.04.2025, 09:50
Вообще как бы ЭТО ВОТ ЧТО?!
83388
За 4 года логика ПОДРОСЛА?!
Ведь про троичную логику было так же! Вот же тема та старая: https://owen.ru/forum/showthread.php?t=34431

Кстати, вот что было в той теме:

Я пишу докторскую диссертацию по вопросу многозначных логик
Вот я лично в гробу видел все эти диссертации. От них пахнет СССРом в плане того, что это даёт статус, пафос, признание коллег (таких же мутных), но не даёт ПРАКТИКИ и ЖИЗНИ. Видимо, диссертация ещё пишется. В течение 4 лет. За это время мир меняется, появляются новые программы, новые компоненты, новые идеи... а диссертация устареет.

Geenerator
24.04.2025, 10:03
Так ГДЕ выдержка из ДОКУМЕНТАЦИИ на твои же проекты (которые на сайте были) о том, КАК у ВАС используется вся эта логика?
Это же так просто: когда делается проект, на него делается документация. А в документации есть раздел, где описывается обоснование всех применённых решений.


Деловые до безобразия, я вам чего то должен и причём быстро, а ВЫ мне ничего не должны. Какая то не рабочая схема ???
Если хотите - можете дальше хотеть. Предложил сделать простейший пример, ГОВНА полилось рекой.

Я в плотную занимался троичной логикой, паял схемы и т.д. Но она не пошла из за отсутствия технической базы, нет элемента с тремя состояниями памяти. Пришлось провести работу над ошибками, на это ушло какое то время.

melky
24.04.2025, 10:18
Geenerator да мне не интересно. я с подобным сталкиваюсь часто. Например в RapidScada это называется "Перечисление", когда прибор мне присылает "0-3" я могу создать перечисление и она мне будет переводить на русский - Стоп, Пуск, Не может быть, Да ну нафик.
А может присылать и 0-7 и 0-15 Мне это какой логикой называть? при этом это не битовые маски, а именно комбинации битов. Если и в прибор надо отправлять подобное, то отправлю.

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


Предложил сделать простейший пример, ГОВНА полилось рекой.
Измените подход, не предлагайте сделать кучку ГОВНА другим, а сделайте сами. Не в виде пары OR, XOR, AND а в виде действующей программы, основанной на макросах 4-ричной логики. Вот тогда людям будет интересно поковырять программу и сравнить. Найдите тут макрос boolean от AI! это аналог из ПР Zelio. Так вот там настройкой можно добиться включения выхода по различным комбинациям состояния входов. Если менять на обычные OR, AND то вместо 5-ти входового макроса получится изрядная простыня элементов, как вот вы выше пример приводили 2 NOT + AND. Который вроде меняется на XOR + NOT если не ошибаюсь.

Cs-Cs
24.04.2025, 10:21
Разбираю по пунктам. Надеюсь на грамотность. Диссертация же.
1. По твоим словам 4хзначная логика была использована в рабочем проекте.
Я не имел ввиду "Быстра давай сюда эта чтобы была", а имел ввиду другое: если есть проект - то есть и документация. И достаточно её открыть и скопировать несколько абзацев текста.
2. Касательно "должен". Ну, это как всегда и бывает: если предлагают что-то новое, то ожидается то, что про это новое расскажут и покажут.
Ну вот как на выставках: там предлагают новые технологии и сразу показывают их в работе, чтобы их купили или начали применять.
Абстракции без примеров применения не особо интересны.
3. Так это мы предложили сделать простой пример. Чтобы увидеть 4хзначные логические элементы. Не два булевых, а один 4хичный.
4. Касательно "ГОВНА". Тут каждый видит то, что есть в нём самом. С нашей стороны было недоверие, скепсис, злость на тему "Когда же будет пример", но никак не оскорбления или унижения или "ГОВНО". Так что просьба нас тем, что есть внутри тебя, не закидывать. А обидки прорабатывать у психотерапевта.
5. Про троичную логику. Ну вот же ОПЯТЬ: Мы же этого (что ты паял, пробовал и всё остановилось) НЕ знаем!
Для нас это выглядит так: "Пришёл мужик на форум, начал излагать, потом пропал и всё заглохло". Явно в этом не мы виноваты, а тот, кто не сообщил.
6. Однако, хм... мы же про это и говорили и про 3х и 4х логику: что нужно будет создавать базовые элементы с 3 или 4 состояниями памяти.
Получается, что одно это уже перечёркивает все твои аргументы и пользу от логики, если за ЧЕТЫРЕ года проект не пошёл. Или пошёл, но мы про это не знаем.

Вот как-то так.

Geenerator
24.04.2025, 10:40
Geenerator да мне не интересно. я с подобным сталкиваюсь часто. Например в RapidScada это называется "Перечисление", когда прибор мне присылает "0-3" я могу создать перечисление и она мне будет переводить на русский - Стоп, Пуск, Не может быть, Да ну нафик.

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


melky, давайте ещё раз... Есть логика событий, это ДВОИЧНАЯ логика. Событие или произошло (1) или не произошло (0), можно наставить кучу датчиков и обрабатывать их в конфигурации ПР.
Идём дальше, у вас есть металлообрабатывающий станок, где три оси движения и две оси вращения и уже трудно работать с логикой событий, т.к. событий слишком много и я перехожу на логику движения ЧЕТЫРЁХЗНАЧНУЮ, где уже четыре состояния: ось стоит, ось движется в Х+, ось движется в Х-, ось не может двигаться по каким то причинам.

Зачем проц на четверичной логике ??? нет элемента из 4-х состояний, два бита жалко ??

Cs-Cs
24.04.2025, 11:05
Блин. Так вот ты нас подводишь. Ты описываешь State Machine.
А имеешь ввиду логический элемент на 4 состояния.
Я же вот и говорю, что всякие эти диссертации - это пыль в глаза и пафосные слова.

melky
24.04.2025, 11:07
Geenerator упакуйте каждое событие битами в число и вы получите ЛЮБОЕ желаемое. Нахрена козе БАЯН ?


ось стоит, ось движется в Х+, ось движется в Х-, ось не может двигаться по каким то причинам. и вы начинаете добавлять еще и еще свою четверичную хрень, когда это можно разложить в 32 бита на ПР и в одной переменной выдать все, даже причины, скорость движения ДО события и так далее.

Geenerator
24.04.2025, 11:17
Блин. Так вот ты нас подводишь. Ты описываешь State Machine.
А имеешь ввиду логический элемент на 4 состояния.
Я же вот и говорю, что всякие эти диссертации - это пыль в глаза и пафосные слова.

Я то как раз имею ввиду логический элемент, но очень похоже на "машину состояний" - интересная мысль!

Программеры пришли к тем же выводам, только без логики, а просто описывают состояния через события и потом пользуют уже состояния - ну так то да!
https://habr.com/ru/companies/ruvds/articles/346908/



На самом деле, выписать все возможные состояния легче, чем выписать все возможные переходы, так как нам известно, какие состояния нам нужны, или какие состояния у нас есть. Между прочим, в большинстве случаев, состояния описывали бы логику функционирования нашего приложения.

Cs-Cs
24.04.2025, 11:41
Боже! Человек открыл для себя Машину Состояний!

Сергей0308
24.04.2025, 12:09
Так пусть пишет о полезности четверичной логики, а мы, что естественно, будем критиковать, мы же не пишем диссертацию на эту тему, как бы это естественно и нормально, непонятно зачем обижаться?!
И, если уж с троичной логикой не "срослось", в смысле, она оптимальна с точки зрения единицы хранения информации, ещё в советские времена были микросхемы с тремя состояниями на выходе(КМОП микросхемы с высокоимпендансным третьим состоянием), обычно это применялось для расширения:
https://electronics.fandom.com/ru/wiki/%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%B8%D0%B9_%D0%B8% D0%BC%D0%BF%D0%B5%D0%B4%D0%B0%D0%BD%D1%81_(%D1%82% D1%80%D0%B5%D1%82%D1%8C%D0%B5_%D0%BB%D0%BE%D0%B3%D 0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%81%D0 %BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5)
Короче, тогда с четверичной логикой(четыремя логическими состояниями) Вы уж точно пролетаете как фанера над Парижем, извиняюсь за столь точно подходящее определение!

1exan
24.04.2025, 12:52
Я то как раз имею ввиду логический элемент, но очень похоже на "машину состояний" - интересная мысль!

Программеры пришли к тем же выводам, только без логики, а просто описывают состояния через события и потом пользуют уже состояния - ну так то да!
https://habr.com/ru/companies/ruvds/articles/346908/

Почитайте перед тем, как сядете за диссертацию: Автоматное программирование (https://ru.wikipedia.org/wiki/Автоматное_программирование).
И если заинтересует - то у Шалыто А.А. много интересных статей по этой тематике

Geenerator
24.04.2025, 15:33
Боже! Человек открыл для себя Машину Состояний!

Мне просто понравилось, что я нашёл язык, на котором можно донести свои мысли



Текст из статьи
Есть события, которые описывают конкретное состояние. Затем при наступлении условий перехода, система переходит из одного состояния в другое.

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

Я чётко вижу преимущества наличия в проекте строго определённых состояний и переходов между ними. Мне, в ходе работы, всегда хочется сделать мои конфигурации как можно более простыми, а их код — как можно более понятным. Я уверен, что машины состояний — это шаг в правильном направлении. Её практическое использование вполне способно устранить множество ошибок, характерных для других подходов к разработке.


Если вернуться к примеру Закрытия/Открытия ворот.
Выделены состояния системы, определены условия перехода между состояниями.
Допустим есть несколько ворот, которые работают параллельно, в этом случае я могу использовать состояние первых ворот, для определения логики работы вторых ворот.

Другими словами, я предложил выделить четыре базовых состояния системы 00, 01, 10, 11 (0, 1, 2, 3). Определить условия перехода между состояниями и реакцию на входные события.

Валенок
24.04.2025, 15:39
Боже! Человек открыл для себя Машину Состояний!
!!




Выделены четыре состояния системы, определены условия перехода между состояниями..
4?
Уже предложено

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

Николай Суриков
24.04.2025, 16:04
То есть вся Ваша четырехзначна логика строится на том, что вы определили четыре состояния и что ворота едут, не едут, идут и спят.
А если например мне надо автоматизировать супер ворота, которые не только едут вперед и назад, но и еще вверх и вниз плюс еще состояния едут не едут, и все, приехали к шестизначной логике.

А это надо еще одну тему создавать.

Или нет, шесть - это же два раза по три, а значить возврат к троичной логике.

Или нет, шесть - это же три раза по два, а значит возврат к двоичной.

Cs-Cs
24.04.2025, 16:25
А теперь открой для себя FBшки на ПРке и сделай вот что:
* Запихай Автомат в такой FB (условно, управления воротами)
* Сделай для статуса одну выходную переменную типа "Целочисленная"
* И да - твоя мечта (как у группы "Технология", где песня про "Нажми на кнопку, получишь результат") осуществится - будет некий БЛОК, который будет отдавать наружу некое состояние внутреннего автомата.
* Потом перепиши всё это на языке ST с обработкой состояний по CASE, и ты вдруг увидишь, что все состояния Автомата хранятся в одной переменной, которая и есть эта самая ичная-логика.


Я БУДУ, БУДУ, БУДУ, БУДУ сарказмить!
Потому что НАДОЕЛО!!
* Надоели озабоченные выпендрёжники, которые наводят туману так, как будто секретный прибор изобретают
* Надоели неопытные новички, которые даже ТЕРМИН правильно подобрать не могут!
* Надоело то, что порог вхождения в автоматику стал низок, и сюда сваливатся вся шобла без базовых знаний (Автоматное Программирование - это БАЗА, как БУКВАРЬ)
* Надоело то, что из-за того, что Автор не знал базовых азов, он всех запутал, а потом сам же запутался
* Надоели обидки на суровую и циничную правду. Каждый новичок-дурачок, который припёрся в тему с низким порогом вхождения, начинает обижаться и обвинять всех в том, что его умышленно задевают. Да потому что дурь пишт и дурь спрашивают!!!

Валенок
24.04.2025, 16:33
....
............
На лисапеде - я.

Cs-Cs
24.04.2025, 16:41
Валенок Ахаха!! Огонь!

melky
24.04.2025, 17:58
Валенок, просто не дорос ещё до чемодана.
"Напьешься, будешь" (с) :)

Geenerator
24.04.2025, 18:07
А теперь открой для себя FBшки на ПРке и сделай вот что:
* Запихай Автомат в такой FB (условно, управления воротами)
* Сделай для статуса одну выходную переменную типа "Целочисленная"
* И да - твоя мечта (как у группы "Технология", где песня про "Нажми на кнопку, получишь результат") осуществится - будет некий БЛОК, который будет отдавать наружу некое состояние внутреннего автомата.
* Потом перепиши всё это на языке ST с обработкой состояний по CASE, и ты вдруг увидишь, что все состояния Автомата хранятся в одной переменной, которая и есть эта самая ичная-логика.


Поздравляю!!! теперь ты разбираешь в четырёхзначной логике, видишь всё не так уж и сложно. ))) я уже думал никому ни смогу объяснить :o

Только у меня алгоритм логики работы станка слегка побольше. Это только обработка ошибок



; 1 нет готовности ЧПУ
U62K00=I00K00*T4U+U62K00
; 2 нет +24В (провод 01204)
U62K01=/I00A00+U62K01
; 3 нет +24В (провод 01206)
U62K02=/I00A01*T4U+U62K02
; 4 нет +24В (провод 01208)
U62K03=/I00A02*T4U+U62K03
; 5 нет +24В (провод 01210)
U62K04=/I00A03*T4U+U62K04
; 6 нет ~220В (01-Q6)
U62K05=/I00A04*T4U*/U62K01+U62K05
; 7 нет ~380В (01-K1)
U62K06=/I00A05*T4U*/U62K01+U62K06
; 9 нет готовности привода X
U62K08=/I00A11*T4U+U62K08
; 10 нет готовности привода Y
U62K09=/I00A12*T4U+U62K09
; 11 нет готовности привода Z
U62K10=/I00A13*T4U+U62K10
; 12 нет готовности привода B
U62K11=/I00A14*T4U+U62K11
; 13 нет готовности привода T
U62K12=/I00A15*T4U+U62K12
; 14 нет готовности привода S
U62K13=/I00A10*T4U+U62K13
; 16 разорвана аварийная цепь
U62K15=(/I00A06+U62K15)*[W63K3=0]*/U04A00
; 17 нет давления
T12I(50)=/I02A26*/I02A27*U05A16*/U62K16
U62K16=T12U+U62K16
; 18 нет давления в гидросистеме
T13I(15)=(/I02A26+/I02A27)*/T12I*U05A16*/U62K16*/U62K17*/U62K18
U62K17=T13U*/I02A26+U62K17*/U62K16
; 19 нет давления уравновешивания
U62K18=T13U*/I02A27+U62K18*/U62K16
; 20 нет питания двигателя гидростанции
T25I(5)=/I02A24*/U62K19
U62K19=T25U+U62K19
; 25 низкий уровень масла в г/ст
U62K24=(I02A28*T4U+U62K24)*/U30K00
; 26 ошибка реле давления г/с (30-S1) = не отключается контакт
T3I(30)=I02A26*/U05A16*/U62K25*/U30K00
P21=/I02A26
;; U62K25=T3U+U62K25*/P21
; 27 низкий уровень масла в бачке смазки
U62K26=(I03A15+U62K26)*/U30K00
; 28 нет питания двигателя смазки напр-х
T27I(5)=(U05A22*/I03A12+/U05A22*I03A12)*/U62K27*/U30K00
U62K27=T27U+U62K27
; 29 нет питания двигателя СОЖ
T28I(5)=(U05A17*/I01A12+/U05A17*I01A12)*/U62K28*/U30K00
U62K28=T28U+U62K28
; 30 перегрузка лент. транспортёра
;; U62K29=((U05A18+U05A19)*I01A14*/I01A15+U62K29)*/U30K00
; 31 нет питания шнек.транспортёра (33-М1)
T29I(50)=((U05A18+U05A19)*/I01A13+/U05A18*/U05A19*I01A13)*/U62K30*/U30K00
U62K30=T29U+U62K30
; 32 нет питания лент.транспортёра (34-М1)
; T30I(5)=((U05A20+U05A21)*/I01A14+/U05A20*/U05A21*I01A14)*/U62K31*/U30K00
; U62K31=T30U+U62K31
; 33 ошибка привода Х = ошибка * гот-ть
U63K00=I00A19*[W63K3=0]*/U62K08*/U62K15
; 34 ошибка привода Y = ошибка * гот-ть
U63K01=I00A20*[W63K3=0]*/U62K09*/U62K15
; 35 ошибка привода Z = ошибка * гот-ть
U63K02=I00A21*[W63K3=0]*/U62K10*/U62K15
; 36 ошибка привода B = ошибка * гот-ть
U63K03=I00A22*[W63K3=0]*/U62K11*/U62K15
; 37 ошибка привода T = ошибка * гот-ть
U63K04=I00A23*[W63K3=0]*/U62K12*/U62K15
; 40 ошибка сохр-я энергонезав.памяти
U63K07=I00N02+/I00N01*U63K07
; 41 неопр. полож. выдвиж/втяг руки
T14I(60)=/T42U*/T43U*/U63K08*U26K16
U63K08=T14U+U63K08
; 42 неопр.полож. манип.вверх/вниз
T16I(100)=/T40U*/T41U*/U63K09*U26K16
U63K09=T16U+U63K09
; 43 неопр. полож. поворота руки
T15I(50)=/T44U*/T45U*/U63K10*U26K16
U63K10=T15U+U63K10
; 45 неопр. полож. ползуна
T21I(200)=/T54U*/T55U*/U63K12*U26K16*/U30K00
U63K12=T21U+U63K12
; 46 неопред. полож. зацепа 1-го с-с
T22I(50)=/T56U*/T57U*/U63K13*U26K16*/U30K00
U63K13=T22U+U63K13
; 47 неопред. полож. зацепа 2-го с-с
T23I(50)=/T58U*/T59U*/U63K14*U26K16*/U30K00
U63K14=T23U+U63K14
; 48 неопр. полож. заж/разж стола-спутника
T24I(150)=/T52U*/T53U*/U63K15*U26K16*/U30K00
U63K15=T24U+U63K15
; 49 неопр. полож. заж/разж стола
T19I(50)=/T50U*/T51U*U26K16
U63K16=T19U
; 50 неопр. полож. заж/разж инстр.
T17I(65)=/T48U*/T49U*/U63K17*U26K16
U63K17=T17U+U63K17
; 51 неопр. полож. ступеней шп-ля
U63K18=/U04A11*/U04A12*/U68K07*U26K16*/P2
; 57 аварийный упор "X-"
U63K24=I01A00
; 58 аварийный упор "X+"
U63K25=I01A01
; 59 аварийный упор "Y-"
U63K26=I01A02
; 60 аварийный упор "Y+"
U63K27=I01A03
; 61 аварийный упор "Z-"
U63K28=I01A04
; 62 аварийный упор "Z+"
U63K29=I01A05
; 72 манипулятор не выдвинут
U64K07=(U36K04+U36K05+U157K16+U157K19)*/T43U+U64K07
; 73 манипулятор не внизу = ( Т-имп +ПЧ+ПрЧ + М12+М18+М16 + занул.Т ) * /внизу
U64K08=(P14+U36K04+U36K05+P12+P18+P16+I08K30*I08N0 4*I00K07)*U26K16*/T40U+/U158K02*U64K08
; 74 неопр. полож. поворота руки = ( втянуть + вверх + вниз + М12,16,18 ) * /ПЧ * /ПрЧ
U64K09=(U36K01+U36K08+U36K09+P12+P18+P16)*/T44U*/T45U+/U158K02*U64K09
; 75 инстр-т в шпинделе не разжат = /инстр.разжат *(( ручн.выдв. + втянуть + М12+М18+М16 ) * Y в зоне руки + _ )
U64K10=/T48U*((U157K15*U26K09+U36K01+U37K02+U37K17+U38K02) *U28K19+U64K10)
; 76 магазин не в позиции = /в зоне допуска * ( M12 + M18 + вверх + вверху ) * Т занулён
U64K11=/T37U*(U36K08+T41U)*I03N00+/U158K02*U64K11
; 77 шпиндель не соориентирован = ( втянуть + вниз ) * в зоне руки * /ориент.
U64K12=/T9U*((U36K01+U36K09)*U28K19+U64K12)
; 78 манипулятор не втянут = ( М12 + М18 + М16 ) * /втянут
U64K13=/T42U*(P12+P18+P16+[C6W=2]+U64K13)
; 79 манипулятор у шпинделя = /выдвинут * внизу * зона руки * М19
U64K14=/T43U*T40U*U28K19*[W3K0=19H]+U64K14
; 80 манипулятор не зафиксирован = ( выдвинуть + втянуть) * /внизу * /вверху + ( вверх + вниз ) * /втянут * /выдвинут
U64K15=(U36K00+U36K01)*/T40U*/T41U+(U36K08+U36K09)*/T42U*/T43U+U64K15
; 81 в ячейке магазина инструмент = инстр.в маг *((М18 выдв+вверх+втянуть*/втянут)*(/инстр.в руке + T0) + втянуть * /вверху)
U64K16=I02A15*((U37K17+U37K18+U37K19*/I02A09)*(/[W4K0=W1T3]+[W4K0=0])+U36K01*/I02A09*/I02A11)+/I04K17*/U158K02*U64K16
; 82 инструмент в руке у магазина = ( вверх * /выдвинут + М12 ) * инстр.в руке у маг
U64K17=(U36K08*/T43U+P12)*U0T3+/U158K02*U64K17
; 83 в руке у шпинделя инструмент = М16 * в руке у шп-ля
U64K18=P16*U0T2+U64K18
; 84 в шпинделе нет инструмента = /в шп-ле * S>100 * /М19 * /толчок * /проворот * /зажат
U64K19=/U0T1*[W8K1>0H]*/U27K20*/U31K08*/U31K09*/U68K07*T49U+U64K19
; 86 инстр-т не зажат в шпинделе = /зажат * ( ( вверх + вниз ) * зона руки + М16 + СОЖ-имп + М8 )
U64K21=/T49U*( (U36K08+U36K09)*U28K19+P16+U27K06*/U05A17+[W3K0=8H] )+U64K21
; 88 в магазине нет инструмента = / инстр. * М12 вверх + _ * /Т-строб * /особ.Пуск
U64K23=/I02A15*U37K01+/I04K17*/U158K02*U64K23
; 90 ось В не в точке смены = /В0 * ( переместить ползун + разжать с-с ) * /спец.реж. + подхват
U64K25=/U28K24*(U35K08+U35K09+U35K15+[W29K2=3]*I02N10+U64K25)*U26K16*/U30K00
; 91 ось Z не в точке смены = /"Z0" * циклы смены палет
U64K26=/U28K20*([W33K0>7H]+[W33K1>0]+[W33K2>7H]+[W33K3>0]+[W34K0>7H]+[W34K1>0]+[W34K2>7H]+[W34K3>0])+U64K26
; 92 ось X не в точке смены = /( "X0" + "X-1000" ) * ( дв-ние ползуна)
U64K27=/(U28K21+U28K22)*(U35K08+U35K09+[W29K2=3]*I02N10+U64K27)
; 93 оси не занулены = авт.реж * /оси X,Y,Z,B * гот-ть
U64K28=U26K08*/I05K08*/I05K09*/I05K10*/U26K22*U26K16
; 94 СОЖ не выключена = разжать инстр * СОЖ
U64K29=U36K12*U05A17+U64K29
; 97 не разжат стол-спутник = не разжат * ( ручн * (сцепить1 + к станку*расцеплен + сцепить2) + дв.полз*не расцеплен)
U65K00=/T52U*([W29K2=3]*(I02N08+I02N10*(/T57U+/T59U)+I02N14)+(U35K08+U35K09)*(/T57U+/T59U)+U65K00)
; 98 возможно столкновение с-с = (дв-ние ползуна) * ( "X0" * 1сцеплен * /2 на накоп + "X-1000" * 2сцеплен * /1 на накоп )
U65K01=(U35K08+U35K09)*(U28K21*I02A18*/I02A23+U28K22*I02A20*/I02A22)
; 99 стол не зажат = /зажат * зажать с-с
U65K02=/T51U*U35K14+U65K02
; 100 блокировка смены с-с "М60"
U65K03=P51+P52+P53+P54+U65K03*U31K00
; 101 нет 1-го с-с на накопителе = 1C + 2C + ручн
U65K04=/I02A22*(P51+P52+[W29K2=3]*I02N08*T55U+U65K04)
; 102 нет 2-го с-с на накопителе = 1C + 2C + ручн
U65K05=/I02A23*(P51+P52+[W29K2=3]*I02N14+U65K05)
; 103 1-й с-с на накопителе
U65K06=I02A22*P53+U65K06
; 104 2-й с-с на накопителе
U65K07=I02A23*P54+U65K07
; 105 манипулятор в зоне магазина = /внизу * Т-имп
U65K08=/T40U*P14+U65K08
; 106 задан неправильный Т-код
U65K09=[W4K0>30H]
; 108 превышено время вращения "T" = маг-н не в позиции * задание не равно положению * нет запрета на вращение
T32I(200)=/I05K24*/([W4N1=W18K1]*[W4N2=W18K2])*/U10N16*U26K08*U26K16*/U65K11
U65K11=T32U+U65K11
; 110 шпиндель вращается = /v < v_min * /M19 * разжать инстр
U65K13=/I00A28*/U27K20*U36K12+U65K13
; 111 ось Х не занулена = циклы смены с-с
U65K14=/I05K08*([W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K14)*U26K16
; 112 ось Y не занулена = циклы смены инстр-та
U65K15=/I05K09*([W3K0=6H]+[W3K0=12H]+[W3K0=16H]+[W3K0=18H]+U65K15)*U26K16
; 113 ось Z не занулена
U65K16=/I05K10*([W3K0=6]+[W3K0=12H]+[W3K0=16H]+[W3K0=18H]+[W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K16)*U26K16
; 115 ось B не занулена
U65K18=/U26K22*([W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K18)*U26K16
; 118 ось Т не занулена
U65K21=/I03N00*(P94+U36K08+T41U+U65K21)*U26K16
; 137 перегрев масла в г/ст
U66K08=I02A29+U66K08
; 146 ЗП: нет пит.вент. гл.привода (10-Q2) (COMU)
T31I(5)=(U05A23*/I00A25+/U05A23*I00A25)*/U66K17*/U30K00
U66K17=T31U+U66K17
; 147 ЗП: нет смазки шпинделя (запрет подачи - COMU) - не поставили РД
; T33I(200)=/I00A26*U04A15*/U66K18*/U30K00
; U66K18=T33U+U66K18
; 148 ЗП: нет смазки стойки (запрет подачи - COMU)
T34I(250)=U05A09*/U66K19*/U30K00
U66K19=T34U+U66K19*/U157K22
; 149 ЗП: нет смазки стола (запрет подачи - COMU)
T35I(250)=U05A08*/U66K20*/U30K00
U66K20=T35U+U66K20*/U157K22
; 153 ПП: не отключен тормоз Y = /контр.тока * питание тормоза * /ошибка
;; T38I(25)=/I00A08*U05A10*/U66K24
;; нет реле! U66K24=T38U+U66K24
; 155 ПП: "Y" в зоне руки (FOLD) = зона руки * /ориент * ось в движении * /ручн.перемещ.в минус * гот-ть * /SR
U66K26=U28K19*/I00K25*I00K17*/I00K31*/U38K00*U26K16*/U30K00
; 156 ПП: стол-спутник не зажат (FOLD) = /с-с зажат * [запрос дв-ния XYZB] * c-c на столе * /SR
U66K27=/T53U*[W0K2>0]*(U0T4+U0T6)*/U30K00
; 157 ПП: стол не зажат (FOLD) = /зажат * ( дв-ние XYZ )
U66K28=/T51U*(I00K16+I00K17+I00K18)*/U32K30*/U30K00
; 158 ПП: сбой пам. инстр. в шп-ле = инстр.зажат * ( в шп-ле * T=0 + /в шп-ле * Т>0 + Т>30 ) * авт.реж. * гот-ть
U66K29=T49U*(U0T1*[W1T1=0]+/U0T1*[W1T1>0]+[W1T1>30H])*U26K08*U26K16+U66K29
; 159 ПП: сбой пам. инстр. у шп-ля = ( у шп. * Т2=0 + /у шп. * T2>0 + Т2>30 ) * авт.реж * гот-ть
U66K30=(U0T2*[W1T2=0]+/U0T2*[W1T2>0]+[W1T2>30H])*U26K08*U26K16+U66K30
; 160 ПП: сбой пам. инстр. у маг-на = ( у маг. * Т3=0 + /у маг. * T3>0 + Т3>30 ) * авт.реж * гот-ть
U66K31=(U0T3*[W1T3=0]+/U0T3*[W1T3>0]+[W1T3>30H])*U26K08*U26K16+U66K31
; 161 ПП: шпиндель не вращается (запрет подачи N=0 или N/=Nзад) (FOLD)
; v<v_min * ( G1-G3 + G81-G89 ) * (запрос дв-я XYZ) * / ( M11 + М32) * гот-ть
U67K00=I00A28*(I05K01+I05K04+I05K05+I05K06+I05K07) *(I00K16+I00K17+I00K18)*/(U36K14+U26K20)*U26K16
; 162 ПП: скорость S ниже заданной (запрет подачи N=0 или N/=Nзад) (FOLD)
; /v=v_зад * ( G1-G3 + G81-G89 ) * (запрос дв-я XYZ) * / ( M11 + М32) * гот-ть
T39I(10)=I00A29*/I04K16

Cs-Cs
24.04.2025, 18:18
И СКОЛЬКОЗНАЧАНАЯ ТУТ ЛОГИКА?
И где туут Автомат Состояний?

Валенок
24.04.2025, 18:40
CS-CS! Вас поздравил со сдачей пишущий/написавший диссертацию по 4-ичной логике, не до конца, правда, разобравшись в 2-ичной, но это не важно.
Главное - не смотрите в какой то свой проект, где есть ENUM из 11-ти состояний, чтобы внезапно не осознать весь ужос нахождения в логове 11-ричной логики.
Но судя по скорости инфляции с 3-ичной логики до 4-ичной за 5 лет, время для подготовки много

Валенок
24.04.2025, 18:50
Валенок, просто не дорос ещё до чемодана.
"Напьешься, будешь" (с) :)
Который без ручки?
Пошел за пивом)

Geenerator
24.04.2025, 21:58
Обращаюсь к участникам темы повторно, если вы считаете что тема бесполезная, не интересная и всё тут понятно - проходите мимо
Не тратьте своё время на всякую ерунду!!!

melky
24.04.2025, 22:41
Диссертация не складывается, да? :)
Кто тут мямлил, что это трёп и отнять время у других? Так почему и ваше время не отнять? :)

Geenerator
24.04.2025, 23:12
Диссертация не складывается, да? :)
Кто тут мямлил, что это трёп и отнять время у других? Так почему и ваше время не отнять? :)

melky, не беспокойтесь, диссертацию я защитил!

Я готов обсуждать предложенную тему, но я не вижу такого желания с вашей стороны. Только пошло рассуждение в нужное русло, у человека "крышу" сдуло от того что понял 2+2=4

Валенок
24.04.2025, 23:49
..
Я обнаружил еще size 7

рекомендую



у человека "крышу" сдуло от того что понял 2+2=4
Тут все рады что Вы поняли что 2+2=4

Geenerator
25.04.2025, 00:01
5. На Форуме запрещено.

5.9. Оскорблять других участников форума.

6. Общение с Администрацией Форума

6.2. По вопросам деятельности отдельных модераторов участник должен обратиться к Администраторам сайта посредством личного сообщения. Обращение должно содержать доказательства нарушения Модератором Данных Правил или Здравого Смысла. Аргументированные претензии Участников Форума могут стать причиной разбирательства деятелности Модераторов и Администраторов;

Валенок, я уже сообщил модератору о вашем не корректном поведении в теме.

Валенок
25.04.2025, 00:06
.. Это только обработка ошибок

; 1 нет готовности ЧПУ
U62K00=I00K00*T4U+U62K00
; 2 нет +24В (провод 01204)
U62K01=/I00A00+U62K01
; 3 нет +24В (провод 01206)
U62K02=/I00A01*T4U+U62K02
; 4 нет +24В (провод 01208)
U62K03=/I00A02*T4U+U62K03
; 5 нет +24В (провод 01210)
U62K04=/I00A03*T4U+U62K04
; 6 нет ~220В (01-Q6)
U62K05=/I00A04*T4U*/U62K01+U62K05
; 7 нет ~380В (01-K1)
U62K06=/I00A05*T4U*/U62K01+U62K06
; 9 нет готовности привода X
U62K08=/I00A11*T4U+U62K08
; 10 нет готовности привода Y
U62K09=/I00A12*T4U+U62K09
; 11 нет готовности привода Z
U62K10=/I00A13*T4U+U62K10
; 12 нет готовности привода B
U62K11=/I00A14*T4U+U62K11
; 13 нет готовности привода T
U62K12=/I00A15*T4U+U62K12
; 14 нет готовности привода S
U62K13=/I00A10*T4U+U62K13
; 16 разорвана аварийная цепь
U62K15=(/I00A06+U62K15)*[W63K3=0]*/U04A00
; 17 нет давления
T12I(50)=/I02A26*/I02A27*U05A16*/U62K16
U62K16=T12U+U62K16
; 18 нет давления в гидросистеме
T13I(15)=(/I02A26+/I02A27)*/T12I*U05A16*/U62K16*/U62K17*/U62K18
U62K17=T13U*/I02A26+U62K17*/U62K16
; 19 нет давления уравновешивания
U62K18=T13U*/I02A27+U62K18*/U62K16
; 20 нет питания двигателя гидростанции
T25I(5)=/I02A24*/U62K19
U62K19=T25U+U62K19
; 25 низкий уровень масла в г/ст
U62K24=(I02A28*T4U+U62K24)*/U30K00
; 26 ошибка реле давления г/с (30-S1) = не отключается контакт
T3I(30)=I02A26*/U05A16*/U62K25*/U30K00
P21=/I02A26
;; U62K25=T3U+U62K25*/P21
; 27 низкий уровень масла в бачке смазки
U62K26=(I03A15+U62K26)*/U30K00
; 28 нет питания двигателя смазки напр-х
T27I(5)=(U05A22*/I03A12+/U05A22*I03A12)*/U62K27*/U30K00
U62K27=T27U+U62K27
; 29 нет питания двигателя СОЖ
T28I(5)=(U05A17*/I01A12+/U05A17*I01A12)*/U62K28*/U30K00
U62K28=T28U+U62K28
; 30 перегрузка лент. транспортёра
;; U62K29=((U05A18+U05A19)*I01A14*/I01A15+U62K29)*/U30K00
; 31 нет питания шнек.транспортёра (33-М1)
T29I(50)=((U05A18+U05A19)*/I01A13+/U05A18*/U05A19*I01A13)*/U62K30*/U30K00
U62K30=T29U+U62K30
; 32 нет питания лент.транспортёра (34-М1)
; T30I(5)=((U05A20+U05A21)*/I01A14+/U05A20*/U05A21*I01A14)*/U62K31*/U30K00
; U62K31=T30U+U62K31
; 33 ошибка привода Х = ошибка * гот-ть
U63K00=I00A19*[W63K3=0]*/U62K08*/U62K15
; 34 ошибка привода Y = ошибка * гот-ть
U63K01=I00A20*[W63K3=0]*/U62K09*/U62K15
; 35 ошибка привода Z = ошибка * гот-ть
U63K02=I00A21*[W63K3=0]*/U62K10*/U62K15
; 36 ошибка привода B = ошибка * гот-ть
U63K03=I00A22*[W63K3=0]*/U62K11*/U62K15
; 37 ошибка привода T = ошибка * гот-ть
U63K04=I00A23*[W63K3=0]*/U62K12*/U62K15
; 40 ошибка сохр-я энергонезав.памяти
U63K07=I00N02+/I00N01*U63K07
; 41 неопр. полож. выдвиж/втяг руки
T14I(60)=/T42U*/T43U*/U63K08*U26K16
U63K08=T14U+U63K08
; 42 неопр.полож. манип.вверх/вниз
T16I(100)=/T40U*/T41U*/U63K09*U26K16
U63K09=T16U+U63K09
; 43 неопр. полож. поворота руки
T15I(50)=/T44U*/T45U*/U63K10*U26K16
U63K10=T15U+U63K10
; 45 неопр. полож. ползуна
T21I(200)=/T54U*/T55U*/U63K12*U26K16*/U30K00
U63K12=T21U+U63K12
; 46 неопред. полож. зацепа 1-го с-с
T22I(50)=/T56U*/T57U*/U63K13*U26K16*/U30K00
U63K13=T22U+U63K13
; 47 неопред. полож. зацепа 2-го с-с
T23I(50)=/T58U*/T59U*/U63K14*U26K16*/U30K00
U63K14=T23U+U63K14
; 48 неопр. полож. заж/разж стола-спутника
T24I(150)=/T52U*/T53U*/U63K15*U26K16*/U30K00
U63K15=T24U+U63K15
; 49 неопр. полож. заж/разж стола
T19I(50)=/T50U*/T51U*U26K16
U63K16=T19U
; 50 неопр. полож. заж/разж инстр.
T17I(65)=/T48U*/T49U*/U63K17*U26K16
U63K17=T17U+U63K17
; 51 неопр. полож. ступеней шп-ля
U63K18=/U04A11*/U04A12*/U68K07*U26K16*/P2
; 57 аварийный упор "X-"
U63K24=I01A00
; 58 аварийный упор "X+"
U63K25=I01A01
; 59 аварийный упор "Y-"
U63K26=I01A02
; 60 аварийный упор "Y+"
U63K27=I01A03
; 61 аварийный упор "Z-"
U63K28=I01A04
; 62 аварийный упор "Z+"
U63K29=I01A05
; 72 манипулятор не выдвинут
U64K07=(U36K04+U36K05+U157K16+U157K19)*/T43U+U64K07
; 73 манипулятор не внизу = ( Т-имп +ПЧ+ПрЧ + М12+М18+М16 + занул.Т ) * /внизу
U64K08=(P14+U36K04+U36K05+P12+P18+P16+I08K30*I08N0 4*I00K07)*U26K16*/T40U+/U158K02*U64K08
; 74 неопр. полож. поворота руки = ( втянуть + вверх + вниз + М12,16,18 ) * /ПЧ * /ПрЧ
U64K09=(U36K01+U36K08+U36K09+P12+P18+P16)*/T44U*/T45U+/U158K02*U64K09
; 75 инстр-т в шпинделе не разжат = /инстр.разжат *(( ручн.выдв. + втянуть + М12+М18+М16 ) * Y в зоне руки + _ )
U64K10=/T48U*((U157K15*U26K09+U36K01+U37K02+U37K17+U38K02) *U28K19+U64K10)
; 76 магазин не в позиции = /в зоне допуска * ( M12 + M18 + вверх + вверху ) * Т занулён
U64K11=/T37U*(U36K08+T41U)*I03N00+/U158K02*U64K11
; 77 шпиндель не соориентирован = ( втянуть + вниз ) * в зоне руки * /ориент.
U64K12=/T9U*((U36K01+U36K09)*U28K19+U64K12)
; 78 манипулятор не втянут = ( М12 + М18 + М16 ) * /втянут
U64K13=/T42U*(P12+P18+P16+[C6W=2]+U64K13)
; 79 манипулятор у шпинделя = /выдвинут * внизу * зона руки * М19
U64K14=/T43U*T40U*U28K19*[W3K0=19H]+U64K14
; 80 манипулятор не зафиксирован = ( выдвинуть + втянуть) * /внизу * /вверху + ( вверх + вниз ) * /втянут * /выдвинут
U64K15=(U36K00+U36K01)*/T40U*/T41U+(U36K08+U36K09)*/T42U*/T43U+U64K15
; 81 в ячейке магазина инструмент = инстр.в маг *((М18 выдв+вверх+втянуть*/втянут)*(/инстр.в руке + T0) + втянуть * /вверху)
U64K16=I02A15*((U37K17+U37K18+U37K19*/I02A09)*(/[W4K0=W1T3]+[W4K0=0])+U36K01*/I02A09*/I02A11)+/I04K17*/U158K02*U64K16
; 82 инструмент в руке у магазина = ( вверх * /выдвинут + М12 ) * инстр.в руке у маг
U64K17=(U36K08*/T43U+P12)*U0T3+/U158K02*U64K17
; 83 в руке у шпинделя инструмент = М16 * в руке у шп-ля
U64K18=P16*U0T2+U64K18
; 84 в шпинделе нет инструмента = /в шп-ле * S>100 * /М19 * /толчок * /проворот * /зажат
U64K19=/U0T1*[W8K1>0H]*/U27K20*/U31K08*/U31K09*/U68K07*T49U+U64K19
; 86 инстр-т не зажат в шпинделе = /зажат * ( ( вверх + вниз ) * зона руки + М16 + СОЖ-имп + М8 )
U64K21=/T49U*( (U36K08+U36K09)*U28K19+P16+U27K06*/U05A17+[W3K0=8H] )+U64K21
; 88 в магазине нет инструмента = / инстр. * М12 вверх + _ * /Т-строб * /особ.Пуск
U64K23=/I02A15*U37K01+/I04K17*/U158K02*U64K23
; 90 ось В не в точке смены = /В0 * ( переместить ползун + разжать с-с ) * /спец.реж. + подхват
U64K25=/U28K24*(U35K08+U35K09+U35K15+[W29K2=3]*I02N10+U64K25)*U26K16*/U30K00
; 91 ось Z не в точке смены = /"Z0" * циклы смены палет
U64K26=/U28K20*([W33K0>7H]+[W33K1>0]+[W33K2>7H]+[W33K3>0]+[W34K0>7H]+[W34K1>0]+[W34K2>7H]+[W34K3>0])+U64K26
; 92 ось X не в точке смены = /( "X0" + "X-1000" ) * ( дв-ние ползуна)
U64K27=/(U28K21+U28K22)*(U35K08+U35K09+[W29K2=3]*I02N10+U64K27)
; 93 оси не занулены = авт.реж * /оси X,Y,Z,B * гот-ть
U64K28=U26K08*/I05K08*/I05K09*/I05K10*/U26K22*U26K16
; 94 СОЖ не выключена = разжать инстр * СОЖ
U64K29=U36K12*U05A17+U64K29
; 97 не разжат стол-спутник = не разжат * ( ручн * (сцепить1 + к станку*расцеплен + сцепить2) + дв.полз*не расцеплен)
U65K00=/T52U*([W29K2=3]*(I02N08+I02N10*(/T57U+/T59U)+I02N14)+(U35K08+U35K09)*(/T57U+/T59U)+U65K00)
; 98 возможно столкновение с-с = (дв-ние ползуна) * ( "X0" * 1сцеплен * /2 на накоп + "X-1000" * 2сцеплен * /1 на накоп )
U65K01=(U35K08+U35K09)*(U28K21*I02A18*/I02A23+U28K22*I02A20*/I02A22)
; 99 стол не зажат = /зажат * зажать с-с
U65K02=/T51U*U35K14+U65K02
; 100 блокировка смены с-с "М60"
U65K03=P51+P52+P53+P54+U65K03*U31K00
; 101 нет 1-го с-с на накопителе = 1C + 2C + ручн
U65K04=/I02A22*(P51+P52+[W29K2=3]*I02N08*T55U+U65K04)
; 102 нет 2-го с-с на накопителе = 1C + 2C + ручн
U65K05=/I02A23*(P51+P52+[W29K2=3]*I02N14+U65K05)
; 103 1-й с-с на накопителе
U65K06=I02A22*P53+U65K06
; 104 2-й с-с на накопителе
U65K07=I02A23*P54+U65K07
; 105 манипулятор в зоне магазина = /внизу * Т-имп
U65K08=/T40U*P14+U65K08
; 106 задан неправильный Т-код
U65K09=[W4K0>30H]
; 108 превышено время вращения "T" = маг-н не в позиции * задание не равно положению * нет запрета на вращение
T32I(200)=/I05K24*/([W4N1=W18K1]*[W4N2=W18K2])*/U10N16*U26K08*U26K16*/U65K11
U65K11=T32U+U65K11
; 110 шпиндель вращается = /v < v_min * /M19 * разжать инстр
U65K13=/I00A28*/U27K20*U36K12+U65K13
; 111 ось Х не занулена = циклы смены с-с
U65K14=/I05K08*([W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K14)*U26K16
; 112 ось Y не занулена = циклы смены инстр-та
U65K15=/I05K09*([W3K0=6H]+[W3K0=12H]+[W3K0=16H]+[W3K0=18H]+U65K15)*U26K16
; 113 ось Z не занулена
U65K16=/I05K10*([W3K0=6]+[W3K0=12H]+[W3K0=16H]+[W3K0=18H]+[W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K16)*U26K16
; 115 ось B не занулена
U65K18=/U26K22*([W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K18)*U26K16
; 118 ось Т не занулена
U65K21=/I03N00*(P94+U36K08+T41U+U65K21)*U26K16
; 137 перегрев масла в г/ст
U66K08=I02A29+U66K08
; 146 ЗП: нет пит.вент. гл.привода (10-Q2) (COMU)
T31I(5)=(U05A23*/I00A25+/U05A23*I00A25)*/U66K17*/U30K00
U66K17=T31U+U66K17
; 147 ЗП: нет смазки шпинделя (запрет подачи - COMU) - не поставили РД
; T33I(200)=/I00A26*U04A15*/U66K18*/U30K00
; U66K18=T33U+U66K18
; 148 ЗП: нет смазки стойки (запрет подачи - COMU)
T34I(250)=U05A09*/U66K19*/U30K00
U66K19=T34U+U66K19*/U157K22
; 149 ЗП: нет смазки стола (запрет подачи - COMU)
T35I(250)=U05A08*/U66K20*/U30K00
U66K20=T35U+U66K20*/U157K22
; 153 ПП: не отключен тормоз Y = /контр.тока * питание тормоза * /ошибка
;; T38I(25)=/I00A08*U05A10*/U66K24
;; нет реле! U66K24=T38U+U66K24
; 155 ПП: "Y" в зоне руки (FOLD) = зона руки * /ориент * ось в движении * /ручн.перемещ.в минус * гот-ть * /SR
U66K26=U28K19*/I00K25*I00K17*/I00K31*/U38K00*U26K16*/U30K00
; 156 ПП: стол-спутник не зажат (FOLD) = /с-с зажат * [запрос дв-ния XYZB] * c-c на столе * /SR
U66K27=/T53U*[W0K2>0]*(U0T4+U0T6)*/U30K00
; 157 ПП: стол не зажат (FOLD) = /зажат * ( дв-ние XYZ )
U66K28=/T51U*(I00K16+I00K17+I00K18)*/U32K30*/U30K00
; 158 ПП: сбой пам. инстр. в шп-ле = инстр.зажат * ( в шп-ле * T=0 + /в шп-ле * Т>0 + Т>30 ) * авт.реж. * гот-ть
U66K29=T49U*(U0T1*[W1T1=0]+/U0T1*[W1T1>0]+[W1T1>30H])*U26K08*U26K16+U66K29
; 159 ПП: сбой пам. инстр. у шп-ля = ( у шп. * Т2=0 + /у шп. * T2>0 + Т2>30 ) * авт.реж * гот-ть
U66K30=(U0T2*[W1T2=0]+/U0T2*[W1T2>0]+[W1T2>30H])*U26K08*U26K16+U66K30
; 160 ПП: сбой пам. инстр. у маг-на = ( у маг. * Т3=0 + /у маг. * T3>0 + Т3>30 ) * авт.реж * гот-ть
U66K31=(U0T3*[W1T3=0]+/U0T3*[W1T3>0]+[W1T3>30H])*U26K08*U26K16+U66K31
; 161 ПП: шпиндель не вращается (запрет подачи N=0 или N/=Nзад) (FOLD)
; v<v_min * ( G1-G3 + G81-G89 ) * (запрос дв-я XYZ) * / ( M11 + М32) * гот-ть
U67K00=I00A28*(I05K01+I05K04+I05K05+I05K06+I05K07) *(I00K16+I00K17+I00K18)*/(U36K14+U26K20)*U26K16
; 162 ПП: скорость S ниже заданной (запрет подачи N=0 или N/=Nзад) (FOLD)
; /v=v_зад * ( G1-G3 + G81-G89 ) * (запрос дв-я XYZ) * / ( M11 + М32) * гот-ть
T39I(10)=I00A29*/I04K16



Тут письками меряются? Ну вот. Из текущего


Alarm1.00 := NOT Station.ControlOk.IN;
Alarm1.01 := NOT Station.ControlOk.Q;

Alarm1.02 := NOT Smi2.Connect;
Alarm1.03 := NOT Mu32R_1.Connect;
Alarm1.04 := NOT Mu32R_2.Connect;
Alarm1.05 := NOT Mv16D.Connect;
Alarm1.06 := NOT Mv8A.Connect;
Alarm1.07 := NOT WB.Connect;
(*TCP*)
Alarm1.08 := NOT Satec1.ClientConnect;
Alarm1.09 := NOT Satec2.ClientConnect;
Alarm1.10 := NOT Satec3.ClientConnect;
(*Alarm.11*)

(*технологические аварии*)
Alarm1.12 := AutoSettingWB.Active;
Alarm1.13 := AutoSettingWB.Step = AutoSettingWB.NOT_FOUND;
Alarm1.14 := AutoSettingWB.Step = AutoSettingWB.ERROR;
Alarm1.15 := NOT Mu32R_1.init;
Alarm1.16 := NOT Mu32R_2.init;
Alarm1.17 := NOT Mv8A.init;

Alarm1.18 := NOT Debug.Connect AND NOT _RUN;
Alarm1.19 := SBA; (*SBA,LOCK,авария KK*)

(*Ввод СН*)
Alarm1.20 := NOT FaseOk;
Alarm1.21 := BBodCH.Fase = FASE_ERR;
Alarm1.22 := BBodCH.Fase = FASE_CBA;
Alarm1.23 := BBodCH.LoUL.Q;
Alarm1.24 := BBodCH.HiUL.Q;

Alarm1.25 := NOT QFK1;
Alarm1.26 := NOT QFK2;
Alarm1.27 := NOT QFK3;
Alarm1.28 := NOT KK1;
Alarm1.29 := NOT KKZ;
Alarm1.30 := NOT QFM;
Alarm1.31 := Reset;

(*Alarm2.00..11 резерв под контроль токов нагрузки -ОПРЕДЕЛИТЬ!!!*)

Alarm2.12 := Connect AND Smoke.Alarm;
Alarm2.13 := Smoke.Fire1;
Alarm2.14 := Smoke.Fire2;
Alarm2.15 := Smoke.Step = Smoke.xRESET_AUTO;
Alarm2.16 := Smoke.Step = Smoke.xRESET_MANUAL;
Alarm2.17 := Connect AND Smoke.Alarm AND NOT Smoke.AccessReset;
Alarm2.18 := Station.Cur > 0 AND Smoke.AutoResetTen.IN; (*сбрасыввет*)
Alarm2.19 := Smoke.AutoReset.IN; (*блокирует*)

Alarm2.20 := NOT Door.CloseOk;
Alarm2.21 := Door.LockQMZ;
(*Alarm2.22*)
Alarm2.23 := Connect AND NOT Door.GS1;
Alarm2.24 := Connect AND NOT Door.GS2;
Alarm2.25 := Door.Gate = Door.OPEN;
Alarm2.26 := Door.Gate = Door.UNDEF; (*неясное состояние ворот*)

Alarm2.27 := MG.FixAlarmGe12Ok.Q; (*QFG/GE12/KG1*)
Alarm2.28 := MG.sbPress1;
Alarm2.29 := MG.sbPress2;
Alarm2.30 := NOT MG.Enable;
Alarm2.31 := MG.Manual.Q;

Alarm3.00 := QMZ[1].SelfAlarm;
Alarm3.01 := NOT QMZ[1].QF;
Alarm3.02 := NOT QMZ[1].SelfAlarm AND QMZ[1].QF AND QMZ[1].Lock;
Alarm3.03 := QMZ[1].AlarmBack.Q;
Alarm3.04 := QMZ[1].Mode = QMZ_OFF;
(*Alarm3.05*)

Alarm3.06 := QMZ[2].SelfAlarm;
Alarm3.07 := NOT QMZ[2].QF;
Alarm3.08 := NOT QMZ[2].SelfAlarm AND QMZ[2].QF AND QMZ[2].Lock;
Alarm3.09 := QMZ[2].AlarmBack.Q;
Alarm3.10 := QMZ[2].Mode = QMZ_OFF;
(*Alarm3.11*)

Alarm3.12 := QMZ[3].SelfAlarm;
Alarm3.13 := NOT QMZ[3].QF;
Alarm3.14 := NOT QMZ[3].SelfAlarm AND QMZ[3].QF AND QMZ[3].Lock;
Alarm3.15 := QMZ[3].AlarmBack.Q;
Alarm3.16 := QMZ[3].Mode = QMZ_OFF;
(*Alarm3.17*)

Alarm3.18 := Temperature.Room.Lock;
Alarm3.19 := NOT Temperature.Room.Lock AND Station.Cur > 0 AND Temperature.Room.AutoReset.IN;
Alarm3.20 := Station.Cur = 0 AND Temperature.Room.AutoReset.IN;

Alarm3.21 := Temperature.Room.TE1.Error;
Alarm3.22 := Temperature.Room.TE1.FixCri.Q;
Alarm3.23 := Temperature.Room.TE1.Hi; (*За 5гр до T_Cri*)

Alarm3.24 := Temperature.Room.TE2.Error;
Alarm3.25 := Temperature.Room.TE2.FixCri.Q;
Alarm3.26 := Temperature.Room.TE2.Hi;
(*Alarm3.27..31*)

Alarm4.00 := NOT Fan[1].QFB;
Alarm4.01 := Fan[1].FixAlarmKMB.Q;
Alarm4.02 := Fan[1].CheckAmper.Lock;
Alarm4.03 := Fan[1].CheckAmper.FixLo.Q;
Alarm4.04 := Fan[1].CheckAmper.FixHi.Q;

Alarm4.05 := NOT Fan[2].QFB;
Alarm4.06 := Fan[2].FixAlarmKMB.Q;
Alarm4.07 := Fan[2].CheckAmper.Lock;
Alarm4.08 := Fan[2].CheckAmper.FixLo.Q;
Alarm4.09 := Fan[2].CheckAmper.FixHi.Q;

Alarm4.10 := NOT Fan[3].QFB;
Alarm4.11 := Fan[3].FixAlarmKMB.Q;
Alarm4.12 := Fan[3].CheckAmper.Lock;
Alarm4.13 := Fan[3].CheckAmper.FixLo.Q;
Alarm4.14 := Fan[3].CheckAmper.FixHi.Q;

Alarm4.15 := NOT Fan[4].QFB;
Alarm4.16 := Fan[4].FixAlarmKMB.Q;
(*Alarm4.17..19*)

Alarm4.20 := M4VS.VS.Alarm;
Alarm4.21 := NOT M4VS.QF;
Alarm4.22 := M4VS.VsAi.Pos <= VS_Ai_POS_ALARM;
Alarm4.23 := M4VS.VS.FixAlarmCloseOff;
Alarm4.24 := M4VS.VS.FixAlarmCloseOn;
Alarm4.25 := M4VS.VS.FixAlarmOpenOff;
Alarm4.26 := M4VS.VS.FixAlarmOpenOn;
(*Alarm4.27..31*)

Alarm5.00 := Connect AND NOT Section[1].TK1;
Alarm5.01 := Connect AND NOT Section[1].TK2;
Alarm5.02 := Section[1].Cur > 0 AND Section[1].AutoReset.IN;
Alarm5.03 := Section[1].Cur = 0 AND Section[1].AutoReset.IN;

Alarm5.04 := Connect AND NOT Section[2].TK1;
Alarm5.05 := Connect AND NOT Section[2].TK2;
Alarm5.06 := Section[2].Cur > 0 AND Section[2].AutoReset.IN;
Alarm5.07 := Section[2].Cur = 0 AND Section[2].AutoReset.IN;

Alarm5.08 := Connect AND NOT Section[3].TK1;
Alarm5.09 := Connect AND NOT Section[3].TK2;
Alarm5.10 := Section[3].Cur > 0 AND Section[3].AutoReset.IN;
Alarm5.11 := Section[3].Cur = 0 AND Section[3].AutoReset.IN;

(*Alarm5.12..15*)

(*Предупры !*)
Alarm5.16 := Debug.ignorUser;
Alarm5.17 := Debug.ignorSpecial;
(*Alarm5.18..19*)

Alarm5.20 := Autotest.Active;
Alarm5.21 := Sirena.Q;
Alarm5.22 := M4VS.Heat.Manual.Q;
(*Alarm5.23..31*)

Alarm6.00 := NOT Satec1.Access;
Alarm6.01 := NOT Satec1.ActualData.Q; (*авария*)
Alarm6.02 := Satec1.ActualData.Q AND Satec1.Original.Montage <> Set.Satec.Montage;
Alarm6.03 := QFM AND Satec1.Fase = FASE_ERR;
Alarm6.04 := Satec1.Fase = FASE_CBA;
(*Alarm6.05*)

Alarm6.06 := NOT Satec2.Access;
Alarm6.07 := NOT Satec2.ActualData.Q; (*авария*)
Alarm6.08 := Satec2.ActualData.Q AND Satec2.Original.Montage <> Set.Satec.Montage;
Alarm6.09 := QFM AND Satec2.Fase = FASE_ERR;
Alarm6.10 := Satec2.Fase = FASE_CBA;
(*Alarm6.11*)

Alarm6.12 := NOT Satec3.Access;
Alarm6.13 := NOT Satec3.ActualData.Q; (*авария*)
Alarm6.14 := Satec3.ActualData.Q AND Satec3.Original.Montage <> Set.Satec.Montage;
Alarm6.15 := QFM AND Satec3.Fase = FASE_ERR;
Alarm6.16 := Satec3.Fase = FASE_CBA;
(*Alarm6.17*)
(*Alarm6.18..19*)

Alarm6.22 := Set.Fan.A_x10[1] = NON_A_x10;
Alarm6.23 := Set.Fan.A_x10[2] = NON_A_x10;
Alarm6.24 := Set.Fan.A_x10[3] = NON_A_x10;
(*Alarm6.25*)

Alarm6.26 := (Set.MaskHide[1] AND 16#0003_FFFF) > 0;
Alarm6.27 := (Set.MaskHide[1] AND 16#FFFC_0000) > 0 OR (Set.MaskHide[2] AND 16#0000_000F) > 0;
Alarm6.28 := (Set.MaskHide[2] AND 16#003F_FFF0) > 0;
(*Alarm6.29*)

Alarm6.30 := Panel.btnUp AND Panel.btnDown;
Alarm6.31 := Panel.SelectN1 AND Panel.SelectN3;

(*Alarm7.00..8.31 (*индивидуальные блокировки объектов, в цикле*)
SetIndyLock();



..
Валенок, я уже сообщил модератору о вашем не корректном поведении в теме.
...........................

Валенок
25.04.2025, 00:15
5. На Форуме запрещено.

5.9. Оскорблять других участников форума.
.
А это что? Типа держите меня четверо?)))
Так я никогда не буду оскорблять в ответ. Но с удовольствием бы почитал. Мы, вампиры, этим живем))

melky
25.04.2025, 06:04
Упс. "Держите меня четверо" - да это же четвертичная логика! Эврика! :)

Cs-Cs
25.04.2025, 08:37
"Держите меня четверо"Тогда уж "Четвертуйте" =)

Geenerator
25.04.2025, 08:46
Подведу небольшой итог.

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

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

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


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

In_Da_Cher_A
25.04.2025, 10:16
Подведу небольшой итог.

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

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

Валенок
25.04.2025, 11:51
.. показывая на портрет на стене: - При жизни учёного его труды не оценили должным образом, потому что прочстому человеку трудно понять всю гениальность его теории, предвидевшей будущее"

возможно и
"Узок их круг ... Страшно далеки они от народа" (С) ВИЛ

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

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

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

4.

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

5.

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

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

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

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

".. реализовывать"
А это наиболее интересный вопрос. Он просто сквозит через всю тему. За чей счет банкет?

Geenerator
25.04.2025, 14:47
чтоб выйти из тупика нужно впечатлить окружение некой новизной, давайте спросим у гуру, видит он какие то новаторства

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

0 - Ложь (False)
1 - Истина (True)
2 - Неопределённость (Unknown)
3 - Противоречие (Contradiction)


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

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

И можно собрать RS триггер

Валенок
25.04.2025, 14:55
...пример реализации логической машины состояний с использованием четырёхзначной логики
Но ведь подменены понятия. Это пример банального автомата, а с "использованием четырёхзначной логики" это набор стандартных операторов "четырёхзначной логики".
Ожидаются операторы для 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, 15:00
Следующий шаг, это сделать логические элементы четырёхзначной логики

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

И можно собрать RS триггер

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

Geenerator
25.04.2025, 15:16
Х2n, а не Х1n.
Разьясните эту таблицу, не могу никак понять. N это что?

Согласен, немного напутал. Рисунок исправил.

Geenerator
25.04.2025, 15:24
Вы здесь не нашли понимания, поэтому я намекал общаться с любой нейросетью, хоть от яндекса, они все будут к вам доброжелательны, вот их и простите сделать за вас следующие шаги

Я предпочитаю без нейросетей обходиться )))

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

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

Валенок
25.04.2025, 15:58
... Как понять эту систему?
Дык сама таблица нарисована с ошибкой. Чо уж тут

Точно родителей нужно вызывать.

Geenerator
25.04.2025, 16:09
я аж пивом поперхнулся, ну ка покажите элементарный блок согласно своей таблицы истинности, вас помоему все просили уже показать хоть какую то реализацию, хоть чего нибудь

Горячая пятница, пытался показать таблицу истинности триггера и всё перепутал...

Валенок
25.04.2025, 16:13
Горячая пятница, пытался показать таблицу истинности триггера и всё перепутал...
Вы ж даже во времени путаетесь. Таблицу показали в среду

..

Geenerator
25.04.2025, 16:23
так если трудности с исходными данными, реализацию то когда ждать в таком случае, вас ни кто не тянул за язык говорить что всё элементарно

Страница 91 - можно прочитать самостоятельно.

https://publ.lib.ru/ARCHIVES/M/''Massovaya_biblioteka_injenera_''Elektronika''_(s eriya)/%CA%EC%E5%F2%FC%20%C0.%C1._%20%D7%E5%F2%FB%F0%E5%F 5%E7%ED%E0%F7%ED%E0%FF%20%EB%EE%E3%E8%EA%E0.%20%D0 %E5%E0%EB%E8%E7%E0%F6%E8%FF%20%EE%EF%E5%F0%E0%F6%E 8%E9.(1991).pdf

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

Валенок
25.04.2025, 16:26
Ну а для МихаилГл )) на основании примера от 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 её еще пока не дочитал, поэтому побирается на форуме.


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


--

я аж пивом поперхнулся,
Я Вас по спине постучал. Не благодарите.

Валенок
25.04.2025, 17:14
А если выпадет 3 его инверсия какова?
ну так если под инверсией подразумевается NOT, для оного вытекает же минимум 2 варианта инверсии)) Не тока же унарная
Итоги затянулись.
Автор ушел. Видимо вернулся к 92й странице.

МихаилГл
25.04.2025, 17:32
Дык сама таблица нарисована с ошибкой. Чо уж тут

Точно родителей нужно вызывать.

Я видел оригинал, поэтому не сильно всматривался. Лишь х1 и х1 увидел, остальное мелочь, тем более это был эксель, судя по тени таблицы

Валенок
25.04.2025, 17:43
Я видел оригинал, поэтому не сильно всматривался. Лишь х1 и х1 увидел, остальное мелочь, тем более это был эксель, судя по тени таблицы
ну и ладно

Q := sel(X2 = 0, 3 - X1, min(Q, 3 - X1));

Geenerator
25.04.2025, 23:46
ну вот я сделал с помощью нейросетей и т.п. , когда вы покажете реализацию

Если честно, вы создали столько кипиша из ничего. Перепутал таблицы, с кем не бывает.

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

Завязывайте с вашей нейросетью.

melky
26.04.2025, 09:31
Geenerator интересно, что вы курили, когда делали макрос на сравнении и SEL-е и делении.? притягивали за уши под таблицу ?

Geenerator
26.04.2025, 10:36
я аж пивом поперхнулся, ну ка покажите элементарный блок согласно своей таблицы истинности, вас помоему все просили уже показать хоть какую то реализацию, хоть чего нибудь

так если трудности с исходными данными, реализацию то когда ждать в таком случае, вас ни кто не тянул за язык говорить что всё элементарно

Вы используете очень повелительную интонацию при общении - сначала разберитесь. Я вам несколько раз сказал что всё просто, но вы продолжили требовать.


а чего вы на оскорбления переходите, моих постов до этого было семь штук из 14 страниц или вы признали за собой такое дело
эта не ваша разработка а скрин из книжки за 91 год, что то не видно что это развилось до крупных размеров на сегодня
а нейросетями я начал заниматься как раз в те годы

Четырёхзначная логика - это не моя разработка, я её просто применил в своих проектах для оптимизации кода.

Geenerator
26.04.2025, 10:42
Geenerator интересно, что вы курили, когда делали макрос на сравнении и SEL-е и делении.? притягивали за уши под таблицу ?

melky, но вы то куда...

ИЛИ - это логический максимум
И - это логический минимум

Логический элемент ИЛИ-НЕ, то есть берём максимум и затем побитно инвертируем, то есть можно вычесть из 3-х (11)
11-00 = 11 (3-0=3)
11-01 = 10 (3-1=2)
11-10 = 01 (3-2=1)
11-11 = 00 (3-3=0)

melky
26.04.2025, 10:59
Geenerator я больше с точки зрения совместимости с бинарной логикой.

Cs-Cs
26.04.2025, 11:23
Четырёхзначная логика - это не моя разработка, я её просто применил в своих проектах для оптимизации кода.
Так я же ж и говорю: скопируй нам из документации своего проекта ПРИМЕР ПРИМЕНЕНИЯ.

Geenerator
26.04.2025, 11:40
ну пожалуйтесь модератору, раз остальные перестали вам отвечать, значит их заблокировали, чтоб вам было удобнее тут нести ересь.

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



для тех кто действительно пишет код, логика это не констатация фактов а переход по условию, все ваши идеи о движении к чему они побуждают,ПИД регулятор должен как то по иному себя вести, если он находится в некотором вами придуманном состоянии:

Берём ПИД регулятор и описываем его как логический элемент, то есть выделяем конкретные состояния, которые можем обрабатывать в алгоритме
0- регулятор достиг заданной величины (СТОП)
1 - регулятор открывает задвижку
2- регулятор закрывает задвижку
3 - регулятор не может регулировать, авария

Есть элементарные ПИД регуляторы, а есть трёхконтурные, например для управления серводвигателем, где 1-й контур - ток, 2-й контур - скорость, 3-й положение.


ну т.е. ничего нового, все продолжают работать как и раньше, без вашей темы новой диссертации о некой, почему то четырехзначной, логике

Для программирования на верхнем уровне, как подсказал Cs-Cs, уже пришли к "Машине состояний" - и эффективно её используют развивая эту тему. Понято что можно и без неё!!!

Я пришёл к "логической машине состояний" для оптимизации кода на языке ST, так как алгоритм работы станка с ЧПУ очень большой и по старинке очень муторно.

Валенок
26.04.2025, 12:45
...
Ну и чем тут удивили? Типа вбросили подождали и как фокусник вынули какой-то изящный элемент и все ахнули?
Так не удивили

...
Q := sel(X2 = 0, 3 - X1, min(Q, 3 - X1));
Ой не та таблица?- Так какую положили
83464
про то и написано. А то что так вы же сами и напутали (потом поменяли) - не ко мне.
Да и коли её, другую, откуда-то взяли - то для того другого элемента вам выше и подгон. Как он там называется - без разницы.

И собсно, ну показали - и что? Комплекс - где?
Моя жена любит машину за то что в козырьке есть зеркальце. Но вот ТЭО - предложите переделать машину на без зеркальца, но с расходом 1л и она сама лично вырвет это зеркальце с хренам.

Я вам с банальным автоматом (который для автоматных задач пишется чуть медленнее чтения самих задач причем "ичнось логики" добавляется на ходу) ТЭО привёл. Эмуляция 4-ичной логики на 2-ичной машине банальной адресацией таблицы бьет эти "зеркальца" как бык овцу и по скорости и по компактности базовых элементов. Да и любой элемент набить можно чуть ли не копированием из экселя.
Оно может дать эффект только на 4-ной железной базе. Делайте. За свой счет.




Четырёхзначная логика - это не моя разработка, я её просто применил в своих проектах для оптимизации кода.
Нет проектов в которых нельзя код оптимизировать. Разница только в "-ичности" в каждом конкретном случае.
Но даже оптимальный код не имеет значения. Имеет значение "итого"

Geenerator
26.04.2025, 12:49
Так я же ж и говорю: скопируй нам из документации своего проекта ПРИМЕР ПРИМЕНЕНИЯ.

Cs-Cs, я уже отвечал на этот вопрос...

1. То, что получено на халяву, не ценится
2. Я уже насмотрелся на эти картинки

Geenerator
26.04.2025, 12:55
Что этот такое, неведомый верхний уровень, плк100 таковым является, а то всегда такое использую, а оказывается ещё и на каком то верхнем уровненахожусь, у меня ниже вроде только датчики и модули ввода-вывода

capzap, ПЛК100 - можно отнести к среднему уровню. Верхний уровень - это программы находящиеся на компьютере под операционной системой.

Валенок
26.04.2025, 13:20
1. То, что получено на халяву, не ценится
Точно. Ведь халява это и припрячь других за "бусы"

Geenerator
26.04.2025, 13:47
Ну и чем тут удивили? Типа вбросили подождали и как фокусник вынули какой-то изящный элемент и все ахнули?
Так не удивили

Блин, снова раскусили!


И собсно, ну показали - и что? Комплекс - где?

Есть двоичная логика, которая описывает события 1- произошло, 0-не произошло. Есть логические элементы, триггеры, таймеры.. логические функции И, ИЛИ, НЕ

Есть четырёхзначная логика, которая описывает состояния 0, 1, 2, 3. Так же есть логические элементы триггеры, логические функции И, ИЛИ, НЕ, которые совместимы с двоичной логикой

"События" определяют в каком "состоянии" находится система. "Состояния" так же могут логически взаимодействовать по четырёхзначной логике - этот вопрос понятен ???

Cs-Cs
26.04.2025, 14:15
я уже отвечал на этот вопрос... Не думаю. Я не имею ввиду "Дай всю документацию по проекту".
Я имею ввиду инжинерные выкладки вида "В проекте системы диспетчеризации применена 4хичная логика, всвязи с тем, что каждый объект имеет 4 состояния. Данные состояния описываются перечислением ENUM такого вида, логика обработки сделана так-то. Это позволило упростить написание программы и повысить производительность на хх%".
Если на этой логике был сделан проект, то у него должна быть документация и расчёты. Вот и выдерни нам обоснование применения логики. Не надо весь проект давать.

...или мне попроще выражаться, я не понял?

МихаилГл
26.04.2025, 14:20
capzap, ПЛК100 - можно отнести к среднему уровню. Верхний уровень - это программы находящиеся на компьютере под операционной системой.

Немного промахнулись. В этой системе еще 2 уровня выше scada, это mes, а потом erp.

PS
83470

Geenerator
26.04.2025, 14:45
Не думаю. Я не имею ввиду "Дай всю документацию по проекту".
Я имею ввиду инжинерные выкладки вида "В проекте системы диспетчеризации применена 4хичная логика, всвязи с тем, что каждый объект имеет 4 состояния. Данные состояния описываются перечислением ENUM такого вида, логика обработки сделана так-то. Это позволило упростить написание программы и повысить производительность на хх%".
Если на этой логике был сделан проект, то у него должна быть документация и расчёты. Вот и выдерни нам обоснование применения логики. Не надо весь проект давать.

Cs-Cs, у нас получается примерно следующий разговор

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

Geenerator
26.04.2025, 15:15
получается вы не знаете предмет, машины состояний, посредством CASE, используются уже на среднем уровне, а на верхнем они в целом и не нужны

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

То, что разработан инструмент CASE, это говорит что сделан шаг в направлении "Машины состояний" на среднем уровне, почему бы не продолжить движение в этом направлении ???

Petrovi4
26.04.2025, 15:15
Cs-Cs, у нас получается примерно следующий разговор

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

ЭЭЭЭээээ, не.... тут не эдак, а вот так:

Geenerator: давай посадим картошку, я слышал что можно получить свойскую вкусную картошку!
Cs-Cs: Ты хоть в курсе как ее сажать и что для этого надо? У тебя хоть документы на участок, где сажать собрался есть? Показать их можешь, хоть доверенность рукописную?

Geenerator
26.04.2025, 16:17
ЭЭЭЭээээ, не.... тут не эдак, а вот так:

Geenerator: давай посадим картошку, я слышал что можно получить свойскую вкусную картошку!
Cs-Cs: Ты хоть в курсе как ее сажать и что для этого надо? У тебя хоть документы на участок, где сажать собрался есть? Показать их можешь, хоть доверенность рукописную?

Благодарю, я уже показал пример с воротами

МихаилГл
26.04.2025, 16:50
Благодарю, я уже показал пример с воротами

Ну вообще то вы не показали как это использовать дальше в виде 4хзначной логики. Вы показали как из 2ных условий сделать 4 состояния, при чем так же двоичных.

Николай Суриков
26.04.2025, 17:13
Инструкция CASE впервые появилась в языке программирования ALGOL (ALGOrithmic Language), который был разработан в начале 1960-х годов. ALGOL 60, одна из самых известных версий этого языка, была выпущена в 1960 году и использовала конструкцию CASE, чтобы осуществлять выбор между несколькими вариантами в контроле потока выполнения программы.

Cs-Cs
26.04.2025, 18:02
Мда. Я всего лишь имел ввиду вот ЭТО сообщение на первой странице темы:

С математической реализацией так же вопрос решён, мы использовали четырёхзначную логику в экспертной системе " Диагностика+" - успешно работает. https://transform.ru/diagnostika/
Если эта логика была использована - то почему не скопировать информацию из документации на проект?
Или документации нет, и стыдно в этом признаться?
Не надо аналогий про картошку. Это тупость и уровень гопников. Мы здесь состязаемся в словесности, софистике и прочих высоких дисциплинах, связанных со смыслом и значением слов.
Не надо приписывать мне того, чего я не имел ввиду.
Если переводить на картошку, то я имел ввиду вот что:

Генератор: "Хочу предложить вам обсудить инновационную технология выращивания картошки - ваккумные теплицы! Я её активно придумал и уже реализовал в своём проекте, и заработал на этом денег. Она может подойти и вам всем тоже, но вам надо всё изобрести самому - там нет ничего сложного! Берёте вакуумный насос, трубы из Леруа..."
Цс-Цс: "О! Так раз технология была освоена - покажи нам пожалуйста фотографии самих теплиц, чтобы понимать общий концепт или, если это тайна, - то расчёты выгоды от внедрения, которые у тебя в документации на теплицу должны быть".
Генератор: "Вы требуется невозможного! И издеваетесь ещё! Какие вам фотографии или расчёты? Сами всё делайте! Это просто, а заработаете миллиарды!"
Общественность: "Вау!! Миллиарды! Мы готовы инвестировать, но хотелось бы деталей - можно нам хотя бы выкопировку технико-экономического расчёта"?

Да, я местами управленец и технолог.
Я добиваюсь ХОТЯ БЫ примерно этого:
* Делали проект на булевой логике - экспертную систему "Диагностика+". Потратили 88 000 человеко-часов, провели пять рефакторингов кода, понадобилось 5 рабочих мест программистов (включая налоги, запрплаты, оплату электронергии за компьютеры, вентиляции, кондиционирования). Это встало в 500 000 рублей.
Скорость работы системы была - 8 000 заявок в минуту, объём базы - 300 Gb. Заработали 600 000 рублей, прибыль = 100 000 рублей.
* Перевели проект на 4хичную логику. Сделали один рефакторинг кода, написали свой API, понадобилось 2 программиста, это встало в сумму 200 000 рублей.
Скорость работы системы увеличилась до 32 000 заявок в минуту, объём базы снизился до 90 Gb. Заработали 2 000 000 рублей, прибыль = 1 800 000 рублей.
Вот что я хочу. ХОТЯ БЫ. Это даже не "Покажите, как у вас сделано, дайте весь исходный код".
Это то, без чего все идеи ЛОЖАТСЯ на полку - ПРИМЕНИМОСТЬ

Geenerator
26.04.2025, 19:49
Если переводить на картошку, то я имел ввиду вот что:

Генератор: "Хочу предложить вам обсудить инновационную технология выращивания картошки - ваккумные теплицы! Я её активно придумал и уже реализовал в своём проекте, и заработал на этом денег. Она может подойти и вам всем тоже, но вам надо всё изобрести самому - там нет ничего сложного! Берёте вакуумный насос, трубы из Леруа..."
Цс-Цс: "О! Так раз технология была освоена - покажи нам пожалуйста фотографии самих теплиц, чтобы понимать общий концепт или, если это тайна, - то расчёты выгоды от внедрения, которые у тебя в документации на теплицу должны быть".
Генератор: "Вы требуется невозможного! И издеваетесь ещё! Какие вам фотографии или расчёты? Сами всё делайте! Это просто, а заработаете миллиарды!"
Общественность: "Вау!! Миллиарды! Мы готовы инвестировать, но хотелось бы деталей - можно нам хотя бы выкопировку технико-экономического расчёта"?


Хорошо, буду рекламировать родную систему Диагностика+

Нами был разработан язык представления правил продукционной экспертной системы Z+ и способ представления нечётких знаний в диагностической экспертной системе с помощью коэффициента доверия к значению переменной с использованием четырёхзначной логики. Реализован алгоритм подбора и выполнения правил и способы вычисления коэффициентов доверия к значениям переменных.

На данный момент я решаю немного другую задачу с использованием четырёхзначной логики

Cs-Cs
26.04.2025, 20:34
Ну вот наконец-то есть информация! И вот зачем было крыжиться и 17 страниц темы строить из себя непойми кого?
Тут и PDF почитать интересно, и кое-какие замечания по UI/UX есть.
1. Бросилось в глаза на рисунке 3.1 название кнопки "Отказ" вместо "Отмена" (согласно стандартам разработки приложений по Windows). Случаем, не Cronos Plus'ом вдохновлялись разработчики? Там эта кнопка так и звалась убого.
2. На каком языке написан софт? Опять же ориентируюсь на рисунок 3.1, так как в Visual Basic (старом) в начале текстовых полей не было пустого места, как тут на скриншоте и есть. В современных языках есть мини-оступ текста от края поля (рисуется Windows).
3. Почему нет кнопки выбора папки для базы сразу же? Это стандартная API-функция винды.
4. Дочитал до рисунка 4.1. О, точно Cronos Plus! А написано, кажется, на Delphi старом, да?
5. О, да, рисунок 4.2 - это ж стандартный StringGrid от Delphi!
6. Так. У меня есть реальные придирки к UI/UX! Крайне РЕКОМЕНДУЮ почитать руководство по разработке программ для Windows, где указано СТАНДАРТНОЕ положение кнопок типа "ОК", "Отмена", "Применить" в диалогах.

In_Da_Cher_A
26.04.2025, 21:00
Нами был разработан язык представления правил продукционной экспертной системы Z+ и способ представления нечётких знаний в диагностической экспертной системе с помощью коэффициента доверия к значению переменной с использованием четырёхзначной логики. Реализован алгоритм подбора и выполнения правил и способы вычисления коэффициентов доверия к значениям переменных."а теперь со всем этим мы попробуем взлететь"
83480не взлетает никак
ну вот это - 83481со всем уважением - ну это не для 2025 года, это не продаётся, увы.
Эпоха эксплуатационщиков ушла, диагностика не нужна, сейчас эффективные менегеры тупо страхуют отказы оборудования и это обходится дешевле, чем профилактика и ремонт.

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

Geenerator
26.04.2025, 23:06
Ну вот наконец-то есть информация! И вот зачем было крыжиться и 17 страниц темы строить из себя непойми кого?


Я уже говорил, что критики я хапнул вдоволь.
Сейчас уже версия 7.6 вышла, документация по интерфейсу и настройке так же на сайте есть https://transform.ru/dokumentacija/

Geenerator
26.04.2025, 23:22
"а теперь со всем этим мы попробуем взлететь"
83480не взлетает никак
ну вот это - 83481со всем уважением - ну это не для 2025 года, это не продаётся, увы.
Эпоха эксплуатационщиков ушла, диагностика не нужна, сейчас эффективные менегеры тупо страхуют отказы оборудования и это обходится дешевле, чем профилактика и ремонт.


Диагностика+ пользуется спросом на энергетических предприятиях где есть главные инженеры, которые ответственны за оборудование (трансформаторы и т.д.). В систему заносятся данные по техническому обслуживанию и диагностике, на основе этого строиться прогноз состояния оборудования - если что то крякнет, то виновата система Д+, а не главный инженер - т.к. не предупредила.



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


Я мне кажется уже всю тему исписал в обоснованиях применения четырёхзначной логики. Интерес в данном случае практический, оптимизация кода в сложных задачах.

In_Da_Cher_A
27.04.2025, 08:53
Диагностика+ пользуется спросом на энергетических предприятиях где есть главные инженеры, которые ответственны за оборудование (трансформаторы и т.д.). В систему заносятся данные по техническому обслуживанию и диагностике, на основе этого строиться прогноз состояния оборудования - если что то крякнет, то виновата система Д+, а не главный инженер - т.к. не предупредила."они были страшно далеки от народа"(С)
даже спорить не о чем, с такой базой в голове у людей, увы

Я мне кажется уже всю тему исписал в обоснованиях применения четырёхзначной логики. Интерес в данном случае практический, оптимизация кода в сложных задачах.вы бы лучше исправили код на вашем собственном сайте, ему вот точно нехватает логики
пока что вы походите на городского сумасшедшего с весенним обострением, которому негде поговорить и он забрёл на первый полуживой форум чисто случайно
приплели сюда Пр200, хотя по вашей же формлировке коду должно быть всё равно, где он исполняется
какие "сложные" задачи - начните с формулировки что такое задача, какие критерии сложности, о криетриях оценки кода, почему это он стал "неоптимизированным" и почему его надо "оптимизировать"
и самое главное - зачем оптимизировать, если код исполняется без ошибок?
и финалочка - цена вопроса оптимизации?
зачем вам(тебе) платить за это деньги?

melky
27.04.2025, 09:13
Зато так забавно, после применения 4х логики для оптимизации, возвращаться снова к двоичной. Для сообщения главному инженеру, что его трансформатор скоро наеполомается...
Или так и остаёмся на 4х?
Трансформатор поломается? Да, Нет, Может быть, Но это не точно.

МихаилГл
27.04.2025, 09:35
О, любимое слово одного нашего профессора... Оптимизация... За которое он драл всех как сидоров коз. Говорил: какая нахрен "оптимизация" без критериев, остолопы!

Geenerator
27.04.2025, 11:25
Вот именно, что только вам кажется. Ни чего существенного не написано и не показано. Достичь результата можно и без знания пограничных результатов и о какой оптимизации речь, если появляются ещё два состояния для которых нужен дополнительный код обработки. Понятно почему такое нетерпение к нейросетям, нечеткая логика жешь
Все что описано по главного инженера это учёт, ни какого отношения к управлению исполнительными механизмами контроллерами не имеет

Хорошо, снова попытаюсь объяснить...
Давайте обратимся к металлообрабатывающему станку с ЧПУ при работе которого всё постоянно находиться в движении, причём по нескольким направлениям или осям в 3-х мерном пространстве.
В этом случае использование оси движения как логического элемента становиться актуальным
0- ось стоит
1- ость движется в направлении Х+
2- ость движется в направлении Х-
3- ось не может двигаться, авария

Я на логическом уровне понимаю в каком состоянии находиться конкретная ось движения станка. По этому для меня актуально использование четырёхзначной логики.
Если у вас задачи по проще, то заморачиваться и разбираться во всей это ерунде не стоит - вы ничего не выиграете !!!

https://rutube.ru/video/07475cfe44b8639ae42e55f9e5bf59bd/?t=20&r=plwd

melky
27.04.2025, 11:55
0-й бит = 0 стоит, = 1 движется
1-й бит = 0 - направление в -, = 1 - направление в +
2-й бит = 0 - нет аварий, =1 - авария

Ведь все равно вы минимум в байт будете запихивать биты, к тому же направление имеет смысл только при наличии движения, когда 0-й бит = 1 если разобраться. Хотя и при 0-м = 0 тоже имеет смысл, в каком направлении двигалась ось до момента остановки.
Где тут преимущества 4-х логики в принципе при 3-х то битах ?
Вроде все логические уровни для понимания соблюдены.

опять же для понимания.
00 - стоим
10 - движемся в минус
11 - движемся в плюс
01 - авария
Не важно, какие комбинации двух битов вы там примените, но вопрос по данному варианту 01 - авария, а причины ее вы начнете пихать в другие переменные, потому что вы не можете в этих двух битах сохранить направление движения, предшествующие аварии.
Как-то так. и вся логика 4х насмарку.

In_Da_Cher_A
27.04.2025, 12:57
0- ось стоит
1- ость движется в направлении Х+
2- ость движется в направлении Х-
3- ось не может двигаться, аварияось стоит = ось не может двигаться = двигатель оси выключен
состояние авария притянутое за уши к этой оси не является фактором, характеризующим ось, так как основное - это движение оси в координатах, а не качественное описание её физического состояния


осям в 3-х мерном пространстве.
В этом случае использование оси движения как логического элемента становиться актуальным
0- ось стоит
1- ость движется в направлении Х+
2- ость движется в направлении Х-
3- ось не может двигаться, аварияпри описании движения в трёхмерных координатах положили болт на вторые две оси, молодцы

в общем, весеннее обострение не стихает
жду не дождусь примеров "плохого" двоичного так сказать и "оптимизированного" кода на "4х", можно на примере несчастного станка (кстати, сколько станков автоматизировал автор?)
без "доказательной" базы и более менее внятной академического методического подхода к работе
пока что всё выглядит как бла бла бла

In_Da_Cher_A
27.04.2025, 12:59
и да - автор так и не ответил - а причём здесь ПР200? :D

Geenerator
27.04.2025, 16:17
в общем, весеннее обострение не стихает
жду не дождусь примеров "плохого" двоичного так сказать и "оптимизированного" кода на "4х", можно на примере несчастного станка (кстати, сколько станков автоматизировал автор?)
без "доказательной" базы и более менее внятной академического методического подхода к работе
пока что всё выглядит как бла бла бла

In_Da_Cher_A, я пожалуй с вами соглашусь!!! Всё это бла бла бла, трёп в курилке...

Geenerator
28.04.2025, 10:21
Если рассматривать реализацию идеи четырёхзначной логики например в OwenLogic, то можно сделать следующие выводы:

OwenLogic активно используется двоичная логика с двумя устойчивыми состояниями 1 - истина, 0 - ложь, на основе которой реализованы логические элементы (AND, OR NOT и.д.) и функциональные элементы всевозможные триггеры (RS, SR), таймеры и т.д. - это инструменты для создания конфигурации которая требуется "пользователю".

Я предложил использовать в OwenLogic четырёхзначную логику с четырьмя устойчивыми состояниями, которые можно представить двумя битами или целым числом от 0 до 3:
Логическая интерпретация:
0 (00) - стоп
1 (01) - движение Х+
2 (10) - движение Х-
3 (11) - авария

Возможна ещё одна интерпретация
0 (00) - НЕТ
1 (01) - Истина
2 (10) - Ложь
3 (11) - Не может быть

В четырёхзначная логика полностью совместима с двоичной, в которой так же присутствуют логические элементы:
AND4 - минимум из двух чисел
OR4 - максимум из двух чисел
NOT4 - побитовая инверсия или вычитание из числа 3
11-00 = 11 (3-0=3)
11-01 = 10 (3-1=2)
11-10 = 01 (3-2=1)
11-11 = 00 (3-3=0)

И функциональные элементы - триггеры с четырьмя устойчивыми состояниями, список таких элементов можно расширить при желании.

Идея полностью рабочая и частично изложена в книге А.Б. Кметь Четырёхзначная логика. Реализация операций 1991, где показано применение чётырёхзначной логики на аппаратном уровне !!!

https://publ.lib.ru/ARCHIVES/M/''Massovaya_biblioteka_injenera_''Elektronika''_(s eriya)/%CA%EC%E5%F2%FC%20%C0.%C1._%20%D7%E5%F2%FB%F0%E5%F 5%E7%ED%E0%F7%ED%E0%FF%20%EB%EE%E3%E8%EA%E0.%20%D0 %E5%E0%EB%E8%E7%E0%F6%E8%FF%20%EE%EF%E5%F0%E0%F6%E 8%E9.(1991).pdf

Двоичная логика характеризует "событие", например дискретный датчик сработал - это означает что событие произошло - 1, если датчик не сработал - 0

Четырёхзначная логика характеризует "состояние", которое может включать в себя несколько событий (входных переменных) объединённых логическими элементами.
Переход из одного состояния в другое возможно как на основе "взаимодействия" событий и двоичных логических элементов AND, OR NOT, так и на основе "взаимодействия" состояний и четырёхзначных логических элементов AND4, OR4 NOT4

Где может использоваться четырёхзначная логика ?
Да где хотите там и используйте, на что хватит фантазии !!!

melky
28.04.2025, 10:29
Сохранил в папочку OwenLogic_Курево4х :)

In_Da_Cher_A
28.04.2025, 12:22
Я предложилпричём здесь ОВЕН ЛОджик?

Четырёхзначная логика характеризует "состояние", которое может включать в себя несколько событий (входных переменных) объединённых логическими элементами.двухзначная логика отлично характеризует состояние, которое также может включать в себя несколько событий (входных переменных) объединённых логическими элементами.

Переход из одного состояния в другое возможно как на основе "взаимодействия" событий и двоичных логических элементов AND, OR NOT, так и на основе "взаимодействия" состояний и четырёхзначных логических элементов AND4, OR4 NOT4и дальше то что?

Где может использоваться четырёхзначная логика ?
Да где хотите там и используйте, на что хватит фантазии !!!и незачем так орать. Если у вас нервные срывы от обиды на непонимание вашего гения, то вам дали совет -
жду не дождусь примеров "плохого" двоичного так сказать и "оптимизированного" кода на "4х", можно на примере несчастного станка (кстати, сколько станков автоматизировал автор?)
пока что кроме какой-то бла бла бла бессвязных картинок в пейнте вы не родили ничего конкретного
и это печально

Сергей0308
28.04.2025, 13:05
А что Вы хотели, если без аппаратной поддержки смысл такой логики ограничится чисто академическим, в смысле, на практике использовать не получится в принципе!
Весь смысл поморочить голову себе и другим, всё!
И, троичная логика предпочтительна перед четверичной, это я так думаю, ранее уже писал почему!

Geenerator
28.04.2025, 13:12
1) причём здесь ОВЕН ЛОджик?
2) двухзначная логика отлично характеризует состояние, которое также может включать в себя несколько событий (входных переменных) объединённых логическими элементами.
3) и дальше то что?
4)и незачем так орать. Если у вас нервные срывы от обиды на непонимание вашего гения, то вам дали совет -
5) пока что кроме какой-то бла бла бла бессвязных картинок в пейнте вы не родили ничего конкретного и это печально

1. OwenLogic - это среда программирования ПР200, как заявлено в теме, мы находимся на форме ОВЕН и обсуждаем оборудование компании ОВЕН.

2. Я в теме приводил пример с "Машиной состояний" для программирования на верхнем уровне и аналогией в виде "логической машины состояний" для программирования контроллеров - если аналогия не понятна, то я бессилен.

3. Вот собственно и всё - есть такая "логика" хотите - пользуйте, не хотите - проходите мимо.

4. Вы мне ничего не должны и я вам ничего не должен, я предложил обсуждать примеры, но обсуждения не получается. Выдавать вам я ничего не собираюсь.

5. Это ваше мнение, я его услышал !!!

МихаилГл
28.04.2025, 13:19
Вы так на предзащите оппонента это скажите: "Вы мне ничего не должны и я вам ничего не должен, я предложил обсуждать примеры, но обсуждения не получается. Выдавать вам я ничего не собираюсь."

Николай Суриков
28.04.2025, 13:40
2. Я в теме приводил пример с "Машиной состояний" для программирования на верхнем уровне и аналогией в виде "логической машины состояний" для программирования контроллеров - если аналогия не понятна, то я бессилен.



Еще раз.
Оператор CASE придуман в 60-х годах, в контроллерах он появился сразу, в ПР, как в них добавили язык ST/
Откройте любой пример для ПЛК1хх или 2хх по работе с файлами, опрос через библиотеки и т.д там все есть и машина состояний и сколько хотителогика.
Если вы начали поднимать такую тему, то надо было сначала изучить вопрос и понять, что здесь это используется с появлением первых ПЛК еще в 2000х годах.

melky
28.04.2025, 13:48
я вам в теме привел пример, когда ваша 4х логика улетает в пустоту. При возникновении Аварийной ситуации вы теряете весь смысл - сохранения событий, предшествовавшей той самой аварии - это раз.
Два - что дальнейшая логика будет делать? метаться между 00 и 11 значениями?, потому что если она сбросит в 00 - то это штатный останов, а ведь была авария (11)

In_Da_Cher_A
28.04.2025, 13:52
Вы так на предзащите оппонента это скажите: "Вы мне ничего не должны и я вам ничего не должен, я предложил обсуждать примеры, но обсуждения не получается. Выдавать вам я ничего не собираюсь."
я так понимаю, я должен был УЗРЕТЬ ИСТИНУ

Вот собственно и всё - есть такая "логика" хотите - пользуйте, не хотите - проходите мимо.
и с криком - веди нас о Мессия! говори что делать УЧИТЕЛЬ! я готов служить ВАМ! - пасть ниц перед гением.

In_Da_Cher_A
28.04.2025, 13:56
. OwenLogic - это среда программирования ПР200, как заявлено в теме, мы находимся на форме ОВЕН и обсуждаем оборудование компании ОВЕН.
так ваша логическая теория работает только в ОВЕН Лоджик? то есть вашу логику нельзя применить в другом языке программирования? с другим ПО? с дургим контроллером?

2. Я в теме приводил пример с "Машиной состояний" для программирования на верхнем уровне и аналогией в виде "логической машины состояний" для программирования контроллеров - если аналогия не понятна, то я бессилен.так "верхний уровень", или ОВЕН лоджик?
так вам сказали - напишите СВОЮ программу на своей логике в ОВЕН Лоджике, если вы зафиксировались именно на этом софте

melky
28.04.2025, 13:58
Нынче времена другие, чтобы за тобой шли, приходится приплачивать :)

Geenerator
28.04.2025, 14:18
я вам в теме привел пример, когда ваша 4х логика улетает в пустоту. При возникновении Аварийной ситуации вы теряете весь смысл - сохранения событий, предшествовавшей той самой аварии - это раз.
Два - что дальнейшая логика будет делать? метаться между 00 и 11 значениями?, потому что если она сбросит в 00 - то это штатный останов, а ведь была авария (11)

Я уже приводил пример строения четырёхзначной логики... Она структурно состоит из двухзначной - состояния 00 - 11 (аналогия 0 -1) и трёхзначной 01 00 10 (аналогия +1 0 -1)

Состояние 00 - СТОП, это так же состояние ГОТОВ к работе. Состояние 11 - АВАРИЯ, это не ГОТОВ к работе. Это противоположные состояния.

melky
28.04.2025, 14:36
Прочтите анимательне, о чем я, когда авария.
Вы состоянием авария трёте события направления движения . Зачем тогда этот цирк?

Geenerator
28.04.2025, 15:32
0-й бит = 0 стоит, = 1 движется
1-й бит = 0 - направление в -, = 1 - направление в +
2-й бит = 0 - нет аварий, =1 - авария

Ведь все равно вы минимум в байт будете запихивать биты, к тому же направление имеет смысл только при наличии движения, когда 0-й бит = 1 если разобраться. Хотя и при 0-м = 0 тоже имеет смысл, в каком направлении двигалась ось до момента остановки.
Где тут преимущества 4-х логики в принципе при 3-х то битах ?
Вроде все логические уровни для понимания соблюдены.

опять же для понимания.
00 - стоим
10 - движемся в минус
11 - движемся в плюс
01 - авария
Не важно, какие комбинации двух битов вы там примените, но вопрос по данному варианту 01 - авария, а причины ее вы начнете пихать в другие переменные, потому что вы не можете в этих двух битах сохранить направление движения, предшествующие аварии.
Как-то так. и вся логика 4х насмарку.

melky, вы не правильно поняли...

Есть события - Кодируется одним битом !!! например сработал датчик.
Есть состояния - Кодируется двумя битами !!! переход от одного состояния другое возможен, когда сработали например, несколько датчиков по условию AND.
Бит события не участвует в битах состояния напрямую, это разные логические уровни

Почитайте пожалуйста про "Машину состояний"

83525

МихаилГл
28.04.2025, 15:59
Буквально сегодня правил свой код, оптимизировал по размеру... У меня там для реверсивного механизма 17 состояний, каждое из которых это совокупность до 10 событий... Какая 4х значная, мне мало 4х значений, хоть режте.

Как дальше использовать эти 4 состояния. Как мне применить состояние авария, например, к необходимости запустить этот механизм в противоположную сторону, где у меня как таковой аварии то нет. Но авария у вас общая.

melky
28.04.2025, 16:17
Я про что и говорю, что 2-х битов часто недостаточно, по этому эта логика неработоспособна, и скорее всего по этому и не выжила в борьбе.
Есть 0 и 1 в примитиве, и есть байты, слова, двойные слова, в которые эти примитивы впихиваются как за здрасьте в любых комбинациях. Так зачем ограничивать системы 2-мя битами, четвертое состояние которых превращает все в утиль?

Cs-Cs
28.04.2025, 17:26
МихаилГл Мы ещё забыли, когда бывает так, что в одну машину состояний на одном из шагов вложена другая машина состояний!!!

Geenerator
28.04.2025, 17:58
Буквально сегодня правил свой код, оптимизировал по размеру... У меня там для реверсивного механизма 17 состояний, каждое из которых это совокупность до 10 событий... Какая 4х значная, мне мало 4х значений, хоть режте.

Как дальше использовать эти 4 состояния. Как мне применить состояние авария, например, к необходимости запустить этот механизм в противоположную сторону, где у меня как таковой аварии то нет. Но авария у вас общая.

Я пока не представляю о чём вы говорите, но попытаюсь показать на своём примере...

Берём металлообрабатывающий станок у которого возможны движения по всем 3-м измерениям. За перемещение по оси X, Y, Z отвечает свой двигатель.
Если двигатель крутиться по часовой стрелке, то ось едет в сторону Х+, если двигатель крутиться против часовой стрелке, то ось едет в сторону Х-. и так далее с остальными осями.

У каждой из осей будут свои четыре состояния 00 01 10 11. Другими словами, есть "объект" у которого выделяются 4-ре логических состояния. Затем "объекты" могут изменять свои состояние в зависимости от событий относящихся к данному "объекту", либо изменять своё состояние в зависимости от состояния другого "объекта"

Например, ось Х встала по аварии "частотника", это событие оси Х - её состояние переходит в (11), при этом оси Y, Z переходят в состояние СТОП (00), т.к. объект ось Х в - (11)

83532

melky
28.04.2025, 18:13
Вам же уже 100500 раз сказали, дальше свою логику начните прикручивать, не зацикливайтесь только на состоянии оси и двигателя. И у вас все просыпется к чертям...

Geenerator
28.04.2025, 18:32
Вам же уже 100500 раз сказали, дальше свою логику начните прикручивать, не зацикливайтесь только на состоянии оси и двигателя. И у вас все просыпется к чертям...

melky, я показал инструмент в виде четырёхзначной логики, показал как я её использую для решения своих задач. У вас может быть своё видение вопроса, я не против!!!

melky
28.04.2025, 19:09
Так вот именно, что вы решили маааааленький кусочек логики, не думая о том, что будет дальше, и как, ограничившись этой логикой, будете строить дальнейшие алгоритмы.
Я в вашей же логике показал на элементарном примере, что свалившись в ошибку, вы тут же теряете два состояния. Вы не ответили на вопрос, как вы их скопируете для остальных?
То есть банально, алгоритм далее должен знать при каком направлении движения произошла ошибка?

И ещё момент, вы не учитываете архитектуру ПР200, Тут на каждые ваши 2 бита вы будете тратить 4 байта, спрашивается где плюшки? :)

Cs-Cs
28.04.2025, 20:00
Показал как я её использую для решения своих задач.Чёрт возьми, каналья! Да ГДЕ ЖЕ показал?! Где?! Гдеее?!
ВОТ пример описания моей технологии и там же пример, как я её использую: https://cs-cs.net/crm-social-content-manage
Мои примеры реальны. Я прям показываю и говорю: "Вот, как это работает, вот что получается".
А тут одни картинки и опсания осей станка. Абстрактного. И даже о том, что ось должна иметь рампу разгона и торможения - забыли.
А уж "ться" это - это просто прям садись, да! Диссертацию он пишет. Двигатель делает крутиться.

Сергей0308
28.04.2025, 22:52
Так я же вроде уже писал что в реальности это невозможно использовать в принципе из-за отсутствия аппаратной поддержки, в смысле, не надо от него требовать невозможного!
Это же аналогично системам счисления, двоичная, восьмеричная, десятичная, шестнадцатеричная, на практике можно использовать любую, разницы в вычислениях не будет, но без аппаратной поддержки использовать любую систему невозможно в принципе, короче, надеюсь что все это понимают, в смысле, тогда вопрос по практическому использованию будет закрыт автоматически даже не открывшись!

Geenerator
28.04.2025, 23:56
Так вот именно, что вы решили маааааленький кусочек логики, не думая о том, что будет дальше, и как, ограничившись этой логикой, будете строить дальнейшие алгоритмы.
Я в вашей же логике показал на элементарном примере, что свалившись в ошибку, вы тут же теряете два состояния. Вы не ответили на вопрос, как вы их скопируете для остальных?
То есть банально, алгоритм далее должен знать при каком направлении движения произошла ошибка?

И ещё момент, вы не учитываете архитектуру ПР200, Тут на каждые ваши 2 бита вы будете тратить 4 байта, спрашивается где плюшки? :)

Я сейчас не понимаю в чём вопрос...
Есть входные переменные (события), которые логически объединяются и формируют (состояние), и это не просто состояния, а логические состояния
IF DI1=1 or DI2=1 or (DI3=0 and DI4=0) Then
VAR1=0 //состояние (стоп)
END
IF DI5=1 or DI6=1 or (DI7=0 and DI8=0) Then
VAR1=1 //состояние (движение +)
END
IF DI1=1 and DI2=1 Then
VAR1=2 //состояние (движение -)
END
IF DI5=1 and DI6=1 Then
VAR1=3 //состояние (авария)
END

По такому же принципу можно сформировать дополнительные условия перехода из одного состояния в другое
1. состояния могут изменяться в зависимости от входных сигналов (событий)
2. состояния могут изменяться в зависимости от изменения состояния других "объектов"

Состояния могут взаимодействовать как через логические функции AND4, OR4, NOT4, так и через операторы IF, CASE и т.д.

В результате получается логика более высокого уровня, которая так же может быть реализована аппаратно и имеет свою математику !
Логические законы работают на уровне состояний !!!

Можно не заморачиваться и создать автоматы состояний, которых может быть сколько угодно, но связи логической между состояниями не будет!

Geenerator
29.04.2025, 00:12
Чёрт возьми, каналья! Да ГДЕ ЖЕ показал?! Где?! Гдеее?!
ВОТ пример описания моей технологии и там же пример, как я её использую: https://cs-cs.net/crm-social-content-manage
Мои примеры реальны. Я прям показываю и говорю: "Вот, как это работает, вот что получается".
А тут одни картинки и опсания осей станка. Абстрактного. И даже о том, что ось должна иметь рампу разгона и торможения - забыли.
А уж "ться" это - это просто прям садись, да! Диссертацию он пишет. Двигатель делает крутиться.

Cs-Cs, вопрос в том, что ваша технология и её использование не вызывает споров и дискуссий, вы делаете полезные программы которые выполняют свои функции.
У меня же слегка спорный вопрос и из "окопа" лучше не высовываться.

Geenerator
29.04.2025, 00:41
Так я же вроде уже писал что в реальности это невозможно использовать в принципе из-за отсутствия аппаратной поддержки, в смысле, не надо от него требовать невозможного!
Это же аналогично системам счисления, двоичная, восьмеричная, десятичная, шестнадцатеричная, на практике можно использовать любую, разницы в вычислениях не будет, но без аппаратной поддержки использовать любую систему невозможно в принципе, короче, надеюсь что все это понимают, в смысле, тогда вопрос по практическому использованию будет закрыт автоматически даже не открывшись!

Сергей0308, с реализацией аппаратной поддержки думаю вопросов не возникнет, весь вопрос целесообразности.
А целесообразность приходит с развитием Искусственного интеллекта и необходимостью общения с ним.

В место ответа на вопрос 1- да, 0 - нет, компьютер может ответить:
0 - на ваш вопрос НЕТ ответа
1- ответ на ваш вопрос ПОЛОЖИТЕЛЬНЫЙ
2- ответ на ваш вопрос ОТРИЦАТЕЛЬНЫЙ
3 - такого вопроса не может быть

И такая болтовня на уровне битов...

In_Da_Cher_A
29.04.2025, 01:46
диссертацию так написали или нет?
в прошлый раз этот бред надоел всем на 17 странице

Geenerator
30.04.2025, 13:12
Должен признать, что в OwenLogic на данный момент недостаточно возможностей для полноценной реализации алгоритма на четырёхзначной логике, поэтому приведу пример с Открытием/Закрытием ворот в языке программирования ЧПУ Балт-Систем

В данном языке ST переменные уже объявлены и представляют собой «пакеты» (I входа , U-выхода) для которых выделены рабочие зоны. У сигнала U00K00 две составляющие U00 и K00 и память заполняется следующим образом
U00K00, U00K01, U00K02 U00K03, U00K04, U00K05, … U00K31 (U00 – 32 шт.)
U01K00, U01K01, U01K02 U01K03, U01K04, U01K05, … U01K31 (U01 – 32 шт.)

На основе двоичных переменных формируются переменные, состоящие из 8 бит или СЛОВА (Word) с которыми можно работать как с битами 1111 1111 и как с числами 255
W00K00, W00K01, W00K02, W00K03 (W00 – 4 шт. По 8 бит.)
W01K00, W01K01, W01K02, W01K03 (W01 – 4 шт. По 8 бит.)
Логические двоичные операции записываются символами И – (*) ИЛИ – (+) НЕ – (/)



; Входные сигналы
; I00A00 – Кнопка ворота открыть
; I00A01 – Кнопка ворота закрыть
; I00A02 – Кнопка ворота стоп
; I00A03 – Датчик препятствия
; I00A04 – Конечник открыто
; I00A05 – Конечник закрыто

; Выходные сигналы
; U00A00 – Ворота открыть
; U00A01 – Ворота закрыть
; U00A02 – Лампа Стоп
; U00A03 – Лампа Открытие
; U00A04 – Лампа Закрытие
; U00A05 – Лампа Авария

; -------- формирование состояний на основе событий -----------------

; Если (Кн. ворота стоп+ Датчик препятствия + Конечник открыто + Конечник закрыто)
DOF: I00A02 + I00A03 + I00A04 + I00A05
W20K0=0 ; состояние СТОП
ENDF
; Если (Кн. ворота открыть + Ворота отрыть)
DOF: I00A00 + U00A00
W20K0=1 ; состояние Открытие ворот
ENDF

; Если (Кн. ворота закрыть + Ворота закрыть)
DOF: I00A01 + U00A01
W20K0=2 ; состояние Закрытие ворот
ENDF
; Если (Ворота открыть * Ворота закрыть)
DOF: U00A00 * U00A01
W20K0=3 ; состояние Авария
ENDF

; --------------- Алгоритм -------------------
; Ворота открыть = Кн. ворота открыть + Ворота открыть * /Состояние СТОП * /Состояние Авария
U00A00 = (I00A00 + U00A00) * /[W20K0=0] * /[W20K0=3]
; Ворота закрыть = Кн. ворота закрыть + Ворота закрыть * /Состояние СТОП * /Состояние Авария
U00A01 = (I00A01 + U00A01) * /[W20K0=0] * /[W20K0=3]
; Лампа Стоп
U00A02 = [W20K0=0]
; Лампа Открытие
U00A03 = [W20K0=1]
; Лампа Закрытие
U00A04 = [W20K0=2]
; Лампа Авария
U00A05 = [W20K0=3]

Cs-Cs
30.04.2025, 13:37
А там нельзя этот ужас U00A00 переименовыать на понятные человеку переменные типа MotorOpen, MotorClose?

Geenerator
30.04.2025, 14:08
А там нельзя этот ужас U00A00 переименовыать на понятные человеку переменные типа MotorOpen, MotorClose?

Можно переименовать, нужно в конце файла конфигурации составить соответствие имя MotorOpen и U00A00 и всё.

Но как правило это бессмысленно, так как переменных очень много, проcто составляется таблица названиями сигналов в Excel

Cs-Cs
30.04.2025, 14:25
Но как правило это бессмысленноАга. И прогать в стиле советских АРМ. Где ещё между полями табуляцией надо переходить. Фу.
И про ExCell. Уже как лет 15 среды умеют генерировать документацию ИЗ исходных кодов. А не наоборот.

Geenerator
30.04.2025, 14:35
Ага. И прогать в стиле советских АРМ. Где ещё между полями табуляцией надо переходить. Фу.
И про ExCell. Уже как лет 15 среды умеют генерировать документацию ИЗ исходных кодов. А не наоборот.

Всё что мне нужно в OwenLogic, это механизм который реализован у Балт Систем -
Когда есть набор битов, которые я могу использовать и как биты и как слова. Может есть идеи ???

Логические элементы четырёхзначной логики, совпадают с логическими элементами двухзначной логики если производить операции над младшим и старшим битом.

Николай Суриков
30.04.2025, 15:03
Всё что мне нужно в OwenLogic, это механизм который реализован у Балт Систем -
Когда есть набор битов, которые я могу использовать и как биты и как слова. Может есть идеи ???

Нет - идей нет. ПР примитивна как динозавр и тупа как кирпич. Оставайтесь на Балт Систем, не мучайте себя. Там все есть для написания полнофункционального, оптимизированного кода.

melky
30.04.2025, 15:09
поддержу, оставайтесь там, где вам дышать легче со своей 4-х логикой. Не мучайте себя и разработчиков ОЛ.

Geenerator
30.04.2025, 17:39
для ОЛ можно трансформировать из такого кода

Более четкая структура программы с использованием CASE для обработки состояний
Явное определение типов данных через TYPE
Лучшая читаемость благодаря текстовому представлению логики
Простота модификации условий переходов между состояниями
Удобство добавления новых функций при необходимости расширения системы

Код сохраняет всю функциональность оригинальной программы, но представляет её в более современном и поддерживаемом виде, что соответствует требованиям промышленного программирования

capzap, да это именно то что надо !!! Через механизм CASE красиво реализовано.

Я ещё раз повторюсь, при создании "автомата состояний", таких состояний может быть сколько угодно, если это ЛОГИЧЕСКИЕ состояния, то их может быть только четыре.

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

melky
30.04.2025, 18:35
В 32-х битной переменной, логических состояний может быть 32 :)

1exan
30.04.2025, 18:43
В 32-х битной переменной, логических состояний может быть 32 :)

Мелко берёте, если применять подход ТС-а - там их может быть 4 294 967 295

melky
30.04.2025, 19:30
1exan, не может быть столько. Если принять во внимание передачу переменных дальше, то даже на примере 4х показал, что последнее, 4-ое состояние затирает предыдущие, и дальнейшие блоки потребуют дополнительной логики. И весь смысл идеи сразу разлетается в тар-тарары.

Сергей0308
30.04.2025, 20:31
Да, уж, очень странные подсчёты, такое впечатление что в школу никто не ходил, короче, количество состояний будет вы не поверите: "18*446*744*073*709*551*616", это 4 в степени 32, в смысле, надо правильно считать, логика не двоичная, а четверичная и будут называться не битами, а квартами или чем-то подобным! Вот товарищ, без пяти минут академик, этим увлекается, в смысле, уточнит, если что! Это очень важно, в смысле, определится с терминами, чтобы тебя понимали! Печально, что товарищ даже этого(самого элементарного) не понимает, мне так кажется!

Geenerator
01.05.2025, 13:56
Я показал общепринятую логику, покажите и вы как на вашей логике оптимизировать код

capzap, для того, чтобы была оптимизация кода нужно понять, что вы работаете с другой логикой, которая как раз и подходит для общения с Искусственным Интеллектом

Четырёхзначная логика - это логическая система у которой есть 4-ре состояния, В место ответа на вопрос 1- да, 0 - нет, компьютер может ответить:
0 (00) - на ваш вопрос НЕТ ответа
1 (01) - ответ на ваш вопрос ПОЛОЖИТЕЛЬНЫЙ
2 (10) - ответ на ваш вопрос ОТРИЦАТЕЛЬНЫЙ
3 (11) - такого вопроса не может быть

Этот вопрос понятен ? Если не понятен, то дальше двигаться затруднительно.


если что оперировать переменной как целым числом так и её битами можно через точку
покажите пожалуйста на примере, если не трудно.


и начните уже приводить обдуманные примеры а не то что было раньше, пример по воротам, открыть вторые это опять бинарная операция либо да, либо нет, пока не выполнится условие у первых ворот

Я привожу обдуманные примеры про перемещение осей металлообрабатывающего станка с ЧПУ, но так как вы "не в теме", то очевидно что примеры не совсем актуальны. Предложите актуальные для вас примеры, где можно выделить противоположные состояния.

То, что операции бинарные, это понятно, четырёхзначная логика структурно состоит из двоичной и полностью с ней совместима. Логические операции AND4, OR4, NOT4, состоят из двух операторов AND, OR, NOT.

МихаилГл
01.05.2025, 14:48
Через точку... Вы не умеете чтоли?

Переменная.0...Переменная.15 это биты с 0 по 15 переменной под названием Переменная... 16 битная, кстати

melky
01.05.2025, 16:50
Geenerator, вас не Иннокентий зовут? ну в смысле Кеша, а то заладили как попугай одно и тоже.
Вам 100 раз уже русским языком сказали, что для того, чтобы сохранять ваши 2-е, 3-и, 4-е, двадцатые состояния не требуется оперировать только двумя битами, когда в распоряжении столько, сколько необходимо для решения задачи.

In_Da_Cher_A
01.05.2025, 19:05
В место ответа на вопрос компьютер может ответить:
0 (00) - на ваш вопрос НЕТ ответа
1 (01) - ответ на ваш вопрос ПОЛОЖИТЕЛЬНЫЙ
2 (10) - ответ на ваш вопрос ОТРИЦАТЕЛЬНЫЙ
3 (11) - такого вопроса не может бытьпункта 3 в принципе быть не может так как ......вопрос-то был хе хе или ответ "такого вопроса не может быть" это типа означает что комп отвечает - иди проспись, достал ты меня своей тупостью
и Нет ответа - это типа комп завис? или - Я не знаю ответа ?

Покажите решение на 4-значной логике.уже просил. Автор предпочитает игнорировать, поскольку он теоретик

Geenerator
01.05.2025, 19:23
пункта 3 в принципе быть не может так как ......вопрос-то был хе хе или ответ "такого вопроса не может быть" это типа означает что комп отвечает - иди проспись, достал ты меня своей тупостью
и Нет ответа - это типа комп завис? или - Я не знаю ответа ?


Вы не совсем верно понимаете суть ответов

Каков результат игры двух команд в матче, который состоится завтра - 0 (00) - на ваш вопрос НЕТ ответа
Каков результат игры команд ТЫДЫЩЬ-ДРЫЩЬ и МОНГОЛШОУДАН - 3 (11) - такого вопроса не может быть (нет таких команд)

In_Da_Cher_A
01.05.2025, 20:13
Вы не совсем верно понимаете суть ответовда всё я верно понимаю
ваши попытки притянуть сюда какие-то типа "неопределённости" ничего не дают на выходе
кроме повторения одного и того же вводного абзаца из любого учебника про описания четверичной логики - вы пока ничего не сделали.
и ничего нового про якобы преимущества - тоже не сказали.

melky
01.05.2025, 20:39
Были бы преимущества, то техника бы развивалась в данном направлении.
Это наверное из эпохи перфокарт, две дырки сделать дешевле, чем 8-мь. :)

Сергей0308
01.05.2025, 21:20
Ну что за бред, в смысле, преимущества есть и они описаны в интернете можно найти и прочитать!
Но у всего кроме плюсов есть и минусы, в смысле, оценивать надо по их совокупности, если нет каких то жёстких приоритетов по отдельным параметрам!
Короче, не понятно о чём речь, в смысле, зачем человеку это копировать из интернета, сам он не может что-то добавить-убавить, это уже давно определено!

Geenerator
01.05.2025, 22:44
Предположим, я уяснил, что каждое состояние имеет 4 варианта. Что с этим знанием делать дальше?

Наиболее частая задача на форуме - управление насосной группой (пусть из 2 насосов). Вот, например, самая недавняя

Покажите решение на 4-значной логике. Только полное решение. Про то, что есть 4 возможных варианта состояния я уже знаю и умею - могу и сам каждый насос описать этими состояниями. Если проще на ST - пусть будет ST.
Я не отталкиваю новые знания, но что мне делать с ними - я не академик, а работяга от программирования.

Если рассмотреть четыре состояния, то получиться следующее:
00 - Состояние СТОП. Для того, чтобы перейти в другое состояние достаточно перевести ключ на шкафу управление в состояние ПУСК
01 - Состояние наполнения резервуара до верхнего уровня. В этом месте включаются насосы и при необходимости чередуются
10 - Состояние опустошения резервуара до нижнего уровня. Насосы не работают
11 - состояние АВАРИЯ. Либо нет протока при включении насоса, либо в скважине кончилась вода и сработал датчик "Сухой ход"

Это простая задача и её удобнее решить без четырёхзначной логики.

melky
01.05.2025, 23:00
Geenerator от вас программу хотят на 4х логике, а не бла-бла-бла только по одному устройству.

МихаилГл
02.05.2025, 02:43
Тем более зачем такая логика для станка...
Ему надо точно знать, дальше двигаться или не двигаться, иначе могут произойти непредвиденные вещи... Резец или сверло сломается, набалдашник на ограничитель налетит и разломает и деталь, и сам станок (пишу простыми словами, т.к. не помню и возможно не знаю названия данных элементов).

Cs-Cs
02.05.2025, 09:17
Да просто Автор никогда станков не видел. И всего остального.
Да, пример не был предоставлен. Даже в рамках примененя его экспертной системы.
Я так же упорно не понимаю, зачем мне 4 состояния и почему именно 4.
Почему они должны быть "Откл, Вперёд, Назад, Стоп" или "Авария, Откл, Назад, Вперёд". Кой в этом смысл?
В булевой логике обычно всё проще: если Откл ИЛИ Авария - то дальше уже никакие состояния не важны.

А ещё, кстати, ведь у Автора смешаны Состояния и Команды.
Стоп и Авария - это состояния
Вперёд и Назад - это команды

Как такое вообще пропустили?
Где применять эту ерунду в реальной жизни и в реальной задаче?

Там, где есть нечёткие данные, не применяют "Нет, Да, Не знаю", а применяют другие структуры данных: весовые деревья, графы, двоичные деревья (btree). Вроде как на этом даже нейросети построены, где как раз разные весовые предикаты используются...

И тут вдруг нам, не побоюсь этого слова, насовывают 4х логику, без объяснений.
И при том даже не на ПЛК, а ПРке с двоичной логикой, которую изменить нельзя.

Я (и думаю, что аудитория) поняли бы ПРАКТИЧЕСКИ применимые варианты. Условно:
* Я написал обёртку функций 4х логики под ПРку
* Я написал свою прошивку и среду разработки по ПР200. Если перешить - получится устройство для работы с 4х логикой
* Я написал экспертную систему на базе 4х логики, и это помогло сделать то-то и то-то

А нас воздухом кормять.

CleanS
02.05.2025, 10:12
...
<....>
А нас воздухом кормять.

Так вы перестаньте ему отвечать, он сам успокоится.
Всё как в соц. сетях. Троля "кормят" ответы окружающих.

melky
02.05.2025, 10:19
Cs-Cs, тут вы чуть не правы. Вперёд и Назад тоже состояние.
Была команда двигаться вперёд (внешняя ессно) и в 4х "слове" поменялось состояние со "стоп" на "двигаюсь вперёд". Потом если чё, может поменяться на "ой, всё, отвалите от меня, я устал" :)

Geenerator
02.05.2025, 10:25
Да просто Автор никогда станков не видел. И всего остального.
Да, пример не был предоставлен. Даже в рамках примененя его экспертной системы.
Я так же упорно не понимаю, зачем мне 4 состояния и почему именно 4.
Почему они должны быть "Откл, Вперёд, Назад, Стоп" или "Авария, Откл, Назад, Вперёд". Кой в этом смысл?
В булевой логике обычно всё проще: если Откл ИЛИ Авария - то дальше уже никакие состояния не важны.

А ещё, кстати, ведь у Автора смешаны Состояния и Команды.
Стоп и Авария - это состояния
Вперёд и Назад - это команды

Как такое вообще пропустили?
Где применять эту ерунду в реальной жизни и в реальной задаче?

Там, где есть нечёткие данные, не применяют "Нет, Да, Не знаю", а применяют другие структуры данных: весовые деревья, графы, двоичные деревья (btree). Вроде как на этом даже нейросети построены, где как раз разные весовые предикаты используются...

И тут вдруг нам, не побоюсь этого слова, насовывают 4х логику, без объяснений.
И при том даже не на ПЛК, а ПРке с двоичной логикой, которую изменить нельзя.

Я (и думаю, что аудитория) поняли бы ПРАКТИЧЕСКИ применимые варианты. Условно:
* Я написал обёртку функций 4х логики под ПРку
* Я написал свою прошивку и среду разработки по ПР200. Если перешить - получится устройство для работы с 4х логикой
* Я написал экспертную систему на базе 4х логики, и это помогло сделать то-то и то-то

А нас воздухом кормять.

Cs-Cs, я предоставил конкретный пример с ВОРОТАМИ - это простейшая задача, но понимать вы её отказываетесь и в упор не видите !!!
Вы можете отличить СОСТОЯНИЕ от СОБЫТИЯ ? если не можете, то о чём разговаривать
СОСТОЯНИЕ - это процесс (открытие / закрытие), СОБЫТИЕ - это срабатывание дискретного датчика, то есть переход из одного состояния в другое

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

Формируется логическая цепочка, которая определяет состояние объекта
Если брать релейную схему, то просто идёт срабатывание Реле из 4-х состояний - вот и всё!

melky
02.05.2025, 10:42
Geenerator, вас все просят показать не состояние ворот, мотора или насосов, а показать пример управления любого из перечисленного в виде программы на ПР. Начиная от входов и заканчивая выходами. Чтобы можно было оценить 4х логику, запустив эмуляцию.
Но вы отказываетесь, постоянно повторяя, как попугай, одну и ту же мантру.

Просим, просим, просим :)

Cs-Cs
02.05.2025, 11:49
melky Точняк. Может быть и СОСТОЯНИЕ.
Но ты мне помешал его запутать ещё больше =)

Geenerator
идёт срабатывание Реле из 4-х состояний У реле же ДВА состояния...

SlavikP
05.05.2025, 04:42
Долго не лез в тему. У меня есть старший товарищ, который еще во времена СССР работал с троичной логикой. Серьёзно работал, без дураков.
На выходных, употребляли с ним вкусные напитки и показал я ему эту тему. Он долго ее перечитывал и сказал "Хрень полная, практического смысла нет".
На мой вопрос "а в чем тогда смысл в твоей троичной, ты же на нее жизнь потратил?" Мне ответил: тогда были параллельные шины и малые скорости. Троичное исчисление использовали для уменьшения линий в интерфейсах. Условно, можно было сделать IDE-ATA на 30 жилах вместо 40. И это имело смысл. Ну а уже если ввязались в троичное, то и внутреннюю логику, сколько могли, "затроили".
С появлением быстрых последовательных шин все это потеряло смысл и отмерло природою вещей. И не надо откапывать стюардессу.

Валенок
05.05.2025, 12:33
Geenerator, вас все просят показать не состояние ворот, мотора или насосов, а показать пример управления
Халявы же просите

melky
05.05.2025, 12:37
Валенок так никто не просил супер-пупер программу. Достаточно примитива, но чтобы захватывал начиная от входов и заканчивая выходами. а не словами бла-бла-бла у нас есть 4-е состояния.
Да хоть 20-ть. Просто интересно как собрались дружить одно с другим :)

Валенок
05.05.2025, 13:06
melky ну а если поймете и скрадёте идею?
Чемодан которому не нужна ручка пользуется популярностью

Сергей0308
05.05.2025, 13:16
Так мелкий уже подобных идей нахватался по горло, вот с тепловым насосом никак не разделается, в смысле, не знает теперь куда тепло девать, аж автоматический выключатель срабатывает от избытка тепла!

Geenerator
05.05.2025, 13:22
Долго не лез в тему. У меня есть старший товарищ, который еще во времена СССР работал с троичной логикой. Серьёзно работал, без дураков.
На выходных, употребляли с ним вкусные напитки и показал я ему эту тему. Он долго ее перечитывал и сказал "Хрень полная, практического смысла нет".


SlavikP, согласен, хрень полная, тут и обсуждать не чего.
Мне для описания работы исполнительных механизмов станка требуется 4-ре состояния. Либо исполнительный механизм стоит, либо едет в одну сторону, либо едет в другую сторону, либо в состоянии Авария - я использовал 4-х значную логику.

Валенок
05.05.2025, 13:32
SlavikP, Когда состояний будет 7, потребуется 7-значная логика. И специальная книга по ней. Чего непонятного то?

Geenerator
05.05.2025, 13:32
Валенок так никто не просил супер-пупер программу. Достаточно примитива, но чтобы захватывал начиная от входов и заканчивая выходами. а не словами бла-бла-бла у нас есть 4-е состояния.
Да хоть 20-ть. Просто интересно как собрались дружить одно с другим :)

melky, я привёл пример с ВОРОТАМИ на языке ST, как мне кажется должно быть понятно. Состояние это реле из 4-х положений, каждое положение определяется своей логической цепочкой



; Входные сигналы
; I00A00 – Кнопка ворота открыть
; I00A01 – Кнопка ворота закрыть
; I00A02 – Кнопка ворота стоп
; I00A03 – Датчик препятствия
; I00A04 – Конечник открыто
; I00A05 – Конечник закрыто

; Выходные сигналы
; U00A00 – Ворота открыть
; U00A01 – Ворота закрыть
; U00A02 – Лампа Стоп
; U00A03 – Лампа Открытие
; U00A04 – Лампа Закрытие
; U00A05 – Лампа Авария

; -------- формирование состояний на основе событий -----------------

; Если (Кн. ворота стоп or Датчик препятствия or Конечник открыто or Конечник закрыто)
IF (I00A02 or I00A03 or I00A04 or I00A05)
W20K0=0 ; состояние СТОП
END
; Если (Кн. ворота открыть or Ворота отрыть)
IF (I00A00 or U00A00)
W20K0=1 ; состояние Открытие ворот
ENDF

; Если (Кн. ворота закрыть or Ворота закрыть)
IF (I00A01 or U00A01)
W20K0=2 ; состояние Закрытие ворот
ENDF
; Если (Ворота открыть and Ворота закрыть)
IF (U00A00 and U00A01)
W20K0=3 ; состояние Авария
ENDF

; --------------- Алгоритм -------------------
; Ворота открыть = Кн. ворота открыть or Ворота открыть and NOTСостояние СТОП and NOTСостояние Авария
U00A00 = (I00A00 or U00A00) and NOT[W20K0=0] and NOT[W20K0=3]
; Ворота закрыть = Кн. ворота закрыть or Ворота закрыть and NOTСостояние СТОП and NOTСостояние Авария
U00A01 = (I00A01 or U00A01) and NOT[W20K0=0] and NOT[W20K0=3]
; Лампа Стоп
U00A02 = [W20K0=0]
; Лампа Открытие
U00A03 = [W20K0=1]
; Лампа Закрытие
U00A04 = [W20K0=2]
; Лампа Авария
U00A05 = [W20K0=3]

SlavikP
05.05.2025, 13:43
SlavikP, Когда состояний будет 7, потребуется 7-значная логика. И специальная книга по ней. Чего непонятного то?
Не будет в обозримом будущем. В те годы собирались использовать принцип 0 = 0в, 1= +12в, 2= -12в. Реализуется в целом просто и дёшево. Для 7 уровневой логики потребуется скоростной ЦАП-АЦП, это даст такую стоимость, что мало не покажется.
Знакомый работал в структурах минсредмаша, и как раз идея была - снизить размер и вес некоторых изделий за счет использования троичной логики. Теория была очень хороша. Но толком не взлетело.
Сперва надвисали Legacy аналогового управления, а после - уже стало не надо, т.к. двоичное подтянулось до приемлемого уровня.

In_Da_Cher_A
05.05.2025, 15:41
melky, я привёл пример с ВОРОТАМИ на языке ST, как мне кажется должно быть понятно.и чего там четверичного?

; Ворота открыть = Кн. ворота открыть or Ворота открыть and NOTСостояние СТОП and NOTСостояние Авария
U00A00 = (I00A00 or U00A00) and NOT[W20K0=0] and NOT[W20K0=3] так где оптимизация, где обещанное упрощение, где божественное откровение которое должно было сойти на меня?

я сюда пришел чтоб нормально пострелять ждал нормальной перестрелки с нормальными мужиками как полковник гастер и джеронимо вы про них не слыхали вы нацепили на себя треники и печете свои сраные пироги так ведь ральф они пригнали к нам сюда стадо долбаных педофилов дай пройти срань отвали пошел с дороги урод тоже мне гангстеры сраные ублюдки хреновы я шел на перестрелку как в вестерне макаки вашу мать только время отняли кучу времени у меня отняливот примерно такие же эмоции у меня после этой банальщины

Geenerator
05.05.2025, 16:02
и чего там четверичного?
так где оптимизация, где обещанное упрощение, где божественное откровение которое должно было сойти на меня?
вот примерно такие же эмоции у меня после этой банальщины

In_Da_Cher_A, вы не там ищите оптимизацию!

Я работаю с системами, которые находятся постоянно в движении. Четырёхзначная логика актуальна, там где нужно логически оперировать состояниями.

https://dzen.ru/video/watch/60af9e594a10a316d5f70ebd?f=d2d

МихаилГл
05.05.2025, 16:24
melky, я привёл пример с ВОРОТАМИ на языке ST, как мне кажется должно быть понятно. Состояние это реле из 4-х положений, каждое положение определяется своей логической цепочкой



; Входные сигналы
; I00A00 – Кнопка ворота открыть
; I00A01 – Кнопка ворота закрыть
; I00A02 – Кнопка ворота стоп
; I00A03 – Датчик препятствия
; I00A04 – Конечник открыто
; I00A05 – Конечник закрыто

; Выходные сигналы
; U00A00 – Ворота открыть
; U00A01 – Ворота закрыть
; U00A02 – Лампа Стоп
; U00A03 – Лампа Открытие
; U00A04 – Лампа Закрытие
; U00A05 – Лампа Авария

; -------- формирование состояний на основе событий -----------------

; Если (Кн. ворота стоп or Датчик препятствия or Конечник открыто or Конечник закрыто)
IF (I00A02 or I00A03 or I00A04 or I00A05)
W20K0=0 ; состояние СТОП
END
; Если (Кн. ворота открыть or Ворота отрыть)
IF (I00A00 or U00A00)
W20K0=1 ; состояние Открытие ворот
ENDF

; Если (Кн. ворота закрыть or Ворота закрыть)
IF (I00A01 or U00A01)
W20K0=2 ; состояние Закрытие ворот
ENDF
; Если (Ворота открыть and Ворота закрыть)
IF (U00A00 and U00A01)
W20K0=3 ; состояние Авария
ENDF

; --------------- Алгоритм -------------------
; Ворота открыть = Кн. ворота открыть or Ворота открыть and NOTСостояние СТОП and NOTСостояние Авария
U00A00 = (I00A00 or U00A00) and NOT[W20K0=0] and NOT[W20K0=3]
; Ворота закрыть = Кн. ворота закрыть or Ворота закрыть and NOTСостояние СТОП and NOTСостояние Авария
U00A01 = (I00A01 or U00A01) and NOT[W20K0=0] and NOT[W20K0=3]
; Лампа Стоп
U00A02 = [W20K0=0]
; Лампа Открытие
U00A03 = [W20K0=1]
; Лампа Закрытие
U00A04 = [W20K0=2]
; Лампа Авария
U00A05 = [W20K0=3]


Шо это за бред вы привели, простите за мой французский...

Где or4 для W20K0, или and4 или xor4... Что за бред вы несете.

По вашим словам W20K0, это 4х значная переменная, но вы уперто используете 2х значное состояние каждого значения этой переменной... NOT[W20K0=0] и т.п.

Где and4 и пр. Как их использовать. Нам не надо приводить пример на 0 и 1, это не 4х значная логика.

melky
05.05.2025, 16:25
Сергей0308 и ниче у меня не срабатывает, компрессора отключаются, если жена что-то включает :)

Geenerator хз, что вы там привели, если все на булевой логике и 4-х там и не пахнет.

In_Da_Cher_A
05.05.2025, 17:12
In_Da_Cher_A, вы не там ищите оптимизацию!
Я работаю с системами, которые находятся постоянно в движении. Четырёхзначная логика актуальна, там где нужно логически оперировать состояниями.
так вы двадцать страниц несёте бред про преимущества какой-то вашей логики, ломались хз сколько и наконец-то изобразили что-то откровенно банальное и близко не четырёзначное и выяснется что я что то не там ищу, хотя ворота открывали закрывали вы сами
как-то уже всё равно с чем вы там работаете

Geenerator
05.05.2025, 18:16
Шо это за бред вы привели, простите за мой французский...
Где or4 для W20K0, или and4 или xor4... Что за бред вы несете.
По вашим словам W20K0, это 4х значная переменная, но вы уперто используете 2х значное состояние каждого значения этой переменной... NOT[W20K0=0] и т.п.
Где and4 и пр. Как их использовать. Нам не надо приводить пример на 0 и 1, это не 4х значная логика.

Двоичная логика основана на событиях - событие произошло - 1, событие не произошло - 0 (работа дискретного датчика)
Четырёхзначная логика основана на состояниях - их может быть четыре 00 - стоп, 01 - движение Х+, 10 - движение Х-, 11 - Авария

Для начала работы с четырёхзначной логикой необходимо при помощи событий, логически определить все четыре состояния "объекта"

4-ре состояния можно сравнить с реле из четырёх положений KL1, где каждое положение имеет свои "двоичные" контакты, которые так же могут участвовать в логике как события

Geenerator
05.05.2025, 18:21
так вы двадцать страниц несёте бред про преимущества какой-то вашей логики, ломались хз сколько и наконец-то изобразили что-то откровенно банальное и близко не четырёзначное и выяснется что я что то не там ищу, хотя ворота открывали закрывали вы сами
как-то уже всё равно с чем вы там работаете

Да это вы несёте бред, за 25 страниц от вас ничего дельного, даже Валенок подарил четырёхзначный триггер. От вас только одна критика и больше ничего, ноль!!!

МихаилГл
05.05.2025, 18:34
Да это вы несёте бред, за 25 страниц от вас ничего дельного, даже Валенок подарил четырёхзначный триггер. От вас только одна критика и больше ничего, ноль!!!

Я вам щас подарю четырехзначный датчик, ну и кнопку управления, раз уж так пошло...

Датчик (кнопка) типа namur. Имеются 4 состояния: нажата (или датчик сработал) , отжата (или датчик не сработал), кз в линии, обрыв в линии. Пусть будет 4 состояния: 0, 1, 2 и 3. Все как доктор прописал.

Теперь возьмем мифический реверсивный привод с 6ю такими датчиками, 3 на закрытие, 3 на открытие. Что это за датчики: 1. Концевой открытия (закрытия), 2. Аварийный концевой открытия (закрытия), 3. Муфта момента открытия (закрытия).

Выдайте мне 4х значные функции для этих датчиков, что бы я не перебирал их 2ичные состояния, как вы выше нарисовали, а сделал так:
Итоговое 4значное состояние 3х датчиков на открытие:= 4значное состояние концевого открытия and4 4значное состояние аварийного концевого открытия and4 4значное состояние датчика момента открытия.

Решайте, а мы посмотрим.

А все что выше, это ересь...

Cs-Cs
05.05.2025, 18:38
Так события - это же R_TRIG и F_TRIG - фронты и спады.
А тут УРОВНИ.
И реле-то - они же только Вкл и Выкл.

Валенок
05.05.2025, 19:19
Можно ещё раз подарить термин “N—вариантное“ значение?

А эти 4 знака задолбали, если чесно. И слово "логика" убрать
N каждый выберет сам.

In_Da_Cher_A
05.05.2025, 19:40
Да это вы несёте бред, за 25 страниц от вас ничего дельного, даже Валенок подарил четырёхзначный триггер. От вас только одна критика и больше ничего, ноль!!!кроме присвоения четырём комбинациям двух бит имён собственных я тоже ничего нового не увидел.
так что 1-1
ну а вы как хотели? шахматы - игра коллективная, хотите быть гением - принимайте критику как должное, хотите быть непризнанным гением - можете повторить путь Перельмана, славабогам суда инквизиции больше нет и повторить подвиг Джордано Бруно не получится

Eugene.A
05.05.2025, 19:44
Двоичная, десятичная ,шестнадцатеричная системы счисления. Что ещё за четЫРЁХЗНАЧНАЯ логика?

In_Da_Cher_A
05.05.2025, 19:45
N каждый выберет сам.ну вот у меня сейчас канал измерения электрической цепи, у которого 7 возможных состояний, восьмое - отключен канал я уже не считаю, семибитная логика получается....как-то некошерно звучит, восьмое состояние тоже надо для красоты пристроить в логику

МихаилГл
05.05.2025, 19:45
Двоичная, десятичная ,шестнадцатеричная системы счисления. Что ещё за четЫРЁХЗНАЧНАЯ логика?

Есть такая партия©

МихаилГл
05.05.2025, 19:47
ну вот у меня сейчас канал измерения электрической цепи, у которого 7 возможных состояний, восьмое - отключен канал я уже не считаю, семибитная логика получается....как-то некошерно звучит, восьмое состояние тоже надо для красоты пристроить в логику

8ми (7ми) вариантная... Да, звучит

melky
05.05.2025, 19:49
Кроме присвоения переменным значений 1,2,3 ничего не увидел 4х значного.
Потом тут же ЕСЛИ == 3 то буль.
Где тут 4х логика? В больном воображении ТС ?

Eugene.A
05.05.2025, 19:51
ну вот у меня сейчас канал измерения электрической цепи, у которого 7 возможных состояний, восьмое - отключен канал я уже не считаю, семибитная логика получается....как-то некошерно звучит, восьмое состояние тоже надо для красоты пристроить в логику

Для кодирования 8 состояний достаточно 3 бит, не так ли?

In_Da_Cher_A
05.05.2025, 20:22
Для кодирования 8 состояний достаточно 3 бит, не так ли?в логике здорового человека - да, а логике курильщика число бит равно числу состояний

Cs-Cs
05.05.2025, 21:55
Кстати! 8 БИТ, ПЕРФОЛЕНТА (я ща про Чернобыльскую систему СКАЛА пересматриваю, и ещё от Артёма Кашканова)
256 ВОЗМОЖНЫХ СОСТОЯНИЙ!! О_о ОТ НАС СКРЫВАЛИ ЭТО МНОГО ЛЕТ!!!

Geenerator
05.05.2025, 23:21
Можно ещё раз подарить термин “N—вариантное“ значение?

А эти 4 знака задолбали, если чесно. И слово "логика" убрать
N каждый выберет сам.

Тут к сожалению не всё так просто, есть геометрия.
Первая объёмная геометрическая фигура - это тетраэдр, количество вершин - 4
Объединение двух тетраэдров даёт куб - это 8 вершин
Объединение двух кубов даёт гиперкуб - это 16 вершин
и так далее

Petrovi4
05.05.2025, 23:50
Первая объёмная геометрическая фигура - это тетраэдр, количество вершин - 4
Объединение двух тетраэдров даёт куб - это 8 вершин
Объединение двух кубов даёт гиперкуб - это 16 вершин
Так и просится вопрос: вы эту дичь откуда взяли? У Рыбникова сисовали?

Geenerator
06.05.2025, 00:20
Так и просится вопрос: вы эту дичь откуда взяли? У Рыбникова срисовали?

Это я у китайцев подглядел в И-ЦЗИН
Сначала идут два значения
затем идут Биграммы - тетраэдр
затем Триграммы - куб
затем гексаграммы - гиперкуб

Прошу обратить внимание, всё основано на двоичной логике.

https://t4.ftcdn.net/jpg/03/59/70/97/360_F_359709744_NSqTMGSMsIXtxQnRXHjF6tOycn8jp2s3.j pg

Валенок
06.05.2025, 00:57
Это я у китайцев подглядел в И-ЦЗИН
Сначала идут два значения
затем идут Биграммы - тетраэдр
затем Триграммы - куб
затем гексаграммы - гиперкуб
...
а затем - ворота?

Валенок
06.05.2025, 01:02
...
256 ВОЗМОЖНЫХ СОСТОЯНИЙ!! О_о ОТ НАС СКРЫВАЛИ ЭТО МНОГО ЛЕТ!!!
Но некоторые - посвящены в сие

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