PDA

Просмотр полной версии : А почему бы не сделать стандартный компонент пакетного переключателя?



Peresvet
03.08.2026, 09:43
Я частенько задавался вопросом почему создатели сред программирования не сделали самый очевидный и востребованный компонент. Во всех старых станках имелся пакетный переключатель который активировал огромное количество контактов при переключении. И казалось бы что такие вещи как плк и программируемые реле несут огромное наследие перехода от релейных схем. Но почему то самый распространенный компонент никто не удосужился сделать а ведь он вообще драматически упрощает программирование контроллеров и в большинстве случаев может заменить целые схемы.
Что он должен собой представлять?
1)Бинарный : есть один вход и целая куча выходов.
И в этом блоке таблица состояний всех выходов при 1 или 0 на входе. Например 10 выходов, какие то должны быть включены при нуле какие то должны быть включены при единице . Там же может быть и набор активируемых констант при каждом состоянии. Например пришла единица на вход это значит что выключаются одни выходы другие включаются и также по таблице меняются константы.
2) Многозначный: На вход может быть подана цифра например от 1 до 10 и в компоненте расположена таблица с 10 вариантами выходных сигналов для каждого состояния на 10 выходов. (именно двухмерная таблица)
3) Тоже что и в предыдущих вариантах но в таблице ещё и добавлены значения таймеров для каждого выхода. Потому что может быть что то нельзя включать или выключать сразу, нужно подождать согласно технологическому процессу.

Peresvet
03.08.2026, 09:56
То есть мы получаем программу как набор "кадров" состояния с огромным количеством подключаемых вариантов состояний и констант и задержек. Это во многих случаях гигантское упрощение программы. Когда то, сто лет назад , такое устройство, которое хранит огромный списков сложных состояний, это была мечта механиков и электриков. А теперь почему то, когда с точки зрения программирования это стало банально просто, никто так и не сделал такой компонент.

Peresvet
03.08.2026, 10:07
Есть и другой вариант пакетного переключения - последовательный. То есть при активации входа активируется цепочка каких то действий с временными интервалами. Упрощенно говоря это однотональная музыка. В этом случае мы имеем таблицу для программирования: интервал работы+значение уровня, интервал работы +значение уровня.... и так раз 10. Если значение уровня равно нулю то это пустая пауза если значение равно 1 или какому то значению то это работа.
Я понимаю что по началу все это требует некоторого переосмысления и привыкания. Но потом когда мозги широкого круга инженеров привыкнут окажется что есть огромное количесвто идей которые можно сделать совершенно другими способами, не так как это делали ранее.
А теперь представьте что можно соединить оба варианта пакетных переключателей: параллельный и последовательный. Да соглашучь что такая таблица состояний будет выглядетьочень сильно сложно, но она при всей сложности остается элементарно понятной во всех своих деталях и вообще в целом концептуально.
Грубо говоря каждая ячейка состояния если ее открыть имеет последовательный алгоритм работы....

melky
03.08.2026, 10:08
ST вам в руки.
однажды по просьбе был сделан макрос, аналогичный из Zelio (Boolean), но там многа входов (до 5) и один выход и под любую комбинацию на входах по таблице формируем выход.
Замечу, что он не прижился тут у народа...

Dimensy
03.08.2026, 10:13
А что вам мешает самому реализовать данные компоненты и поделится с сообществом? Среда разработки позволяет

МихаилГл
03.08.2026, 10:30
ST вам в руки.
однажды по просьбе был сделан макрос, аналогичный из Zelio (Boolean), но там многа входов (до 5) и один выход и под любую комбинацию на входах по таблице формируем выход.
Замечу, что он не прижился тут у народа...

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

kondor3000
03.08.2026, 10:31
А что вам мешает самому реализовать данные компоненты и поделится с сообществом? Среда разработки позволяет

Да не хочет он ничего делать, только трепаться умеет.

МихаилГл
03.08.2026, 10:35
Да не хочет он ничего делать, только трепать языком умеет.

Можно, а зачем! Вот тут эта фраза актуальна на 146%. Тем более пакетник может быть n- позиционным. Тут как то один пользователь требовал троичную логику, а тут какая нужна будет для входа?

