Logicke sekvencnıcelky
4 4. LOGICKE SEKVENC NICELKY
4.1 Strukturalizace PLC programu PLC program mu ze by t vytvoren ru zny mi zpu soby. Klasicky prı stup pri navrhu PLC programu je zalozen na navrzenısekvencnň-kombinacnılogiky nebo prepsanırele ove logiky do instrukcıjazyka PLC836. Kazde rele ma pak deklarovanou vlastnıvnitrnıbitovou bunku. Pri rı zenızapisu do te to bunky je definovana pomocı instrukcınahazovacı, prıdrzna a shazovacı podmınka. V programu je pak zapis do bunky na jedine m mıstň. Prı klad: Prı klad klasicke ho navrhu PLC programu.
NASTAV1
NASTAV2
BUNKA pr ıdrzna podmınka
nahazovacı podmınka NULUJ
shazovacıpodmınka BUNKA
LDR LO LO LA WR
NASTAV1 NASTAV2 BUNKA -NULUJ BUNKA
;nahazovacıpodmı nka je logicky soucet ;bitu NASTAV1 NASTAV2 ;prı drzna podmı nka ;bit NULUJ vynuluje klopny obvod ;pamňšova bitova promňnna
Modernňjsıprı stup pri navrhu PLC programu je zalozen na popisu jednotlivy ch procesu pomocıvy vojovy ch diagramu , ktere tvorılogicke sekvencnıcelky (mechanismy).
4-1
PLC
Sekvencnılogicky celek (dale jen MECHANISMUS) je programovy –sek, ktery se sklada z akcıa stavu . Akcıse rozumınastavenıprı slusny ch bitu , ktere aktivujıjednotlive casti mechanismu jako napr. zapnutıhydrauliky, vypnutı stykacu ventilatoru atd. Stavem se rozumı kontrola splnňnı pozadovany ch vstupnı ch podmınek mechanismu , napr. "cekej na sepnutıkontaktu stykace od hydrauliky". Mechanismus lze znazornit vy vojovy m nebo stavovy m diagramem. Mechanismus se aktivuje aktivacnı promňnnou (NAZEV). Jedna se o bitovou promňnnou, deklarovanou automaticky zapisem mechanismu. Tuto promňnnou je mozno ru znň nastavovat nebo testovat v programu interfejsu a tak rı dit chod dane ho mechanismu. Mechanismus se aktivuje nastavenım aktivacnıpromňnne a po dokoncenıfunkce mechanismu se tato promňnna automaticky vynuluje. PLC program mu ze obsahovat vňtsıpocet mechanismu pro resenıvsech dı lcı ch procesu stroje. (start vretena, reverzace vretena, stop vretena, upınanıa uvolnovanıos, orientovany stop, presun ramene, start a stop chlazenı , jednotlive kroky vy mňny nastroje, vyhledavanınastroje, razenıotackovy ch rad atd...). V jeden okamzik mu ze by t aktivovan libovolny pocet mechanismu a tyto bňzısoucasnň, nezavisle na sobň. Zakladnılogicka stavba PLC programu s aktivacıdı lcı ch procesu (mechanismu )
Zapis mechanismu jako paralelnı ch procesu
akce = aktivace MECH1 MECH1
MECH2
akce 1 stav 1
akce 1 stav 1
stav = cekame na splnňnıMECH1 akce = aktivace MECH2 stav
akce 2 stav 2
stav
akce 1 stav 1
akce 2 stav 2
MECH3
akce 2
stav = cekame na splnňnıMECH2
stav 2
akce = aktivace MECH3 a MECH1 stav
akce n stav n konec
akce n stav n
akce n stav n
konec
stav = cekame na splnňnıMECH1 a MECH3
konec
Navrh PLC programu se pomocımechanismu velmi zjednodusıa zprehlednı . PLC program z hlediska navrhu zı ska strukturalizaci. Strukturalizace je umoznňna tım, ze se pomocımechanismu popı sıvsechny dı lcıprocesy stroje a tak hlavnılogicka stavba PLC programu uz nenızatı zena jejich problematikou. Hlavnılogicka stavba PLC programu jenom aktivuje jednotlive dı lcıprocesy (mechanismy) a kontroluje jejich splnňnıa prı padny vy skyt chyb. Mechanismy se skladajız akcıa stavu . Pro kazdy stav jsou kontrolovany jen podmınky nevyhnutnň potrebne pro prechod do nasledujı cı ho stavu. V kazdy okamzik mozno sledovat pru bňh jednotlivy ch mechanismu : ktere z nich jsou aktivovany a v jake m jsou stavu. Tak prirozenň dochazık velke mu ulehcenız hlediska ladňnıa diagnostikovanıprovozu stroje, protoze kazdy stav, ve ktere m se mechanismus nachazıje dan tzv. podmınkou pokracova nı (podmı nkova analy za). Podmı nky pokracovanı (pro prechod do nasledujı cı ho stavu) je uzitecne sledovat pri zastavenı chodu mechanismu. Silnou strankou mechanismu je i to, ze splnňnıpodmınek mu ze by t casovň omezeno a tak nedojde k trvale mu zastavenıchodu mechanismu. Mechanismus se ukoncıs chybou a v popisu chyby na obrazovce syste mu mu ze by t presnň v textove podobň vyjadrena podmı nka pokracovanıdane ho mechanismu i s cı sly svorek jednotlivy ch vstupu , ktere podmı nka obsahuje. Tak jsou velmi ulehceny servisnıprace pri poruchach.
4-2
Logicke sekvencnıcelky
Kromň podmınek, ktere mozno sledovat a jsou uzitecne v prı padň zastavenıchodu mechanismu, mozno sledovat i casovy pru bňh chodu mechanismu, to je jak dlouho se pru bňh mechanismu zdrzel v jednotlivy ch stavech a ktery mi stavy prochazel (tzv. casova analy za).
4.2 Instrukce pro logicke sekvenc nı celky instrukce
MECH_BEGIN MECH_END MECH_INIT
funkce
MECH_BEGIN MECH_END MECH_INIT
zaca tek logicke ho celku konec logicke ho celku inicializace logicke ho celku
syntax
MECH_BEGIN MECH_END MECH_INIT
mech mech mech
Instrukce MECH_BEGIN musıby t zapsana na zacatku mechanismu. Promňnna "mech" je nazvem mechanismu a soucasnň nazvem jeho aktivacnı bitove promňnne . Instrukce MECH_END musı by t zapsana na konci prı slusne ho mechanismu. Promňnna "mech" ma stejny vy znam, t.j. je totozna s nazvem v MECH_BEGIN. Instrukce MECH_INIT uvede mechanismus do klidove ho stavu. Pouzı va se v inicializaci interfejsu nebo v obsluze chybovy ch stavu . Instrukci je nutno pouzı t pred prvnım pru chodem mechanismu, proto se doporucuje napsat instrukci do inicializacnı ho modulu interfejsu (viz dale). Promňnna "mech" ma opňt stejny vy znam jako u MECH_BEGIN. Viz "Spolecne zasady" (dale).
4-3
PLC
instrukce
EX EX0 EX1 BEX
funkce
EX EX0 EX1 BEX
syntax
EX EX0 EX1 BEX
pr erus enıpo dobu jednoho cyklu interfejsu pr erus enı cinnosti pokud RLO = 0 pr erus enı cinnosti pokud RLO = 1 zaca tek podmınky
Instrukce pro definici stavu EX, EX0, EX1 zastavıprovadňnısekvencnıho logicke ho celku do doby splnňnı kontrolovane podmı nky. Instrukce mozno pouzıvat jenom uvnitr logicky ch sekvencnı ch celku . Tato prerusenıse nazy vajıstavy mechanismu. Instrukce EX zpu sobınepodmınňne zastavenıprovadňnısekvencına dobu jednoho cyklu interfejsu. Instrukce BEX je podobna jako instrukce EX, ale neprovede se zastavenıprovadňnısekvencı . Instrukce se pouzı va pro definici zacatku logicke podmınky pred instrukcemi EX0, EX1, TEX0 a TEX1. Instrukci je vy hodne pouzı t v casovň narocny ch procesech, kdy ztrata jednoho cyklu interfejsu mu ze vadit. Instrukce EX0, resp. EX1 pozastavıprovadňnıdalsı ch sekvencımechanismu po dobu, pokud RLO=0, resp. RLO=1. Pred instrukcemi EX0 a EX1 mu ze by t napsana logicka podmınka pro pokracovanıv dane m stavu. Pro dany stav v kazde m cyklu dojde k vyhodnocovanıpodmı nek zapsany ch v –seku mezi predposlednıa poslednıdosazenou instrukcıtypu EX. Ve skutecnosti instrukce EX0 a EX1 necekajına dane m mıstň pokud nenısplnňna podmınka, ale provedou skok na konec mechanismu. V dalsı m pru chodu mechanismem se skocıze zacatku mechanismu na predposlednı instrukci typu EX a znovu se vyhodnotıpodmı nky po instrukci EX0 nebo EX1. Viz kapitolu "Spolecne zasady mechanismu " (dale). Instrukce EX, EX0, EX1, TEX0, TEX1 a BEX jsou koncove instrukce pro logicke rovnice. Instrukce nezachovavajıRLO a DR registr.
4-4
Logicke sekvencnıcelky
instrukce
TEX0 TEX1
funkce
TEX0 TEX1
pr erus enı cinnosti pokud RLO = 0 s casovou kontrolou pr erus enı cinnosti pokud RLO = 1 s casovou kontrolou
syntax
TEX0(TEX1) TEX0(TEX1) TEX0(TEX1) TEX0(TEX1) TEX0(TEX1)
citac, doba, error citac, doba, error [, chyba ] [TYPE.]citac, doba, error [, chyba ] TYPE. (citac+n), (doba+m), error [, chyba] - , doba, error [, chyba] TYPE = BYTE. WORD.
Instrukce TEX0, resp. TEX1 pozastavıprovadňnıdalsı ch sekvencımechanismu, pokud RLO=0, resp. RLO=1, ale maximalnň po predem stanovenou dobu "doba" (BYTE, WORD, konstanta). Pokud logicka podmınka pokracovanı , ktera je napsana pred instrukcemi TEX0 a TEX1, nebude splnňna po zadanou dobu, bude program pokracovat od navňstı , ktere je zadano v parametru instrukce "error". Parametr "citac" mu ze by t typu BYTE nebo WORD. Pro syste my rady CNC8x9 “ DUAL od verze 6.028 je prvnıparametr instrukce pro "citac" nepovinny . V tomto prı padň si instrukce deklaruje automatickou promňnnou v lokalnı ch datech. Mı sto 1. parametru se v tomto prı padň napı se znak pomlcky nebo ” NIL„. Jedna se o silne instrukce, z ktery ch se mechanismy skladajı , predevsım protoze umoznujıosetrit chybove stavy a tak nikdy nedojde k trvale mu zastavenıchodu mechanismu. V textove m popisu prı padne chyby mu ze by t pak presnň popsana podmınka pokracova nı v dane m stavu a tak je umoznňno diagnostikovanıstroje. Pro dany stav v kazde m cyklu dojde k vyhodnocovanıpodmı nek zapsany ch v –seku mezi predposlednıa poslednň dosazenou instrukcıtypu EX. Instrukce vyzaduje tri povinne parametry. Urcenıcasove ho clenu "citac", zadanou dobu zpozdňnı"doba" a navňstı"error", od ktere ho bude program pokracovat, jestlize nebude splnňna podmınka za stanovenou dobu. "Doba" mu ze by t prıma hodnota nebo adresa promňnne . Viz "Spolecne zasady" (dale). Ctvrty m nepovinny m parametrem "chyba" mu ze by t cı selna hodnota (vňtsinou cıslo chyby), ktera zu stane v datove m DR registru pri skoku na navňstı"error". Tı m je umoznňno, ze z ru zny ch instrukcıTEX0 a TEX1 mozno v mechanismu skakat na stejne mı sto "error" se spolecnou obsluhou chybove ho stavu mechanismu. Instrukce TEX0 a TEX1 jsou koncove instrukce pro logicke rovnice. Instrukce nezachovavajıRLO a DR registr, kromň odskoku na navňstı"error", kdyz je pouzity ctvrty parametr "chyba". Moznost predefinovanıtypu operandu "citac" a "doba" je popsano v kapitole "Zpu soby predefinovanıtypu u datovy ch promňnny ch. Predefinovanıtypu se vztahuje na oba operandy "citac" a "doba", proto v tomto prı padň nenıumoznňno pouzı t operandu "doba" deklarovane ho jako konstanta.
4-5
PLC
instrukce
TIM
funkce
TIM
casove zpozdůnı
syntax
TIM TIM TIM TIM
citac, doba [TYPE.]citac, doba TYPE.(citac+n), (doba+m) - , doba TYPE = BYTE. WORD.
Instrukce casove ho zpozdňnıTIM zastavıprovadňnısekvencnı ho logicke ho celku na stanovenou dobu. Instrukce vyzaduje dva parametry. Urcenıcasove ho clenu "citac" a zadanou dobu zpozdňnı"doba". "Doba" mu ze by t konstanta nebo adresa promňnne . Oba parametry mohou by t typu BYTE nebo WORD. Instrukce TIM ma podobne pu sobenıjako instrukce EX a mu ze by t pouzita jen uvnitr mechanismu. Pro syste my rady CNC8x9 “ DUAL od verze 6.028 je prvnıparametr instrukce pro "citac" nepovinny . V tomto prı padň si instrukce deklaruje automatickou promňnnou v lokalnı ch datech. Mısto 1. parametru se v tomto prı padň napı se znak pomlcky nebo ” NIL„. Moznost predefinovanıtypu operandu "citac" a "doba" je popsano v kapitole "Zpu soby predefinovanıtypu u datovy ch promňnny ch. Predefinovanıtypu se vztahuje na oba operandy "citac" a "doba", proto v tomto prı padň nenıumoznňno pouzı t operandu "doba" deklarovane ho jako konstanta.
4.3 Spolec ne za sady mechanismu Instrukce EX, EX0, EX1, TEX0, TEX1 a TIM mohou by t pouzity pouze uvnitr sekvencnı ch logicky ch celku , vymezeny ch instrukcemi MECH_BEGIN a MECH_END. Budeme je nazy vat spolecnň: instrukce typu EX. Kazdy mechanismus musı by t inicializova n pomocı instrukce MECH_INIT v modulu PIS_INIT a prıpadnů v PIS_CLEAR (viz kapitolu "Struktura PLC programu"). Modul prı pravny ch a zavňrecny ch funkcıje take sekvencnım logicky m modulem a proto v nich lze vyuzı t instrukce vsechny instrukce typu EX i samostatnň. Pouzitıtňchto instrukcıv uvedeny ch modulech zpu sobı zastavenıprovadňnıprı pravny ch nebo zavňrecny ch funkcıdo doby splnňnıkontrolovane podmınky (viz prıklad). Instrukce EX0, EX1, TEX0, TEX1 a TIM pozastavıprovadňnıdalsı ch sekvencımechanismu po dobu danou podmınkou ( pokud RLO=0, resp. RLO=1) nebo dobu danou nastaveny m casem ( u instrukci TIM). Pred instrukcemi EX0, EX1, TEX0 a TEX1 mu ze by t napsana logicka podmı nka pro pokracovanıv dane m stavu. Pro dany stav v kazde m cyklu dojde k vyhodnocovanıpodmı nek zapsany ch v –seku mezi predposlednıa poslednıdosazenou instrukcıtypu EX. Ve skutecnosti instrukce typu EX necekajına dane m mı stň pokud nenısplnňna podmınka, ale provedou skok na konec mechanismu. V dalsı m pru chodu mechanismem se skocıze zacatku mechanismu na predposlednı instrukci typu EX a znovu se vyhodnotıpodmı nky po poslednıinstrukci typu EX.
4-6
Logicke sekvencnıcelky
Zpusob procha zenı programu mechanismem v dane m STAVu
skok –sek programu, ktery se skutecnň prochazı skok
MECH_BEGIN ..... ..... EX0 FL ..... LDR LA TEX1 ..... ..... MECH_END
MCH
;zacatek mechanismu
1,VYST1
;predposlednıinstrukce typu EX ;poslednň vykonana AKCE
VST1 ;poslednıSTAV: log.soucin VST2 ;ceka pokud VST1*VST2=1 CITAC1,CAS_ERR,ERR ;poslednň vykonana instr. typu EX MCH
;konec mechanismu
Mechanismy mozno aktivovat a dezaktivovat i z jiny ch mechanismu . Prı pad dezaktivace mechanismu se provede instrukci MECH_INIT, ktera vynuluje bitovou rı dı cıpromňnnou mechanismu a nastavıpokracujı cı adresu na zacatek. Dezaktivaci mechanismu je vy hodne pouzı t v prı padň protichudny ch mechanismu, kdy mechanismus s vňtsıprioritou dezaktivuje z bezpecnostnı ch du vodu svu j protichu dny mechanismus. Naprı klad mechanismus stopu vretene dezaktivuje prı padnň rozpracovany mechanismus pro start vretene. Mechanismy je take mozno zacyklit a tak se mohou s vy hodou pouzıvat i trvale zacyklene mechanismy. Tyto pak majıvlastnost sekvencnı ch driveru . Trvale zacykleny mechanismus musımı t v tňle cyklu aspon jednu instrukci typu EX ! Definicımechanismu "mech" se provede automaticka deklarace bitove promňnne s nazvem "mech", deklarace pamňšove bunky typu WORD pro pokracujı cıadresu mechanismu a pamňšove bunky typu WORD s nazvem "mech_LINE" pro aktualnılinku programu, ve ktere se mechanismus nachazı . Pri kompilaci PLC programu programem TECHNOL (viz. dale) se vytvorıtake kontrolnılisting programu s rozsı renım ".LS1" ktery je doplnňn o cı sla radku (linky) programu. Pri kazde definici stavu pomocıprı kazu EX, EX0, EX1, TEX0, TEX1 a TIM se pro kontrolu zapisuje cı slo linky do bunky "mech_LINE". Pomocınıje umoznňno jednoduche sledovanı , ve ktere m stavu se mechanismus nachazı . Pokud mechanismus nenı aktivovan, je bunka "mech_LINE" vynulovana. Prı klad: Nastartovanımechanismu s nazvem "CW" v prı pravnı ch funkcı ch a cekanına provedenımechanismu: FL EX LDR EX1
1,CW
;Nastavenıaktivacnıpromňnne .
CW
;Kontrola vykonanımechanismu. ;Ceka, pokud CW = 1
4-7
PLC
ZAC ATEK MECH_BEGIN NAZEV ne
NAZEV = 1 ano AKCE 1
KONTROLA STAVU 1
FL
1,HYDRAULIKA
LDR LA EX0
KONTAKT 1 KONTAKT 2
FL
0,POHON
LDR EX1
KONTAKT 3
nesplnňno
ano AKCE 2
KONTROLA STAVU 2
nesplnňno
NAZEV ¬ 0
MECH_END NAZEV
KONEC
Prı klad: Nastartovanımechanismu s nazvem "CW" v prı pravny ch funkcı ch a cekanına provedenımechanismu po dobu 10 sec. Jestli se mechanismus za 10 sec neprovede, pokracuj na obsluhu chyby ERR1:
ERR1:
4-8
EQUI EQUI
D500,500 CHYBA1,12H
;ERROR 4.12
FL EX LDR TEX1 .... ....
1,CW
;Nastavenıaktivacnıpromňnne .
CW CITAC,D500,ERR1
;Kontrola vykonanımechanismu. ;Ceka, pokud CW = 1, ale maximalnň ;10 sec. Jestli CW = 1 de le nez 10 sec., ;pokracuje na ERR1.
CHYBA1 BZH11
;Obsluha chyby. Prekrocena casova ;kontrola spravnosti chodu mechanismu.
LOD STO .... .... ....
Logicke sekvencnıcelky
Prı klad: Zapiste mechanismus pro reverzaci otacek vretena z CW do CCW. Mechanismus nazvňte CWCCW. MECH_BEGIN FL LDR EX1
CWCCW 0,SMP KSMP
TIM FL LDR EX0
CAS1,D02 1,SMN KSMN
MECH_END
CWCCW
;Zacatek mechanismu. ;Vynuluj stykac motoru-pozitiv. ;Cekej, pokud kontakt stykace ;motoru-pozitiv je v jednicce. ;Zpozdňnı0,2 sec. ;Zapni stykac motoru-negativ. ;Cekej, pokud kontakt stykace ;motoru-negativ je v nule. ;Konec mechanismu.
Pozna mka: V rea lnem prıpadš by bylo vhodnšjsı v mechanismu CWCCW mısto instrukcı EX1 a EX0 pouzıt instrukce TEX1 a TEX0, tak jak je to v na sledujıcım prıkladš. Prı klad: Zapiste mechanismus pro reverzaci otacek vretena z CW do CCW. Mechanismus nazvňte CWCCW. Jestli nespadne kontakt od stykace motoru-pozitiv KSMP do doby 1 sec., zahlas chybu 4.04. Jestli neprijde kontakt od stykace motoru-negativ KSMN do doby 1 sec., vypni stykac motoru a zahlas chybu 4.05. EQUI EQUI
D1,50 D02,10
;Doba 1 sec. ;Doba 0,2 sec.
FL LDR TEX1
CWCCW 0,SMP KSMP CITAC1,D1,CW_ERR,04
;Zacatek mechanismu. ;Vypni stykac motoru-pozitiv.
TIM FL LDR TEX0
CITAC,D02 1,SMN KSMN CITAC,D1,CW_ERR,05
JUM
CW_END
FL STO
0,SMN BZH11
;Cekej, pokud kontakt stykace ;motoru-negativ je v nule, ale ;maximalnň 1 sec. ;Skok na konec mechanismu. ;Obsluha chyby mechanismu. ;Vypni stykac motoru-negativ. ;Nastav chybu 4.05, 4.04
CWCCW
;Konec mechanismu.
MECH_BEGIN
CW_ERR: CW_END: MECH_END
;Cekej, pokud kontakt stykace ;motoru-pozitiv je v jednicce. ;Zpozdňnı0,2 sec. ;Zapni stykac motoru negativ.
Prı klad: Zpu soby zapisu instrukcıTEX0,TEX1 a TIM s predeklarovanım typu: CITAC: REKONFIG:
DS DS
100 100
;pole cı tacu ;pole rekonfigurovatelny ch promňnny ch
TEX0 TEX1 TIM
WORD.(CITAC+30),(REKONFIG+14),ERROR BYTE.(CITAC+13),(REKONFIG+21),ERROR,23h WORD.(CITAC+20),(REKONFIG+10)
4-9
PLC
4-10