+1 500 000 produkti piedāvājumā
6000 pakas sūtītas katrā dienā
+300 000 klienti no 150 valstīm
Publicēšanas datums: 14-03-2025 🕒 6 min lasīšanas
PLC kontrolieri tiek plaši izmantoti rūpniecībā visās vietās, kur nepieciešama parametru kontrole un procesu vadība. Iebūvētās elektronikas attīstība ir padarījusi šīs ierīces ar augstiem parametriem, izturīgas pret EMI traucējumiem un vides apstākļiem, kā arī lietotājam draudzīgas. Atšķirībā no agrākajiem laikiem, programmu izstrādes vides ir ļoti līdzīgas, un lielākajā daļā no tām var atrast tādu programmas izpildes veidu, kas mums atbilst. Tātad, kā tiek programmēti PLC kontrolieri?
PLC kontrolieru programmēšanas valodas ir kļuvušas par IEC 61131 standarta priekšmetu, kas tika publicēts 2013. gadā. Šī standarta 3. daļā ir iekļauti ieteikumi par PLC kontrolieru programmēšanas valodām un metodēm. Papildus datu tipiem, mainīgajiem, konfigurācijai un tās aprakstam, programmas organizācijas vienībām un objektorientētās programmēšanas principiem ir uzskaitītas 5 pamata PLC kontrolieru programmēšanas valodas un definētas prasības to funkcionalitātei. Šī standarta dēļ pamata programmēšanas valodas, kuras izmanto PLC programmētāji, ir kļuvušas par:
Vispopulārākā un pieejamā visās programmēšanas vidēs PLC ir lādes valoda LD (vai LAD). Tā ir grafiska valoda, tomēr izmanto vienkāršus simbolus, tāpēc vecākos risinājumos tika izmantota semigrafika, kas veidota ar standarta ASCII zīmēm. Šīs zīmes bija viegli attēlojamas arī uz PLC ekrāna, kas ļāva veidot vienkāršākas programmas ad hoc, neizmantojot PC datoru. Šajā valodā programma tiek veidota, izmantojot simbolus, kas ir līdzīgi tiem, kas izmantoti elektriskajās shēmās – spoles un kontakti. Kontakti var būt parasti atvērti (NO) vai parasti aizvērti (NC), un spolēm var būt dažādas funkcionalitātes, piemēram, iestatīšana, atiestatīšana vai noliegšana. Šeit var arī ievietot funkcijas un veselas funkcionālās blokus, piemēram, taimerus, skaitītājus vai trigerus. Lādes valoda ir saprotama pat nepieredzējušam programmētājam.
1. attēls. Programmas fragments lādes valodā LD (LAD)
Vēl viens ļoti intuitīvs programmēšanas veids, īpaši tiem, kas pazīst digitālo tehniku, ir funkcionālo bloku diagramma FBD. Piemēra fragments, kas izpildīts, izmantojot FBD, ir parādīts 2. attēlā. Atsevišķas ieejas, izejas un operācijas tiek attēlotas ar funkcionālajiem blokiem un vārtiem, kas ne tikai veic loģiskās funkcijas, bet arī spēj apstrādāt signālus saskaņā ar noteikto algoritmu. Starp funkcionālajiem blokiem ir PID regulatori, plašs signālu ģeneratoru klāsts, skaitītāji un citi. Dažas programmēšanas vides ļauj arī definēt savus blokus ar nepieciešamo funkcionalitāti. FBD ir grafiska valoda. Atsevišķi bloki tiek izvietoti uz shēmas un savienoti savā starpā, kas atgādina loģisko ķēžu zīmēšanu. Dažas programmēšanas vides ļauj ne tikai savienot ieejas/izejas, bet arī veidot kopnes un atsauces, kas nodod vairākus parametrus (2. attēlā kopnes ir attēlotas ar biezām līnijām – tās nodod daudzbaitu konstantes un mainīgos).
2. attēls. Piemēra fragments, kas izpildīts, izmantojot FBD
Strukturētā teksta valoda ST ir augsta līmeņa valoda, kas atgādina kādreiz ļoti populāro Pascal valodu. Tā ļauj veikt sarežģītākas operācijas, kuru ieraksts nav ierobežots ar līniju mudžekli uz ekrāna un to izpildes iespēju, kā tas ir FBD gadījumā, kas bieži prasa lielu monitoru ar labu izšķirtspēju. Programmēšana ST atgādina koda veidošanu tradicionālajās programmēšanas valodās PC datoriem. Tiek atbalstītas sarežģītas instrukcijas, piemēram, cikli repeat…until, do…while, nosacījumu instrukcijas if…then…else, case un matemātiskās funkcijas sqrt(), sin(). Svarīgi ir tas, ka neatkarīgi no aparatūras ražotāja vai vides ST valodas funkcijas ir kopīgas un tās ir definētas IEC 61131 standartā. Tā kā minētais standarts ļauj apvienot tajā minētās valodas, ST var izmantot arī, lai veidotu "ieliktņus" vai nestandarta FBD blokus.
Listing 1. Piemēra funkcija, kas izpildīta ST valodā
//=======================================================================
// Function Block Timed Counter : Incremental count of the timed interval
//=======================================================================
FUNCTION_BLOCK FB_Timed_Counter
VAR_INPUT
//Trigger signal to begin Timed Counting
Execute : BOOL := FALSE;
//Enter Cycle Time (Seconds) between counts
Time_Increment : REAL := 1.25;
//Number of Desired Count Cycles
Count_Cycles : INT := 20;
END_VAR
VAR_OUTPUT
//One Shot Bit indicating Timer Cycle Done
Timer_Done_Bit : BOOL := FALSE;
//Output Bit indicating the Count is complete
Count_Complete : BOOL := FALSE;
//Accumulating Value of Counter
Current_Count : INT := 0;
END_VAR
VAR
//Timer FB from Command Library
CycleTimer : TON;
//Counter FB from Command Library
CycleCounter : CTU;
//Converted Time_Increment in Seconds to MS
TimerPreset : TIME;
END_VAR
// Start of Function Block programming
TimerPreset := REAL_TO_TIME(in := Time_Increment) * 1000;
CycleTimer(
in := Execute AND NOT CycleTimer.Q,
pt := TimerPreset);
Timer_Done_Bit := CycleTimer.Q;
CycleCounter(
cu := CycleTimer.Q,
r := NOT Execute,
pv := Count_Cycles);
Current_Count := CycleCounter.cv;
Count_Complete := CycleCounter.q;
END_FUNCTION_BLOCK
Sekvences funkciju shēma ir vēl viena no grafiskajām programmēšanas valodām. Tās priekštecis bija GRAFCET valoda, kas balstīta uz binārajām Petri tīklām. Tā ļauj aprakstīt soļu (darbību) secību, kas jāveic stingri noteiktā kārtībā. Tā ir īpaši noderīga programmu izveidei procesu apkalpošanai, kas prasa sinhronizāciju vai procesiem, kurus var sadalīt posmos. Galvenie SFC programmas komponenti ir: soļi (posmi), kas saistīti ar darbībām, pārejas, kas saistītas ar loģiskiem nosacījumiem, tiešie savienojumi starp soļiem un pārejām.
Bieži vien SFC valoda tiek apvienota ar citu programmēšanas metodi, piemēram, LD kāpnēm. SFC pēc savas būtības ir paralēlā programmēšanas valoda, kurā vienlaikus var būt aktīvas daudzas POU (Programmas organizācijas vienības), t.i., vienības, kas kontrolē plūsmu. Dažas vides ļauj arī veidot makrodarbības, t.i., darbības POU iekšienē, kas ietekmē citas POU stāvokli. Tādā veidā viena POU var noteikt citu POU veicamos aktīvos soļus.
3. attēls: Programmas fragmenta piemērs SFC valodā
Instrukciju saraksts jau tiek uzskatīts par novecojušu programmēšanas veidu. Šī valoda nedaudz atgādina asembleru, bet, neskatoties uz to, ka tā tiek ieviesta dažādiem PLC kontrolieriem, kas aprīkoti ar dažādiem procesoriem, IL valoda ir neatkarīga no izmantotā procesora veida. Līdzīgi kā asembleris, tā sastāv no ļoti vienkāršām instrukcijām, un sarežģītākas operācijas prasa izmantot daudzas no tām. Programmas izpildes vadība tiek veikta ar lēcienu instrukcijām un apakšprogrammu izsaukumiem.
Daudzi kontrolieru ražotāji, neskatoties uz pilnīgu piedāvātās aparatūras un programmatūras atbilstību IEC 61131-3 standartam, piedāvā papildu izsaukumus/funkcionālos blokus, kas ir specifiski konkrētam piegādātājam un pielāgoti piedāvātajai aparatūrai, piemēram, lasīšana vai rakstīšana uz ieejām/izejām. Piemēram, IL valoda, kas paredzēta Siemens PLC kontrolieriem, tika nosaukta par "Statement List" vai "STL" angļu valodā un "Anweisungs-Liste" vai "AWL" vācu valodā. Vācu nosaukums tika pārnests arī uz nacionālajām izpildes vides versijām itāļu un spāņu valodās. Simatic paketes lietotājs var izvēlēties starp vācu un starptautiskajiem mnemonikiem instrukciju attēlošanai. Piemēram, "A" nozīmē "AND" vai "U" nozīmē "UND", "I" nozīmē "Ieeja" vai "E" nozīmē "Eingang" utt.
Listing 2. Piemēra fragments programmā IL
LD Speed
GT 2000
JMPCN VOLTS_OK
LD Volts
VOLTS_OK LD 1
ST %Q75
Šī teksta mērķis nav iemācīt programmēt PLC kontrolierus, bet gan norādīt uz dažām iespējām un izvēles iespējām. Katram PLC programmētājam būtu jāizvēlas tāda metode, kas būs visatbilstošākā viņa vajadzībām, vai arī tās jāapvieno atkarībā no pielietojuma. Piemēram, FBD diagramma, iespējams, patiks lietotājiem, kas pazīst un saprot loģiskās ķēdes, savukārt LD kāpnes noderēs vienkāršāku vadības secību programmēšanai. Savukārt, ST un SFC būs piemērotas sarežģītu procesu programmēšanai, lai gan, piemēram, ST valoda tika ieviesta Eaton Easy mikro PLC kontrolierī, un tas, iespējams, būs noderīgs vienkāršāku, mazāk prasīgu vadības un kontroles funkciju realizācijai. No otras puses, nav nekādu ieteikumu, kas norādītu, kuru valodu drīkst izmantot kam, kurai valodai kas ir piemērots. Ar lielāku vai mazāku piepūli, izmantojot jebkuru no apskatītajām metodēm, var izveidot atbilstošu programmatūru. Labākā no iespējām šķiet valodu apvienošana atkarībā no vajadzībām un, lai iegūtu pēc iespējas lielāku lietojumprogrammas lasāmību.
Transfer Multisort Elektronik (TME) ir viens no lielākajiem pasaules elektronisko komponentu, elektrotehnisko detaļu, darbnīcu aprīkojuma un rūpnieciskās automatizācijas izplatītājiem. Katalogā ir vairāk nekā 1 500 000 produktu no 1 300 vadošajiem ražotājiem. TME modernie loģistikas centri Lodzā un Rzgovā (Polija), kuru kopējā platība pārsniedz 40 000 m², katru dienu nosūta gandrīz 6 000 sūtījumu klientiem vairāk nekā 150 valstīs.
TME arī iegulda jauno inženieru un elektronikas entuziastu zināšanu un prasmju attīstībā, izmantojot projektu TME Education, un atbalsta tehnoloģiju kopienu, organizējot pasākumu sēriju TechMasterEvent, kas veicina inovācijas un pieredzes apmaiņu.