Управление на асинхронен двигател посредством 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.
2. Чрез drag and drop я поставяме в “Device overview”.



Фиг.3 Добавяне на станратната телеграма към проекта.

След като всичко по настроиките е готово, следва да се напише програмата която ще управлява двигателя. Ще използваме езика за програмиране Ladder. Освен стандартните ключове, ще използваме и няколко функционални блока. Те са ни нужни за да можем да пишем или съответно четем информацията за инвертора. За писане се използват DPWR_DAT и съответно Move. За четене DPRD_DAT.



Фиг. 4 Старт на трансфера посредством избраната телеграма

Използваме блока DPWR_DAT за да определим първо коя ще ни е контроната дума(STW). Също така със тази функция задаваме канала по който ще бъдат прехвърляни думите, а именно телеграмата „Standard Telegram 1, PZD-2/2“.
Точно в обратната посока работи
DPWR_DAT. Тя служи за четене на дума от инверотора към PLC-то.
Трансфера на думата трябва да следва логиката заложена в Таблица 2.За пишем и презаписваме нужните ни стойности във думата с която ще работим, ползваме библиотечната функция “Move”. Първо се подава дума в която 0 бит да бъде със стойност 0. След това се подава същата дума със стойност на нулевия бит 1. Това поставя инвертора в режим “Ready”, тоест имаме направена идентификация и при стойност 1, на бит ноомер 3, двигателя ще се развърти.



Таблица 2. Структора на контролната дума по битове

В конкретния случай първата контролна дума която ще бъде записана е „047
E“. След това следвайки логиката, пишем новата дума която е „047F”. В Таблица 3, са показани думите във бинарен формат, където ясно се виждат кои са активираните битове при двете думи. В случая става дума само за пускане и спиране на двигателя, но това е една много малка част от възможностите на инвертора.

Hexadecimal

Binary


047E
0000 0100 0111 1110
047F
0000 0100 0111 1111

Таблица 3. Контролните думи в HEX и BIN формат

Освен да пуснем двигателя, трябва и да зададем скорост на въртене. Нея ще я зададем, като подадем на следващата поредна дума скороста която искаме.


Фиг5. Програмна реализация за Start-Stop алгоритъм




Това е решението което аз успях да реализирам. Готов съм да отговря на всякакви въпроси, както и да прочета критика. Всяка градивна дискусия би била полезна за всички четящи темата.


Comments