Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Примеры программ для ПЛК WAGO 750-841 (ST,FBD и др.)

 Ответить Ответить Страница  12>
Автор
Сообщение
Meteo Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 03 Март 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 13
Свойства публикации Свойства публикации   Ответить, цитируя автора - Meteo Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Примеры программ для ПЛК WAGO 750-841 (ST,FBD и др.)
    Опубликовано: 11 Март 2009 12:23
Всем доброго дня.

WAGO 750-841 - мой первый опыт работы с ПЛК. До этого вообще никогда не работал в области автоматизации и программирования МК.

Может ли кто-то поделиться или знает где можно найти любые примеры программ для этого ПЛК? В первую очередь интересуют программы на ST и FBD, но если есть что-то еще, тоже будет крайне полезно. Удивляет то, что не удалось нагуглить даже мало-мальского простенького примера программы... Или программы для ПЛК - это коммерческая тайна?! Просто всегда думал, что многие ПЛК выполняют в общем-то стандартные функции типа контроля температуры. давления и т.п.

Также интересуют электронные книги по программированию в CoDeSys.

Приобрёл книгу Петров И.В. "Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования", но этого даже мне уже совсем не хватает :)

Спасибо!
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Март 2009 17:33
Сайт CoDeSys (Пролог)
Вы можете получить бесплатно версию среды CoDeSys 2.3.9.12 полностью локализован интерфейс и справочная система, которая в сочетании с приобретенной вами книжкой ИМХО все что необходимо для старта. Примеры кода ИМХО не особенно полезны без прикладной задачи. На форуме я выкладывал пример кода для испытаний алгоритма ПИД-регулятора
http://forum.cta.ru/uploads/22D22_PID.rar
Наверх
Meteo Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 03 Март 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 13
Свойства публикации Свойства публикации   Ответить, цитируя автора - Meteo Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Март 2009 10:58
Спасибо, Dismay. С самого начала пользуюсь версией CoDeSys 2.3.9.9, думаю что не принципиально переходить на 9.12? Соглашусь, что справочная система в целом очень даже, но... к примеру не смог найти никакой информации по тому, возможно ли и если да, то как создавать циклы (в частности на FOR) на FBD и есть ли аналог оператора условия IF?? Может ли кто-то привести пару элементарных примеров построения FOR и IF на FDB?

И еще, думаю что это предусмотрено, но тоже не знаю как одновременно использовать в проекте часть кода на FBD, а часть написать на ST?

Изучил прикрепленный пример. Спасибо, думаю, что очень пригодится часть, посвещенная визуализации!
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Март 2009 15:53

циклы то оно конечно создавать можно, только нужно быть осторожным с ними. Вообще мне было довольно тяжело по началу именно понять, что программа в CoDeSys в конечном итоге уже изначально зациклена средой исполнения, у будет перезапускаться каждый раз, после завершения. В конечном итоге при такой архитектуре поведение алгоритма должно строиться по принципу конечного автомата. То есть никаких неопределенных циклов сопряженных с ожиданием чего либо в программе быть не должно в принципе. Так же не стоит использовать прямые адреса IO имеджа процесса для создания условий выхода.  В противном случае вы рискуете рассердить собаку...
Выдержка из справки:
Цикл FOR
С помощью FOR можно программировать повторяющиеся процессы.
Синтаксис:

INT_Var :INT;
FOR <INT_Var> := <INIT_VALUE> TO <END_VALUE> {BY <Step size>} DO
<Instructions>
END_FOR;

Часть конструкции, заключенная в фигурные скобки, не обязательна.
<Instructions> выполняются, пока счетчик <INT_Var> не больше <END_VALUE>. Это условие проверяется перед выполнением <Instructions>, поэтому раздел <Instructions> не выполняется, если <INIT_VALUE> больше <END_VALUE>.
Всякий раз, когда выполняются <Instructions>, значение <INIT_VALUE>, увеличивается на <Step_ size>.
<Step_ size> может принимать любое целое значение. По умолчанию шаг устанавливается равным 1.

Пример:

FOR Counter:=1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR;
Erg:=Var1;
=======
Пример:

REPEAT
 Var1 := Var1*2;
 Counter := Counter-1;
UNTIL
 Counter = 0
END_REPEAT

