Примеры программ для ПЛК WAGO 750-841 (ST,FBD и др.) |
Ответить | Страница 12> |
Автор | |||
Новичок Присоединился: 03 Март 2009 Категория: Russian Federation Online Status: Offline Публикации: 13 |
Опубликовано: 11 Март 2009 12:23 |
||
Всем доброго дня.
WAGO 750-841 - мой первый опыт работы с ПЛК. До этого вообще никогда не работал в области автоматизации и программирования МК. Может ли кто-то поделиться или знает где можно найти любые примеры программ для этого ПЛК? В первую очередь интересуют программы на ST и FBD, но если есть что-то еще, тоже будет крайне полезно. Удивляет то, что не удалось нагуглить даже мало-мальского простенького примера программы... Или программы для ПЛК - это коммерческая тайна?! Просто всегда думал, что многие ПЛК выполняют в общем-то стандартные функции типа контроля температуры. давления и т.п. Также интересуют электронные книги по программированию в CoDeSys. Приобрёл книгу Петров И.В. "Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования", но этого даже мне уже совсем не хватает :) Спасибо! |
|||
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|||
Сайт CoDeSys (Пролог)
Вы можете получить бесплатно версию среды CoDeSys 2.3.9.12 полностью локализован интерфейс и справочная система, которая в сочетании с приобретенной вами книжкой ИМХО все что необходимо для старта. Примеры кода ИМХО не особенно полезны без прикладной задачи. На форуме я выкладывал пример кода для испытаний алгоритма ПИД-регулятора http://forum.cta.ru/uploads/22D22_PID.rar |
|||
Новичок Присоединился: 03 Март 2009 Категория: Russian Federation Online Status: Offline Публикации: 13 |
|||
Спасибо, Dismay. С самого начала пользуюсь версией CoDeSys 2.3.9.9, думаю что не принципиально переходить на 9.12? Соглашусь, что справочная система в целом очень даже, но... к примеру не смог найти никакой информации по тому, возможно ли и если да, то как создавать циклы (в частности на FOR) на FBD и есть ли аналог оператора условия IF?? Может ли кто-то привести пару элементарных примеров построения FOR и IF на FDB?
И еще, думаю что это предусмотрено, но тоже не знаю как одновременно использовать в проекте часть кода на FBD, а часть написать на ST? Изучил прикрепленный пример. Спасибо, думаю, что очень пригодится часть, посвещенная визуализации! |
|||
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|||
циклы то оно конечно создавать можно, только нужно быть осторожным с ними. Вообще мне было довольно тяжело по началу именно понять, что программа в CoDeSys в конечном итоге уже изначально зациклена средой исполнения, у будет перезапускаться каждый раз, после завершения. В конечном итоге при такой архитектуре поведение алгоритма должно строиться по принципу конечного автомата. То есть никаких неопределенных циклов сопряженных с ожиданием чего либо в программе быть не должно в принципе. Так же не стоит использовать прямые адреса IO имеджа процесса для создания условий выхода. В противном случае вы рискуете рассердить собаку... INT_Var :INT; Часть конструкции, заключенная в фигурные скобки, не обязательна. Пример: FOR Counter:=1 TO 5 BY 1 DO REPEAT Пример: |
|||
Новичок Присоединился: 03 Март 2009 Категория: Russian Federation Online Status: Offline Публикации: 13 |
|||
Dismay, на ST с циклами у меня нет никаких вопросов - там всё понятно с самого начала, всё фактически также как и в обычных языках, но вот если PLC_PRG пишется на FBD и необходимо применить цикл или условие, что делать в этом случае? Вот чего, кстати, не хватает справке или информации в книге Петрова, так вот что делать, когда на ST реализуется элементарно, а вот на FBD просто не известно есть ли аналоги?! И наоборот, есть уже созданные функции в библиотеках на FBD, а предположим я пишу на ST... что делать?!
Я понимаю, что в процессе написания сложных программ для ПЛК мои текущие вопросы кажутся элементарными... но они же как-то решены и при этом не одну тысячу раз :) Да, касаемо принципов работы ПЛК, эти его рабочие циклы, пока действительно трудно привыкнуть к манере его работы, после классического последовательного выполнения программы на обычном компьютере... |
|||
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|||
Ни разу не видел циклов реализованных на FBD внутри алгоритма. Вообще язык функциональных блоков ИМХО для этого не особо подходит. Это язык последовательных цепей с ветвлениями, он зациклен общим циклом задачи ПЛК. НО в проекте вы можете использовать все языки, каждый язык удобен в определенном случае. FBD весьма нагляден, но ограничен. Я его по возможности избегаю, но для многих кто не хочет мучаться в дебрях ST он предпочтительнее. Поэтому я частенько делал функциональные блоки на ST, а использовал их в FBD программе. Вообще функциональный блок (дань ООП подходу) весьма удобен во многих случаях, экономит память кода и структурирует память переменных. Потом шаговые программы (SFC) например очень удобны для циклических процессов c хронологической последовательностью и гораздо нагляднее чем тот же алгоритм написанный на ST. Возможности к оптимизации откомпилированного кода посредством выбора какого то одного языка минимальны. По уверениям 3S для конечного кода использованный язык особого значения не имеет. По весу программ в принципе это прослеживается. |
|||
Новичок Присоединился: 03 Март 2009 Категория: Russian Federation Online Status: Offline Публикации: 13 |
|||
А возможно ли полноценно использовать все FBD блоки, точнее, реализуемые ими действия, при программировании на ST (имеется в виду, вызывать непосредственно из ST), некоторые из них мне вроде удавалось использовать (к примеру таймеры), только мне кажется, что это предусматривалось заранее при разработке блока... т.е. вопрос в том, можно ли вызывать все FBD блоки из текстового режима ST?
И еще вопросик, добавил в проект помимо PLC_PRG, программу A1 и A2, а также действие RD_TMP к PLC_PRG. Можно ли как-то получать доступ к переменным из A1 в PLC_PRG, из PLC_PRG в A2, из A2 в RD_TMP, или из RD_TMP в A1 итп? |
|||
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|||
Да можно полноценно использовать FB блоки, фактически FB блок это класс, то есть вы просто обявляете переменную типа FB блока { Var1:TP;} тем самым вы инстанцируете объект класса типа FB блок, если вы пишете просто имя переменной {Var1;} вы выполняете блок это действие по умолчанию. Через точку вы можете получить доступ полям блока и его действиям (свойствам и методам).
Программа PRG отличается от FB только тем, что не требует инстанцирования и предствалена в программе одной копией (как синглетон или статический класс) все сказанное для FB справедливо для PRG в общем то... PS: Выполните поиск в справке по action там есть примеры вызова не всех языках |
|||
Новичок Присоединился: 24 Март 2009 Категория: Ukraine Online Status: Offline Публикации: 12 |
|||
Подскажите где можно взять библиотеку
а именно для
|
|||
Новичок Присоединился: 03 Март 2009 Категория: Russian Federation Online Status: Offline Публикации: 13 |
|||
У меня эта библиотека лежит в нескольких папках одновременно:
"C:\Program Files\3S Software\CoDeSys V2.3\Targets\WAGO\Libraries\IO_IPC\mod_com.lib" "c:\Program Files\3S Software\CoDeSys V2.3\Targets\WAGO\Libraries\16_Bit\mod_com.lib" "c:\Program Files\3S Software\CoDeSys V2.3\Targets\WAGO\Libraries\32_Bit\mod_com.lib" Предполагаю, что она подходит для разных модулей... |
|||
Ответить | Страница 12> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |