Kas yra praktiškesnis: į objektą{0}}orientuotas PLC programavimas ar kopėčių logika?

Aug 03, 2026 Palik žinutę

Pramonės automatizavimo srityje laiptų logika išlieka viena dažniausiai naudojamų programavimo kalbų; tačiau sudėtingesniems valdymo objektams-orientuotas programavimas tikrai yra labai efektyvus būdas. Pirmiausia aptarkime objektinį-programavimą:


Objektinis{0}}programavimas yra pažangi programavimo paradigma aukšto lygio kompiuterių kalbomis. Šią projektavimo filosofiją galima pritaikyti ir PLC programoms pramoninėse valdymo sistemose. Nors negalime įgyvendinti daugelio puikių objekto-orientuoto programavimo-ypatybių, tokių kaip „paveldėjimas“-ir PLC kalba gali net neturėti objekto-orientuoto programavimo kalbos savybių, pagrindinės objekto-programavimo sąvokos yra klasės ir klasių egzemplioriai (ty objektai). Mums tereikia panaudoti šias sąvokas. Programuodami kompiuterius, norėdami apibrėžti klases, turime abstrahuoti ir apibendrinti tam tikrus objektus. Tačiau pramoninėse valdymo sistemose valdymo objektai, tokie kaip varikliai ir vožtuvai, yra aiškiai apibrėžtos valdymo kategorijos; mes galime apibrėžti joms klases tiesiogiai, nereikalaujant abstrakcijos. Tolesniuose skyriuose bus naudojama „Siemens Step7“ programavimo kalba ir „Schneider“ Unity programavimo kalba, kad būtų paaiškintas{16}}objektinis PLC programavimas.


I. Įgyvendinimo metodai


Objektinis{0}}programavimas 7 veiksme įgyvendinamas naudojant funkcinius blokus (FB). Kai iškyla ši tema, žmonės dažnai galvoja apie Siemens siūlomą modulinį programavimo metodą. Iš tiesų, tai ta pati sąvoka, tačiau tokie terminai kaip „moduliavimas“, „fono duomenų blokai“ ir „keli fonai“, kuriuos pristatė „Siemens“, ne visada leidžia vartotojams aiškiai suprasti ir pritaikyti šią puikią dizaino filosofiją.


Tačiau jei pažvelgsite į objektą{0}}orientuoto programavimo perspektyvą, galėsite daug geriau suprasti šį dizaino modelį. „FB blokas“ laikomas „klase“; į jį galima žiūrėti kaip į panašių valdymo objektų kodų grupavimą. Pavyzdžiui, MM440 kintamojo-dažnio diske galite parašyti FB bloką pavadinimu „MtrMM440“. Objektiniame-programavime tai vadinama „klase“. Kai reikia užprogramuoti valdymą konkrečiam varikliui, galite priskirti jam fono DB bloką-objekt-orientuotame programavime, tai vadinama klasės įgyvendinimu (ty sukuriant klasės egzempliorių: objektą). Kai reikia valdyti kelis variklius, šiam FB blokui galite priskirti skirtingus fono DB, o tai prilygsta kelių klasės egzempliorių kūrimui.


Step7 turi kito tipo programos bloką: FC bloką. Programavimas, visų pirma naudojant FC blokus, Siemens sistemose vadinamas struktūriniu programavimu, kuris gali būti analogiškas procedūriniam programavimui kompiuterių programavime -ty programavimu, kuris yra pagrįstas tik funkcijomis-.


Programavimas naudojant „Schneider's Unity“ programinę įrangą leidžia geriau suprasti objektinį{0}}programavimą. Jo DFB apibrėžimai apima įvesties / išvesties parametrus, privačius / viešuosius kintamuosius ir kodo diegimą, -kurie yra būtent pagrindiniai „klasės“ elementai kompiuteriniame objekte{3}}orientuotame programavime. Sukurti klasės (objekto) egzempliorių yra taip paprasta, kaip sukurti įprastą „Bulio“ kintamąjį; jums tereikia apibrėžti šios „klasės“ kintamąjį „Funkcijų blokuose“.


„Step7“ ir „Unity“ palaiko ir procedūrinius, ir{1}}objektinius programavimo metodus. Skirtumas tarp šių dviejų metodų panašus į skirtumą tarp programavimo C ir C{3}} aukšto-lygmens kompiuterių kalbomis.


