PDA

Просмотр полной версии : Выбор выполняемой программы в ПЛК



Ollegator
16.05.2011, 14:19
Суть вопроса в следующем.
Имеется несколько разных программ для ПЛК 150 (в районе 10-15), они уже написаны. Хотелось бы иметь возможность залить их все в контроллер, а выбор той, которая будет выполнятся, происходил в зависимости от состояния дискретных входов при загрузке.
Исходя из того что я знаю, по простому сделать это невозможно. Т. е. нужно будет писать новую программу, объединяющую все существующие, в ней проверять состояние входов и пускать по соответствующей ветке. Однако тут куча проблем, программа получится большой и сложной, придется менять совпадающие названия POU, некоторых глобальных переменных, размерности массивов еще чего то, сразу куча всякого вылезет и времени займет немерено.
Однако, я знаю, что очень многого не знаю про программирование ПЛК. Например, я не использовал и не совсем понимаю как использовать Task Configuration, может там чем нить поиграть можно? И, может, я не прав и есть относительно легкие способы решить данную проблему?

Николаев Андрей
16.05.2011, 23:18
1. Самый правильный - переписать программу с учетом данных требований. Тем более, если программы однотипны - можно создать одну, и менять только значение входов или режимов...
2. Как Вы и писали - заводите еще одну программу. В неё вставляете Ваши подпрограммы, естественно переименовав. И пишете по условию какую из подпрограмм вызывать. Единственно - надо подумать о том, чтобы корректно заканчивать программы, чтобы перейдя в другую не оставить хвостов от предыдущей (в виде не выключенного выхода, к примеру).
3. Task Configuration. Можно вызывать подпрограммы в зависимости от внешнего события (срабатывания дискретного входа). Но опять же надо позаботится о корректном переходе между программами.

Ollegator
17.05.2011, 13:40
Понятно, легкого способа нет, придется перерабатывать.
Насчет корректного перехода, то он в моем понимании и не нужен, проверку входов планирую осуществлять один раз в момент загрузки.

Николаев Андрей
17.05.2011, 16:09
Тогда бы я предпочел Task Manager. Все что нужно - просто переименовать программы.

вут
06.09.2012, 17:41
Подскажите плз , что делаю не так :
ставлю галочку на событии start , даю имя start , - кнопка создать , появляется функция с именем start , в функции пишу : zummer:=1; (zummer -спец.выход) .
ставлю галочку на событии stop , даю имя stop , - кнопка создать , появляется функция с именем stop , в функции пишу : zummer:=0;
Предпологаю , что зуммер должен звучать когда прога в старте и не звучать когда плк в стопе . но этого не происходит ... в чем я не прав ?

capzap
06.09.2012, 17:48
Подскажите плз , что делаю не так :
ставлю галочку на событии start , даю имя start , - кнопка создать , появляется функция с именем start , в функции пишу : zummer:=1; (zummer -спец.выход) .
ставлю галочку на событии stop , даю имя stop , - кнопка создать , появляется функция с именем stop , в функции пишу : zummer:=0;
Предпологаю , что зуммер должен звучать когда прога в старте и не звучать когда плк в стопе . но этого не происходит ... в чем я не прав ?

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

Kirill
07.09.2012, 12:04
Предпологаю , что зуммер должен звучать когда прога в старте и не звучать когда плк в стопе . но этого не происходит ... в чем я не прав ?

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

вут
07.09.2012, 18:57
:o :o :o
да какое уж там творчество
:rolleyes:
два скрина , вот и всё :
http://clip2net.com/s/2hj4w
http://clip2net.com/s/2hj5l
http://clip2net.com/s/2hj5K
http://clip2net.com/s/2hj65
переменная zu -global , zummer -спец.выход из конфигурации плк (пищалка) .
думал так : когда кнопочку старт-стоп на фасаде плк нажимаешь - плк должен пищать или нет ....

capzap
07.09.2012, 19:27
причем тут кнопочка, чтоб ее задействовать, надо в конфигурацию модуль буттон добавить и тогда зуммер Ваш можно использовать, а старт и стоп в задачах это работа самого плк, после включения питания

вут
10.09.2012, 11:11
Ув. capzap ! но вопрос не о использовании буттон , а о использовании задач. почему при конфигурации как на скринах бит "zu" не взводится при переходе плк в run , и не сбрасывается при стоп ?

capzap
10.09.2012, 11:15
значит события не наступали, вроде все просто :)

Валенок
10.09.2012, 11:22
переменная zu -global , zummer -спец.выход из конфигурации плк
Не совсем ясно - сколько переменных ?
zu-то вы выставляете, а с какого перепугу она должна где-то cделать zummer:=zu, если ПЛК - в стопе ? Все-таки не мешает знать некоторые принципы :)

вут
11.09.2012, 09:13
Еще раз прошу обратить внимание на скрины :
http://clip2net.com/s/2hj5l
-здесь при runе взводится (должен по моему разумению) , бит "zu" , который здесь :
http://clip2net.com/s/2hj65
в проге должен взводить бит , допустим , zummer .
где же изьян разумения и не фундаментальность принципов ? ткните плз личиком в липкое !
может просто PLC_PRG прекращает выполнятся когда ПЛК в RUNе , а выполняется только задача staart ?

Валенок
11.09.2012, 10:37
В эмуляции делаем ?

вут
11.09.2012, 13:05
Крайне извиняюсь ! пробовал на 100-ке раньше , не получилось и оставил , сейчас под рукой 150-й , залил прогу - все работает достойно , похоже в прошлый раз напутал что -то ! еще раз приношу свои извинения за отнятое по-пустому время ! спс Корифеям форума за внимание !!!