[?]: Универсальные алгоритмы управления устройствами

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
guest_kng

[?]: Универсальные алгоритмы управления устройствами

Post by guest_kng »

Была поставлена задача составления универсальных алгоритмов управления различными устройствами (задвижками, насосами и т.д.) для упрощения проектировния АСУТП в целом. Кто-нибудь занимался этим вопросом.
Мною был составлен универсальный алгоритм управления элктрозадвижкой с реализацией 8-ми различных режимов управления в виде одного функционального блока (на SCL 2.4 Кб). Если кого-то этот вопрос заинтересует отвечайте обязательно вышлю описанние.
--------------------------------------
вот ссылка на описание алгоритма. смотрите все кому интересно. За дополнительной информацией обращайтесь http://rapidshare.de/files/10836004/___ ... _.doc.html
ruslan_nur
Posts: 10
Joined: Fri Jan 11, 2008 7:58 am
Location: Kazakhstan

Универсальные алгоритмы управления устройствами

Post by ruslan_nur »

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

Как придет надо сразу пробовать.

А с чего начинать чтобы все было как надо и потом минимум переделок - только в этом вопрос.
komatic
Posts: 79
Joined: Thu Mar 15, 2007 12:59 pm
Location: Ukraine

Post by komatic »

ссылка - File not found.
а по теме:
я думаю полностью универсальный блок создать не получится, слишком большая избыточность и много ньюансов.
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: Универсальные алгоритмы управления устройствами

Post by CHANt »

ruslan_nur wrote: А с чего начинать чтобы все было как надо и потом минимум переделок - только в этом вопрос.
Начинать надо с принципиальных электрических схем питания, управления и сигнализации этой задвижки. Сколько команд управления будет? Сколько сигналов сигнализации положения (открыта, закрыта)? Будет ли аналоговая величина положения штока задвижки и.т.д. и.т.п. От этого будет зависить алгоритм. Задвижка, клапан, кран это ведь, движение исполнительного органа (штока) в какую-то сторону. Соответственно, если нет величины положения штока, то есть определенное время работы привода от концевика до концевика. Как частный случай: для симулятора - по команде "открыть" включается таймер, по окончанию таймера выставляется сигнал "открыта". По команде "стоп" сбрасываем таймер. То же на закрытие. Алгоритм устройства должен проконтролировать по таймеру от команды пуск , до появления сигнала "открыто", если через отведенное время нет сигнала - авария. Но это упрощенный частный случай... Варианты будут зависить как от типа привода, так и от цепей управления и сигнализации.
ruslan_nur
Posts: 10
Joined: Fri Jan 11, 2008 7:58 am
Location: Kazakhstan

Потихоньку есть прояснения в данном вопросе.

Post by ruslan_nur »

Задвижки все будут запорные. То есть на них небудет позиционера,
команда на открытие и команда на закрытие...
Два концевика - нормально разомкнутые, в крайних положениях
отображающие положение закрыто и соотвественно открыто.

Привод к задвижке будет в смешанном режиме:
автоматический и ручной.
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: Потихоньку есть прояснения в данном вопросе.

Post by CHANt »

Концевики тогда лучще сделать нормальнозамкнутыми - пропало питание с цепей сигнализации, глядь - а у тебя две единички...В момент хода задвижки обе релюшки подтянуты, соответственно при ходе sp@@m арматуры - два нолика на входах контроллера. Что надо то, пример кода для такой задвижки? Симулятор тут не нужен, достаточно возможностей plcsim.
ruslan_nur
Posts: 10
Joined: Fri Jan 11, 2008 7:58 am
Location: Kazakhstan

Post by ruslan_nur »

Если можно... Фрагмент кода на STL... или LAD... что нибудь на STEPe...
У меня их достаточно большое количество будет. Поэтому я ищу способ изначально как нибудь все систематизировать...

(особенно датаблоки соответствующие с ними. Что пересылать и как это обрабатывать в функциях.)
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Post by CHANt »

http://narod.ru/disk/14601000/Valve.rar
Алгоритм в Визио, и функция на STL. В примере использована нотация SWITCH-технологии - ресурс http://is.ifmo.ru
Можно использовать стандартный FB82 MCAT из системных функций - описание на оф. сайте в разделе "Стандартные функции для S7-300 и S7-400. STEP V5.3 Часть 2" - файл 05_SFC-part_2_Taimer_Funct_r.pdf
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Post by CHANt »

http://narod.ru/disk/14631000/Valve_Switch.rar
Приложил еще алгоритм и функцию определения состояния задвижки
ruslan_nur
Posts: 10
Joined: Fri Jan 11, 2008 7:58 am
Location: Kazakhstan

Спасибо большое...

Post by ruslan_nur »

Спасибо большое... Хотел уточнить, какой версии VISIО необходим?
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Post by CHANt »

MS Office Visio 2003
ruslan_nur
Posts: 10
Joined: Fri Jan 11, 2008 7:58 am
Location: Kazakhstan

Post by ruslan_nur »

Большое спасибо. Потихоньку разбираюсь применительно к своим задачам.
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Post by CHANt »

Даный алгоритм применялся к "старым" задвижкам, без внесения изменений в электрическую схему сборки РТЗО (объект был действующий). Т.е. промежуточные реле подсоединялись параллельно к кнопкам управления шкафа и цепям сигнализации (лампочкам). Не самый лучший вариант, но работает...
Подход перевода с графа на STL шаблонирован. На первый взгляд покажется что код функции избыточен. Это верно, но при создании больших алгоритмов оправдан и поиск технологических ошибок происходит в графе, а не в коде функции. На ранее указанном ресурсе (http://is.ifmo.ru ) появился конвертер с графа в код программы (пока только Си и Ассемблер). Это правильный подход, автоматизация процесса формирования листинга позволит избежать ошибок при наборе кода. В принципе, насколько мне известно, идет работа по созданию шаблона XML, для микровина. Со временем появятся и шаблоны под SCL & STL как дополнение к конвертеру...
Алгоритм можно создать как функцию, а не как функциональный блок. В любом случае, необходимо и как обязательное условие, сбрасывать темповые переменные, так как при вызове функции для обработки следующей задвижки может возникнуть "бардак". А реализацию команд можно вынести за пределы функции с конкретным адресом М х.х