Tolesniame paaiškinime 7 žingsnio FB ir Unity DFB bus vadinami „klasėmis“, o FB ir fono DB derinys 7 veiksme, taip pat DFB atvejai Unity bus vadinami „objektais“.


II. Objektinė-programavimo architektūra


Aukščiau pateikta diskusija apima įgyvendinimo detales, tačiau programavimo filosofija remiasi programos architektūra. Paprasčiausiai naudojant objektus-orientuotus metodus konkrečioje kodo dalyje nereiškia, kad visa programa yra orientuota į objektą-. Šio tipo programavimui reikalingas požiūris, pagrįstas šiais aspektais:


1. Struktūrinės grandinės projektavimas.


Šiame skyriuje daugiausia dėmesio skiriama automatizuotoms gamybos linijoms; atskiroms staklėms galima naudoti supaprastintą struktūrą:


<1>Automatizuotos gamybos linijos sluoksnis: tai aukščiausias lygis, turintis pagrindinį PLC, kuris valdo įvairias po juo esančias zonas.

<2>Projekto sluoksnis: šis sluoksnis turi nepriklausomą energijos paskirstymo sistemą, bet neturi PLC; jį sudaro tik paskirstyti moduliai, valdomi automatizuotos gamybos linijos. Kaip rodo pavadinimas, jis turi aukštą nepriklausomybės laipsnį ir gali būti suprojektuotas ir pagamintas kaip atskiras projektas. Kai automatizuota gamybos linija yra palyginti maža, šio sluoksnio galima praleisti.

<3>,Funkcinės grupės lygis: remiantis procesų padalijimu, įrangos segmentai, atliekantys konkrečią proceso funkciją, sugrupuojami į funkcinę grupę. Ši grupė priklauso inžineriniam lygiui; kai inžinerinis lygis yra praleistas, jis priklauso automatizuotos gamybos linijos lygiui. Objektinis-programavimas nebūtinai reikalauja naudoti aukščiau pateiktą struktūrą, bet gerai-suprojektuota elektrinė struktūra yra palankesnė objekto-programavimui.


2. Visa bet kurio valdymo objekto logika įgyvendinama "klasėje".


Norint tai pasiekti, būtina išanalizuoti informaciją, susijusią su valdymo objektu. Pavyzdžiui, apie variklį reikia atsižvelgti į šią svarbią informaciją:


Įvesties informacija:


<1>, Grandinės apsaugos informacija, pvz., variklio grandinės pertraukiklis ir šiluminė relė.

<2>,Funkcinė apsaugos informacija, pvz., judėjimo variklių eigos jungikliai, ventiliatorių slėgio jungikliai ir alyvos siurblių alyvos lygio jungikliai.

<3>Paleidimo ir išjungimo sąlygos: nors dėl anksčiau paminėtų grandinės apsaugos ir funkcinės apsaugos variklis gali nustoti veikti, o atstatymas gali sukelti paleidimą iš naujo, čia nurodytos sąlygos, susijusios su paleidimo ir sustabdymo įprastu veikimu,{0}}pvz., nuoseklaus valdymo proceso veiksmai.

<4>Valdymo režimai: tokie kaip rankinis ir automatinis.

<5>Gedimų atstatymas: sistemos paleidimas iš naujo naudojant atstatymo signalus.


Išvesties informacija:

<1>Valdymo išėjimai, pvz., pagrindinis variklį valdantis kontaktorius.

<2>Būsenos informacijos išvestys

<3>Gedimų išėjimai


Būsenos saugojimo informacija:


Tarpiniai kintamieji, naudojami kodui įgyvendinti, taip pat būsenos kintamieji, kuriuos gali nuskaityti HMI. Integruokite visą aukščiau pateiktą informaciją į vieną klasę ir kiek įmanoma standartizuokite klasės parametrus. Tačiau vis dar yra tam tikrų skirtumų, palyginti su aukšto lygio{2}}programavimo kalbomis. 7 žingsnyje turi būti laikomasi standarto: programos struktūra įgyvendinama naudojant FC, o objekto valdymas įgyvendinamas naudojant FB, kaip iliustruoja ši struktūrinė struktūra (kurios elektrinė struktūra pagrįsta aukščiau pateikta įžanga): Tai tik apytikslė PLC programos architektūra; gera architektūra turėtų būti visapusiškesnė ir moksliškesnė.


3. Kruopščiai planuokite duomenų struktūras


Duomenų struktūrų apibrėžimas yra labai svarbus, todėl turėtumėte stengtis kuo labiau suvienodinti šias struktūras, nesijaudindami dėl vietos saugykloje; šiuolaikinės PLC atminties pakanka dideliems duomenų kiekiams talpinti. Verta paminėti, kad 7 veiksme, kai tik įmanoma, neturėtumėte apibrėžti naudotojo -apibrėžtų tipų (UDT) už klasių ribų; vietoj to apibrėžkite juos klasėse. Nors dėl to skirtingose ​​klasėse gali būti dubliuojami tos pačios struktūros apibrėžimai, tai padidina klasių nepriklausomumą.


Tolesniuose skyriuose palyginsime šiuos du programavimo būdus:


Objektinio-programavimo privalumai Palyginti su kopėčių logika, į objektą- orientuoto programavimo pranašumai yra šie:

• Kodas yra nešiojamas ir lengvai naudojamas pakartotinai;

• Lengva naudoti matematines funkcijas, kilpas ir kitas konstrukcijas;

• Objektinis{0}}programavimas mokomas praktiškai kiekviename kompiuterių programavimo kurse;

• Kodas gali veikti įvairiose aparatinės įrangos platformose.


Norėdami įvaldyti objektinį{0}}programavimą, pirmiausia turite suprasti objektų sąvoką ir kaip juos naudoti. Kai objektas ar klasė yra parašyti, jį galima lengvai pakartotinai naudoti keliais skambučiais. Pavyzdžiui, sukurkite objektą, skirtą valdyti variklį, kuris tvarko visus įėjimus, išėjimus ir gedimus. Kai reikia, kelis variklius galima valdyti kelis kartus paleidus šį vieną valdymo objektą. Tai žinoma kaip-momentavimas pagal poreikį. Kai reikia valdyti kelis variklius, šį vieną objektą galima naudoti pakartotinai. Jis iškviečiamas, kai reikia, o egzemplioriai sukuriami tada, kai jie naudojami.


Kiekvienas kiekvieno variklio egzempliorius turi savo charakteristikas, tokias kaip variklio sustabdymas, variklio veikimas, variklio greitis ir variklio perkrova. Didžioji programavimo darbų dalis baigiama pirmą kartą sukuriant objektą. Tai yra kitoks mąstymo būdas nei kopėčių logika, ir jis yra galingesnis, nes kai objektas yra pastatytas, jį lengva naudoti ir pakartotinai naudoti. Objektinis-programavimas palengvina sudėtingų matematinių funkcijų atlikimą, ciklo skaičiavimus, masyvus ir įdėtas paprogrames. Beveik visuose kompiuterių programavimo kursuose, -nesvarbu, ar jie mokosi vidurinėje mokykloje, koledže, ar internetiniuose mokymo kursuose,-mokoma šios sąvokos. Sukurtas kodas yra nešiojamas ir gali veikti įvairiose aparatinės įrangos platformose.


"Kopėčių logika atitinka elektrinių kopėčių schemų formatą, naudojamą relių valdymo sistemose, ir dauguma žmonių gali greitai tai išmokti ir įvaldyti."


Tačiau, palyginti su laiptų logika, objektinis{0}}programavimas turi šiuos trūkumus:


• Didesnė kaina;

• Statesnė mokymosi kreivė;

• Techninės priežiūros personalui gedimų šalinimas nėra ypač lengvas;

• Kompiliacija paprastai reikalinga prieš įkeliant šaltinio kodą į procesorių.


Palyginti su laiptų logika, į objektą{0}}orientuotą programavimą dažnai reikia daugiau atminties ir didesnės apdorojimo galios, todėl išlaidos didesnės. Objektinės-programavimo kalbos mokymasis gali užtrukti ilgiau. Tikėtina, kad reikia pamokų, o pagrindinių sąvokų įsisavinimas reikalauja daug laiko, praktikos, bandymų ir pritaikymo. Programuotojai turi dažnai studijuoti objektą{5}}orientuotą programavimą, kad galėtų naudoti sekiklius kodui sekti arba derinimo priemones, kad derintų logiką. Naudojant tokio tipo aukšto lygio{7}}programavimą, gali būti sunku įdiegti realiuoju laiku{8}}internetinės stebėjimo galimybes.


