[?]: Реализация прерывания программы от кнопки

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
Eugyn_Ch
Posts: 6
Joined: Mon Mar 07, 2011 11:34 am

[?]: Реализация прерывания программы от кнопки

Post by Eugyn_Ch » Mon Mar 07, 2011 11:53 am

Здравствуйте уважаемые форумчане. Назрела проблема.
Есть проект автоматизации подготовки материала.
Написан он криво...нет никакой обратной связи с механизмами (обратных сигналов с пускателей, концевиков и т.д).
Сам алгоритм управления в ручном и автоматическом режиме реализован на SCL.
С ним я разобрался, исправил,но есть один минус, невозможно остановив цикл запустить его с того же момента.
Операторам приходится доводить тех процесс до необходимых начальных условий описанных в алгоритме (набирать или опустошать емкости и т.д).
Необходимо реализовать алгоритм таким образом, чтобы остановив процесс в любой момент времени можно было его запустить дальше.

Отсюда вопрос!
Возможно ли сделать это посредством какого-то OB прерывания или придется переписывать сам алгоритм управления.
В данный момент он исполняется в ОВ35.
В Step7 работать только начинаю так что сильно не бейте...лучше помогите...
Заранее благодарен.

CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: Реализация прерывания программы от кнопки

Post by CHANt » Mon Mar 07, 2011 6:17 pm

Контроллер какой?

Eugyn_Ch
Posts: 6
Joined: Mon Mar 07, 2011 11:34 am

Re: [?]: Реализация прерывания программы от кнопки

Post by Eugyn_Ch » Mon Mar 07, 2011 6:41 pm

Контроллер CPU 313C 6ES7 313-5BF03-0AB0. Попутно возник еще вопрос...возможно ли вызывать один и тот же FC блок несколько раз в одном FB (например FC106),

CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: Реализация прерывания программы от кнопки

Post by CHANt » Mon Mar 07, 2011 8:15 pm

Eugyn_Ch wrote:Контроллер CPU 313C 6ES7 313-5BF03-0AB0. Попутно возник еще вопрос...возможно ли вызывать один и тот же FC блок несколько раз в одном FB (например FC106),
1) В S7-300 есть сохраняемые области памяти, таймеров, счетчиков. Задаются при конфигурировании ЦПУ. Задачу придется решать алгоритмически. Не забудьте и сброс алгоритма предусмотреть. Лучше реализовать с использованием языка SFC. Разбить задачу на состояния и постоянно проверять кнопку пуск/стоп.
2) Вызывать FC в FB можно. И наоборот. Для S7-300 до восьми вложений.

Eugyn_Ch
Posts: 6
Joined: Mon Mar 07, 2011 11:34 am

Re: [?]: Реализация прерывания программы от кнопки

Post by Eugyn_Ch » Wed Mar 09, 2011 6:15 pm

Огромное спасибо за помощь. Пообщавшись с опытными технологами пришли к выводу, что останавливать тех.процесс можно только в определенных состояниях, что весьма упростило задачу. На мой взгляд алгоритм на SCL не лучший вариант, хочу попробовать переписать его на языке GRAPH. Тех процесс практически полностью последователен за исключением одного участка. Скажите есть ли смысл переделывать или оставить как есть на SCL ??? И еще вопрос. Системой управляют 2 независимых друг от друга контроллера 313С с 1 разъемом MPI/DP на каждом. У каждого своя Touch Panel(панелька + проект на WinCCFlex). В дальнейшем планируется расширить объем автоматизации. Отсюда вопрос. Возможно ли связать эти 2 контроллера по профибасу, если разъем уже занят панелькой? И как можно вывести сигнал с панели/контроллера на обычный TV(т.е. VGA сигнал)?

CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: Реализация прерывания программы от кнопки

Post by CHANt » Wed Mar 09, 2011 6:45 pm

Не в SCL дело. Сама методика разработки алгоритма в виде графа нужна. А на каком языке она будет реализована не важно. Для начала конечно будет лучше разобраться с S7-CRAPH. Составьте с технологом граф - кружочки (состояния), стрелки (переходы с состояния на другое состояние) это условия перехода и тогда на S7-CRAPH будет проще перенести. А нотации перевода графов в код программы есть и для SCL, и для STL, и для LAD. Но, нужно освоить программирование как дисциплину и Step7 как инструмент.
Отсюда вопрос. Возможно ли связать эти 2 контроллера по профибасу, если разъем уже занят панелькой?
можно
И как можно вывести сигнал с панели/контроллера на обычный TV(т.е. VGA сигнал)?
Наверное никак. Либо через Антарктиду с кучей устройств в цепочке :D

Eugyn_Ch
Posts: 6
Joined: Mon Mar 07, 2011 11:34 am

Re: [?]: Реализация прерывания программы от кнопки

Post by Eugyn_Ch » Wed Mar 09, 2011 7:12 pm

