You are on page 1of 26
SIEMENS Apelul Blocurilor gi Modelul Multi-atribuit SIMATIC S7 Be gees FA SRAM eas Cuprins : Pag Blocuri folosite in Programarea Structuraté, 2 Rezumat a Blocurilor in STEP 7. 3 Declararea Parametrilor in Functi gi Functii Bloc. 4 Proprietatile Functilor. 5 Mecanismul de transfer pentru tipurile de date elementare, 6 Apelul Functiel cu Tipul de Date Complex, 7 Caracteristici pentru Apelarea Funstilor. 8 Propretile functor bloc. : cs 8 Formarea instantelorfunctilor bloc. 10 Transmiterea Parametrilor la apetul unui FB " Apelul FB cu Tipurile de Date Complexe 2 Caracterstcile apelulul functor bloc. 13 Exercitiul 6: Modelul Banda ca Statie de Imbuteliere. 14 Exercitul 6 1a: Statia de Imbuteliere - Sectiunea Regim. 8 Exercijul 6 1b: Stalia de Imbuteliere - Conveyor 16 Structura unui Model Mult-instanta 7 Programarea Orientata pe Obiect folosind Multinstan|ele... oun 18 Implementarea unei*Lini presaro" in STEP 7 19 Proprietaile modelului Mutt-instanta 20 Exercitul 6 2: Modelul Banda ca Linie de Asamblare. 2 Exercitiul 6.2a: Structura Programului pentru o Statie de Lucru 2 Cum lucreaza functia "Statia’ FB1 ; 2 Cum lucreaza functa "Trensportu” FB2 24 Exercijul 6.2b: Expansiunea pe 3 Stati 25 “ saan SETeROZ SITRAIN intuire pon ‘Automatica si Actonart Pagina 1 Apelul blocurilor si modelul mult-atribuit SIEMENS. Blocuri pentru Programarea Structurata ost FBI FB10 Motor Feontoue Modularizarea intregului Proces: * Procesele partiale sunt rezolvate in functiile proprii rae tos src “| Lime >) I vee KAS eco oB2 ost re, pe Reutilizarea Blocurilor: ffmne bel: Rene Py © Blocurile pot fi apelate : 18 Sep soo oricat de des este necesar so 2 Speed & © Restric CALL FBI, DB2 03 timp ener NT + Fara acces la adresele globale + Comunicare doar prin an intermediu! parametrilor . 7 Pais og Sari SIMATIC S7 Modularizarea Sarcinii Metoda de separare reprezinta baza in rezolvarea problemelor complexe, in care ne concentram pe aspectele fundamentale din fiecare nivel ignorand toate detaliile ce nu sunt esentiale. Separarea ne ajutd la divizarea sarcinilor ‘complexe in sarcini parjiale ce pot fi rezolvate ca structuri de sine statatoare, Programarea Structuraté ‘STEP7 permite folosirea acestui concept de modularizare prin modelul bloc. Sarcinilor parfiale ce rezulté din divizare le sunt atribuite blocuri in care se regasesc algoritmi si datele necesare pentru rezolvarea problemelor partiale. Blocurilor STEP7 cum sunt functile (FC) si blocurile de functi (FB), li se pot atribui parametri, astfe| conceptul de programare structurata putand fi implementat cu ei. Acest lucru inseamnéi + Blocurile necesare pentru rezolvarea sarcinilor partiale implementeaz& propriul management de date cu ajutorul variabilelor locale. + Blocurile comunica cu "lumea exterioara’, adica, cu senzorii gi elementele de ‘executie ai controlului procesului, sau cu alte blocuri din programul utilizatorului, exclusiv prin parametri lor de bloc. Nu este posibil accesul ia adresele globale cum sunt intrarie,iesirle, memorile bit sau variabilele din DB-uri din sectiunea de instructiuni a a blocurilor. Avantaje Programarea structurati are urmétoarele avantaje: + Blocurile pentru sarcinile parfiale pot fi create si testate independent. + Cu ajutorul parametrior, blocurile pot fi concepute pentru a fi flexibile. In acest mod, poate fi creat de exemplu un ciclu de excavare, la care se pot transmite prin intermediul paramettilor date cum ar fi coordonatele si adancimea | locului de excavare + Blocurile pot i apelate ori de cate ori este nevoie in locatiidiferite si cu Inregistrari de parametrii diferite => reutiizare. + Blocurile "Reutiizabile" pot fi accesate din librarii precreate in acest scop SITRAIN instrire pentru ST-7PRO2 Automatizen si Actionan Pagina 2 Apelul blocurilor si modelul multi-atriouit SIEMENS Rezumat Blocuri in STEP 7 Tipul Bloculul Proprictati Interfafa cu ubizatorul Blocuri de See on rion (0 la 27) + Informati de start specifice in stva de date locale Functi Bloc (FB) - Parametri atbuil (paramot co pot f atagat doar “eu (tecall) memorie variable siatice) Functi (FC) - Parametri atrbulf (paramottl ebuie atibui Tn ape!) “In prinipi fara memore (doar varabile tomporare) loci de date (08) ~ Salvare date locale structurata (Instance DB) + Salvare date lobale strucurate (valde In tot programul) Functi Bloc Sistem (SFB) FB (cu memorie) salvate In sistemul de operare al GPU-Llu scare pol f apelate de cate ulizator Functi Sistem (SFC) -Funcfi (far memorie) salvate in sistemul de operare al CPU-ulu) scare pot fl apelate de cate utlzator Blocuri de date Sistom (SDB) Bloc do dato pontru detele gi parametrii de configurare SIMATIC S7 Blocurile in STEP 7 acd oF Secs Blocurile sunt prin functionalitatea, structura sau aplicabilitatea lor pai limitate ale programului utlizatorului, Blocurile din STEP 7 pot fi impaitite in doua clase: + Blocuri utilizator: Aceste blocuri includ Blocuri de Organizare (OB), Funct bloc (FB), Functii (FC) si Blocuri de Date (DB) Programatorul saiveaza instructiunile de program pentru procesarea datelor sau pentru controlul procesului in blocuri (OB, FB si FC). In blocurile de date (DB), programatorul salveaza informatii ce apar in timpul executiei programului, pe care le poate folos! ulterior. Bioourile utilizator sunt create intr-un dispozitiv de programare si descarcate in CPU + Blocuri Sistem: Includ Functi bloc Sistem (SFB), Functii Sistem (SFC) cat si Blocuri de Date Sistem (SDB). SFB-urile si SFC-urile sunt folosite pentru a rezolva sarcini standard PLC frecvente. Acastea sunt integrate in sistemul de operare al CPU-ului SDB-urile contin date de atribuire a parametrilor ce sunt evaluate exclusiv de CPU. SDB-urile nu sunt create sau scrise de programul utiizatorului, ci de diverse utlitare HW-CONFIG sau NETPRO ‘SDB-urile sunt create in timpul incarcéiii datelor de atribuire a parametrilor - invizibile pentru utiizator - si descarcate in CPU. Desodircarea este posibilé doar in modul STOP. Descarcarea Blocurilor Ih plus fata de avantajele programariistructurate, conceptul de bloc in STEP 7 mai ofera urmatoarele avantaje: + Blocurile utiizator (OB, FB, FC si DB) in STEP 7 pot fi modificate gi descarcate in CPU in timpul executie! In acest mod, componentele software ale sistemului pot fi Imbunatalite in timpul executiei si erorile pot f eliminate. SITRAIN instrure pentru ‘Auiomatizar si Acionar ST-7PRO2 Pagina 3 Apelul blocurilor si modelul multt-atribuit SIEMENS Declararea parametrilor in Functii si Functii Bloc Parametrii reprezinta canalele care transfera informatia: © Parametrii de intrare: Apelant > Bloc © Paramotrii de iesire: Bloc -> Apelant © Paramett Apelant <> Bloc Decl. [Name [Type [inital Value in| Start BOOL | FALSE in | Stop BOOL | TRUE in| Speed _|int | ‘out | Motor_on | BOOL | FALSE ‘out__| Setpoint _| INT’ inout | EMER_OF# BOOL stat F inlout: Parametrii de la “suprafata” temp unui bloc: © Parametrii sunt In sectiunea de program ca gi variabile “locale” Saas ‘© Parametrii pot avea orice tip en Motor" ewo|— de data + Tipul de data se veriica la —| Start Motor_on |. metri apel parametril 1 | stop Setpoint!” iogire + Exceptje:P OINTER, ANY —| speed © Interfata de apel este . independents de jimbaj Prowl" {— EMER OFF + Limbajele PLC pot fi combinate SIMATIC $7 fe aS susaturaeen Prezentare Generali Tipuri de Declaratii in in_out Nume si Tip Apeluri de Bloc Parametrii sunt folositi pe post de canale pentru transferarea informatiel dintre blocul apetant si cel apelat. Numele simbolic, tipurile de date si daca este ecesar, valorle intiale ale parametnilor aunt stabilite in tabelul de deciarati Tipul parametrlor indica directia de transfer a datelor: Parametrii de intrare (FB, FC): Sunt folositi pentru a transmite informatia din blocul apelant ia biocul apelat. in blocul apelat ese posibil doar un acces de citire (read-only access) la paramettii de intrare. Parametrii de iesire (FB, FC): Sunt folositi pentru a transmite informatia (rezuttatul) de la biocul apelat inapo’ la cel apelant, Parametrii In/Out (FB, FC): Acestia transfera informatia in ambele directi, Se permite un acces de tip scris-citt. In mod identic cu variabilele locale, parametrii au un nume simbolic si un tip (tipul de date gi tipul de parametri). Parametni pot fi folosit| In sectiunea de cod ‘2 unui bloc in acelagi mod cu variabilele locale de acelasi tip de date. Din acest motiv, parametri mai sunt num si parametriiformali in cadrul unui bloc’ La apelul unui bloc, parametri formal a unui bloc (FC) sisau (FB) pot si trebuie 8 fie atribuit! cu paramettil reali corespunzatorl Pentru a evita 0 interpretare eronata, (cu privie la tipul de date) sau o folosire defectuoasé a parametrilor reali ce sunt transmisi, PLC Editor verificd faptul ca adresa real creata sa fie de acelagi tip cu parametri formal in momentul apelari blocului (Exceptie: POINTER si ANY), Verificarea tipului si transmiterea paramettilor este independent de limbaj ‘Acest fapt garanteaza ca blocurile ce au fost create cu diferite Editoare PLC (STL LAD, FED, SCL, etc.) pot sd se apeleze intre ele. SITRAIN Instuire pentru [Automatizan si Actionan ST-7PROZ Pagina 4 —_Apelul blocurilor si modelul multi-atribuit SIEMENS Parametrii atribuiti blocurilor: © Cat de multi parametrii de intrare, iegire gi in/out sunt necesa © Fara memorie, ex. variabile temporare IEC 61131-3 conform: © Cat de multi parametrii sunt necesari © Doar un singur parametru iegire RET_VAL © Fara acces la variabilele globale sau adresele absolute © Cuacelasi parametru de intrare se specifica rezultatul identic Extindere set instructiuni al procesorului Proprietatile functiei Funcfia FC10 In Ont BOOL Execute in On2 BOOL program CALL FC Ont One off 4 SIMATIC S7 Prezentare Generala Funofiile sunt blocuri cu paramettiiatribuit, fara memorie. In STEP 7 functile pot avea oricati parametri de intrare, paramettii de iesire sau parametri in/out. Funetile nu au memorie; nu au zona separata pentru salvarea datelor permanente. Rezultatele temporare ce apar pe parcursul executie’ functiei pot f salvate numai in variabile temporare din stiva de date locale. Funotile expandeaza setul de instructiuni al procesorului Aplicatie Funotile sunt folosite cu precédere atunci cénd este necesard returnarea valonior in blocurile apelante (de exemplu, functile matematice, controlul simplu folosind operati binare logice). Funcfii in Conformitate cu IEC 61134 Daca trebuie create funcfi IEC 61131-3 atunci trebuie urmarite reguille + Functile pot avea oricali paramettii de intrare. Ele pot returna numval un singur rezultat parametrului de iesire RET_VAL + Variabilele globale nu pot finici scrise nici ctite in cadrut functilor. + Adresele absolute nu pot finici scrise nici cite in cadrul functilor. + Nici instanta a blocurilor de functi nu poate fi apelata In cadrul functor. Din cauza lipse "memoriei’, valoarea returnatd a unel functii ce este in conformitate cu IEC 61131 este dependenta numai de parametrul de intrare. Pentru valor identice ale parametrului de intrare functia returneaza acelasi rezultat. Este la Indemana programatorului de a crea functii ce se conformeaza standardului sau s& facé programarea blocurilor si structurarea in STEP 7 cum, este efectuat’ in STEP 5 SITRAIN Instuie penta ‘Automatzar si Acionar ‘ST-7PRO2 Pagina —Apelul blocurilor si modelul multi-atribuit, SIEMENS © Imagi Mecanismul transfer pentru tipurile de date elementare Parametrii actuali olementari i © Zone adrese biti de memorie © L stack al apelulul de proces io [1/0 /0/1/0/0]1]o| ost ost Functia FC10 in Ont BOL ‘Program in On-2 BOOL execution z fou Se* Boot —\ [ae u CALL FC10 aed ue Hoye HE] R gona ii | A ina Bo) Stor aw Lf Parametit — Parameti L—| mete boc Stat SIMATIC S7 oe ASE sereatoane Parametrul FC Datele de procesare pot fi transmise unei functii apelate. Aceasta transmitere a Gatelor are loc exclusiv prin intermediullistei de parametrii ce apare dupa CALL, Numele si tipurile de date ale parametrilor blocului ce apar, sunt definit! in partea Ge deciaratii a FC-ulu Parametrii input (read-only), output (write-only) si in/out (citire si scriere) pot fi declarat} Numérul parametrilor nu este restrictionat (spatiu de memorie!), numele pot s& contina maximum 24 caractere. In plus, parametrilor i se poate atribui un comentariu detaliat. Daca blocul nu are parametri atunci la apelul FC se renunfa la lista de parametri Mecanismul de Transmitere Note La un CALL, STULAD/FBD Editor calculeaza pointeril area-crossing din parametri reall introdus! in lista de parametri gi i salveaza imediat dupa instructiunea de epel a FC-ului Daca accesul la un parametru formal (de ex: A On_1) are loc tn cadrul unui FC, CPU-ul determina instructiunea de apel FC din adresa returnata salvata in Stiva B. Din lista aferent& de parametri, FC-ul determina pointerul area-crossing al Parametrilor reali ce corespund parametrilor formali. Accesul paramettilor reali are loc prin acest pointer. Mecanismul de transmitere corespunde unui "Call by Reference". Daca accesul la un parametru formal are loc in cadrul unui FC, atunci accesul la parametrul real corespondent rezult din el ‘Acest mecanism obliga ca: + tofi parametrii blocului sa fie atribuiiintr-un apel FC. + parametrii de bloc nu pot fi initializati la declarare, Daca un parametru de bloc este atribuit cu un parametru real in cadrul unui DB sau daca se transmit tipuri de date complexe, atunci acest mod de transmitere devine mai complex. (vezi Apendix). SITRAIN instrure penira Automatizar si Acionat ‘ST-7PRO2 Pagina 6 Apelul blocurilor si modelul multi-atriouit SIEMENS Exemplu: ELSE FC Gli Ea pet AL Dea Yow Osire han Soe Apel functie cu tipuri de date complexe Transferul unui ARRAY unei functi cs) 8-[ea) 3} ats) lal fe} Le) ve} o_o lets ttle) 1 claie J) Limi Feet ites ime ae fatial vale To. egret — fr oom i sex SESS ee Se Atribuirea parametrilor este p ibilé doar simbolic 1: Mes_Val is declared as an array in #02 Nes_Val:="Tenperature sequence SIMATIC S7 ae: saat oF Prezentare Gener Atribuirea Parame ral Parametiide tipul date complexe (ARRAY si STRUCT) ofera un mod eficient si clar de a transfera cantitati mari de date intre blocul apelant si apelat, astfel sustinand conceptul de "Programare Structurata’ Un tablou sau 0 structura pot fi transmise la 0 functie apelata ca o variabila completa. etrilor Pentru transmitere, trebuie declarat in functia apetata un parametru de acelasi tip ca si parametrul real ce trebuie trimis. Atribuirea unui astfel de parametru (tip de date: ARRAY, STRUCT, DATE_AND_TIME si STRING) poate avea loc doar simbolic. Deoarece variabilele de tipul complex pot fi setate doar in blocuri de date sau in stive de date locale, parametrul real trebuie sa fie localizat fie intr-un bloc de date (global sau instanta) sau in stiva de date locale a blocului apelat Dupa ce STL/LAD/FBD Editor a verificat compatibilitatea tipurilor de date ale parametrului real si parametrul de bloc, numai un POINTER cu numér DB $i un pointer area-crossing la parametrul real este transmis FC-ului apelat ‘Acest POINTER este setat in stiva L a blocului apetant (zona V) prin macro-ul CALL. POINTER-uleste de o mare importanta pentru programator In particular cand parametrul transmis trebuie accesat indirect (vezi Apendix). Note + Numarul de date locale ocupate poate fi determinat selectand meniul View > Block Properties, + Componentele de tipul ARRAY sau STRUCT pot fi deasemenea transmise unui parametru de bloc, daca toate au acelagi tip de date, SITRAIN Instruire pentru ST-7PRO2 Aulomatizer si Actonar Pagina 7 —_Apelul blocurilor si modelu! mult-atribuit, SIEMENS Caracteristicile apelului functiilor instructiunea CALL inea este un Macro = Continutul registrului poate fi suprascris, chiar si registrii DB | + Atentje la interpretarea con tinutului stivel B + Dupa apel,un alt DB poate fi deschis + Timpul de procesare pentru CALL de numarul si de locatia de memorie a paramettilor actual! ‘© Instructiunea CALL apeleaza corect parametrii blocului livrati prin datele curente © Exemplu: + CALL FC10 Ont :=10.1 on? 102 Of == Q8.0 Instructiunile de apel UC sic C ‘© RLO independent (UC) sau RLO dependent (CC) + Exemple:UC FC20 sau CC FC20 © Utilizare doar cand functia FC nu are parametrii SIMATIC S7 oe masse x Instructiunea CALL Aims Instructiunea (Macro) CALL este indicat s4 se foloseasca pentru blocurile apelante (FC-uri, SFC-uri, FB-uri si SFB-uri) Intr-un apel FC, schimbul direct de informatie dintre blocul apelant si cel apelat ‘este posibil numai prin instructiunea CALL. Aceasta CALL se asiguré ca parametri de bioc formali sa fle corect furnizati In orice moment trebuie luate in consideratie mai multe caracteristic, ce rezulta din faptul c& instructiunea CALL este implementat printr-un macro, care la randul sau const din mai multe instructiuni STL. Daca unui parametru formal i se atribuie adrese gasite intr-un DB, atunci transmiterea parametrlor are loc cu ajutorul registrului DB (vezi Appendix). Rezulta + in cadrul FC-ului apetat, este posibil ca DB-ul deschis nu este acelasi cu DB- Ul ce a fost deschis inainte de instructiunea CALL. + daca CPU-ul intra in STOP in timpul procesarii FC-ului apelat, atunci valoarea afigata in stiva B -> DB-Register este aceea pe care STL Editor © folosea pentru suprascrierea registrului DB la atribuirea parametrului + daca dupa procesare, se efectueaza un salt inapoi in blocul apelant, este posibil ca DB-ul sa nu mai fie cel deschis inainte de instructiunea CALL. Instructiunea UC, CC Blocurile pot fi apelate ou instructiunile UC sau CC. Instructiunea de apel UC este 0 instructiune absolut, adic, UC apeleaza intotdeauna blocul independent de conditi (ex.: UC FC20), Instructiunea de apel CC este o instructiune conditional, adica, CC apeleaz’ blocul numai daca RLO este "1". Daca RLO este egal cu °0”, atunci CC nu. apeleazéi blocul $i seteaz4 RLO lat". Ulterior instructiunea ce urmeaz& apelului CC este procesata Important UC si CC pot fi folosite numai atunci cand nu au fost deciarali parametrii in FC- ulapelat SITRAIN inctuire pontra ‘ST-7PRO2 Automatizar'sActonan Pagina — Apelul blocurilor si modelul multi-atriouit SIEMENS Proprietatile functiei bloc (FB) Parametrii atribuiti blocul cate (e) © Conform IEC 61131-3 pare OK © Cati parametrii de intrare, 00 Stn 8001] iegire gi in/out sunt necesari Of Stop Bool © Cumemorie, nu numai FBS |e reed” int | variabile temporare dar gi in surt Bool statice in Stop Bool © Apel cu propria zona out Spood INT | : ae stat ‘Data encapsulation’ ies caie Sere Sian Aplicati 10 plicati 4 ‘Motor_on =08.0 ! © Functii Timer ico unter Speed Rasta © Controlul unitatilor de proces BN atobr_on cu stari interne nen | + boiler 4] | + Actionare,vane ,ete | [Seer SIMATIC S7 cee yi, Prezentare Generala Blocurile de functi (FB) sunt blocuri ce aparfin programului utiizatorului s reprezinta blocur! logice cu memorie in conformitate cu standardul IEC 6131-3. Acestea pot fi apelate de OB-uri, FB-uri gi FC-uri Blocurile de functii pot avea oricati paramettii de intrare, iesire si in/out, cat si variabile statice si temporare. Difert fata de FC-ur, FB-urile sunt instantiate, adic, unui FB ji este atribuit zona proprie de date in care FB-ul poate 58 igi ‘aminteasca” de ex. stari de proces de la un apel la aitul. In forma cea mai simpla, aceasta zona de date privatd o reprezinta DB-ul, aga numita instanta DB. “Memoria” Programatorul are oportunitatea de a deciara variabile statice in sectiunea de declarati a blocului de functi. Blocul de functii poate sai isi “aminteasca” in aceste variabile informatii de la un apel la altul Aceast caracteristicd a blocunlor de functi de asi "aminti’ informatia dup’ mai multe apeluri este principala diferent’ a acestora in relatie cu functil. Aplicatic Cu ajutorul acestei memorii”, un bloc de functii poate s& implementeze un ‘counter si un timer sau sa controleze unitati de proces, cum sunt statile de procesare, boilerele etc. Ih particular, blocurile de functi sunt foarte potrivite pentru controlul tuturor acestor unitati de proces a cror performanta depinde nu numai de influente exterioare ci si de star interne, cum sunt pasul de procesare, viteza, ‘temperatura etc. ‘Cand se controleaza astfel de unitatj, starea interna a unitati de proces este copiata in variabila statica a blocului de functi ‘ST-7PRO2 pila at ‘Apelul blocurilor si modelul multi-atribuit Aulomatizar si Actonar Pagina 9 SIEMENS Formarea instantelor pentru o Functie Bloc © Apel FB cu eer Fax DB» — Instance DB weer — [ae se a Drive_4 © Doclaratic FBs (Multi-instances) | $3) Moro) Fas Stat Motor? FBX FBx caLLamotors | — | Algoritms, {or contro! caLLamotor2 | +—» SIMATIC S7 oe a Ge este o Instanta? Conceptul de instantiere a bloourilor de functil are o important majora si este criteriul principal de deosebire faja de FC-uri. Setarea unei variabile in cadrul unui limbaj de nivel inalt cum este °C’ prin deciararea numelui variabilei gi setarea tipului ei se numeste instantiere sau crearea unei instante in acelagi mod ca gi vatiabilele, blocurile de functii sunt de asemienea instantiate. Un bloc FB devine o unitate executabila (instanta FB) numai prin aceasta zona de date personal, In care sunt salvate valorile parametrilor Dlocului cat gi variabilete statice Controlul unei unitatifzice de proces, cum este un boiler sau element de actionare, are loc cu ajutorul unei instante FB, adica, un bloc de functil cu 0 zona de date atribuit. Datele importante pentru unitatea de proces sunt salvate in aceasta zona Instantierea Crearea une’ instante FB, adicd, atribuirea de zona de memorie proprie intr-un apel FB, poate fi facuta in dou’ moduri in STEP 7 + prin deciararea explicté a instantel de bloc de date la apelul unui bloc de functi + prin deciararea explict& de instante a unui bloc de functii, in cadrul unui bloc Ge functii de nivel superior (model mult-instanta). STEP 7 se asigura ca zona de date necesaré pentru instanta este setata in zona de date @ FB-ului de nivel superior. Avantaje Conceptul de instanta din STEP 7 are urmatoarele avantaje: + Inapelul FB-urilor, nu este nevoie de nici o masura de salvare si administrare de date locale, exceptand atribuirea instantelor DB-urilor. + Un bloc de functi poate fi folosit de mai multe oni datorita conceptului de instant. Dacd, de exemplu mai multe elemente de actionare de acelasi tip trebuie controlate, acest lucru va avea loc folosind mai multe instante ale unui FB. Datele de stare ale elementelor de actionare individuale sunt —___salvate in variabila statics a FBeuluj, SITRAIN intruie pentu ‘ST-7PROZ ‘AutomatizarsiActionan Pagina 10 Apelul blocurilor si modelul multi-atribult SIEMENS Transferul parametrilor la apelul unui FB SSE wo [10011 0101110) pate Told aes |1/0/0/1/0/0 110 FBt0! opt 00 in Stat B00] Program 24 in Stop BOOL| ‘execution 0 out Motor_on BOOL| ‘40 out Speed INT CALL FBI0, DBI ‘stat See inal Z]| A stan Speed au Bop, : 2 fatolt_on ParametilParameti Paramot cee i Roma SIMATIC S7 oa tRam nn \tr-un Apel FB Datele pentru procesare pot fi transmise unei instante FB apelate. Aceasté transmitere poate avea loc folosind lista de parametni ce apare dupa instructiunea CALL. Tipul (parametrit de intrare, iesire, sau in/out), numele si tipul de date ale parametrului sunt definite in partea de deciaratii a FC-ului Fata de un apel FC, parametri de intrare si iesire c&t si cel in/out a tipului de date elementar nu trebuie sa fie atribuiti cu parametrii reali in apelul unui FB. Motivul consta in mecanismul prin care parametri reali sunt transmisi catre FB- ul apelat Mecanismul de transfer Daca se creeaza o instanta DB pentru un FB, editorul de bloc rezerva automat memorie pentru parametrii de bloc (paramettii de intrare iegire si infout) si pentru variabilele statice declarate in partea de deciaratii a FB-ului. Adresele parametrilor si variabilelor statice din instanta DB sunt exact acele adrese byte sau bit date de Editor gi care se gasesc in prima coloana din sectiunea de declaratii @ FB-ului Intr-un apel de instant FB folosind macro-ul CALL, se deschide instena DB folosind registrul DI, 5 valorle paramettilor de intrare & iniout curenti sunt copiate in instanta DB, Inainte de procesarea FB. In acest moment are loc procesarea FB-ului. Daca in acest moment, in cadrul procesarii FB-ului, are loc un acces la parametri formali, atunci acest lucru rezulta In accesul la adresele ce apartin instantel DB, Acest acces are loc intern folosind adresarea indirecta @ registrilor- privind registrul DI si AR2. Dupa procesarea FB-ului, valorle paramettilor de iesire & in/out formali sunt opiate In parametri reali specificati In instructiunea CALL. Numai dupa aceasta, poate continua procesul cu urmatoarea instructiune ce urmeaza instructiunii CALL. ITRAIN irae ponta ‘ST-7PROZ a reactonal Pagina 11 Apelul blocurilor si modelul mult-atribuit Automatizar si Actionar SIEMENS Apel FB cu tipuri de date complexe Exemplu: Transferul unui ARRAY la o Functie Bloc v1 Coy Sorc he ee to ar al lela} 3) 2) ol] hdl | 1) fer besttiaoe a Saf foes —— a Daz Temperature” Se ee vos ee at feet fons pista) a) ie) J clalfo | 1) i reeset Fifer fe Frivint va" ae me foe ‘Atiuirea parametior de tp complex pet ath sto posiba doarsimbotc — cua re 17, a2 Seve ses Satna Sas Sh Be AS eer Tipurile de Date Complexe Ca si in cazul functilor, adresele tipurilor de date complexe (ARRAY, STRUCT, DATE_AND_TIME i STRING) pot fi transmise complet unui bloc de functiapelat Pentru transmmitere, tebuie declarat in blocul de functii un parametru de acelasi tip de date ca $i parametrul real ce se doreste trimis, Atribuirea acestor parametri poate fi facut doar simbolic, Parametrii Input si Output Pentru parametrl de iesire gi intrare de tip de date complexe, zonele corespunzatoare pentru valorile parametiilor reali sunt setate in instanta DB. In apelul FB-ului, paramettii reali ai parametrului de intrare sunt copiati in instanta DB folosind SFC 20 (BLKMOV) (Passing by Value’), inainte de comutarea reald catre sectiunea de instructiuni a FB- ului jin mod asemanator, valorile parametrului de iesire sunt copiate din instanta DB tnapoi in parametrul real dupa ce FB a fost procesat. Ca rezultat, poate aparea o cantitate de copiat ce nu poate fi neglijata, (timp de procesare) in atribuirea parametrlor de intrare si iegire. Aceasta cantitate este scurtcircuitata de paremetti in/out Parametrii in/Out Nu apare "Passing by Value" cu parametrii in/out de tip de date complex. Doar 6 bytes sunt rezervati pentru fiecare parametru in/out in zona de date instanta. Se introduce in acesti bytes un POINTER catre paramettii reali ("Passing by Reference’) Note + Parametrii de intrare ¢i iasire de tipul de date complex pot f inttializati in sectiunes de declarafii a unui FB, dar nu in paramettiiiniout. + Parametrii de intrare si iesire de tipul de date complex nu trebuie atribuiti tntr-un apel FB, in schimb ce! in/out trebute atribuit + Memoria sau accesul indirect al registrilor la parametrii input/output sau in/out de tipul de date complexe este configurat diferit fala de parametrii elementari (vezi pendix). SITRAIN Instruire pentru ‘ST-7PRO2 Automatzar si Actionae Pagina 12 Apelul blocurilor si modelul multi-atribuit SIEMENS Transferul parametrilor “prin valoare* (copierea valorilor): © Atribuirea parametrilor FB la apel: + Parametrii FB nu trebuie atribuifi + Atribuirea si ‘de"- atribuirea poate avea loc din “afara* g.: direct dintr-un Panou Operator + Exceptie:parametrii de tip_infout a tipurilor de date complexe (STRUCT, ARRAY, STRING si DATE_AND_TIME) © Initializarea: + Parametrii FB pot finifilizati in partea de declaratti + Exceptie:parametrii in/out a tipurilor de date comple xe (STRUCT, ARRAY, ‘STRING §i DATE_AND_TIME) © Accesul la parametrii formali are loc intern utilizand registrii DI $i AR2 + Daca registri DI sau AR2 sunt suprascrisiaccesul la datele instant nu mai este posibil ‘ Instructiuni apel aditionale UC siCC + Exemple:UC FB20 or CC FB20 + Se pot utiliza doar daca FB-ul nu are date instan ta (param. + variabile statice) gion SIMATIC S7 owe Atribuirea Parametrilor de Bloc Parametrii de Bloc nu trebuie atribuit intr-un apel FB. In acest caz, nici o valoare nu este copiata in sau din instanta DB. Parametrii din instanta DB pastreaza valoarea saivata la apelul anterior. Exceplie: Parametrii in/out de tipul de date complex trebule s& fie atribuiti in lista de parametti Accesul Paramtrilor din ”Exterior” ‘Accesul la parametri in cadrul unel instante DB poate fi efectuat In aceasi maniera cu adresarea DB-urilor globale. Parametri de bloc pot sa fie atribuiti sau dez-atribuiti din exterior’ Acest lucru este folositor in special, atunci cAnd trebuie atribuite sau dez-atribuite doar ‘componentele individuale de tipul de date complex, sau parametrii sunt direct conectali cu campurile input/output din OP-un Exceptie: Parametrii in/out de tipul de date complex nu pot fi atribuiti sau dez-atribuiti din “exterior” Parametri de bloc si variabilele statice pot fi initializate In declararea FB-ului, Daca o instanta DB este creaté, valorile initiale specificate in deciaratie sunt introduse in instanta DB. Exceptie: Parametni in/out de tipul de date complex nu pot f inifializat Nota Daca registrul DI sau registrul AR2 este suprascris in cadrul procesarii FB-ului, atunci accesul la datele (parametrii de intrare, lesire, in/out si variabilele statice) nu mai poate fi fScut In cadrul FB-ului Instructiunile Uc, CC Blocurile pot fi apelate cu instructiunea independent de RLO - UC sau cu instructiunea dependenta de RLO - CC. UC $i CC pot fi folosite numai cand FB-ul apelat nu are date instanta. Adic&, nici parametri de bloc nici variabile statice nu au fost declarate in sectiunea de deciarati yoke pont ST-7PRO2 Rtnmvelenteleioten Pagina 13. Apelul blocunior si modelul mut-atribuit ‘SIEMENS Exercitiul 6: Modelul conveyor ca si Linie imbuteliere Main container Bottle i sensor 0.205 Conveyor forwards 2.206 Conveyor backwarcs SIMATIC S7 cae sae Sarcina O instalatie de Imbuteliere trebuie automatizata: Instalafia va putea fi operat in dowd moduri "Manual" si"Automat’, In plus, existd 0 anumita logicd In comutarea on sau off a sistemulu + Comutarea On si Off: Instalatia poate fi comutata On folosind intrarea | 0.0 (Comutator cu contact momentan cu functi NO). Instalatia este comutats OFF folosind | 0.1 (comutator cu functii NC). Cand instalatia este porita, LED-ul de la iesirea Q 8.1 este aprins. + Alegerea modului de operare: Cénd instalatia este comutaté On, se poate alege un mod de operare Modul manual este presetat cu | 0.4 = 0, iar cel automat cu | 0.4 = 1. Modul selectat este activat cu un impuls de la intrarea | 0.5. Selectia este indicata prin Manual = Q 8.2 gi Automatic = 0.8.3, La schimbarea modului sau la oprirea instalatiei, modul anterior este deselectat + Controiu! benzii in modul manual: In modul manual, banda poate fi miscata inainte sau inapoi cu ajutorul comutatoarelor | 0.2 ( 20.5) si respect | 0.3 (2.206) + Controlul benzii in modul automat: In modul automat, motorul de actionare (Q 20.5) este comutat On si ramane cuplat pina ce contactul | 0.1 este dezactivat sau senzorul | 16.6 detecteaza o sticla in pozitia de umplere. + Umplerea unei sticle: Cand o sticla este tn punctul | 16.6=1, Incepe umplerea. Procedura de umplere este simulata pentru o perioada de 3 secunde si este afigaté la iegirea Q9.0. + Numararea sticlelor!Un alt senzor este folosit pentru a Inregistra sticlele pline. Acestea sunt numarate din momentul porniri instalafie si sunt afigate Ta afigajul QW 12, SITRAIN tostruro pentru ‘ST-7PROZ ‘Automatiza si Actiorar Pagina 14 Apelul blocurilor si modelul mutt-atribuit Nota SIEMENS re — Sectiunea regim pars Pet oNorE FBIS: "ode Saection 1a Sat (10 momento) ae 85 RS den ce ree 10 san manton | — oa tog cannot 101 —| sen oi ton | — ob 183 Apne ate an ow. Auto | — 083 eae Samae e ras] om senate eno [= siMaTiC 7 ars pune Controlul obiectelor automatizate (benzi, motoare de acfionare, etc.) are loc cu ajutorul blocurilor functi Pentru a nu intra in conflict cu principile programéirii structurate, nu ar tebui s& accesati direct in cadrul unui bloc de functii adresele globale cum sunt intraile, iesirle, memorile bit etc.. Fiecare transfer de informatie, cu semnalele procesului sau cu alte blocur ale prorgamului utlizatorului trebuie sa aibéi loc folosind parametri biocului Numai in apelul unui bloc din cel mai tnt nivel, adica, in blocul de organizare asociat, veti putea s& atribuiti semnelele de intrare sau de iesire a procesului direct parametrilor blocului Controlarea Modului: FB15 ‘Tabelul de simboluri pentru exercitiul 6.1 este prezent in Chap_06_1 al proiectului "Prod_e_x53" {in primul rand creat} un F815 "Mode Selection’, in care se implementeaza logica completa pentru comutarea ON/OFF 5 selectia moduluiinstalatie. FB15 "Mode" are urmatorii parametrii de intrare i iesire: #Start (in, BOOL): Instalatia este cuplata folosind #Start (1-active). #Stop (in, BOOL): _Instalatia este decuplata folosind #Stop (0-active), Parametrul de intrare #Stop are priortate fatd de #Start ‘#Plant_on (out, BOOL): Cand instalatia ese setata ON, # Plant_on este "1" Modul de functionare se poate seta cénd instalatia este ON Auto Man (in, BOOL): #Auto_Man=0 selecteaz’ modul manual #Auto_Man=1 selecteaza modul automat #0M activate (in, BOOL): Modul selectat este adoptat cdnd se primeste un impuls de la #OM_activate. Modul activ este indicat de urmatorii paramettii de iesire’ #0M Man (out, BOOL): Modul manual este activ #OM Auto (out, BOOL): Modul automat este activ SITRAIN Instrure pentru ‘ST-7PROZ Automatzar si Aetonar Pagina 15 Apetul blocurilor si modelul multi-atribuit, SIEMENS B16 Manual mode scoenat I The aes eats FBIG syor Control TOS. og backwvare See 205° Conveyor fonware : 2206. Conveyor Dackward 922 — om_man Automatic mode 03.3 —| om Auto Conv_tor | — 20.5 1165: Sensor: Fling location Sa eae (a 187; Sencar Count Botles 10a | son tes ‘Cony-peek: aan Qo: Filing active 103 — Jog_back Fiting_active |-— 09.0 ‘ze Maspeayot a ole: 1166 — Sensor.nit Full_botties | — wiz | Sensor full eno |— Cha SESS KY Exercitiul 6.1b: Linie imbuteliere NS SIMATIC S7_ TRA mit Controlul Benzii: FB16 ‘Creati un FB16 "Conveyor Control’, ce contine logica completa pentru controlul benazii in modul manual gi automat FB16 are urmatoni parametri de intrare gi iesire: #0M_Man (in, BOL): Banda este operata in modul manual #0M Auto (in, BOOL): Banda este operata in modul automat. #Jog_for (in, BOL}: Cu ajutoul acestelintréri banda poate fi deplasata inainte ‘Aceasta intrare nu are nici o actiune in modul automat #Jog_back (in, BOOL): Cu ajutoul acestel intrari banda poate fi deplasata ‘napoi. Aceasta intrare nu are nici o actiune in modul automat #Sensor fil (in, BOL): Indicé faptul ca sticla goala a ajuns In punctul de umplere, 4#Sensor_full (in, BOOL): Indica faptul c& inca o sticlé a trecut prin bariera de ‘numarare a sticlelor pline. #Conv_for (out, BOOL): Livreaza semnalul pentru operarea benzii Inainte. +#Conv_back (out, BOOL): Livreazé semnalul pentru operarea benzii inapoi 4¥Filling active (out, BOOL): Indicd faptul cd umplerea este activa. #Full_bottles (out, WORD): Indic numéirul de sticle pline de la ultima comutare ON in cod BCD. ‘Apeleaz amandous aceste blocuri impreuna cu blocurile de date asociate B15 gi DB16 in OB1 $\ atribuie parametrii FB-urilor cu semnale pentru panoul operator (simulator) sau cu semnalele pentru praces (banda), in modul prezentat in imaginile de mai sus, SITRAIN instruro pontry Automatizar si Actionan ‘ST-7PRO2 Pagina 16 Apelul blocurilor si modelul multi-atribuit SIEMENS Structura modelului multi-atribuit pBt0 Fet0 ret Bt Stat Drill FB Algorith- stat Motor_1 F82 ms 1 stat Motor 2 FB2 for i drilling i CALL FB10,.0810) CALL Dri 5 F } : 2 yi || (@ CALL Motor | —-| Control. : ling a : : motor CALL Motor_2 | —> Instance DB of FB10 SIMATIC $7 oe ABH STAN re a Modelul Multi-instanta Tn plus fata de instantierea blocurilor de functi prin speciticarea unei instante DB intr-un apel FB, STEP 7 permite deasemenea si deciararea explicits de instante FB in cadrul unui bloc de functii de nivel superior. Pentru acest lucru, se deciard cu tipul de date FB1 sau FB2 instante ale biocurilor de functii apelate, folosind identifcatori simbolici (Drill, Motor_1 gi Motor_2). Aceasta are loc in sectiunea de deciaratii a blocului de functi apelant FB 10 in sectorul 'variabila statica’ In cadrul unui bloc de functi de nivel superior, instantele individuale sunt apelate folosind identificatorii simbolici Biocul de functil de nivel superior F810 trebuie apelat totusi cu instanfa DB (0810) propre. {In momentul creatii unei instante DB de nivel superior, STEP 7 se asigura ca zonele de date necesare pentru instanjele individuale sunt setate in zona de date a FB10. La apelul instantelor individuale folosind nume simbolice, macro-ul CALL se asigura ca registrul AR2 sa fie setat la Inceputul zonei de date atribuite instante, astfel ca paramettii si variabilele locale ale instantel sa fle accesate in timpul procesatii blocului de functii apetat Boneficii Folosirea modelului mult-instant& are urmatoarele benefici: + Instanfele individuale nu necesit8 folosirea blocului de date personal de fiecare data. In cadrul ierarniei unui apel de biocuri de functl, numai o instant DB este “pierdut8 in apelul blocului de functi “extern”. + Modelul multinstant’ "combina" un bloc de funefii si o zona de date intr-un singur obiect (instanfa FB), ce poate fi manipulat ca o unitate singulara. Programatorul nu tebuie 88 aiba grijé de managementul (creare, adresare) zonelor de date a instantelor individuale. El trebuie doar s& ofere o instanta DB pentru FB-ul "extern + _Modelul multiinstant’ permite un stil de programare orientat pe obiect. SITRAIN insti penta ‘ST-7PRO2 Aulomatzar si Actonad Pagina 17 Apelul blocurilor si modelul multi-atribuit SIEMENS Programarea orientata-obiect utilizand Multi-instante Exemplu: Linie presa FB: “Press line” Press1 Punch ‘Guard 5 #Pross_t ate FB: Press. FS: #eunch FO: #Guard I FB: #Preee_2 Fa: #Puneh FB: #Guard :#Tranepor| Divizare tehnologica SIMATIC S7 Unitati de Proces Divizare tehnica a programului prin intermediul instanfelor FB a Aas, Oars Unitatle de proces sunt obiecte fizice de proces, cum sunt unitate unei lini de asamblare (banda transportoare, statii de procesare) sau ale unui utilaj complet ‘sau pati ale unui utlaj (de ex presa completa sau perforatorul). ‘Aceste unitati sunt folosite ca gi criterillogice de indentificare. Ca si concept sunt de tip ierahic. In acest mod, unitatile de proces pot avea la randul lor Sub- Unitati (ex. unitatea "Press" contine unitatile "Punch’ si "Guard’). Astfel unitatile de proces pot fi constitute din mai multe sub-unitati. (Agregare) Programarea Orientata pe Obiecte Programarea orientata pe obiecte poate fi implementata cu ajutorul blocurilor de functi, Descrierea tehnica a unui program pentru unitate sau sub-unitatile de proces este facut cu o instanté FB. Divizarea programului in sub-unitati este atinsa prin dectararea instantelor FB de rang inferior in FB-urile superioare. in acest mod, se objine aceeasi diviziune a unitatilor de proces in programul user ca $i In instalatia sau sistemul existent. (Conceptul programarii orientate pe obiect folosind agregarea) Refolosirea Software-ului SITRAIN Instrure pentru Automatizarsi Actioner ‘Acest concept ierarhe ofera un grad mare de reutlizabilitate a unui soft generat © Singura data si in acest fel ofera un potential de economie a timpului pentru crearea, modificarea si Intretinerea programului utilizatorului: + De fiecare data cand un producator creazé o sub-unitate de proces (valva, ‘motor, etc.), el creaza gi un FB pentru controlul acestei sub-unit de proces. + Cando astiel de unitate de proces este construita in urmatoarea unitate ca marime, se declaré deasemenea si o instanta FB a unit&ti in FB-ul unitati de nivel superior. FB-urile reprezinta componentele de baza pentru controlul unui program. La pasii de planificare a unui program, aceste blocuri au aceeasi sarcina cu Circuitele integrate (|C-urile) din producerea placilor cu circuite integrate. ‘Structura programului utlizatorului consta din FB-uri pre-fabricate ce trebuie doar interconectate. ‘ST-7PROZ Pagina 18 Apelul blocurilor si modelul multi-atribuit 21 SIEMENS. Implementarea unui “Linie presare" in STEP 7 Fes:"Punch* BIO FBI:"Pross* arate Dota of FB10 press ine” _fetat Punch FBS FB 10:"Press NAL fpatatoreress 1 opt fiat prose ras FB5:"Guard Stat Transport Fez) Att #Punch 5 foaut scuars «| [. Jcaut F910, 08101~ | caus spress_1 Fe4:*Punch* 3 ‘tat Punch FB a) : ‘Stat Guard FB5| CALL #Pross_2 - | Prees_2. Guard CALL #Punch CALL stranspor . aa CALL #Guard q | FBS:"Guard ~ Data for Transport FB2: “Transport” ee Instance DB a FB10 SIMATIC S7 Modolul Multi-instanga Declaratii Nota DB Multi-instanga Cand se foloseste un model mult-instanfa, DB instant& contine datele pentru mai multe blocuri de functi dintr-un apel ierarhic. Pentru aceasta, instantele unor blocuri de functii se deciard folosind identificatori simbolici in sectiunea stat. Var. a sectorului de declarare a FB-ului apelant Instanta FB pentru cea mai “indepartata” unitate de proces (FB10 “Press line") trebuie apelata absolut sau simbolic impreund cu specificarea propriei instante OB (0810) In sectiunea stat. Vara p&rtii de declaratie a FB10 ("Press line"), se declara doua instante (variabile) de tipul de date FB1 (‘Press") cu numele #Press_1 si +#Press_2, c&t $o instanta de tipul FB2 (‘Transport’) cu numele #Transport in partea de declarati a lui FB1 se declara instantele FB4 ("Punch") cu numele +#Punch si FBS ("Guard") cu numele #Guard. in sectiunea de instructiuni a lui FB1 ("Press"), instantele FB sunt apolate folosind numele simbolic #Punch si #Guard care au fost deciaratein sectiunea de dectarati Declerarea unei instante in partea de deciarafi a unui bloc de functi funclioneaza numai daca FB-ul, In care se deciard o instanta, exista deja. Cand se proiecteazs o astfel de ierarhie de apel, acele FB-uri ce urmeaza a fi apelate ultimele din sir trebule sé fle apelate primele. DB multinstanté are aceeagi structura cu pértile de declaratie ale blocurilor de funcii vizate, Daca o instant este apelaia in sectiunea de instructiuni, atunci ea acceseaza automat datele din sectiunea corespunzatoare a instantei DB (DB 10). SITRAIN Instrire pentru ‘Automatizar si Ationari ‘ST-7PRO2 Pagina 19 Apelul blocurilor si modelul multi-atribuit SIEMENS. Proprietatile modelului Multi-instance Beneficiile modelului Multi-instance : © Doar un singur DB este necesar pentru mai multe instante ‘© Nunecesita manipulare suplimentara in setarea zonei “private” de adrese pentru respectiva instanta Cerinte pentru FB-uri © Acces direct (I, Q) la semnalele de proces cu FB nu este posibila © Accesul la semnalele de proces sau comunicatie cu alte unitati de proces poate fi ralizat prin parametrii FB ¢ FB -ul poate memora stari de proces in variabilele statico, nu in variabile globale DB sau biti de memorie rocesate si din “afara” Press_2.Punch. SIMATIC $7 cae nese [SRA nae me Beneficiile Modelului Multi-instanta Folosind modelul mult-instant& puteti salva sectiunile de date @ mai multor instante a unela si aceleiati ierarhil de apel intr-un singur DB. Astfel DB este solcitat pentru mai multe instante. Cu modelul multi-instanta nu sunt necesare masuri pentru administrarea datelor FB locale, mai putin atribuirea unei instante comune OB ‘Acest model suporta conceptul de programare orientata pe obiect. Codul ¢1 datele necesare pentru controlul procesului sunt ‘adunate" in FB-uri. Daca o unitate de proces const din sub-unitati ierarhice, atunci exact aceast structurd poate fireflectata In programul utlizatorului prin modelul mult-instanta Programul de control este creat cu instante FB in acelasi fel in care gi masina poate sa fie constituité din componente. Cu modelul mult-instanta, STEP7 permite o adancime de inseriere de gradul 8. instante Pentru a folosi un F8 ca multiinstanta fara probleme, trebuie urmarite urmatoarele puncte: + Pentru controlul procesului, nu se permite accesul direct la adresele globale ale CPU (cum sunt intrile si iesirile). Fiecare acces la intraile $1 iesitle globale sunt in conflict cu principiul de refolosire. + Comunicarea cu procesul sau cu alte segmente de program (FB-uri) trebuie fécuté folosind parametrii FB. Numai dupa integrarea FB-ului intr-o unitate de nivel inalt, se poate desfasura si‘atribuirea’ FB-ului prin lista de parametrii cu apelul FB. + Starile sau alte informatii despre unitatile de controlat tebuie s& fie “retinute” de FB in proprile variabile statice, SITRAIN tostruire pentru ‘ST-7PRO2 ‘Automatzar si Acionari Pagina 20. Apelul blocurilor si modelul multi-atribuit SIEMENS. Exercitiul 6.2: Modelul conveyor al unei linii de asamblare Secventa de proces pentru punctul —Secventa de proces pentru faza de lucru transport © Procesarea pieselor © Asteptare finalizare piesa © Procesarea terminata © Transport la punctul final © Pozitionare piese pe ban © Finalizare asamblare, introducere © Asteptare piesa 8 noua © Eliminare piesa de pe banda Transport la statie Proximity ewitthes “Light aren IN IN", aor zjop_{of fo) wis age a Soar Ss Stem Ra, gestae scop Utilizénd programarea FB se va pune in practic& un exemplu ce consta intr linie de asamblare. Se va folosi un FB separat in fiecare caz pentru controlul stafiei 1 si benzii transportoare. FB-ul pentru statia de lucru trebuie sa fie capabil de multi- instantiere. in exercitul urmator, functionalitatea liniei de asamblare va fi extinsa si pe stale de lucru 2 13 prin folosirea modelului mutt-instanta ‘Cum Functioneaza Modelul Banda Pentru exercitiul de programarea a FB-ului, modelul banda va functiona cu funcionaltatea de banda de asambiare (pentru moment pentru o singurd statie): Sistemul este in starea intial’, adica, stalia 1 are o piesa ce este prelucrata in ‘momentul actual. Acest fapt este indicat cu un LED "H1" aprins la Location 1 Banda transportoare, adica, a "INI1" si asamblarea final, adica, "LB1" nu sunt ocupate, Motorul benzii este decuplat 2. Dupa terminarea piesei, operatorul confirma acest lucru cu comutatorul "S1" LED-ul"H1" ciipeste. 3. Operatorul aseazai piesa terminaté pe banda “goals” in dreptul senzorului de prezenta “INI”. LED-ul"H1" se stinge. 4, Banda tranporta piesa terminaté catre asamblarea final, LED-ul "H4" clipeste in timpul transportului. Cand se ajunge la asamblarea final, LED-ul "H4" LED se aprinde continuu 5. Operatorul de la asamblarea finala preia piesa terminata de pe banda si plaseaza o piesa brut pe banda. Confirma acest lucru cu comutetorul "S4" 6. Banda transporta piesa bruté Inapoi la statia de lucru 1. LED-ul "H4" clipeste in timpul transportului. Cand se ajunge in dreptul senzorului de prezenta "INIT" LED-ul "H1" al statiei de lucru incepe sd clipeasc’. Operatorul poate s preia piesa brut de pe banda si sd o ageze pe statja de lucru 1 gi procesul incepe din nou. LED-ulH4” LED aprins continuu. Procesul se reia cu pasul 1 SITRAIN istuire petrs ‘ST-7PRO2 Automatzar i Actions Pagina 21 Apelul blocurilor si modelul mutt-atribut SIEMENS Exercifiul 6.2a: Structura program pentru statia de lucru RPEEEEHECEEHEEeE HEC Heet ran port FBI: “Station” | ouNnEAA 10.0 —¥ tnitiat tep|++nHt “It” Prog_switen —Transp.rea_|-} "st" +} Acknowledge | M101} Clock pita Clock bits e ‘Station’ “Station 2 Station 3 DB? FB2; “Transport” tat Leo Lanier Conv_right Acknowledge Conv_tat CALL FB4, 084 Teanep_rea ” tock pit r CALL FB2, DB2| Ls —— Divizare tehnica a programului SIMATIC S7 ee mam Some Sarcina In primul stagiu, numaio statie de pe linia de asamblare va fi implementata Controlul intregului sistem este divizat in doua unitati de proces: + Statia: Controlul primet stati de luoru, implementat de FB1 cu numele simbolic global "Station’ (Labelul de simboluri globale table) + Teansportul: Controlul benzii transportoare, implementata de FB2 cu numele simbolic global “Transport” Pentru controlul ntregiilnii de asamblare, amandoua FB-urle,fiecare cu instanfele DB proprii vor fi apelate in OB1 Pasi de Urmat Pentru exercitiul 6.2, veti gsi blocurile de functii relevante FB1 si FB2 cat gi tabelul de simboluri corespunzator in directorul de program Chap_06_2 al proiectului "Pro2_e_x53" 1. Deschideti proiectul "Pro2_e_x53" si introduce configuratia hardware. 2. Atribuiti pentru bitul de ceas MB10 paramerti si descarcati in stalia configurata. 3. Apelati FB1 cu instanta DB DB1 in OB1 si atribuiti semnalele de proces asociate parametrilor de interfata Atribuif! parametrul de intrare #Clock_bit_q cu M10.1 si#Clock_bit_s cu M10.3 4, In. OB1, programati apelul FB2 (instata DB DB2) dupa apelul FB1 ‘Atribuifi parametri de intrare i iesire conform descriri lui FB1si FB2. 5. Descércati blocurile in CPU gi testatifunctionalitatea programulul SITRAIN Instuire pentw ST-7PRO2 ‘Automatzer si Actonart Pagina 22 Apelul blocurilor si modelul multi-atribuit 2 SIEMENS Cum lucreaza functia FB1 "Station" © Declarati ® Modelul stare: FB1: “Station” Process piece LED Is continuously tit In Parameters: Alnitiat Init FP on Proxy_switch | civaees ‘Acknowledge Clock bia Clock bits ‘0UT Parameters: LD Transp_r09 AN Proxy_switch ‘A Acknowledge ‘Take piece from conv: LED flashes ‘quickly ‘sTRUCT Process_piece n_cony: LED flashes ‘quickly AN Proxy_switeh ‘ATransp_req SIMATIC S7 ae seca Initiatizare FB1 poate f initializat cu starea #Process_piece cu un impuls la parametrul de intrare #inital. Atribuit inital cu | 0.0 #Process_piece Piesa este prelucratd in aceasta stare. LED-ul "H1" este prins continuu pentru a indica prelucrarea. Cand operatorul a luat la cunostinta completarea piesei cu comutatorul *S1" are loc o tranzitie la starea #Piece_finished. ‘#Piece_finished In aceasta stare, LED-ul clipeste cu frecventa data de #Clock_bit_s (frecventa redusa) Operatorul asteapia pentru ca banda transportoare sa fie activatd (Important pentru extinderea la 3 stati) Daca banda este goald (#Cony_busy=0), aceasta intra imediat definita ca ocupata (#Conv_busy=1) s1 intra in staréa #Place_piece_on_Conv. ‘#Place_piece_on_conv Th aceasta stare - LED-ul clipeste cu frecventa #Clock_bit_q (frecventa rapid) - operatorul poate s8 ageze o piesa pe banda. Cu semnalul #Proxy_switch=1, semnalul #Transp_req=' este deasemenea setat, astfel declangand migcarea benzii catre ‘asamblarea finala, Tranzitia cétre starea #Wait_for_piece are loc cdnd piesa parasegte senzorul de prezenta (#Proxy_switeh=0). #Wait_for_piece In aceasta stare operatorul asteapta sosirea unei noi piese brute, LED-ul din fata statiei este Inchis. La sosirea unei piese brute (#Proxy_switch=1), are loc tranzitia la starea #Take_part_from_conv. #Take_piece_from_conv Ih aceasta stare - LED-ul clipeste cu #Clock_bit_q (frecventa rapids) -piesa poate fi luaté de pe banda. ‘Are loc 0 tranzitie la starea #Process_piece cénd piesa a fost acceptata (#Proxy_swite! SSITRAIN instrure pentru ST-7PRO2 ‘Avtomatzersi Aone Pagina 23 Apelul blocurilor si modelul mult-atrioult SIEMENS Cum lucreaza functia FB2 "Transport" © Interfata FB2: © Model stare: FB2: “Transport” aa Fr snParamaters: Data ype: ot =} init 'B00L | CBerier BOOL | Kernowedge Boot 2] Tranep.rea BOL | AN#Tansp_roq Astransp.req clocks bt BOOL ‘our Parameters: | te Book Conv Sq BOOL ane can Poo. LED fishes LED fiashes| | State STRUCT Waiting BoOL Convright BOOL Asso Boot Conve Boot END_STRUCT sembly LED is it continuously SIMATIC $7 pie sam, SRAM accom Initializare FB2 poate f intializat cu #Waiting prin semnalul de intrare #nitia. Atribuit parametrului #inital cu 10.0. #Waiting 7 in aceasta stare, banda de transport asteaptd o piesa terminatd, plasata pe banda de una din stati Cat timp banda de transport este in starea #Waiting, este oprité si LED-ul"Ha"este aprins Cu State 1 a semnalui #7ransport_req, are loc o tranzitie care starea #Conv_right. #Conv_right : in aceasta stare, piesa este transportata in directia liniei finale de asamblare. Cat timp banda este In migcare, LED-ul"H" clipeste cu frecventa M10.1 data de parametrul de intrare. Se ajunge la asamblarea finalé, adica, are loc o comutare la starea #Assembly, cand piesa tece de bariera de lumina "LB1" #Assombly In aceasta stare, operatorul schimba piesa finisat& cu una brut. LED-ul"H4" este aprins continuu, Operatorul semnalizeaza sfarsitul operatiei prin comuutatorul "SA" ‘Acest semnal conduce la tranzitia #Conv_lof #Conv_left In aceasta stare, piesa brut este transportata in directia statiei de Iucru. Cit timp banda este in miscare LED-ul "H" clipeste cu frecventa daté de paremetrul de intrare #Clock_bit Transportul este oprt cénd semnalul de intrare #Transp_roq este resetat, Are loc 0 tranzitie la starea #Waiting SITRAIN instvie pentu ST-7PRO2 Automatizar si Acionari Pagina 24 Apelul blocurilor si modelul multi-atribuit SIEMENS Exercitiul 6.2b: Extindere la 3 Statii ae eto opt Stat Station 1 FBI Datafor stat Station 2 FB1 | Station_1 | ‘stat Station_3 FBI stat Transport FB2 CALL FB10,0810 FBt CALL Station. ++ CALL Station 2 +} CALL Station 3 ++ rH CALL Transport —-—+| F582 Transport | Instance DB pentru FB10 SIMATIC S7 roan A 9 Tes pro FU Structura Programului In partea a doua a exercitiului trebuie sa se ajungé la intreaga functionalitate a ‘modelului banda pentru toate statile de lucru. Pentru a face acest lucru, trebuie ‘mutat tot controlul modelului (3 stati si o banda transportoare) int-un singur FB (F810) {n cadrut F810, controlul celor trei stati va fl implementat ca instate diferite FB1 iar controlul benaii transportoare este implementat ca instanta FB2. TRAIN insure penta ST-7PRO2 Rioalean's Aalonot Pagina 25 Apolul blocunilor si modelul mult atnbut SIEMENS. Interconexiunea parametrilor blocului BIO: ~Assemby.tine DB] Walon Initia LED} +H" Proxy_switeh Tranep_roq | —- ‘Acknowledge Clock bit ¢ Glock bits Conv_busy, FB10; "Assembly_line"™ ‘Station? Initia Le Proxy_switzh Transp_roq | Acknowledge Clock bit.@ Glock bits “st —+] Acknowledge Conv_lett|—*°K2_CONVL" Gony_bus Transp_rea an M10.1—+ clock bit LED |» Ha" Perec Transp_req ‘Transport 10.0 —+) intiat Leo |—+"He" Ler] t_earier —Conv_right |—*°K1_CONVR"™ ‘Acknowledge Clock bit Glock bits Gonv_busy SIMATIC $7 Perel STRAIN nae Pasi de Urmat 41. In primul rand creafi un FB10. In sectiunea stat. Var., dectarati cele trei instante ale lui FB1 cu numele: #Station_1, #Station_2 si #Siation_3 gio instanta a lui FB2 cu numele: #Transport. 2. In F810, in primul network, apelati In secevnta #Station_1, #Station_2, #Station_3 $i # Transport si interconectat| paramettii de bloc conform schemei de mai sus. Observatiinterconectarea parametrului in/out #Conv_busy. Cum poate acesia fi implementat? Se pot folosi variabile auxiliaré statice sau temporare? Fiti deasemena atentila interconectarea parametrului de iesire #7ransp_req (OR logic) la parametrul de intrare #Transp_req din controlul benz. Cum poate fi implementata o astfel de conexiune? 3. Creati un DB10 cu FB10 asociat. Editati DB10 si verificati structura sa in modul de afigare a dectaratilor si a datelor din DB Editor. 4, Apelati FB10 cu instanta DB - DB10 in OB1 5. Descarcati blocurile in CPU gi testa rezultatul Probleme + Care sunt avantajele gi dezavantajele unei astfel de abordari? + Cumar trebui extins controlul, pentru ca o linie de asamblare "goals sa fie "umpluté” sau una “pind” sa fie “golita” SITRAIN lnstrre pentru ST-7PRO2 ‘Automatizai si Actionar Pagina 26 Apelul blocurilor si modelul multi-atribuit

You might also like