Prieš atsisiunčiant šaltinio kodą į valdiklį, jis turi būti sukompiliuotas. Paprastai šaltinio kodas nėra saugomas procesoriaus atmintyje. Tai reiškia, kad reikia pasirūpinti atsargine šaltinio kodo kopija, nes sukompiliuoto kodo paprastai negalima redaguoti. Naudojant objektinį-orientuotą programavimą, bibliotekos failai turi būti susieti su kitais kompiliavimo proceso metu naudojamais ištekliais. Nesupratus susiejimo ir išteklių, bus sunku paleisti programą.


„Ladder Logic“ pranašumai:


Kopėčių logika yra paprastas ir savaime{0}}dokumentuojantis kodavimo metodas-, kai kuriems net kyla klausimų, ar jį galima laikyti programavimo kalba. Jis atitinka kopėčių diagramų formatą, naudojamą relių valdymo sistemose, ir dauguma žmonių gali greitai jį išmokti ir įvaldyti. Tai buvo vienintelė programavimo kalba, plačiai naudojama mašinų automatizavimo srityje dešimtmečius, ir artimiausioje ateityje ji išliks viena iš pagrindinių programavimo kalbų automatikos pramonėje.


Laikui bėgant, kai į pramonę atėjo įvairių sluoksnių ir sričių žmonės, į pramonės automatizavimo įrankių rinkinį buvo įtrauktos įvairios programavimo kalbos. Tai apima funkcinių blokų programavimą, struktūrinį tekstą, būsenų programavimą ir nuoseklias funkcijų diagramas. Šios keturios programavimo kalbos kartu su laiptų logika sudaro standartines programavimo kalbas, apibrėžtas Tarptautinės elektrotechnikos komisijos (IEC) standarte IEC 61131-3.


IEC 61131 logika yra ta, kad jei kiekvienas pardavėjas laikosi šio standarto, tada-bent jau tam tikru mastu-asmeniui tereikės išmokti šias penkias programavimo kalbas, kad galėtų lengvai perjungti skirtingų tiekėjų siūlomas platformas. Tačiau taip nėra.


Tas pats pasakytina ir apie pagrindinę kopėčių logiką (pvz., relės kontaktų ir ritių naudojimą); tačiau programuojant reikia išmokti kiekvieno pardavėjo sintaksę ir vartotojo patirtį, taip pat jų programavimo platformos naudojimo specifiką. Nepaisant standartizacijos stokos, laiptų logika, palyginti su objektiniu{1}}programavimu, turi šiuos pranašumus:


• Puikiai{0}}tinka mašinoms ir procesams valdyti;

• Tai lengviau suprantama, nes ji savaime{0}}dokumentuojasi;

• Palengvina valdomos sistemos gedimų šalinimą;

• Lengva derinti;

• Šaltinio kodas paprastai gali būti saugomas procesoriuje.


Kopėčių logika puikiai{0}}tinka mašinų ir procesų valdymui, ypač automatizavimo sistemoms su daugybe atskirų įėjimų ir išėjimų (I/O). Bėgant metams kopėčių logika taip pat buvo nuolat tobulinama, kad būtų galima valdyti analoginius I/O, todėl ji labiau tinka įvairioms procesų valdymo programoms.

 

Palyginti su mašinų valdymo programomis, proceso programose paprastai yra didesnė analoginio įvesties/išvesties dalis.

Kadangi kopėčių logiką naudoti lengviau nei objektinį{0}}programavimą, daugelis kvalifikuotų technikų ir inžinierių gali greitai jos išmokti. Logika yra labai sisteminga ir organizuota, o jos savaime{2}}dokumentuojantis pobūdis leidžia lengviau suprasti ir įsisavinti. Prieš suaktyvinant įrenginį, kiekviena kodo eilutė turi būti įvertinta kaip teisinga. Jei reikia valdyti penkis variklius, reikia bent penkių kodo eilučių, o tai labai supaprastina procesą.

"Laidder loginis šaltinio kodas ir deskriptoriai paprastai yra saugomi valdiklyje, todėl nebereikia pasiekti šaltinio kodo ir taip pašalinamas nusivylimas, kurį dažnai patiria programuotojai, bandydami suprasti sukompiliuotas programas."