1exan
03.08.2026, 10:37
Есть и другой вариант пакетного переключения - последовательный. То есть при активации входа активируется цепочка каких то действий с временными интервалами. Упрощенно говоря это однотональная музыка. В этом случае мы имеем таблицу для программирования: интервал работы+значение уровня, интервал работы +значение уровня.... и так раз 10. Если значение уровня равно нулю то это пустая пауза если значение равно 1 или какому то значению то это работа.
Я понимаю что по началу все это требует некоторого переосмысления и привыкания. Но потом когда мозги широкого круга инженеров привыкнут окажется что есть огромное количесвто идей которые можно сделать совершенно другими способами, не так как это делали ранее.
А теперь представьте что можно соединить оба варианта пакетных переключателей: параллельный и последовательный. Да соглашучь что такая таблица состояний будет выглядетьочень сильно сложно, но она при всей сложности остается элементарно понятной во всех своих деталях и вообще в целом концептуально.
Грубо говоря каждая ячейка состояния если ее открыть имеет последовательный алгоритм работы....

Всё давно придумано - поищите "Реализация конечных автоматов на ST"

EFrol
03.08.2026, 10:49
Из-за этого что-ли митинг?


function_block CustomBlock

var_input
I1, I2, I3 : bool;
end_var

var_output
Q1, Q2, Q3 : bool;
end_var

if not I1 and not I2 and not I3 then
Q1 := false; Q2 := false; Q3 := false;
elsif I1 and not I2 and not I3 then
Q1 := false; Q2 := false; Q3 := false;
elsif not I1 and I2 and not I3 then
Q1 := false; Q2 := false; Q3 := false;
elsif I1 and I2 and not I3 then
Q1 := false; Q2 := false; Q3 := false;
elsif not I1 and not I2 and I3 then
Q1 := false; Q2 := false; Q3 := false;
elsif I1 and not I2 and I3 then
Q1 := false; Q2 := false; Q3 := false;
elsif not I1 and I2 and I3 then
Q1 := false; Q2 := false; Q3 := false;
else
Q1 := false; Q2 := false; Q3 := false;
end_if
end_function_block




function_block CustomElement

var_input
I1, I2, I3 : bool;
end_var

var_output
Q1, Q2, Q3 : bool;
end_var

var
dim : array [0..7] of udint := [ 0, 0, 0, 0, 0, 0, 0, 0 ] ;
i, q : udint;
end_var

i.0 := I1; i.1 := I2; i.2 := I3;
q := dim[i];
Q1 := q.0; Q2 := q.1; Q3 := q.2;

end_function_block

Peresvet
03.08.2026, 11:29
Да не хочет он ничего делать, только трепаться умеет.

Вот это наверное главная проблема российской действительности, казалось бы интеллигенция, но вместо бодрого оппонирования и продуктивной дискуссии по существу, имеем кабачное хамство. Увы как говорят философы, "эмоциональная рефлексия" это то что пока ещё не работает в головах широких народных масс. Эмоциональное развитие требует долгого и горького личного опыта. Ждем когда вы от отрицания перейдете к торговле а потом к принятию или как оно там по схеме? Я собственно и говорил о том что по началу мозги инженеров должны привыкнуть к новому а потом понравится :)

Конечно на ST можно что то сделать. Но это будет не тот удобный компонент с интерактивной таблицей для настройки, а куча кода который нужно каждый раз редактировать. Это можно и просто макросом накидать с элментами "И". Весь смысл в том что именно интерактивная таблица делает программирование этого компонента максимально наглядным и удобным.
Мне уже наверное должны большую премию с овена выписывать за инновационные идеи , оппонирование и обратную связь. Жду крупную сумму денег с нетерпением:).

Peresvet
03.08.2026, 11:35
Всё давно придумано - поищите "Реализация конечных автоматов на ST"

Это отличная идея как запутать пользователя- назвать этот компонент "конечный автомат" , а в хелпе выложить копипасту ппраграфа из учебника тау 1968 года. Типа: нате выкусите ,маслята, нашего ремесла.
Я бы назвал просто "переключаемый набор состояний" или переменных. Или просто "набор состояний" или "пакетный переключатель" чтобы дедушки в очках были рады вспомнить молодость.

EFrol
03.08.2026, 11:42
За всю свою жизнь перепробовал кучу ЯП и IDE к ним, со огромным количеством всяких визардов и помошников, но почему-то обычный Notepad с компилятором с языка C мне больше по душе. Проще, универсальнее, быстрее и т.д.

Peresvet
03.08.2026, 11:45
Вот просто для сравнения. Проект "светофор сложного перекрестка" с дополнительными секциями, морганиями , стрелками. Если его сделать по каласике, с теми компонентами что тут есть, то это будет такое нагромождение всяких тригеров и таймеров что там можно сутакми копаться и все равно не понять как он будет работать. А вот с помощью переключаемой таблицы состояний, да с таймерами в каждой ячейке все становится легко и очевидно и сложность разработки снижается со студенческого до школьного 6 класса.
Понятное дело что при этом за подобный проект тогда уже на сталинскую премию и лицо на доске почета уже расчитывать не получится. Но прогресс то должен двигаться в перед или нет?

EFrol
03.08.2026, 11:50
У меня новичек спросил: "Почему на Arduino можно сделать, то что ПР-ка не тянет?"
Я ответил: "Потому-что прогресс движется только вперед".

Peresvet
03.08.2026, 11:50
За всю свою жизнь перепробовал кучу ЯП и IDE к ним, со огромным количеством всяких визардов и помошников, но почему-то обычный Notepad с компилятором с языка C мне больше по душе. Проще, универсальнее, быстрее и т.д.

Ясное дело что если вы владеете объектно ориентированным программированием то все можно сделать гораздо изящнее и понятнее (для самого себя) и вы будете иметь возможность работать с очень высоким уровнем сложности алгоритмов. Но для этого нужно иметь 5 лет опыта разработки в С++. У меня лично тоже все время руки чешутся послать подпльше все эти МЭКовские компоненты и накидать в пять строчек то что занимает четыре экрана.
Я вот для разминки знаний, делал проект с абстракным массивом насосов. То есть есть станция где есть много насосов с резервированием, и должна быть балансировка ресурса двигателей. С точки зрения ООП интереснейшая задача, где насос является экземпляром класса, он может быть активным или сломанным, может быть передан другой насосной станции с помощью комму тации труб. То есть унего есть владелец-станция. Он может работать может быть выключеным. У него есть поля его моточасов, метка о сомнительном поведении в случае поломки, например вибрации или температуры, поле характеризующее актуальность информации которая его описывает. У него таже есть время жизни, когда он установлен и демонтирован. А вообще он числится в базе данных где написано кто поставщик,где его сделали и серийный номер, и можно сравнить его ресурс сколько он проработал по сравнению с другими экземплярами этого и других производителей. А также карта поломок, карта спецификации запчастей , журнал и процедура ТО............ ну вы поняли в общем.
И между прочим все это в парадигме ООП делается очень красиво и всего пару страниц кода. Сделаете вы такое Средствами LD ST или что там еще имеется? Это же с умас ойти можно какие схемы получатся.

EFrol
03.08.2026, 11:52
Ясное дело что если вы владеете объектно ориентированным программированием то все можно сделать гораздо изящнее и понятнее (для самого себя) и вы будете иметь возможность работать с очень высоким уровнем сложности алгоритмов. Но для этого нужно иметь 5 лет опыта разработки в С++. У меня лично тоже все время руки чешутся послать подпльше все эти МЭКовские компоненты и накидать в пять строчек то что занимает четыре экрана.

Золотые слова!!! Что же нас заставляет идти в ногу с ПРОГРЕССОМ?

МихаилГл
03.08.2026, 11:59
Для всего этакого по шагам есть SFC, не для реле конечно, но именно так как вы расписываете.

Sulfur
03.08.2026, 12:04
А может просто выбирать контроллер под задачу, а не натягивать задачу на контроллер?

EFrol
03.08.2026, 12:10
Я уже несколько лет портирую с Arduino на ПР и обратно.
С ПР на Arduino получается всегда, т.е. любая задача натягивается на Arduino без особых проблем.
А вот обратно и в правду приходится долго подбирать контроллер.

Даже свои визарды иногда делаю - Excell + VBA = исходник на C++, если сильно приспичит.

Peresvet
03.08.2026, 12:13
Резюмируя всю эту лабуду что я написал. Конечно же на том уровне который делают ПЛК и ПР проще использовать визуальные компоненты , так как это и принято. И вот переключаемая таблица состояний была бы отличным дополнением для возможностей такого рода программ. И к стати кто то тут отличную идею придумал что можно делать и наоборот, определённому соотношению входных сигналов делать логический выход. А если сделать определённое соотношение входных сигналов чтобы вызывало определенное соотношение выходных сигналов, то это уже очень сложно получится. Хотел бы я посмотреть на практике на что это будет похоже. Мне кажется инженеры просто всегда избегали техпроцессы где может потребоваться такая сложная логика и мы их даже не представляем вот так сходу.

