Как из программы SFC получить компактный код LD?

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы
Степа
Любитель
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Как из программы SFC получить компактный код LD?

Сообщение Степа »

Кстати, только что сообразил...

Из состояний S1 и S3 условий выхода должно быть больше: скажем нет датчика SQ1 и нажата SB1 - проход по веточке S0-S1: К1 и K2 включились. А тут - хрясь! - и пропал SQ4. Что сделает алгоритм? А ровным счетом ничего - не предусмотрен выход.
Пока я писал уравнения и упрощал, так увлекся и часть ошибки исправил: этот набор выключит K1, но не выключит K2. Правильно должно быть так:
/SB3+(/K3*(/SQ3+/SQ4))+(K3*(/SQ1+/SQ2))=(r)K2

Аватара пользователя
CHANt
Профессионал
Сообщения: 565
Зарегистрирован: 13 окт 2012, 15:24

Re: Как из программы SFC получить компактный код LD?

Сообщение CHANt »

Михайло, покажи, если не трудно, некомпактный вариант, скажем S0->S1 (со всеми переходами S0) и S1 с переходами

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как из программы SFC получить компактный код LD?

Сообщение Михайло »

Ну это тривиальный случай... :) Если говорить о двух состояниях, связанных двумя встречными переходами...

Аватара пользователя
CHANt
Профессионал
Сообщения: 565
Зарегистрирован: 13 окт 2012, 15:24

Re: Как из программы SFC получить компактный код LD?

Сообщение CHANt »

Меня интересует, как ты учитываешь, что граф должен выполнятся в состоянии S1 а не в S0. Вставь,если не трудно скриншот. Можешь всего алгоритма.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как из программы SFC получить компактный код LD?

Сообщение Михайло »

Ааа. Речь о том, как логическими уравнениями определить, какое состояние исходное, а какое нет?
Инициализация делается очень просто: если все состояния графа неактивны (в том числе исходное), то исходное состояние установить.
S0_SET = NOT (S0) AND NOT (S1) AND NOT (S2) AND NOT (S3) ...
Второй вариант:
S0 = NOT (S1) AND NOT (S2) AND NOT (S3) ...

Степа
Любитель
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Как из программы SFC получить компактный код LD?

Сообщение Степа »

Вон, про какие четыре реле ты говорил...
Тогда я тебя обрадую, тут можно обойтись тремя: с помощью трех двоичных элементов /а реле у нас как раз двоичный элемент - включено или выключено/ можно описать восемь состояний - с 0 по 7. У тебя задействовано пять состояний: с 0 по 4. Если оптимизировать одно состояние, то можно будет обойтись двумя.
Кстати, именно за эту оптимизацию я и говорил в первом сообщении...

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как из программы SFC получить компактный код LD?

Сообщение Михайло »

у стандартного реле обычно не более 4 переключающих контактов...

Степа
Любитель
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Как из программы SFC получить компактный код LD?

Сообщение Степа »

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

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

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

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как из программы SFC получить компактный код LD?

Сообщение Михайло »

И нет возможности для оптимизации? ;)

Степа
Любитель
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Как из программы SFC получить компактный код LD?

Сообщение Степа »

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

Если же речь идет за программу на LD, то три реле - минимум: тут делать размножение сигналов не нужно, усиливать сигналы от датчиков тоже... И уравнения можно не переделывать.

Так что надо все-таки определиться с задачами...

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как из программы SFC получить компактный код LD?

Сообщение Михайло »

Задача в три шага:
1. SFC
2. SFC -> LD
3. Оптимизация

Последний шаг должен позволить 7 штук реле заменить на 3-5...

RS-триггеры легко заменяются на простые релейные схемы. Типовое реле имеет до 4 переключающих контактов. Существуют реле с бОльшим количеством контактов, но их надо еще поискать...

Степа
Любитель
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Как из программы SFC получить компактный код LD?

Сообщение Степа »

Михайло писал(а):Последний шаг должен позволить 7 штук реле заменить на 3-5...
Если только вместо бесконтактных датчиков поставить нажимные, также с большим количеством контактов. Тогда можно не ставить четыре реле и обойтись тремя.
А бесконтакники в релейку включаются через реле: я вот прямо сейчас схему такую смотрю. Весьма лохматых годов... Судя по схеме, обычные бесконтактники, такие же, как ВБИ /тут марки нету/. И контактные. Тоже почему-то в релейку заведены не напрямую, а через реле.

Оптимизация, по факту уже выполнена: контроль состояний вынесен "за скобки" и оптимизирован.

Ответить