Elektros inžinieriams ir techninės priežiūros personalui kopėčių logika yra labai intuityvi. Nors laiptų logika reikalauja kitokio mąstymo nei objektinis-programavimas, ją galima greitai įsisavinti studijuojant ir reikia mažiau laiko suprasti kitų parašytą kodą. Visiškai aišku, kada logika teisinga, o kada klaidinga. Net tie, kurie turi ribotą programavimo patirtį, gali lengvai suvokti tokias sąvokas kaip įjungimo / išjungimo būsenos, ritės įjungimas, palyginimo kintamieji ir įprastos matematinės funkcijos.
 

81e77660-9f31-11ed-bfe3-dac502259ad0.jpg

Tai paprasta ir lengva naudoti, supaprastinant trikčių šalinimą ir derinimą. Stebint logiką nesunku suprasti esamas veikimo sąlygas. Nereikia jokių programinės įrangos išsilavinimo ar pažangių programavimo įgūdžių. Naudodami kopėčių logiką, techninės priežiūros ir inžinerijos darbuotojai gali lengvai sekti procesą ir suprasti, kas vyksta. Kopėčių logika gali būti laikoma tiesos lentele: jei logika kairėje yra teisinga, suaktyvinama logika dešinėje.


Kopėčių logikos šaltinio kodas ir aprašai paprastai saugomi valdiklyje. Tai pašalina nusivylimą, kurį dažnai patiria programuotojai, bandydami suprasti sukompiliuotą kodą be prieigos prie šaltinio kodo -problema, taip pat dažnai pasitaikanti objektų{2}}programavime.


Tačiau, palyginti su objektiniu{0}}programavimu, kopėčių logika taip pat turi šiuos trūkumus:


• Kompiuterių programuotojai ir IT specialistai nėra susipažinę su kopėčių logika;

• Sunku atlikti matematines funkcijas, apdoroti tekstą, apdoroti duomenis;

• Jis priklauso nuo nuskaitymo laiko;

• Jai vykdyti reikalinga specializuota aparatinė įranga, pvz., programuojamas loginis valdiklis (PLC).


Kopėčių logika – tai simbolinė kalba, kurios nepažįsta kompiuterių programuotojai ir IT specialistai, nes jie to nemoko mokykloje. Matematinių funkcijų, teksto eilučių ir duomenų tvarkymas kopėčių logikoje gali būti sudėtingas visų pirma todėl, kad kopėčių logika iš pradžių nebuvo skirta šioms funkcijoms valdyti.


Kopėčių logika taip pat priklauso nuo nuskaitymo laiko. Didesnėms programoms reikia daugiau laiko nuskaityti ir apdoroti logiką. Vykdant kopėčių logiką, sistema nuskaito įvestis, nuskaito logiką, atnaujina duomenų lenteles ir išėjimus, atlieka ryšį, o po to kartoja ciklą. Norint užtikrinti greitesnį tam tikros logikos vykdymą, gali būti įdiegtos tokios funkcijos kaip pertraukimai ir kiti programavimo būdai.


Nors programine įranga{0}}pagrįsti PLC, sukonfigūruoti naudojant kopėčių logiką, gali veikti asmeniniame kompiuteryje, aparatinė įranga (pvz., PLC) paprastai turi būti suderinama su programavimo programine įranga, todėl geriausia pirkti abu iš to paties pardavėjo. Tai užtikrina suderinamumą, tačiau tai nėra ypač patogu, jei norite pakeisti pardavėją.


Be laiptinės logikos ir objekto{0}}programavimo privalumų ir trūkumų palyginimo, naudotojai taip pat turėtų įvertinti, kaip šios programavimo kalbos bus naudojamos aplinkoje, kurioje jos bus diegiamos. Jei gamykla ar įrenginys jau standartizavo kopėčių logiką, nerekomenduojama jos pakeisti į objektą-orientuotu programavimu, net jei pastarasis yra geriau pritaikytas programai. Kadangi objektinio-programavimo naudojimas ir toliau auga, tikimasi, kad ateinančius dešimtmečius jis egzistuos kartu su laiptų logika. Į priekį-galvojančiam automatizavimo specialistui būtų naudinga-suvaldyti abi kalbas.

 

Siųsti užklausą

whatsapp

Telefono

El. paštas

Tyrimo