EFrol
03.08.2026, 12:24
Есть такой псевдоязык Verilog (https://ru.wikipedia.org/wiki/Verilog)
Т.е. с помощью текста описывается работа ПЛИС.
Значит описывать логику работы конечных автоматов лучше текстом, чем таблицами или схемами.

melky
03.08.2026, 12:33
Peresvet
Мне кажется инженеры просто всегда избегали техпроцессы где может потребоваться такая сложная логика и мы их даже не представляем вот так сходу.

я вам по секрету расскажу, что делает макрос "Boolean" в Zelio. Он нафик убирает портянку блоков из всяких комбинаций И, ИЛИ, которые воздействуют на один выход. Если бы кто-то посмотрел как работает данный блок, не буду тыкать пальцем :) то вопросов бы не возникало. Но людям же удобнее, набрасывать кучу И, ИЛИ на схему и делать кучу малу из связей.

То же, относится и к таймерам - добавить вход и выход дополнительный в прошивку не составляет особого труда "в теории", и все бы работало как и прежде. Например в случае с входом Reset - нет входа, не привязан в старом проекте, значит там 0. ничего сбрасываться не будет. НО... я знаю в чем заключается НО, но не скажу, а то мне опять нагорит :)
для этого придется делать версию ОЛ 4.Х :)

kondor3000
03.08.2026, 13:12
Вот это наверное главная проблема российской действительности, казалось бы интеллигенция, но вместо бодрого оппонирования и продуктивной дискуссии по существу, имеем кабачное хамство. Увы как говорят философы, "эмоциональная рефлексия" это то что пока ещё не работает в головах широких народных масс. Эмоциональное развитие требует долгого и горького личного опыта. Ждем когда вы от отрицания перейдете к торговле а потом к принятию или как оно там по схеме? Я собственно и говорил о том что по началу мозги инженеров должны привыкнуть к новому а потом понравится :)

Конечно на ST можно что то сделать. Но это будет не тот удобный компонент с интерактивной таблицей для настройки, а куча кода который нужно каждый раз редактировать. Это можно и просто макросом накидать с элментами "И". Весь смысл в том что именно интерактивная таблица делает программирование этого компонента максимально наглядным и удобным.
Мне уже наверное должны большую премию с овена выписывать за инновационные идеи , оппонирование и обратную связь. Жду крупную сумму денег с нетерпением:).

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

Dimensy
03.08.2026, 14:03
melky Лоджик уже не исправить. Вся надежда на Альту (хотя, там такие наполеоновские планы, что я сомневаюсь)

melky
03.08.2026, 14:54
Dimensy исправить можно, особенно если не гнаться за координатами с 8-мью знаками после запятой... :)
в Альту пока веры нет, все, что к ней относится, это пока бла-бла-бла, не более того... Кстати недавний тому пример с Полигоном тому подтверждение.... все когда-нибудь, а сейчас нема, а будет ли мы не зна.... и так далее....

Peresvet
04.08.2026, 10:22
Вот что ни говорите, но я считаю что пакетный переключатель это маст хэв для подобного рода устройств таких как программируемое реле. Они выросли из задачи замены релейных схем на старых станках. На старых станках есть пакетные переключатели , значит и логично следует что в программируемых реле они должны быть.
Я видел много раз как ПР используют для модернизации всяких сверлильных и точильных и прочих станков где целая куча реле и переключателей. У меня знакомый вообще на постоянной основе этим занимается у него есть объявление на авито где он предлагает такие услуги. Ему высылают фото какой то старой желтой схемы и он присылает программу или какойнибудь ПР-200 который он уже прошил. И схему куда и что подключать. Это ребятки целая индустрия и я вам совершенно на холяву предлагаю выйти в лидеры в этом деле. Ну как хотите.

Сергей0308
04.08.2026, 11:34
Вот что ни говорите, но я считаю что пакетный переключатель это маст хэв для подобного рода устройств таких как программируемое реле. Они выросли из задачи замены релейных схем на старых станках. На старых станках есть пакетные переключатели , значит и логично следует что в программируемых реле они должны быть.
Я видел много раз как ПР используют для модернизации всяких сверлильных и точильных и прочих станков где целая куча реле и переключателей. У меня знакомый вообще на постоянной основе этим занимается у него есть объявление на авито где он предлагает такие услуги. Ему высылают фото какой то старой желтой схемы и он присылает программу или какойнибудь ПР-200 который он уже прошил. И схему куда и что подключать. Это ребятки целая индустрия и я вам совершенно на холяву предлагаю выйти в лидеры в этом деле. Ну как хотите.

Так в ПР200(ИПП120) имеется комбобокс, нет проблем, в смысле, можно выбрать нужный режим, даже подписать его понятно, можно даже бегущей строкой, короче, всё уже придумано до(для) нас!
Короче, как угодно можно сделать, в смысле, глаза разбегаются от количества вариантов, плохо, что Вы их не видите!
Я же много раз выкладывал мультиплексоры, демультиплексоры:
89958

Кстати, эти демультиплексоры я давным-давно придумывал, в смысле, сейчас их делаю совсем по-другому и мне кажется, они получаются намного(в разы) проще и универсальнее, в смысле с настройками в свойствах макроса:
89959

У меня и коммутаторы есть, можно например подключать дискретные входы-выходы ПР в произвольном порядке, а затем программно задать соответствие:
https://owen.ru/forum/showthread.php?t=12691&page=27&p=248907&viewfull=1#post248907

Peresvet
04.08.2026, 17:30
Сергей, Я посмотрел ваш коммутатор. Вы правда думаете что он похож на то о чем я говорил? Если я правильно понял то там у вас нужно каждый пресет зашифровать в число от нуля до 256. А потом выбирать пресет активацией одного из входов?
Это может выход, но не назовешь его удобным. К стати говоря заставить его работаь у меня не получилось. я ему дал sel1 211 и активировал вход 1 но на выходе получил дулю с маком.

к макросам я так понимаю хелп нельзя прикрепить? Да и боюсь что такое начнут прикреплять....

Вот почему я могу вот так написать и оно понятно а те кто создают хелпы не могут?
вот: Принцип работы коммутатора:
При активации одного из восьми входов, на выходы подается одно из числел со входов sel преобразованное в двоичный вид, выходы 1-8 соответствуют битам этого числа.
например активация второго входа выдаст на выходе число со входа sel2 преобразованное в двоичный вид.
Диапазон возможногых чисел на входах типа "sel" 0-256 тип int

Или я всеравно неправильно понял?

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

Ух! зачем вы его вообще привели в этой теме если он вообще и близко не имеет ничего общего с тем вопросом который я задавал?
Только время потерял разбираясь в ваших постах.

Сергей0308
04.08.2026, 20:09
Сергей, Я посмотрел ваш коммутатор. Вы правда думаете что он похож на то о чем я говорил? Если я правильно понял то там у вас нужно каждый пресет зашифровать в число от нуля до 256. А потом выбирать пресет активацией одного из входов?
Это может выход, но не назовешь его удобным. К стати говоря заставить его работаь у меня не получилось. я ему дал sel1 211 и активировал вход 1 но на выходе получил дулю с маком.

к макросам я так понимаю хелп нельзя прикрепить? Да и боюсь что такое начнут прикреплять....

Вот почему я могу вот так написать и оно понятно а те кто создают хелпы не могут?
вот: Принцип работы коммутатора:
При активации одного из восьми входов, на выходы подается одно из числел со входов sel преобразованное в двоичный вид, выходы 1-8 соответствуют битам этого числа.
например активация второго входа выдаст на выходе число со входа sel2 преобразованное в двоичный вид.
Диапазон возможногых чисел на входах типа "sel" 0-256 тип int

Или я всеравно неправильно понял?

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

Ух! зачем вы его вообще привели в этой теме если он вообще и близко не имеет ничего общего с тем вопросом который я задавал?
Только время потерял разбираясь в ваших постах.

Да не расстраивайтесь Вы так(постепенно доберёмся и до того), принципы работы коммутатора достаточно ясно и понятно описаны в теме, в смысле позволяет любой выход скоммутировать с любым входом по вашему усмотрению, чего здесь непонятного? Настраивается (для каждого выхода) с какого входа будет поступать на него сигнал.
Я вроде понял что Вы хотите, у меня и такой макрос имеется, макрос называется ПЗУ, позволяет комбинацией состояний 8 дискретных входов, проще говоря задавая число 0-256(до 257 ячеек памяти) получить на выходе любую комбинацию 32 дискретных выходов, проще говоря любое значение диапазона 0 - 4294967295, Вы вроде это хотели, короче здесь этот макрос выкладывал:
https://owen.ru/forum/showthread.php?t=28531&page=9&p=275431&viewfull=1#post275431
https://owen.ru/forum/showthread.php?t=37112&page=4&p=396908&viewfull=1#post396908
Для оперативного изменения алгоритма работы макроса можно использовать энергонезависимую память(если хватит) и использовать для задания значений каждой ячейки что-то типа интерактивной таблицы состояния 32 бит(выходов), вроде всё как Вы хотели, мне кажется на FBD я бы подобное сделал за 1-2 часа. На ST говорят гораздо проще сделать, что-то типа разминки для мозгов, что тут распинаться, давно бы сделали, если Вам этого так хочется!
Здесь подобным способом работу таймера с экрана настраивал:
https://owen.ru/forum/showthread.php?t=23201&page=16&p=318521&viewfull=1#post318521