Пример:
WHILE counter<>0 DO
 Var1 := Var1*2;
 Counter := Counter-1;
END_WHILE

Наверх
Meteo Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 03 Март 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 13
Свойства публикации Свойства публикации   Ответить, цитируя автора - Meteo Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Март 2009 16:43
Dismay, на ST с циклами у меня нет никаких вопросов - там всё понятно с самого начала, всё фактически также как и в обычных языках, но вот если PLC_PRG пишется на FBD и необходимо применить цикл или условие, что делать в этом случае? Вот чего, кстати, не хватает справке или информации в книге Петрова, так вот что делать, когда на ST реализуется элементарно, а вот на FBD просто не известно есть ли аналоги?! И наоборот, есть уже созданные функции в библиотеках на FBD, а предположим я пишу на ST... что делать?!

Я понимаю, что в процессе написания сложных программ для ПЛК мои текущие вопросы кажутся элементарными... но они же как-то решены и при этом не одну тысячу раз :)

Да, касаемо принципов работы ПЛК, эти его рабочие циклы, пока действительно трудно привыкнуть к манере его работы, после классического последовательного выполнения программы на обычном компьютере...
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Март 2009 17:09

Ни разу не видел циклов реализованных на FBD внутри алгоритма. Вообще язык функциональных блоков ИМХО для этого не особо подходит. Это язык последовательных цепей с ветвлениями, он зациклен общим циклом задачи ПЛК. НО в проекте вы можете использовать все языки, каждый язык удобен в определенном случае. FBD весьма нагляден, но ограничен. Я его по возможности избегаю, но для многих кто не хочет мучаться в дебрях ST он предпочтительнее. Поэтому я частенько делал функциональные блоки на ST, а использовал их в FBD программе. Вообще функциональный блок (дань ООП подходу) весьма удобен во многих случаях, экономит память кода и структурирует память переменных. Потом шаговые программы (SFC) например очень удобны для циклических процессов c хронологической последовательностью и гораздо нагляднее чем тот же алгоритм написанный на ST. Возможности к оптимизации откомпилированного кода посредством выбора какого то одного языка минимальны. По уверениям 3S для конечного кода использованный язык особого значения не имеет. По весу программ в принципе это прослеживается.

Наверх
Meteo Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 03 Март 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 13
Свойства публикации Свойства публикации   Ответить, цитируя автора - Meteo Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Март 2009 11:26
А возможно ли полноценно использовать все 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 итп?

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Март 2009 17:11

Первоначально опубликовано Meteo

А возможно ли полноценно использовать все FBD блоки, точнее, реализуемые ими действия, при программировании на ST (имеется в виду, вызывать непосредственно из ST), 

Да можно полноценно использовать FB блоки, фактически FB блок это класс, то есть вы просто обявляете переменную типа FB блока { Var1:TP;} тем самым вы инстанцируете объект класса типа FB блок, если вы пишете просто имя переменной

{Var1;} вы выполняете блок это действие по умолчанию. Через точку вы можете получить доступ полям блока и его действиям (свойствам и методам).

Первоначально опубликовано Meteo


И еще вопросик, добавил в проект помимо PLC_PRG, программу A1 и A2, а также действие RD_TMP к PLC_PRG.
Можно ли как-то получать доступ к переменным из A1 в PLC_PRG, из PLC_PRG в A2, из A2 в RD_TMP, или из RD_TMP в A1 итп? 



Программа PRG отличается от FB только тем, что не требует инстанцирования и предствалена в программе одной копией (как синглетон или статический класс) все сказанное для FB справедливо для PRG в общем то...

PS: Выполните поиск в справке по action там есть примеры вызова не всех языках 

Наверх
Aleks_13 Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 24 Март 2009
Категория: Ukraine
Online Status: Offline
Публикации: 12
Свойства публикации Свойства публикации   Ответить, цитируя автора - Aleks_13 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Март 2009 17:07
Подскажите где можно взять библиотеку

mod_com.lib

 

а именно для 

Fb750_493_Master3Phase

 

Наверх
Meteo Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 03 Март 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 13
Свойства публикации Свойства публикации   Ответить, цитируя автора - Meteo Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Март 2009 12:19
У меня эта библиотека лежит в нескольких папках одновременно:
"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>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz