Управление на асинхронен двигател посредством G120 и S7-1200 на фирма Siemens
Статията е свързана със един проблем който разреших по време на дипломното ми проектиране. Той се появи когато проектирах частта свързана със вентилация, и по-конкретно управление на вентилатора. Под управление се разбира старт-стоп и продължителност на вентилиране. След като успях да "разреша проблема" реших, че може би разяснение в една кратка статия би спестила главоболия и време на колеги които също като мен са в началото на своята работа със продуктите на Siemens, и програмирането на PLC като цяло.
Като за начало да уточня със какво точно работя. Това е софтуера на фирма Siemens – TIA Portal 13(Totally Integrated
Automation). Той е удобен за работа, и съчетава в себе си
функционалности свързани не само със програмирането на PLC-то, но и със интеграцията между устройствата, определяне методите
на комуникация, йерархичната структура на системата както и много други неща. Инвертор G120c PN 4.7, както и контролер S7-1200.
Като за начало ще присъединим инвертора към системата,а това става по следния начин:
1.От менюто “Hardware
catalog” избираме модела инвертор с който разполагаме(за целите
на проекта: SINAMICS G120c PN 4.7). Чрез drag and drop го добавяме в “Devices and networks”.
2.Свързваме контролера и инвертора. Избираме Profinet комуникация за текущия проект.
3.Кликва се с десен бутон на създадената връзка и от
контекстното меню се избира „Assign device“.
Когато връзката
между устройствата е установена, трябва да ъплоуднем конфигурацията на PLC-то.
Фиг.1 Конфигурирана връзка между S7-1200 и G120c
За да се уверим, че
комуникацията работи коректно, от главното меню на TIA портал избираме “Device and Networks”, където ни
е предоставена опция за “Flash” на което и да е от периферните устройства.
След това трябва да добавим така наречената
стандартна телеграма. Тя се използва за циклична
комуникация между контролера и инвертора. В случая зa най-подходяща е избрана “Standard Telegram 1, PZD-2/2”. Тя е подходяща по редица причини.
Фиг 2. Структура на Standard Telegram 1, PZD-2/2
Параметър
|
Описание
|
STW
|
Control Word
|
ZSW
|
Status Word
|
NSOLL_A
|
Speed
setpoint 16 bit
|
NIST_A
|
Speed
actual value 16 bit
|
Таблица 1. Описание на Standard
Telegram 1, PZD-2/2
Както се вижда на
фиг.2 тази телеграмa има сравнително проста структура. Имаме по една 16 битова
дума, съответно контролна и статусна с които можем да манипулираме, и съответно
следим състоянието на инвертора. Също така имаме по една 16 битова дума за
заданието по скорост, и сътоветно такава с която да четем реалната скорост.
Телегратама се
избира по следния начин:
1.В “Device view” , избираме от „Hardware catalog“ -> „Submodules“ сътоветно Standard Telegram
1, PZD-2/2.
Фиг.3 Добавяне на станратната телеграма към проекта.
След като всичко по настроиките е готово, следва да се напише програмата
която ще управлява двигателя. Ще използваме езика за програмиране Ladder. Освен стандартните ключове, ще използваме и няколко функционални блока. Те са ни нужни за да можем да пишем или
съответно четем информацията за инвертора. За писане се използват DPWR_DAT и съответно Move. За четене DPRD_DAT.
Фиг. 4 Старт на трансфера посредством избраната телеграма
Използваме блока DPWR_DAT за да определим първо коя ще ни е контроната дума(STW). Също така със тази функция задаваме канала по който ще бъдат прехвърляни
думите, а именно телеграмата „Standard Telegram
1, PZD-2/2“.
Точно в обратната посока работи DPWR_DAT. Тя служи за четене на дума от инверотора към PLC-то.
Точно в обратната посока работи DPWR_DAT. Тя служи за четене на дума от инверотора към PLC-то.
Трансфера на думата трябва да следва логиката заложена в Таблица 2.За пишем
и презаписваме нужните ни стойности във думата с която ще работим, ползваме
библиотечната функция “Move”. Първо се подава дума в която 0 бит да бъде със стойност 0. След това се
подава същата дума със стойност на нулевия бит 1. Това поставя инвертора в
режим “Ready”, тоест имаме
направена идентификация и при стойност 1, на бит ноомер 3, двигателя ще се
развърти.
Таблица 2. Структора на контролната дума по битове
В конкретния случай първата контролна дума която ще бъде записана е „047E“. След това следвайки логиката, пишем новата дума която е „047F”. В Таблица 3, са показани думите във бинарен формат, където ясно се виждат кои са активираните битове при двете думи. В случая става дума само за пускане и спиране на двигателя, но това е една много малка част от възможностите на инвертора.
Hexadecimal
|
Binary
|
047E
|
0000 0100 0111 1110
|
047F
|
0000 0100 0111 1111
|
Таблица 3. Контролните думи в HEX и BIN формат
Освен да пуснем двигателя, трябва и да зададем скорост на въртене. Нея ще я
зададем, като подадем на следващата поредна дума скороста която искаме.
Фиг5. Програмна реализация за Start-Stop алгоритъм
Това е решението което аз успях да реализирам. Готов съм да отговря на всякакви въпроси, както и да прочета критика. Всяка градивна дискусия би била полезна за всички четящи темата.
Comments
Post a Comment