89961

Peresvet
06.08.2026, 08:41
Я сделал все варианты переключателей с помощью макросов. И включение двух вариантов наборов выходов по логическому входу и включение вариантов в зависимости от активации определенного логического входа и т.п. Это несложно делается на тернарных условных операторах ( кто только туда это название всунул и зачем?) . Сделал я это не потому что это мне нужно, сам переключатель мне не не ужен в данный момент а просто для понимания ситуации. Да сделать можно, но это далеко не тоже самое как если бы был готовый элемент в котором можно было заполнять готовую интерактивную таблицу состояний. В данный момент это не удобно заполнять, в лучшем случае приходится открывать макрос и заполнять поля констант.

Сергей0308
06.08.2026, 11:29
Я сделал все варианты переключателей с помощью макросов. И включение двух вариантов наборов выходов по логическому входу и включение вариантов в зависимости от активации определенного логического входа и т.п. Это несложно делается на тернарных условных операторах ( кто только туда это название всунул и зачем?) . Сделал я это не потому что это мне нужно, сам переключатель мне не не ужен в данный момент а просто для понимания ситуации. Да сделать можно, но это далеко не тоже самое как если бы был готовый элемент в котором можно было заполнять готовую интерактивную таблицу состояний. В данный момент это не удобно заполнять, в лучшем случае приходится открывать макрос и заполнять поля констант.

У меня макрос открывать не надо, настройки(значения) вводятся в свойствах макроса, не открывая его.
Я вообще то предлагал для настроек использовать энергонезависимую память и настраивать интерактивную таблицу с экрана, точнее не таблицу, а строчку, в смысле, по одной ячейке памяти заполнять с экрана, с указанием(выбором) её номера, чтобы экран не загромождать, у меня сделано подобным образом в этом проекте, по одной уставке настраивается, всего 32 уставки:
89981

89982

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

Traveller
20.08.2026, 14:32
Я частенько задавался вопросом почему создатели сред программирования не сделали самый очевидный и востребованный компонент. Во всех старых станках имелся пакетный переключатель который активировал огромное количество контактов при переключении. И казалось бы что такие вещи как плк и программируемые реле несут огромное наследие перехода от релейных схем. Но почему то самый распространенный компонент никто не удосужился сделать а ведь он вообще драматически упрощает программирование контроллеров и в большинстве случаев может заменить целые схемы.
Что он должен собой представлять?
1)Бинарный : есть один вход и целая куча выходов.
И в этом блоке таблица состояний всех выходов при 1 или 0 на входе. Например 10 выходов, какие то должны быть включены при нуле какие то должны быть включены при единице . Там же может быть и набор активируемых констант при каждом состоянии. Например пришла единица на вход это значит что выключаются одни выходы другие включаются и также по таблице меняются константы.
2) Многозначный: На вход может быть подана цифра например от 1 до 10 и в компоненте расположена таблица с 10 вариантами выходных сигналов для каждого состояния на 10 выходов. (именно двухмерная таблица)
3) Тоже что и в предыдущих вариантах но в таблице ещё и добавлены значения таймеров для каждого выхода. Потому что может быть что то нельзя включать или выключать сразу, нужно подождать согласно технологическому процессу.Буквально недавно решал схожую задачу, только наоборот. :)
В общем на мой взгляд это настолько примитивно, и уже как бы "кирпичи" для этого все есть. :) Ладно вот программулинка с готовым функционалом на 4 положения, там есть лишние компоненты, но это просто для тестирования программы в отладчике, что бы косяков не было... :)
Там должно быть все понятно, численные константы это как раз числовое значение битовой маски, можете делать любую, как увеличить или уменьшить кол-во положений пакетника, думаю разберетесь, там ничего сложного, все макросы открыты и их можете у себя редактировать! Было бы желание :)