Спасибо. С алгоритмизацией и программирование я знаком на твердые 3+ (Basic, Pascal, Delphi). А вот со Step7 не особо, т.к. обучения не проходил, а все познаю чтением мануалов и практикой.Да и работа была больше связана с аппаратной частью автоматики. Блок FB состоит в основном из многочисленных многоуровневых условий/циклов и читать это не всегда удобно(читать графы куда проще). Если можно подробнее о соединении контроллеров. Насколько я понял придется использовать Simatic NEt. И конфигурировать соединение Master - Slave или как то по другому???
К вопросу о выводе на TV. А если, как вариант, взять станцию(или обычный ПК) с сетевой картой Profibas, установить туда WinCC и привязать тегами к контроллеру. Возможен ли такой вариант?

CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: Реализация прерывания программы от кнопки

Post by CHANt » Wed Mar 09, 2011 7:27 pm

Вы бы разбивали темы :D смешалось в кучу все - и кони и люди :D
Eugyn_Ch wrote:Спасибо. С алгоритмизацией и программирование я знаком на твердые 3+ (Basic, Pascal, Delphi). А вот со Step7 не особо, т.к. обучения не проходил, а все познаю чтением мануалов и практикой.Да и работа была больше связана с аппаратной частью автоматики.
Сначала технология и алгоритм.
Eugyn_Ch wrote: Блок FB состоит в основном из многочисленных многоуровневых условий/циклов и читать это не всегда удобно(читать графы куда проще).
FB это подпрограмма которая вызывается в циклической программе называемой ОВ, в других средах еще называют POU.
Код можно структурировать как Вам нравится, но с учетом того что контроллер исполняет циклически и постоянно.
Eugyn_Ch wrote: Если можно подробнее о соединении контроллеров. Насколько я понял придется использовать Simatic NEt. И конфигурировать соединение Master - Slave или как то по другому???
Масса способов и системных функций для такого обмена. С оф. сайта качайте документацию - все в свободном доступе. Как и по S7-CRAPH. Курсы, вт.ч. и по GRAPH - http://curswincc.narod.ru/
Eugyn_Ch wrote:К вопросу о выводе на TV. А если, как вариант, взять станцию(или обычный ПК) с сетевой картой Profibas, установить туда WinCC и привязать тегами к контроллеру. Возможен ли такой вариант?
Можно не только WinCC, но и WinCCFlexible RunTime, да и еще практически любую скаду но тогда понадобится Simatic NEt.

Eugyn_Ch
Posts: 6
Joined: Mon Mar 07, 2011 11:34 am

Re: [?]: Реализация прерывания программы от кнопки

Post by Eugyn_Ch » Wed Mar 09, 2011 7:47 pm

Да действительно вопросов много и информация начинает перемешиваться как в голове так и тут. По долгу службы приходиться обслуживать несколько крупных объектов с проектами на базе PCS7 (от 3 до 5 S7-400, несколько серверов, кучу клиентов), и кучу устройств с различными S7 -300. Но обслуживать готовое и создавать самому разные вещи. Так что некоторое представление о структуре контроллеров, программ, блоков, циклов имею. А вот многих нюансов с которыми не сталкивался не знаю. Да и помочь особо некому, коллектив молодой не особо опытный. Спасибо за помощь и толчок в нужном направлении. Закончу с этим алгоритмом и начну дорабатывать/разрабатывать проект Hardware под следующие пожелания боссов! (rr) (h)

Eugyn_Ch
Posts: 6
Joined: Mon Mar 07, 2011 11:34 am

Re: [?]: Реализация прерывания программы от кнопки

Post by Eugyn_Ch » Wed Mar 23, 2011 3:51 pm

Здравствуйте. Если не затруднит помогите решить еще одну проблему. Существует FB, который содержит алгоритм управления тех.процессом. Для запуска и контроля приводов(эл.двигателей, задвижек) был написан простой универсальный блок FC. Вопрос: каким образом можно вызывать этот блок, каждый раз подставляя во внутренние переменные адреса управления различными приводами(1 вызов FC= адреса для 1 привода, 2 вызов этого FC = адреса для 2 привода). Можно написать много FC блоков под каждый привод, можно создать много DB блоков под каждый привод, но мне кажется это не совсем оптимальный вариант. И еще вопрос: в блоке используется 2 таймера для компенсации задержки реле, будут ли они правильно отрабатывать если FC блок вызван одновременно несколько раз. Может кто-то сталкивался с такой проблемой? Если не жалко своего труда, пришлите свои варианты аналогичных блоков управления приводами или заслонками. Буду рад любой помощи...проект горит. (sos)

CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: Реализация прерывания программы от кнопки

Post by CHANt » Wed Mar 23, 2011 4:45 pm

Да нет никаких проблем. Главное внутри FC или FB не использовать абсолютную адресацию памяти контроллера или DB. Также как и номер используемого таймера и базу времени таймеров можно вывести на вход функции и при различных вызовах использовать различные значения. Да и DB можно в мультиэкземплярах... Вообще - первый класс, первая четверть. :) Скачайте ,базовые курсы по Step7 http://www.plcforum.uz.ua/viewtopic.php?f=9&t=10756

AndreyUA
Posts: 11
Joined: Tue Sep 28, 2010 7:39 am

Re: [?]: Реализация прерывания программы от кнопки

Post by AndreyUA » Wed Apr 20, 2011 7:36 am

А почему бы не использовать под каждый привод отдельный DB, где хранить всю инфу по данному приводу? В программе дергать fc с соответствующими значениями из соответствующего DB блока. По-моему это будет самый оптимальный вариант.

Post Reply