Управление на асинхронен двигател посредством G120 и S7-1200 на фирма Siemens

четвъртък, 27 април 2017 г.

Статията е свързана със един проблем който разреших по време на дипломното ми проектиране. Той се появи когато проектирах частта свързана със вентилация, и по-конкретно управление на вентилатора. Под управление се разбира старт-стоп и продължителност на вентилиране. След като успях да "разреша проблема" реших, че може би разяснение в една кратка статия би спестила главоболия и време на колеги които също като мен са в началото на своята работа със продуктите на 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 алгоритъм




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


Share /

Няма коментари

Публикуване на коментар

About me

This is my personal blog. My articles are about programming and adjustment of a lot of Automation tools, like PLC, Robots, cameras and so on. My favorite topics are programming of Mitsubishi robots, Siemens,Wago and Beckhoff PLC. Also adjusting and creating Visual Builder inspections.

And some of my hobby

© Милчев! Code and Control
designed by templatesZoo