Documente Academic
Documente Profesional
Documente Cultură
FACULTATEA DE INGINERIE
Culea George
INFORMATICĂ INDUSTRIALĂ
Note de curs - laborator
3
Promovarea utilizării informaticii, ca element central al tehnologiei informaţiei,
în cele mai variate aspecte ale activităţii sociale, se manifestă ca factor dinamizator, de
vitalizare şi progres al societăţii.
Progresul ştiinţific în domeniul circuitelor integrate a influenţat în mod deosebit
tehnica de calcul. Se conturează tendinţa cunoscută sub denumirea de informatică
distribuită, aceasta constând în descentralizarea sistemelor de prelucrare automată a
datelor. Se construiesc astfel, echipamente electronice de calcul ieftine dar capabile să
execute toate operaţiile implicate în procesul de prelucrare în punctele generatoare de
date. Se creează reţelele de calculatoare cu posibilităţi multiple de interconectare.
Informatica distribuită este rezultatul integrării dintre calculatoare şi sistemele de
comunicaţie în vederea folosirii superioare a resurselor fizice şi logice ale
calculatoarelor.
Tehnologia informaţiei reunind cercetarea, proiectarea, folosirea şi întreţinerea
sistemelor de automatizare a prelucrării datelor – tinde să devină o infrastructură
generalizată. Aceasta se va realiza atât prin încorporarea de elemente informatice –
hardware şi software – în produse industriale şi de uz casnic, cât mai ales prin folosirea
tehnologiilor informatice în asistarea, reglarea şi controlul proceselor tehnico-
productive, a celor creative şi de conducere.
Automatizarea flexibilă, proiectarea asistată de calculator, roboţii industriali,
maşinile cu comandă numerică, aparatura de măsură şi control integral automatizată,
gestiunea producţiei cu ajutorul calculatorului electronic, transferul electronic de
fonduri etc. dinamitează pur şi simplu principii tehnico-economice consacrate,
asigurând totodată o bază nouă, mai productivă şi mai eficientă de activitate.
Dintre componentele informaticii aplicate, informatica industrială are un rol
hotărâtor în creşterea productivităţii muncii prin introducerea celor mai moderne soluţii
de automatizare flexibilă. Informatica industrială se orientează atât pe componentele
soft (programe pentru control industrial) cât şi pe echipamentele hardware pentru
conducerea proceselor. Cursul de Informatică industrială va prezenta în special modul
de configurare şi programare al controlerelor programabile utilizate în conducerea
proceselor industriale.
E
E I
PO SC
I
Figura 1.1
Figura 1.2
6
Dacă este acţionat, senzorul va schimba valoarea logică a ieşirii. Acţionarea
senzorului se realizează când este un obiect în apropierea sa.
7
I – intrări PT –proces tehnologic
E - ieşiri PAD – placă achiziţie date
Figura 1.3
8
1.4 Structura controlerului programabil
Module Echipament de
extensibile programare
Uce
UM
Module Module
de intrare de ieşire
UE UC
CPU
Proces
controlat
Figura 1.4
9
UE – unitate de execuţie
UC – unitate de comandă
Uce – unitate centrală
P – procesor sau CPU
UM - unitate de memorie
MI – module de intrare
ME – module de ieşire
EP – echipament de programare
CP – controler programabil
UE+ UC = P = CPU
P +M = Uce
Uce + MI + ME +EP = CP
10
1.5 Funcţionarea controlerului programabil
12
2 TIPURI DE CONTROLERE PROGRAMABILE
2
Astăzi, există foarte mulţi producători de controlere programabile pe plan
mondial, cum ar fi firmele: Siemens, Horner Europe, Wieland Electric, SERRA, ABB,
Rockwell Automation, Rextroth – Electric, Profichip, Omniflex, Schneider
Telemecanique, Klockner Moeller, GE Fanuc Automation, Omron, Hitachi, Matsushita
Electric Works, Crouzet Automatismes, Advantech, Mitsubishi automation, Amot, TEC
Automatismes, FEAG, Unitronics, National Instruments şi Allen Bradley. În România
s-au produs controlerele programabile AP 101, AP 201, AP micro, iar în prezent se
produc controlerele mPLC în variantele open şi compact, la ICE Felix.
3. SIMATIC S7
Sunt realizate în trei variante: S7-200 un controler de mici dimensiuni folosit în
automatizări ale unor procese mai simple (obiecte casnice de exemplu), S7-300 este un
automat pentru automatizări medii, iar S7-400 reprezintă soluţia pentru
automatizări complexe. Un astfel de controler este format din unitatea centrală şi
modulele de I/O. Celelalte componente din soluţia SIMATIC pentru automatizări,
cum ar fi (C7, DP, C7, HMI, NET), completează controlerul programabil,
reprezentând o consolă specializată de programare, module de I/O distribuite - pentru o
comandă la distanţă- modul pentru conectare în reţea etc.
Limbajul acestui controler este STEP7, fiind utilizat pentru configurarea
componentelor SIMATIC, pentru a le atribui parametri şi nu în ultimul rând, pentru a le
programa. Instrumentul software pentru control este reprezentat de SIMATIC
Manager.
Principalele activităţi realizate de STEP7 sunt:
− configurarea hardware-ului - ceea ce reprezintă aranjarea modulelor,
atribuirea de adrese, precum şi setarea proprietăţilor acestora;
− configurarea parametrilor de comunicare;
− scrierea de programe utilizator pentru controlerul programabil într-unul
dintre cele 3 moduri: Ladder Logic (LAD, diagrame de contacte), Function
Block Diagram (FBD, diagrame de blocuri funcţionale) sau Statement List
(STL, listă de instrucţiuni), precum şi testarea on line a acestora pe
controler.
Principala cerinţă pentru limbajul de programare a unui controler programabil
este aceea de a fi uşor de înţeles şi utilizat în aplicaţii de conducere a proceselor. Acest
lucru implică nevoia unui limbaj înalt pentru a furniza comenzi foarte apropiate de
funcţiile cerute de către un inginer automatist, dar fără a fi complex şi a necesita un
timp de învăţare mare.
Există mai multe limbaje şi metode de programare care pot fi utilizate în cazul
programării controlerelor din familia SIMATIC după cum satisfac una dintre cerinţele
14
programatorilor. Trei dintre acestea (LAD, FBD şi STL) sunt incluse în pachetul
STEP7, celelalte putând fi achiziţionate ca pachete adiţionale.
Mediul STEP7 include un editor pentru cele trei moduri de programare. LAD
şi FBD sunt limbaje grafice, în timp ce STL se bazează pe listă de instrucţiuni.
LAD sau diagramele Ladder au reprezentat cea mai obişnuită metodă de
descriere a circuitelor logice cu relee, fiind utilizate iniţial pentru reprezentarea
circuitelor electrice, iar ulterior s-au impus şi la controlere programabile din dorinţa de a
asigura utilizatorului aceleaşi facilităţi.
Spre deosebire de primele două metode, programarea în STL este apropiată
limbajului de asamblare folosit în cazul microprocesoarelor. Programul în acest caz
apare sub forma unei liste de instrucţiuni, fiecare linie definind funcţia care urmează
să fie realizată şi, dacă este cazul, o adresă de la care se apelează un modul.
Programul poate fi editat în oricare dintre modurile alese existând posibilitatea şi
de a transfera rutinele dintr-un tip de programare în altul. Cele trei moduri nu presupun
doar o procesare la nivel de bit a informaţiei, existând posibilitatea de manipulare şi la
nivel de octet, cuvânt etc. Pentru task-urile mai complexe există posibilitatea folosirii
funcţiilor matematice, de conversie, deplasare, a salturilor.
Soluţia SIMATIC pune la dispoziţie şi pachete software opţionale care pot
extinde facilităţile standard din STEP7.
Toate datele care oferă soluţia de automatizare sunt colectate împreună într-un
proiect. Acesta va fi creat utilizând STEP7. Datele sunt structurate ierarhic. Următorul
nivel după proiect este reprezentat de „staţii”, care conţin una sau mai multe unităţi
centrale cu un program utilizator. Pot fi utilizate comenzi de meniu, care inserează
obiecte noi, care pot fi deschise pentru a fi configurate.
Programele după ce sunt editate, pot fi testate. Testarea acestora se poate face
după încărcarea lor pe controlerul programabil sau pe softul de testare PLCSIM. După
testarea softului acesta este încărcat într-o memorie EPROM şi se generează
documentaţia proiectului utilizând DOCPRO. Proiectul poate fi salvat sub forma unui
fişier comprimat.
Un echipament de automatizare SIMATIC conţine un controler
programabil din această familie şi module de I/O.
Componentele controlerului programabil-SIMATIC S7 sunt:
− rac de montare;
− unitatea centrală – (înmagazinează şi execută programul utilizator, atribuie
parametri modulelor, realizează comunicaţia între dispozitivul de programare,
module, staţii adiţionale prin intermediul magistralei);
− module de interfaţă;
− module de I/O;
− module funcţionale – (realizează diverse funcţii care nu pot fi „acoperite”
de către unitatea centrală);
− procesor pentru comunicare - folosit în momentul în care se doreşte
conectarea în reţea.
Acest controler utilizează două tipuri de magistrale: una pentru transmiterea
spre/ dinspre modulele de I/O, respectiv una pentru comunicarea rapidă cu un volum
mai mare de date între unitatea centrală şi celelalte module. Modulele de I/O pot fi
locale sau distribuite.
15
La ora actuală se folosesc trei familii de unităţi centrale pentru
automatizări SIMATIC: S7-200, S7-300 şi S7- 400.
S7-200 utilizează limbajul de programare STEP7 Micro, fiind destinat
automatizărilor de dimensiuni reduse. Poate avea mai multe module de extindere,
existând posibilitatea de conectare în reţea. Numărul de module de I/O poate fi stabilit
astfel încât să satisfacă cerinţele legate de proces. O interfaţă de tipul punct cu punct
permite conectarea mai multor unităţi centrale (până la 31), precum şi conectarea cu
alte controlere din familia SIMATIC.
S7-300 este controlerul destinat automatizărilor medii, având aceleaşi
caracteristici ca şi S7-200. Oferă în plus, posibilitate de instalare a sursei de
alimentare pe şina centrală. Sloturile sunt numerotate: 1 pentru sursă (chiar dacă
lipseşte), 2 pentru unitate centrală, 3 - modul de interfaţă, 4-11 - module de I/O.
Echipamentul este prevăzut cu module pentru lucru în mediu cu condiţii ostile
(temperaturi foarte ridicate sau scăzute, vibraţii).
S7-400 este controlerul destinat automatizări complexe, având o mai mare
capacitate de procesare a informaţiei, posibilitatea de conectare a două unităţi
centrale la aceeaşi sursă şi capacitate de multiprocesare.
Componentele din standardul SIMATIC S7-300/400 permit un sistem redundant
de automatizare în cazul proceselor lente, astfel că o staţie poate prelua controlul
procesului în cazul în care o altă staţie (master de exemplu) cade. În timpul acestei
perioade toate semnalele din proces sunt conservate.
Panourile operator OP3, OP7 si OP17 sunt făcute pentru operare si monitorizare
confortabila a mai multor domenii de aplicaţie, incluzând, de exemplu, construcţii de
maşini, împachetare si aer condiţionat. Sunt foarte uşor de configurat si controlat. OP3
16
este făcut special pentru conectare la SIMATIC S7, iar OP7 si OP17 au o gama larga de
facilitaţi de conectare.
Panourile OP3, OP7 si OP17 sunt potrivite pentru folosirea directa pe
dispozitive, cat si in birouri.
Caracteristicile esenţiale sunt:
- grad de protecţie IP 65
- dimensiuni reduse in adâncime
- 128 KB (OP3, OP7) sau 256 KB ( OP17) memorie pentru configurarea
datelor in EPROM, deja integrata.
- afişaj uşor de citit
17
POW CPU AIN AIO INP OUT CNT ... OUT NET NET COM
400 400 400 400 400 400 200 400 230 200 200
BGT 400
18
2.3.1 Controlere compacte
Acest controler are maxim 100 de puncte de intrare / ieşire. Mărimea maximă a
programului este de 2Kword.
19
2.3.2 Controlere programabile universale
CJ1-M/CJ1-G/CJ1-H
21
Figura 2.7 Elementele modului programabil LM0 ...DC...
1 tensiune de alimentare;
2 intrări;
3 buton de ştergere (DEL);
4 tasta ALT;
5 LED Power/Run;
6 conexiune centralizată;
7 etichetă echipament;
8 tastă cursor;
9 tasta OK;
10 tasta ESC;
11 interfaţă (card memorie, cablu PC);
12 ieşiri;
13 LCD.
22
Cuplaj Intrări Alimentare 24VDC
descentralizat
Power/
Run
Etichetă
Eticheta Ieşiri
Ieşirile automatului sunt o serie de contacte care pot fi setate „normal închis” sau
„normal deschis” după cum este necesar.
Instalarea controlerului programabil se realizează parcurgând următoarele etape:
− montare;
− conectarea intrărilor;
− conectarea ieşirilor;
− conectarea sursei de alimentare.
23
Intrările modulului comută electronic. Odată conectat un contact pe o intrare,
poate fi folosit ori de câte ori se doreşte în program. La intrări se pot conecta:
limitatoare, butoane de tip ciupercă, actuatoare, etc. Intern, intrarea automatului arată ca
în figura următoare. Trebuie avut în vedere că intrările digitale şi modulul se conectează
la aceeaşi sursă de tensiune, altfel este posibil să nu se detecteze nivelele logice sau pot
apare supratensiuni.
Figura 2.10
În programul controlerului, bobinele releelor sunt controlate de ieşirile Q1…Qn.
Se pot folosi stările releelor Q în program, pentru acţiona contactele, ce vor putea fi
utilizate în alte secvenţe.
Intrările controlerului se conectează ca în figura de mai jos:
24
Figura 2.11 Conectarea intrărilor
Ieşirile se folosesc pentru a conecta sarcini cum ar fi: lămpi fluorescente, lămpi
cu incandescenţă, relee, contactori sau motoare.
25
Figura 2.13 Modul de conectarea pentru controlerele LMO
26
1- borne alimentare: 85 – 265 Vca;
2- borne tensiune de ieşire: 24 Vcc;
3- eticheta aparat;
4- Power LED:
aprins- pornit;
stins- oprit sau defecţiune sursă de alimentare.
2.6.1 oPLC-336
Controlerul open PLC este un echipament modular, având o unitate centrală
compatibilă IBM PC/AT (80386SX, 40MHz) şi 192 puncte de conexiune la proces (8
module), fiind extensibil până la 336 puncte (14 module), prin adăugarea unui sertar
suplimentar.
28
Figura 2.16 Microcontroler logic programabil mPLC-32
30
3 CONTROLERUL COMPACT PS 4-201-MM 1
3
31
24V 0V G
1=Ready 3=NReady
1 2 3 4 2=Run 4=Battery
PRG SUCOnet K
1 - acumulator;
2 - buton reset;
3 - conector pentru extensie;
4 - comutator selectare mod de lucru.
32
3.2 Modul de operare
33
2 – Warm start (pornire la cald)
Maximum cycle time in ms: setarea implicită este de 60 ms. Valoarea maximă a
timpului poate fi 255 ms. Aceste setări nu controlează durata de ciclu al programului
utilizator, ci numai defineşte o limită superioară pentru verificarea defecţiunii. Se
setează o durată de ciclu mai scurtă numai dacă se cunoaşte timpul real de procesare al
programatorului. În acest caz, un timp mai lung de procesare indică o eroare. Selectarea
timpului maxim pentru ciclare depinde de tipul şi lungimea programului utilizator ce a
fost realizat. Dacă durata ciclului este depăşită, bitul ETC este setat în cuvântul de
diagnosticare DSW şi controlerul se schimbă pe HALT.
Active marker range: setarea implicită este MB0 până la MB4096. Acest
parametru setează lungimea memoriei pentru markerii folosiţi în programul utilizator.
Dacă se folosesc markeri în programul utilizator care nu au fost definiţi în setările
implicite, compilatorul va emite un mesaj de eroare corespunzător.
Retentive marker range: în cazul căderii de tensiune, markerii reţinuţi îşi
păstrează stările definite anterior. Sunt, de asemenea, păstrate stările definite în cazul
restartării sistemului de operare. Această lungime a markerului formează o parte a
lungimii markerului activ selectat şi nu se suprapune cu lungimea reţinută la pornirea la
rece.
34
Figura 3.2 Fereastra de editare program
Înainte de a efectua transferul prin apăsarea tastelor F1, F2, F6 (transfer Drive-
>PLC), plecând din meniul principal, trebuie parcurşi următorii paşi:
conectarea calculatorului la controler, utilizând cablul de programare ZB 4-
303-KB1;
alimentarea controlerului cu 24V DC, acesta indicând stările Ready sau Not
Ready;
se setează selectorul modului de operare S2 a controlerului PS 4 -201-MM1 pe
poziţia 1 (Halt).
La sfârşitul transferului se va da un mesaj de verificare a transferului. Odată ce
transferul programului a fost confirmat, acesta poate fi lansat în execuţie, de la controler
sau de la calculator, din Sucosoft.
Pentru lansarea programului de pe controler, se va poziţiona comutatorul pe
poziţia Run M-SET sau Run, şi apoi se va acţiona butonul de Reset.
37
001 EP
Vor fi reprezentate pe un singur rând (excepţie făcând funcţiile).
O instrucţiune este alcătuită dintr-un operator şi un operand. Operandul, în unele
cazuri, poate să lipsească; de exemplu instrucţiunea EP – sfârşit program.
Instrucţiunile specificate de operator (instrucţiuni logice, aritmetice şi de
transfer) vor utiliza ca al doilea operand memoria de lucru numită registru acumulator
(se va nota cu A). Rezultatul operaţiei logice aritmetice sau de încărcare va fi stocat tot
în această memorie A.
38
Operandul este alcătuit din identificatorii operandului şi parametri, şi poate fi
extins dacă este necesar.
Identificatorul specifică tipul operandului în cauză, în timp ce parametrii
specifică exact numărul operandului ce urmează a fi selectat. Pentru aceasta, adresa
operandului este în funcţie de reţea (PS4200, EM4, LE4) şi tipul acestuia word, byte sau
bit.
Figura 3.3 Sintaxa logică cerută de PS4 201 pentru adresarea unică a
operanzilor
y – depinde de tipul staţiei / modului
3.4.4 Intrări
Intrările constituie interfaţa dintre mediul extern şi controlerul programabil.
Semnalele externe ajung la PLC prin intrări şi sunt procesate mai departe. Intrările de
bit – sunt specificate de numărul bitului potrivit şi numărul bitului din byte-ul avut în
39
vedere. Intrările de byte sunt identificate de numărul potrivit de byte şi de litera B.
Intrările de cuvânt nu necesită număr de bit şi de punct. Sunt întotdeauna numere pare,
litera W fiind necesară ca extensie.
Intrările analogice
Cele două intrări analogice standard ale PS4 201 nu sunt optocuplate. Numai
valorile analogice cuprinse între 0 şi 10 V c.c. pot fi preluate şi manevrate cu o rezoluţie
de 10 biţi. Programul adresează intrările similar cu forma de adresare a operanzilor
simbolici sau absoluţi. Această adresare se aplică de asemenea, pentru cei doi
potenţiometrii de valoare fixă (setpoint) ai PS4-201-MM1, care pot fi consideraţi ca
două intrări analogice.
3.4.5 Ieşiri
Semnalele generate de PLC sunt transmise procesului conectat prin ieşiri.
Acestea constituie interfaţa dintre controlerul programabil şi proces.
Ieşirile pot fi de tip bit, byte sau word (cuvânt). Ieşirile de tip byte conţin
numărul de byte şi litera B. Ieşirile de tip word (cuvânt) nu au număr de bit sau punct.
Sunt întotdeauna pare, iar litera W trebuie adăugată.
Ieşirile digitale
Spre deosebire de registrele imagine de intrare, registrele imagine de ieşire au
posibilitatea de citire/scriere. Valorile din registrele imagine pot fi citite de programul
utilizator pentru procesări ulterioare. (scriere: =Q 0.0, citire: =LQ 0.0)
Ieşiri analogice
Echipamentul are o singură ieşire analogică ( 0 – 10 V c.c. ), cu o rezoluţie de 12
biţi (0,4095). Ieşirea analogică este adresată ca un operand simbolic sau absolut.
Exemplu de secvenţă ce furnizează valoarea 4000 la ieşirea QAW0:
L KW 4000
=QAW0
3.4.6 Markeri
Markerii sunt folosiţi pentru a stoca un rezultat intermediar produs în timpul
operaţiei de procesare al PLC-ului. Numărul marker-ilor folosiţi (bit, byte, cuvânt) este
limitat doar de dimensiunea memoriei. Markerii de bit sunt definiţi de numărul de byte
şi de numărul bitului corespunzător, separaţi de punct. Markerii de byte conţin numărul
40
byte-ului şi litera B. Markerii de tip cuvânt sunt întotdeauna pari, iar adresarea trebuie
să conţină litera W.
Lungimea unui marker este liber disponibilă. Când PLC-ul este repornit după o
pornire la rece, markerii situaţi în afara acestei zone sunt întotdeauna resetaţi la 0.
Aceste lungimi pot fi setate în meniul parametrilor sistemului.
3.4.7 Constante
Valorile fixe de referinţă şi de pornire pot fi introduse prin constante. În funcţie
de tipul datei selectate, valorile constante sunt disponibile în următoarele variante:
Bit: K0 şi K1;
Byte: KB –128 … KB0 … KB 127
Word : KW –32768 … KW0 … KW 32767
Limbajul de programare acceptă şi constante scrise în forma hexazecimală (KH).
Acestea sunt disponibile în următoarele variante:
Byte: KHB 0 … KHB FF
Word: KHW 0 … KHW FFFF
Semnul de plus/minus este conţinut de partea cea mai semnificativă a valorii
hexa. Constanta KHW FFFF corespunde constantei zecimale KW–1.
Cu acest tip de setare a funcţiilor bloc, intrările funcţiilor bloc pot fi văzute de
către programul utilizator ca ieşiri, adică pot fi citite înapoi, pe când ieşirile funcţiilor
bloc sunt tratate ca intrări. Ieşirile funcţiei bloc pot fi citite numai prin programul
utilizator şi nu pot fi scrise.
41
sunt listaţi în fişierul referinţă şi au asociat un simbol de operand. Aceste simboluri sunt
întotdeauna precedate de apostrof (‘).
3.4.10 Instrucţiuni
Instrucţiuni de transfer
Instrucţiunea de încărcare
Această instrucţiune are formatul următor:
L operand
Ea are ca efect, încărcare în memoria de lucru (A) a valorii operandului
respectiv.
Numele operandului poate fi:
− numele intrării care se încarcă (L I0.0 - încarcă intrarea I0.0 în acumulator)
− numele unui marker (memorie) care se încarcă (L M0.0 – încarcă memoria
M0.0 în acumulator).
− numele unei constante care se încarcă (L KB 1 – încarcă constanta de tip
byte 1 în acumulator.
Exemplu 1:
Exemplu de program care afişează la ieşirea Q0.0, valoarea logică a intrării I0.0.
L I.0.0.
= Q.00
Instrucţiuni logice
Instrucţiunile logice ce se pot realiza sunt: ŞI, ŞI negat, SAU, SAU NEGAT,
SAU exclusiv, SAU exclusiv negat şi negare.
Instrucţiunea ŞI
Exemplu 2
Instrucţiunea ŞI negat
Instrucţiunea SAU
O operand
Instrucţiunea efectuează sau logic între acumulator şi operand, iar rezultatul se
depune în acumulator.
Operandul poate fi o intrare, o memorie (marker) sau o ieşire.
43
Instrucţiunea SAU negat
ON operand
Instrucţiunea efectuează sau logic între acumulator şi valoarea negată a
operandului, iar rezultatul se depune în acumulator.
Operandul poate fi o intrare, o memorie (marker) sau o ieşire.
Instrucţiunea de negare
NOT – Instrucţiunea neagă rezultatul stocat în registrul de lucru.
Instrucţiuni de salt
Ramificaţie condiţională
44
BX etichetă – La întâlnirea acestei instrucţiuni se evaluează valoarea expresiei
condiţionale (dată de variabila condiţională X). Dacă valoarea expresiei X este adevărat,
se realizează un salt la adresa dată de etichetă.
X – poate fi unul din cei patru biţi ai registrului de stare C (transport), Z (zero),
P/M (plus/minus), V (depăşire), sau una din expresiile E, LT, GT, LE, GE, setate ca
urmare a unei comparaţii.
Instrucţiunile vor avea următoarele semnificaţii:
BB nr etichetă – realizează un salt la adresa dată de etichetă, dacă bitul nr este
1.
BNB nr etichetă – realizează un salt la adresa dată de etichetă, dacă bitul nr este
0.
BC etichetă - realizează un salt la adresa dată de etichetă, dacă bitul de transport
este 1.
BNC etichetă - realizează un salt la adresa dată de etichetă, dacă bitul de
transport este zero.
BP etichetă - realizează un salt la adresa dată de etichetă, dacă bitul de semn
este plus.
BM etichetă - realizează un salt la adresa dată de etichetă, dacă bitul de semn
este minus.
BV etichetă - realizează un salt la adresa dată de etichetă, dacă bitul de depăşire
este 1.
BNV etichetă - realizează un salt la adresa dată de etichetă, dacă bitul de
depăşire este zero.
BE etichetă - realizează un salt la adresa dată de etichetă, dacă termenii
comparaţi prin CMP sunt egali.
BNE etichetă - realizează un salt la adresa dată de etichetă, dacă termenii
comparaţi prin CMP nu sunt egali.
BLT etichetă - realizează un salt la adresa dată de etichetă, dacă relaţia între
termenii comparaţi prin CMP este mai mic (<).
BGT etichetă - realizează un salt la adresa dată de etichetă, dacă relaţia între
termenii comparaţi prin CMP este mai mare (>).
BLE etichetă - realizează un salt la adresa dată de etichetă, dacă relaţia între
termenii comparaţi prin CMP este mai mic sau egal (<=).
BGE etichetă - realizează un salt la adresa dată de etichetă, dacă relaţia între
termenii comparaţi prin CMP este mai mare sau egal(>=).
Instrucţiunea de comparaţie
45
Instrucţiuni aritmetice
Instrucţiunea de adunare
ADD operand - Instrucţiunea efectuează adunarea între conţinutul
acumulatorului şi valoarea operandului, iar rezultatul se depune în acumulator. Valoarea
operandului nu este alterată.
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word. Valorile implicate în adunare sunt întregi, cu semnul plus sau
minus.
Exemplu:
L MB 3
ADD KB 1
=MB3
Instrucţiunea de scădere
SUB operand – Instrucţiunea efectuează scăderea între conţinutul
acumulatorului şi valoarea operandului, iar rezultatul se depune în acumulator. Valoarea
operandului nu este alterată.
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word. Valorile implicate în scădere sunt întregi, cu semnul plus sau
minus.
Exemplu:
L MB 1
SUB MB 3
=MB5
Această secvenţă de instrucţiuni realizează MB5=MB1-MB3.
Instrucţiunea de înmulţire
MUL operand – Instrucţiunea efectuează înmulţirea între conţinutul
acumulatorului şi valoarea operandului, iar rezultatul se depune în acumulator. Valoarea
operandului nu este alterată.
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word. Valorile implicate în înmulţire sunt întregi, cu semnul plus sau
minus.
Instrucţiunea de împărţire
DIV operand – Instrucţiunea efectuează împărţirea între conţinutul
acumulatorului şi valoarea operandului, iar rezultatul se depune în acumulator. Valoarea
operandului nu este alterată.
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word.
La efectuarea operaţiilor aritmetice, biţii condiţionali din registrul de stare sunt
actualizaţi:
C – (bit de transport) va fi egal cu 1 dacă există transport
Z – (zero) – va fi egal cu 1 dacă rezultatul operaţiei este egal cu zero.
46
V – (depăşire) – va fi egal cu 1 dacă avem depăşire, ca urmare a efectuării
operaţiei.
Pentru a nu avea depăşire, variabilele de tip byte trebuie să aibă valori cuprinse
în intervalul –128 , +127, iar variabilele de tip word, în intervalul -32768, +32767.
Instrucţiunea Set
S operand – Instrucţiunea efectuează atribuirea valorii 1 operandului specificat,
dacă conţinutul registrului de lucru este egal cu 1. Operandul trebuie să fie de tip bit.
Instrucţiunea Reset
R operand –Instrucţiunea efectuează atribuirea valorii 0 operandului specificat,
dacă conţinutul registrului de lucru este egal cu 1. Operandul trebuie să fie de tip bit.
47
O caracteristică importantă este aceea că numai un singur pas este activ la un
moment dat, în timp ce ceilalţi sunt ignoraţi. Programul lucrează în pasul curent până
când este executată tranziţia următoare. Numai după execuţia acestei tranziţii,
programul continuă cu procesarea pasului următor.
Cu ramurile de tip SAU, poate fi executat numai un singur pas dintre paşii
programaţi în paralel (o singură linie orizontală). Cu ramurile de tip ŞI pot fi executate
mai multe bifurcaţii paralele, în acelaşi timp (linie dublă orizontală).
O ramură ŞI poate fi sincronizată. Sincronizarea asigură ca tranziţia finală a
secvenţei ŞI să nu fie procesată, până când ultima etapă a ramurilor paralele nu devine
activă.
Sintaxa funcţiei de control secvenţial
SK <Nr. Blocului funcţional> - <Nr. de paşi> - R
(R – numai dacă se cere o funcţie de memorare)
Nr. blocului funcţional: este limitat numai de mărimea memoriei.
Nr. de paşi: 1…99
Adâncimea de cascadare: 8
Timpul de execuţie:
cu SET = RESET = 0: aproximativ 130 ms
cu RESET = 1: aproximativ 240 ms
cu SET = 1: aproximativ 250 ms
cu SINO invalid: aproximativ 150 ms
Reprezentarea va fi următoarea:
SK i - j
[ ] S: S activează funcţia de control secvenţial
[ ] R: R resetează funcţia de control secvenţial şi
activează programul de iniţializare
[b] SINO: SINO defineşte contorul numărului de etapă
[b] ERR: ERR indică starea de eroare
[b] SQNO: SQNO indică numărul etapei care se execută
[ ] TG: TG indică schimbarea numărul etapei de
executat
[$] INIT: INIT numele subprogramului de iniţializare
[$] AC1: AC1 numele etapei 1 (exemplu $START)
[$] AC2: AC2 numele etapei 2
[$] AC3: AC3 numele etapei 3
.
.
[$] ACj: ACj numele etapei j
Subprogramul de iniţializare va stabili numărul primei etape de executat.
$INIT “denumire suprogram
L KB 1 încarcă 1 în registrul de lucru
= SKi SINO transferă numărul etapei (1) ce urmează a se
executa la contorul de etapă
EM sfârşit modul
48
Paşii individuali sunt creaţi de subprograme care conţin acţiuni ce urmează a fi
executate. Condiţiile necesare de trecere la o altă etapă trebuie programate între sfârşitul
unui pas şi începutul altuia. Paşii pot fi executaţi, fie succesiv, fie în paralel sau într-o
anumită ordine permiţând astfel, formarea unor secvenţe complexe necesare realizării
aplicaţiei.
Funcţia de control secvenţial pentru execuţia liniară a paşilor este alcătuită din
următoarele elemente:
iniţializarea blocului funcţional SK;
procesarea blocului funcţional SK;
schema stărilor blocului funcţional.
Iniţializare: Intrarea SINO specifică ce pas (etapă) urmează să fie procesat.
Înainte ca secvenţa pasului să fie apelată pentru prima dată, această intrare trebuie
iniţializată cu numărul primului pas ce urmează a fi procesat. Iniţializarea este cel mai
bine îndeplinită de subprogramul INIT, care rămâne activ atâta timp cât intrarea
RESET=1. Operandul INB 0.0 (indicator pentru primul ciclu după Reset sau după
apăsarea butonului de reset), poate fi folosit pentru intrarea de Reset a funcţiei de
control secvenţial. Intrarea de Reset este setată la 1, în primul ciclu după începerea
programului. Programul INIT asignează intrării SINO, numărul primului pas.
Aceasta iniţializare asigură că blocul funcţional SK cunoaşte numărul primei
etape ce urmează a fi procesată. Valoarea numărătorul de pas SINO va fi schimbată în
funcţie de etapa ce urmează a fi executată. Secvenţa logică a programului utilizator
poate fi scrisă simplu.
Pentru a activa blocul funcţional, intrarea de SET trebuie să fie 1. Aceasta
activează simultan etapa (pasul) definit la intrarea SINO. Dacă ambele intrări S şi R
sunt 1 în acelaşi timp, va fi executat numai subprogramul de iniţializare.
GRAFCET este o metodă de reprezentare de tip graf, care comportă două tipuri
de noduri: etape şi tranziţii.
Arcele fac legătura între etape şi tranziţii. Pot fi de la etape la tranziţii sau de la
tranziţii la etape.
O etapă poate să aibă două stări, adică să fie activă (reprezentată prin marcaj)
sau inactivă (figura 3.4). Etapa care trebuie să fie activă când sistemul este pus în
funcţiune se numeşte etapă iniţială.
1 - etapă inactivă
2 - etapă activă
.
0 - etapă iniţială
49
Tranziţiile sunt reprezentate ca în figura 3.5. Fiecărei tranziţii Ti îi este asociată o
funcţie numită funcţie de receptivitate Ri.
Ri = funcţie logică (variabile de intrare sau/şi de stare)
Ti Ri
Dacă sunt mai multe arce care sosesc sau pleacă de la aceeaşi tranziţie,
reprezentarea conţine şi o linie dublă (figura 3.6).
a) joncţiune ŞI
Ti c) Ti Ri
Ri
b) Ti Ri distribuţie ŞI
joncţiune şi
distribuţie ŞI
Când două sau mai multe linii se conectează la aceeaşi etapă, se regrupează
(figura 3.7).
Ti Ti+1
i
i
Ti Ti+1
O tranziţie poate să nu aibă etape de intrare sau etape de ieşire. În primul caz
vom avea tranziţie sursă, iar în al doilea - tranziţie finală.
Ansamblul etapelor active la un moment dat, defineşte situaţia la acel moment.
O situaţie corespunde unei stări a sistemului. Evoluţia stării se va face prin efectuarea
tranziţiilor.
50
Acţiunile sunt reprezentate într-un dreptunghi asociat etapelor, acestea putând fi
executate când etapa respectivă este activă (figura 3.8).
i Acţiuni i
Ti Ri
Xi 1
0
i+1
1 10 s
t/i+1/10 s 0
Ti+1 b 1 20 s
t/i+1/20 s 0
a) b)
51
- unde:
Xi reprezintă starea etapei i, iar Xi+1 reprezintă starea etapei i+1;
t/i+1/10s şi t/i+1/20s sunt variabile de temporizare raportate la etapa i+1;
a şi b - funcţii de receptivitate.
Acţiunile pot fi împărţite în două categorii: acţiuni de nivel impulsiv şi acţiuni de
nivel (pot fi condiţionate sau necondiţionate).
Acţiunile de nivel sunt definite numai pentru situaţii stabile.
Acţiunile impulsive au durată foarte scurtă şi realizează schimbarea unei
variabile sau contorizarea unei mărimi.
Pentru sistemul modelat, aceste acţiuni pot fi ieşiri. Funcţia de receptivitate
poate fi un eveniment extern sau un eveniment şi o condiţie.
Macroetape şi pseudo-macroetape
5
M30
ii Acţiuni i
52
Bloc funcţional TR
Temporizator cu întârziere la anclanşare
Sintaxa: apelare:
TR <Numărul blocului> - S (baza de timp)
Reprezentare:
TR7-S
[ ] S: start şi set
[ ] R: reset
[ ] STOP: întrerupere pentru timer
[W] I: setează valoarea temporizării
[ ] EQ: ieşirea temporizării
[W] Q: valoarea timpului rămas în unităţi ai bazei de timp
Baza de timp poate fi în ms (milisecunde) sau s (secunde).
Dacă intrarea „S” este 1, ieşirea „EQ” o urmează, întârziată de timpul „T”, unde:
T= (valoarea temporizării)*(baza de timp).
Reprezentare:
TF7-ms-R
[ ] S: start şi set
[ ] R: reset
[ ] STOP: întrerupere pentru timer
[W] i: setează valoarea timpului
[ ] EQ: ieşirea de control
[W] Q: valoarea timpului rămas în ms
53
Bloc funcţional TGEN
Generator de impulsuri
Sintaxă:
TGEN<bloc nr.>
S: Start şi set
I: Perioada semnalului în ms (L KW 400, pentru 400ms)
P: Ieşirea pulsului
baza de timp este în milisecunde; nu necesită nici o specificaţie.
54
EM 4-111-DR1 - modul de intrări ieşiri digitale
8 intrări digitale
6 ieşiri pe relee
230 V DC
EM 4-101-AA2 - modul de intrări ieşiri analogice
8 intrări analogice
4 ieşiri analogice
rezoluţie 8-12 biţi
24 VDC
EM 4-201-DD2 - modul de intrări digitale
16 intrări digitale
24 VDC
Modulele externe folosite în reţeaua SUCOnet k/k1 depind de controlerul master
implicat şi de interfaţa pentru magistrală. Seriile de controlere master PS 3, PS 4 100,
PS 306, PS 316 şi PS 4-401-MMx suportă protocolul SUCOnet k1. Cu aceste controlere
master pot fi folosite numai modulele externe cu o interfaţă de magistrală SUCOnet k1.
Controlerul master PS 4-201-MMx, extensiile locale LE (LE 4-501-BS1),
precum şi cartelele master PS 416-CPU-400 şi PS 416-NET-400, pot adresa modulele
externe prin ambele protocoale, SUCOnet k1 sau SUCOnet k, bazându-se pe interfaţa
de magistrală a dispozitivului conectat. Modulele EM 4-101-DD1 şi EM 4-111-DR1 au
o interfaţă SUCOnet k1. Interfeţele SUCOnet k1 sau k pot fi selectate numai pentru
modulele EM 4-101-AA2 şi EM 4-201-DX2. Selectarea modului de conectare se
realizează cu ajutorul comutatoarele S2 şi S3 ale modulului extern (figura 3.12). Pentru
SUCOnet k se setează comutatorul 6 al blocului comutator S2 pe OFF, iar pentru
SUCOnet k1, se setează comutatorul 6 al blocului comutator S2 pe ON.
Numărul modulelor externe ce pot fi conectate (EM 4) depinde de masterul
utilizat.
În figura 3.12 este prezentat aspectul general al unui modul extern.
2 3
1
4
9
8
7
4
6 5 3
Figura 3.12 Modul extern EM 4
55
1. indicator de stare
2. tensiune de alimentare
3. conector
4. indicator pentru starea intrărilor, ieşirilor
5. switch S2 pentru codificarea adreselor/modul de operare
6. switch S1 pentru rezistenţele de capăt a magistralei
7. interfaţă SUCOnet K1
8. interfaţă SUCOnet K
9. switch S3 pentru configurarea intrărilor şi ieşirilor, precum şi la setarea
formatului SBI sau PS 3 (valabil pentru EM 4-101-AA2 şi EM 4-201-
DX2).
56
Când modulul este în starea de execuţie, ledul este aprins. Conectarea la
magistrală este fără erori şi are loc schimbul de date.
EROARE DT
În această fază, ledul pâlpâie. Aceasta indică că a avut loc o eroare de transfer de
informaţie. Modulul nu poate fi accesat de către master. Acest lucru se poate datora unei
greşeli de software sau hardware (o greşeală de conectare magistrală).
Pentru modulul extern EM 4 - 101 - DD1 pot fi folosite două ieşiri ca intrări,
dacă e setat comutatorul 7 din blocul S2 pe poziţia ON. În acest caz avem 10 intrări şi 6
ieşiri; ieşirile Q.6 şi Q.7 sunt configurate ca intrări. Dacă comutatorul 7 din blocul S2 e
setat pe poziţia OF, vor fi 8 intrări şi 8 ieşiri.
În cazul modulului extern EM 4-101-AA2, setarea rezoluţiei de intrare se
realizează din comutatorul 2 din S3, astfel: pentru o rezoluţie a conversiei pe 8 biţi - se
setează comutatorul 2 al blocului de comutatoare S3 pe OFF, iar pentru o rezoluţie a
conversiei pe 12 biţi – se setează comutatorul 2 al blocului de comutatoare S3 pe ON.
Tensiunea de ieşire poate fi setată cu ajutorul comutatorul 5 al blocului de comutatoare
S3.
pentru tensiunea +10V/-10V – se setează comutatorul 5 al blocului de
comutatoare S 3 pe OFF.
pentru tensiunea 0...10 V – se setează comutatorul 5 al blocului de
comutatoare S 3 pe ON.
57
n - nr de participanţi;
m - nr de caractere în telegrama master;
s - nr de caractere în telegrama slave;
K - ( 810 µs ) constantă de timp fixată;
Z - constantă de timp (70 µs ), pentru transferul unui caracter,
incluzând timpul de oprire la 187,5 bit /s.
PS 4
100 serie
EM 4 LE 4 LE 4 LE 4 LE 4
PS 3
MMI
PS 4 LE 4 LE 4 LE 4 LE 4 . . .
201
LE 4
PS 4
201 EM 4 LE 4
PS 4 LE 4 . . .
201
LE 4
PS 3
EM 4 LE 4 LE 4 LE 4
59
4 CONTROLERE PROGRAMABILE TWIDO
4.1 Introducere
4
Controlerele Twido sunt realizate de firma Schnaider, fiind produse în două
variante: compacte şi modulare.
Controlerul compact este disponibil cu: 10 intrări/ieşiri, 16 intrări/ieşiri şi 24
intrări/ieşiri.
Controlerul modular este disponibil cu 20 intrări/ieşiri şi 40 intrări/ieşiri.
Se pot extinde numărul de intrări/ieşiri pe care le are disponibile controlerul cu
ajutorul modulelor de extensie. Acestea sunt: module cu 14 intrări/ieşiri digitale sau de
tip releu şi module cu 4 intrări/ieşiri analogice.
Este posibil de asemenea, să adăugăm numeroase componente la controlerul de
bază, cum ar fi: cartuş de memorie, cartuş pentru ceasul de timp real, adaptoare de
comunicaţie, modul extensie pentru comunicaţie (numai pentru controlere modulare),
modul de afişare (numai pentru controlere compacte), modul extensie pentru afişare
(numai pentru controlere modulare), modul simulare intrări, cablu de programare,
cabluri de intrări/ieşire digitale, sistem de cablare TeleFast cu interfaţă de intrare şi
ieşire.
60
12 Intrări 24 Vcc
Modular
TWDLMDA20DUK Transistor 24 Vcc
20 I/O 8 Ieşiri
sink
12 Intrări 24 Vcc
Modular
TWDLMDA20DTK Transistor 24 Vcc
20 I/O 8 Ieşiri
source
12 Intrări 24 Vcc
Modular Releu
TWDLMDA20DRT 6 Ieşire 24 Vcc
20 I/O Tranzistor
2 Ieşire
source
24 Intrări 24 Vcc
Modular
TWDLMDA40DUK Tranzistor 24 Vcc
40 I/O 16 Ieşire
sink
24 Intrări 24 Vcc
Modular
TWDLMDA40DTK Transistor 24 Vcc
40 I/O 16 Ieşiri
source
Figura 4.1 Variante de controlere Twido
Module de intrare
61
Tip Tipul Tip intrări Tip de
Cod Puncte
modul punctelor şi ieşiri terminal
Module de ieşire
Module mixte
62
4.3.2 Module de extensie pentru intrări/ieşiri analogice
Parametru Descriere
Durată scanare Normal (ciclic) sau periodic (constant) (2 la 150 ms)
program
Timp de execuţie 0,14 µs la,9 µs pentru o instrucţiune
Capacitate memorie Date : 1500 cuvinte, 128 biţi memorie TWDLCAA10DRF,
TWDLCAA16DRF, 256 biţi toate celelalte controlere
Parametru Descriere
Capacitate memorie Program :
Controler compact 10 I/O : 700 instrucţiuni
Controler compact 16 I/O : 2000 instrucţiuni
Controlere compacte 24 I/O şi modulare 20 I/O : 3000
instrucţiuni
Controlere modulare 20 I/O releu şi 40 I/O : 6000 instrucţiuni
(cu un cartuş 64 Ko)
64
4.5.2 Caracteristicile comunicaţiei
Protocoale Modbus
65
Modul master Modbus permite controlerului să lanseze o transmisie de
interogare Modbus, cu aşteptarea răspunsului de la slave-ul Modbus.
Modul slave Modbus
Modul slave Modbus permite controlerului să răspundă la interogările unui
master Modbus. Este un mod de comunicaţie implicit, dacă comunicaţia nu este
configurată.
Protocoale ASCII
4.6.1 Caracteristici
67
Figura 4.7 Componentele controlerelor modulare
1. Capac de acces
2. Conector extensie
3. Punct de reglare analogic
4. Port serial 1
5. Cartuş memorie
6. Borne de alimentare 24 Vcc
7. Conector de intrare analogic în tensiune
8. Leduri
9. Conectori intrări/ieşiri
10. Conector de comunicaţie (nu este prezent în figură; se află în partea din
stânga a controlerului)
68
Figura 4.8 Modul de cablare al intrărilor şi ieşirilor
Punctele de ieşire 0 şi 1 sunt de tip tranzistor, toate celelalte fiind de tip releu.
Terminalele COM nu sunt conectate toate intern.
Cablul TSX PCX 1031 asigură legătura între controler (Twido, Nano, Micro,
Premium) şi diferitele echipamente cu interfaţă serială RS231.
Este un cablu de comunicaţie multifuncţional, care integrează conversia
semnalelor RS 485 în semnale RS232.
Diferitele funcţii ale modului serial sunt definite de poziţia comutatorului,
accesibil deasupra carcasei convertorului.
Funcţiunile realizate prin reglarea comutatorului sunt prezentate în tabelul
următor:
69
Poziţie
Semnal Semnal
comuta Funcţiunea
/ DPT RTS
-tor
0 TER MULTI – Legătură în mod punct cu
punct sau multipunct. Forţează conectorul
terminal în mod stăpân, protocolul este 1 DA
implicit (înlocuieşte cablul TSX PCU
1031).
1 OTHER MULTI – Legătură în mod
multipunct. Înlocuieşte cablul TSX PCD 0 DA
1030)
2 TER DIRECT – Legătură în mod punct cu
punct. Forţează conectorul terminal în mod
stăpân, protocol implicit (înlocuieşte cablul 1 NU
TSX PCX 1030, întreruptor în poziţia
master şi TSX PCU 1030)
3 OTHER DIRECT - Legătură în mod punct
cu punct. Pentru alte tipuri de comunicaţie
definite prin configuraţia controlerului 0 NU
(înlocuieşte cablul TSX PCX 1030,
întreruptor în poziţia slave).
71
4.8 Funcţii speciale ale controlerelor Twido
Intrarea RUN/STOP
72
Ieşirea de stare a controlerului
Intrările de memorare a stării sunt o funcţie specială, care poate fi atribuită uneia
din intrările %I0.0.2, până la %I0.05. Această funcţie permite să se memoreze toate
impulsurile de o durată inferioară timpului de scanare a controlerului. Impulsurile
trebuie să fie >1ms.
73
− Se selectează căsuţele prin bifare, pentru a activa biţii a căror valoare a fost
setată în ieşiri. Atunci când un pas este executat, biţii logici definiţi în ieşiri
sunt activaţi dacă căsuţa selectată corespunde pasului care a fost selecţionat.
− Se selecţionează precedentul sau următorul pentru a trece de la un element la
altul, fără a închide fereastra de dialog.
− Se apasă pe OK pentru a valida valorile selecţionate sau pe anulare pentru a
închide fereastra de dialog fără modificarea configuraţiei.
74
Codul instrucţiunii este un simbol reprezentând un operator ce indică operaţia ce
urmează efectuată.
Există două tipuri de instrucţiuni de bază:
• Instrucţiuni de test
• Instrucţiuni de acţiune. Acestea permit să efectueze acţiunile autorizate,
deoarece condiţiile de test sunt satisfăcute.
Instrucţiuni de test
XOR,
XORN,
SAU exclusiv
XORR,
XORF
MPS
MRD Comutare între bobine
MPP
N - Negaţie (NOT)
Instrucţiuni pe acţiuni
Element
Operator grafic Operaţie efectuată
corespondent
ST Operandul asociat ia valoarea din acumulator
76
END Sfârşit de program.
Element
Operator grafic Operaţie efectuată
corespondent
Sunt instrucţiuni de funcţionare pentru fiecare
bloc funcţional.
Temporizatoare,
O formă structurată este utilizată pentru a
contorizatoare,
racorda direct intrările şi ieşirile blocului.
registre, etc.
Remarcă: Ieşirile blocurilor funcţionale nu pot
fi conectate unele cu altele.
Utilizarea parantezelor
77
Figura 4.12 Exemplu de utilizare a parantezelor într-o instrucţiune
AND
Figura 4.13
Modificatori
78
Figura 4.15
Figura 4.16
Instrucţiuni cu stivă
80
4.12 Programarea cu ajutorul
reprezentării Grafcet
Instrucţiunile Grafcet din TwidoSoft oferă o metodă simplă de conversie a
secvenţelor de control.
Numărul maxim de etape Grafcet depinde de tipul de controler Twido. Numărul
de etape ce pot fi activate simultan este limitat de numărul total de etape.
Pentru controlerele TWDLCAA10DRF şi TWDLCAA16DRF se dispun de
etape de la 1 la 62. Etapele 0 şi 63 sunt rezervate pentru prelucrarea anterioară şi
posterioară. Pentru toate celelalte controlere sunt disponibile etapele de la 1 la 95.
81
Exemple Grafcet
Secvenţă liniară
Secvenţe simultane
82
Secvenţă divergentă
84
4.12.3 Prelucrarea secvenţială
Prelucrarea secvenţială este executată pe baza unui graf având următoarele
elemente caracteristice:
− Etape
− Acţiuni asociate etapelor
− Tranziţii
− Condiţii de efectuare a tranziţiilor.
Exemple
85
4.12.4 Acţiuni asociate etapelor Grafcet
Un program Grafcet TwidoSoft oferă două moduri de programare a acţiunilor
asociate etapelor:
− în secţiunea de prelucrare posterioară;
− în lista de instrucţiuni.
Asocierea acţiunilor în prelucrarea posterioară
Este preferabil să se programeze acţiunile în secţiunea de prelucrare posterioară
a unei aplicaţii Grafcet. Se pot utiliza instrucţiunile în limbaj listă, de instrucţiuni SET şi
RESET sau programul schemă de contacte pentru lansarea etapelor Grafcet (%Xi)
Exemplu
Se pot programa acţiunile asociate etapelor, sub formă de listă de instrucţiuni sau
sub formă de reţea schemă de contacte:
Exemplu :
86
Operand Descriere
0/1 Valoare 0 sau 1
%I Intrare în controler
%Q Ieşire din controler
%M Bit intern %Mi
%S Bit sistem %Si
%X Bit etapă %Xi
%BLK.x Bit bloc funcţional (Exemplu %TMi.Q)
%•:Xk Bit cuvânt (Exemplu %MWi:Xk)
[ Expresie de comparare (Exemplu [%MWi<1000])
Obiecte bit
Obiectele bit corespund ieşirilor din blocuri. Instrucţiunile logice de test pot
utiliza aceşti biţi prin următoarele metode:
• direct (exemplu, LD E) dacă sunt legaţi de blocuri printr-o programare
reversibilă.
• specificând tipul de bloc (exemplu, LD %Ci.E)
Intrările sunt accesibile sub forma instrucţiunilor
Obiecte cuvânt
Obiectele cuvânt corespund:
87
• parametrilor de configurare a blocului: Programul poate accesa anumiţi
parametri (parametrii de preselectare).
• valorilor curente: exemplu %Ci.V, valoarea de contorizare curentă.
Acces în
Dome- Tip
Bloc funcţional Simbol Descriere Adresaremod
niu (i) obiect
scriere
Valoare curentă %TMi.V Nu
Cuvânt Valoare de
%TMi.P Da
Temporizator %TMi 0 - 127 preselectare
Ieşirea
Bit %TMi.Q Nu
temporizatoru-lui
Cuvânt Valoare curentă %Ci.V Nu
Valoare de
%Ci.P Da
preselectare
Ieşire pentru
Bit depăşirea ca %Ci.E Nu
Contorizator %Ci 0 - 127
valoare inferioară
Ieşire predefinită
%Ci.D Nu
atinsă
Ieşire pentru
%Ci.F Nu
depăşire
Figura 4.17
Figura 4.18
Numai instrucţiunile de test şi de intrare pot fi plasate între instrucţiunile BLK şi
OUT_BLK sau între BLK şi END_BLK dacă OUT_BLK nu a fost programat.
89
4.12.8 Blocul funcţional temporizator (%TMi)
Există trei tipuri de blocuri cu funcţie de temporizator:
• TON (Timer On-Delay) Temporizator la anclanşare;
• TOF (Timer Off-Delay) Temporizator la revenire;
• TP (Timer - Pulse) Temporizator – puls. Acest tip de temporizator permite
crearea de impulsuri de o durată precisă.
Exemplul următor prezintă un bloc cu funcţie de temporizare la anclanşare:
Figura 4.19
Parametrii
Blocurile cu funcţie de temporizator au următorii parametrii:
Parametru Etichetă Descriere
Numărul 0 la 63: TWDLCAA10DRF şi TWDLCAA16DRF
%TMi
temporizatorului 0 la 127 pentru toate celelalte controlere.
TON • întârziere la anclanşare
Tip TOF • întârziere la declanşare
TP • puls
Bază de timp TB 1 min (implicit), 1 s, 100 ms, 10 ms, 1 ms
Cuvânt cu incremenţi de la 0 la %TMi.P, atunci când
temporizare este lansată. Poate fi citită şi testată, dar nu
Valoare curentă %TMi.V
poate fi scrisă de program. %TMi.V poate fi modificată
utilizând editorul de tabele de animaţie.
0 – 9999 - Cuvânt care poate fi citit, testat şi scris de
Valoare
%TMi.P program. Valoarea implicită este 9999. Perioada sau
preselectată
temporizarea generată este egală cu %TMi.P x TB.
Y : Da, valoare %TMi.P de preselectare. Poate fi
Editor de tabele modificată cu ajutorul editorului de tabele de animaţie.
Y/N
de animaţie N : Nu, valoarea %TMi.P de preselectare. Nu poate fi
modificată.
Intrare de Porneşte temporizatorul pe frontul crescător (tip TON
IN
validare sau TP) sau descrescător (tip TOF).
Ieşirea Bitul asociat %TMi.Q est setat pe 1 în funcţie de
Q
temporizatorului temporizarea executată: TON, TOF sau TP
Figura 4.20
90
Cu cât valoarea preselectată este mai mare cu atât temporizatorul va fi mai
precis.
Figura 4.21
Faza Descriere
Valoarea curentă %TMi.V ia valoarea 0 pe un front crescător în intrarea
1
IN, chiar dacă temporizarea este în curs de desfăşurare.
Bitul de ieşire %TMi.Q trece în 1, atunci când un front crescător este
2
detectat la intrarea IN.
3 Temporizarea este demarată pe un front descrescător al intrării IN.
Valoarea curentă %TMi.V creşte până la %TMi.P, prin incrementarea cu o
4
unitate la fiecare pulsaţie a bazei de timp TB.
Bitul de ieşire %TMi.Q este resetat la 0 atunci când valoarea curentă atinge
5
valoarea dată de %TMi.P.
91
Temporizator la anclanşare TON
Faza Descriere
1 Temporizatorul porneşte pe un front crescător al intrării IN.
Valoarea curentă %TMi.V creşte până la %TMi.P, prin incrementarea cu o
2
unitate la fiecare pulsaţie a bazei de timp TB.
Bitul de ieşire %TMi.Q trece în 1, atunci când valoarea curentă atinge
3
valoarea %TMi.P.
Bitul de ieşire %TMi.Q păstrează valoarea 1, cât timp valoarea de intrării
4
IN este 1.
Atunci când un front descrescător este detectat la intrarea IN,
5 temporizatorul se opreşte, chiar dacă el nu a atins valoarea %TMi.P şi
%TMi.V este setat pe 0.
Temporizator cu pulsuri TP
92
Funcţionarea temporizatorului TP
Tabelul următor descrie funcţionarea temporizatorului TP.
Faza Descriere
Temporizatorul porneşte pe un front crescător al intrării IN. Valoarea
1
curentă %TMi.V este setată pe 0 dacă temporizatorul nu a fost încă pornit.
2 Bitul de ieşire %TMi.Q trece în 1, atunci când temporizatorul este pornit.
Valoarea curentă %TMi.V creşte de la 0 la %TMi.P, prin incrementarea cu
3
o unitate la fiecare pulsaţie a bazei de timp TB.
Bitul de ieşire %TMi.Q este setat 0, atunci când valoarea curentă atinge
4
valoarea %TMi.P.
Valoarea curentă %TMi.V este setată pe 0, atunci când valoarea %TMi.V
5
este egală cu %TMi.P şi intrarea IN reprimeşte valoarea 0.
Temporizatorul nu poate fi trecut în 0. Atunci când valoarea %TMi.V este
6 egală cu %TMi.P şi intrarea IN reprimeşte valoarea 0, %TMi.V este setat
pe 0.
93
Configurarea temporizărilor
Exemplu de programare
95
Figura 4.22
96
incrementare (Full) %Ci.V trece de la 9999 la 0 (este setat pe 1 atunci
când %Ci.V atinge 0 şi este repus pe zero, dacă
numărătorul continuă incrementarea).
Funcţionarea blocului
97
Programarea şi configurarea numărătoarelor
Configurare
Următorii parametri trebuie să fie stabiliţi în momentul configurării:
− Valoarea de preselectare (%Ci.P): fixată la 5000 în acest exemplu;
− Reglare: Da.
Exemplu de numărător incrementare/decrementare:
98
4.12.10 Funcţia PWM
Figura 4.24
100
Figura 4.25
Blocul funcţional PID. Funcţiunea PID este o funcţie specifică limbajului
TwidoSoft.
Ea permite programarea a unui număr de maxim 14 bucle de reglare PID într-un
mod foarte uşor.
Funcţionarea unei bucle de reglare presupune trei faze distincte:
achiziţia de date – măsurile pot proveni de la senzorii din proces sau de la
variabilele interne ale controlerului
101
Figura 4.26 Fereastră de introducere a parametrilor PID
102
Figura 4.27 Evoluţia ieşirii
Ceasul de timp real – RTC – face posibilă actualizarea şi citirea timpului real. Se
poate citi şi menţine astfel data compusă din ziua, luna, anul şi ziua din săptămână şi ora
compusă din ora, minut, secunda.
Pentru a citi aceşti parametri trebuie o secvenţă de iniţializare a RTC – ului, o
secvenţă de actualizare a datei şi a orei, o secvenţă de citire coordonată cu o setare
corespunzătoare a biţilor de sistem ce permit citirea.
RTC în sine este funcţia unui cartuş de circuite conectat la un controller
modular. Controlerele compacte având cel mai adesea RTC încorporat în structură.
Acest cartuş poartă numele de TWDXCPRTC.
Instalarea fizică a acestui cartuş se face astfel:
- se deschide capacul protector(1) al controllerului modular ;
- se înlătură capacul ce obturează locul unde va fi plasat cartuşul ;
- se inserează cartuşul în locul rămas liber şi se apasă până se aude un clic ;
- se închide capacul protector .
103
TWDXCPRTC
TWDMDA20DRT
Odată instalat fizic cartuşul urmează iniţializare acestuia prin intermediul
TWIDOSoft mediul de programare al controllerului. Pentru aceasta se procedează
astfel:
- se apelează caseta „ Controller Operations” aceasta din PLC > Check PLC
această accesare se poate face numai când controllerul este conectat la
calculator şi pornit
Figura 4.28
104
- din această casetă se apelează Set Time pentru actualizarea datei în
momentul conectării la controller.
Figura 4.29
Aceste configurări mai ales cea a constantei de corecţie a RTC – ului trebuie
făcută cel puţin o singură dată la instalarea RTC- ului, setarea datei şi a orei putându-se
face pe urmă prin programul transferat de TWIDOSoft.
105
o %S59 – pentru activarea posibilităţii de incrementare / decrementare
a parametrilor temporali ai RTC – ului.
%SW49:
- stabileşte ziua din săptămână, ziua de luni este prima numerotată şi are
valoare 1.
%SW50:
- în formatul - 00SS -. Păstrează numărul curent al secundelor;
%SW51:
- în formatul – HHMM- Păstrează ora (HH) şi minutul (MM), ora este în
formatul de la 0 la 23.
%SW52:
- în formatul – LLZZ – Păstrează luna (LL) şi ziua din lună (ZZ).
%SW53:
- în formatul – SSAA – Păstrează secolul (SS) şi anul din secol(AA).
107
În tabelul următor sunt specificaţi biţii corespunzători parametrilor temporali
modificaţi.
În lucrul cu formatul BCD în care sunt primite şi setate aceste cuvinte se pot
folosi pentru uşurarea utilizării instrucţiunile BTI (din BCD în binar) şi ITB (din binar
în BCD) pentru simplificarea structurii programului.
LD 1
R %S50
LDR %I0.0.1
(* SETEZ ZIUA - DUMINICA *)
[ %SW49 := 7 ]
(* SETEZ SECUNDA - 30*)
[ %MW10 := 30 ]
[ %SW50 := ITB( %MW10 ) ]
(* SETEZ ORA - 23:59 *)
[ %MW11 := 2359 ]
[ %SW51 := ITB( %MW11 ) ]
(* SETEZ DATA - 31.12.2007 *)
[ %MW12 := 1231 ]
108
[ %SW52 := ITB( %MW12 ) ]
[ %MW13 := 2007 ]
[ %SW53 := ITB( %MW13 ) ]
S %S50
LD 1
(* TRANSFORM VALORILE TEMPORALE DIN BCD IN BINAR*)
[ %MW0 := BTI( %SW49 ) ]
[ %MW1 := BTI( %SW50 ) ]
[ %MW2 := BTI( %SW51 ) ]
[ %MW3 := BTI( %SW52 ) ]
[ %MW4 := BTI( %SW53 ) ]
END
109
Figura 4.30
Figura 4.31
110
- se alege tipul comunicaţiei care poate fi Modbus / Remote Link / ASCII, vom
alege ASCII.
- vom configura viteza comunicaţiei 1200 / 2400 / 4800 / 9600 / 19200 / 38400,
vom alege 9600.
- pentru alege lăţimea benzii de comunicaţiei vom accesa Data Bits şi dintre 7 şi 8
vom alege pe 8.
- în privinţa verificării erorii vom alege fără paritate din opţiunile None / Even /
Odd.
- vom alege numărul de biţi de stop la 1 dintre valorile 1 şi 2.
- vom alege un timp convenabil de aşteptare pentru semnal serial în baza de timp
de 100ms.
- Pentru configurări de fineţe apăsam butonul „Advanced…”
Figura 4.32
- apare caseta de dialog „Advanced settings” din care alegem opţiunile care
favorizează recepţia cea mai potrivită a secvenţei de date dorite.
- aceasta a fost configurarea prin meniuri.
111
Configurarea prin biţii şi cuvintele de sistem
%MSG2.E este setat dacă este detectată vreo eroare altfel este 0, comunicaţia a
decurs corect.
El detectează următoarele erori :
- comandă greşită;
- tampon configurat incorect;
- recepţie caracter incorect(din cauza proastei configurări a vitezei, a parităţii etc.)
- tamponul pentru recepţie este plin (neînnoit)
113
…. …. …
n Bitul 2n-1 transmis Bitul 2n transmis
Bitul 1 recepţionat Bitul 2 recepţionat
n+1
… … …
Bitul 2p-1
p Bitul 2p recepţionat
recepţionat
Lungimea transmisiei poate fi de maxim 250 de octeţi. La recepţie dacă este cerută
lungimea şirului receptat este suprascrisă în acest octet.(Octetul de lungime transmisie)
Pentru numai transmisie zona tampon poate fi şi de tipul %KW.
Exemplu de program.
LD 1
[ %MW10 := 16#0200 ]
[ %MW11 := 16#0000 ]
LD 1
AND %MSG2.D
[ EXCH2 %MW10:6 ]
LD %MSG2.E
ST %Q0.0.0
LD [ %SW64 = 0 ]
ST %Q0.0.1
END
114
4.15 Funcţiile matematice ale controlerului TWIDO
115
folosească ori numai indecşii pari ori numai cei impari(pentru %MFx şi %MDx ) pentru
a nu apărea suprapuneri sau pentru a nu se lăsa spaţii libere în utilizarea memoriei.
Aceeaşi organizare a memoriei este specifică şi constantelor.
Observaţii:
- fiecare funcţie are operatori de un anumit tip;
- funcţiile trigonometrice inverse întorc o valoare în radiani într-un anumit
interval (ASIN –π/2 ….π/2, ACOS 0… π, ATAN –π/2 ….π/2)
- operatorii aritmetici lucrează cu operanzi de acelaşi tip, ori cuvânt ,ori dublu
cuvânt ori float, pentru a utiliza valori asociate unor tipuri diferite trebuind
făcută mai întâi o conversie;
- orice valoare directă într-o expresie cu operanzi de tip float chiar dacă este
fără zecimale se adaugă neapărat un „.0” pentru a fi recunoscută ex.:
[%MF1:=%MF2+10] - Greşit!!!
116
[%MF1:=%MF2+10.0] – Corect!!!
- o expresie în care se folosesc cuvinte nu poate utiliza decât cuvinte de
memorie sau constante sau valori directe nu şi intrări analogice %IW0.0 ce
pot fi folosite doar într-o expresie de atribuire astfel :
[%MF40:=INT_TO_REAL(%IW0.0)] – Greşit!!
[%MW10:=%IW0.0] Corect!!!
[%MF40:=INT_TO_REAL(%MW10)]
- funcţia ABS poate fi folosită doar cu operatori de tip dublu cuvânt sau float.
117
Erorile de calcul sunt semnalate în bitul de sistem %S18 ce este setat pentru:
- depăşirea intervalului de lucru al tipului de variabilă;
- împărţirea la zero;
- rădăcină pătrată dintr-un număr negativ;
- conversie din BCD a unei valori cu format eronat;
Odată descoperită eroarea acest bit poate fi adus din nou la 0 pentru verificare
unei noi operaţii. Pentru a afla tipul erorii la operaţiile cu float se foloseşte cuvântul de
sistem %SW17.
118
5 ÎNDRUMAR DE LABORATOR
LUCRAREA 1
Descrierea echipamentului
24V 0V G
1=Ready 3=NReady
1 2 3 4 2=Run 4=Battery
PRG SUCOnet K
1 - acumulator;
2 - buton reset;
3 - conector pentru extensie;
119
4 - comutator selectare mod de lucru.
Modul de operare
120
fost realizat. Dacă durata ciclului este depăşită, bitul ETC este setat în cuvântul de
diagnosticare DSW şi controlerul se schimbă pe HALT.
Active marker range: setarea implicită este MB0 până la MB4096. Acest
parametru setează lungimea memoriei pentru markerii folosiţi în programul utilizator.
Dacă se folosesc markeri în programul utilizator care nu au fost definiţi în setările
implicite, compilatorul va emite un mesaj de eroare corespunzător.
Retentive marker range: în cazul căderii de tensiune, markerii reţinuţi îşi
păstrează stările definite anterior. Sunt, de asemenea, păstrate stările definite în cazul
restartării sistemului de operare. Această lungime a markerului formează o parte a
lungimii markerului activ selectat şi nu se suprapune cu lungimea reţinută la pornirea la
rece.
121
Deoarece fişierul de configurare conţine informaţii despre structura fizică de
conectare a controlerului cu modulele de extensie locală sau alte staţii, compilatorul
poate verifica dacă adresarea şi specificaţiile sunt corecte.
Sintaxa pentru această instrucţiune este:
# include “nume_fişier_config.k42”
Această instrucţiune trebuie să fie întotdeauna prima din program.
Compilarea programului
Înainte de a efectua transferul prin apăsarea tastelor F1, F2, F6 (transfer Drive-
>PLC), plecând din meniul principal, trebuie parcurşi următorii paşi:
conectarea calculatorului la controler, utilizând cablul de programare ZB 4-
303-KB1;
alimentarea controlerului cu 24V DC, acesta indicând stările Ready sau Not
Ready;
122
se setează selectorul modului de operare S2 a controlerului PS 4 -201-MM1 pe
poziţia 1 (Halt).
La sfârşitul transferului se va da un mesaj de verificare a transferului. Odată ce
transferul programului a fost confirmat, acesta poate fi lansat în execuţie, de la controler
sau de la calculator, din Sucosoft.
Pentru lansarea programului de pe controler, se va poziţiona comutatorul pe
poziţia Run M-SET sau Run, şi apoi se va acţiona butonul de Reset.
123
LUCRAREA 2
Instrucţiuni de transfer
Instrucţiunea de încărcare
Această instrucţiune are formatul următor:
L operand
Ea are ca efect încărcare în memoria de lucru A a operandului respectiv.
124
Nume operand poate fi:
numele intrării care se încarcă (L I0.0 - încarcă intrarea I0.0 în acumulator)
numele unui marker (memorie) care se încarcă (L M0.0 – încarcă memoria M0.0
în acumulator).
numele unei constante care se încarcă (L KB 1 – încarcă constanta de tip byte 1
în acumulator.
Instrucţiunea de încărcare cu valoare negată
LN operand - Ea are ca efect încărcare în memoria de lucru A a valorii negate
corespunzătoare operandului respectiv.
Exemplu 1:
L I.0.0.
= Q.00
Instrucţiuni logice
Instrucţiunile logice ce se pot realiza sunt: ŞI, SI negat, SAU, SAU NEGAT,
SAU exclusiv, SAU exclusiv negat şi negare.
Instrucţiunea ŞI
A operand – Se efectuează şi logic între acumulator şi operand iar rezultatul se
depune în acumulator.
Operandul poate fi o intrare, o memorie (marker) sau o ieşire.
125
Exemplu 2:
Instrucţiunea ŞI negat
Instrucţiunea SAU
O operand - Se efectuează sau logic între acumulator şi operand iar rezultatul se
dune în acumulator.
Operandul poate fi o intrare, o memorie (marker) sau o ieşire.
Instrucţiunea de negare.
NOT – Se neagă rezultatul stocat în registrul de lucru.
Instrucţiunea Set
S operand – Efectuează atribuirea valorii 1 operandului specificat dacă
conţinutul registrului de lucru este egal cu 1. Operandul trebuie să fie de tip bit.
Instrucţiunea Reset
R operand – Efectuează atribuirea valorii 0 operandului specificat dacă
conţinutul registrului de lucru este egal cu 1. Operandul trebuie să fie de tip bit.
126
Instrucţiunea sfârşit modul
EM – Această instrucţiune marchează sfârşitul modulului program.
Lucrări experimentale
1. Se vor scrie programele în SucoSoft utilizând instrucţiunile prezentate pentru
următoarele aplicaţii:
• Q0.0=I0.1*I0.3 + I0.2*I0.4 + I0.5
• Partea de pornire/ oprire a unei instalaţii dacă există condiţii de pornire.
START – I0.0
STOP – I0.3
COPO – I0.5
INSTF – Q0.2
INSTF=(START* COPO+INSTF)*STOP
• Se va realiza fişierul de referinţă şi se vor introduce simbolurile
următoare: START – I0.0, STOP – I0.3, COPO – I0.5, INSTF – Q0.2
• Se va rescrie programul utilizând simboluri
2. Se vor verifica programele şi se vor transfera pe PLC.
3. Se vor simula programele şi se vor nota observaţiile.
127
LUCRAREA 3
Instrucţiuni de salt
Ramificaţie condiţională
128
BV etichetă - realizează un salt la adresa dată de etichetă dacă bitul de depăşire
este 1.
BNV etichetă - realizează un salt la adresa dată de etichetă dacă bitul de
depăşire este zero.
BE etichetă - realizează un salt la adresa dată de etichetă dacă termenii
comparaţi prin CMP sunt egali.
BNE etichetă - realizează un salt la adresa dată de etichetă dacă termenii
comparaţi prin CMP nu sunt egali.
BLT etichetă - realizează un salt la adresa dată de etichetă dacă relaţia între
termenii comparaţi prin CMP este mai mic (<).
BGT etichetă - realizează un salt la adresa dată de etichetă dacă relaţia între
termenii comparaţi prin CMP este mai mare (>).
BLE etichetă - realizează un salt la adresa dată de etichetă dacă relaţia între
termenii comparaţi prin CMP este mai mic sau egal (<=).
BGE etichetă - realizează un salt la adresa dată de etichetă dacă relaţia între
termenii comparaţi prin CMP este mai mare sau egal(>=).
Instrucţiunea de comparaţie
Instrucţiuni aritmetice
Instrucţiunea de adunare
ADD operand - Se efectuează adunarea între conţinutul acumulatorului şi
valoarea operandului iar rezultatul se depune în acumulator.Valoarea operandului nu
este alterată.
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word. Valorile implicate în adunare sunt întregi cu semnul plus sau minus.
Exemplu
L MB 3
ADD KB 1
=MB3
Instrucţiunea de scădere
SUB operand - Efectuează scăderea între conţinutul acumulatorului şi valoarea
operandului iar rezultatul se depune în acumulator. Valoarea operandului nu este
alterată.
129
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word. Valorile implicate în scădere sunt întregi cu semnul plus sau minus.
Exemplu
L MB 1
SUB MB 3
=MB5
Această secvenţă de instrucţiuni realizează MB5=MB1-MB3.
Instrucţiunea de înmulţire
MUL operand - Efectuează înmulţirea între conţinutul acumulatorului şi
valoarea operandului iar rezultatul se depune în acumulator. Valoarea operandului nu
este alterată.
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word. Valorile implicate în înmulţire sunt întregi cu semnul plus sau
minus.
Instrucţiunea de împărţire
DIV operand - Efectuează împărţirea între conţinutul acumulatorului şi valoarea
operandului iar rezultatul se depune în acumulator. Valoarea operandului nu este
alterată.
Operandul poate fi o intrare, o constantă, o memorie (marker) sau o ieşire de
tipul byte sau word.
Lucrări experimentale
1. Se vor realiza programele pentru exemplele prezentate anterior.
2. Se va realiza un program care va analiza intrările analogice: IAW4 şi IAW6
şi va genera ieşirea Q 0.0 dacă IAW4>IAW6, ieşirea Q0.1 dacă
IAW4=IAW6 şi ieşirea Q0.2 dacă IAW4<IAW6.
3. Se va compila programul şi se va transfera pe controlerul programabil.
4. Se va simula folosind simulatorul pentru intrări analogice.
5. Se va realiza acelaşi program dar utilizând intrările prescrise IAW0 şi IAW2.
6. Se va realiza un program care va memora numărul de acţionări a intrării I0.0
(trecere din 0 în 1) utilizând instrucţiuni aritmetice. Pentru memorare se va
utiliza markerul MW0.
7. Programul va fi compilat şi transferat pe controlerul programabil.
8. Se va vizualiza ON LINE conţinutul memoriei MW0, intrând in modul
TEST – F2 şi apoi STATUL DISPLAY IL F4.
130
LUCRAREA 4
Bloc funcţional TR
Sintaxa: apelare:
TR <Numărul blocului> - S (baza de timp)
Reprezentare:
TR7-S
[ ] S: start şi set
[ ] R: reset
[ ] STOP: întrerupere pentru timer
[W] I: setează valoarea temporizării
[ ] EQ: ieşirea temporizării
[W] Q: valoarea timpului rămas în unităţi ai bazei de timp
Baza de timp poate fi în ms (milisecunde) sau s (secunde).
Dacă intrarea „S” este 1, ieşirea „EQ” o urmează, întârziată de timpul „T”, unde:
T= (valoarea temporizării)*(baza de timp).
Modul în care lucrează această temporizare este prezentat în diagramele
următoare.
S
1
0 t
EQ
1
0 t
T
131
S
1
0 t
EQ
0 t
T
Bloc funcţional TF
Reprezentare:
TF7-ms-R
[ ] S: start şi set
[ ] R: reset
[ ] STOP: întrerupere pentru timer
[W] i: setează valoarea timpului
[ ] EQ: ieşirea de control
[W] Q: valoarea timpului rămas în ms
132
S
1
0u t
EQ
0 T t
Generator de impulsuri
Sintaxă:
TGEN<bloc nr.>
S: Start şi set
I: Perioada semnalului în ms (L KW 400, pentru 400ms)
P: Ieşirea pulsului
baza de timp este în milisecunde; nu necesită nici o specificaţie.
T
I va reprezenta perioada T a semnalului.
Lucrări experimentale
1. Se va implementa o temporizare la anclanşare având ieşirea la Q0.0 şi fiind
activată de I0.0
2. Se va simula programul şi se vor da diferite valori pentru temporizări.
133
3. Se va implementa o temporizare la revenire având ieşirea la Q0.2 şi fiind
activată de I0.2
4. Se va simula programul şi se vor da diferite valori pentru temporizări.
5. Se va simula programul şi se vor da diferite valori pentru temporizări. Se va
analiză efectul butonului de STOP – I0.1
6. Se va implementa un generator de impulsuri pe ieşirea Q0.3 având perioada
de 400ms. Setarea se va realiza prin intrarea I0.5.
7. Program pentru semnalizare avarie
Daca semnalul de avarie AV- I0.2 este 1 el va activa lampa de semnalizare E1-
Q0.1. Dacă durata acestui semnal este mai mare de 2s va intra în funcţiune
lampa cu funcţionare intermitentă E2 – Q0.2 (perioadă 400ms).
134
LUCRAREA 5
GRAFCET este o metodă de reprezentare de tip graf, care comportă două tipuri
de noduri: etape şi tranziţii.
Arcele fac legătura între etape şi tranziţii. Pot fi de la etape la tranziţii sau de la
tranziţii la etape.
O etapă poate să aibă două stări, adică să fie activă (reprezentată prin marcaj)
sau inactivă (figura 4.35). Etapa care trebuie să fie activă când sistemul este pus în
funcţiune se numeşte etapă iniţială.
1 - etapă inactivă
2 - etapă activă
.
0 - etapă iniţială
Ti Ri
Dacă sunt mai multe arce care sosesc sau pleacă de la aceeaşi tranziţie,
reprezentarea conţine şi o linie dublă.
135
a) joncţiune ŞI
Ti c) Ti Ri
Ri
b) Ti Ri distribuţie ŞI
joncţiune şi
distribuţie ŞI
Când două sau mai multe linii se conectează la aceeaşi etapă, se regrupează
(figura 4.38).
Ti Ti+1
i
i
Ti Ti+1
O tranziţie poate să nu aibă etape de intrare sau etape de ieşire. În primul caz
vom avea tranziţie sursă, iar în al doilea - tranziţie finală.
Ansamblul etapelor active la un moment dat, defineşte situaţia la acel moment.
O situaţie corespunde unei stări a sistemului. Evoluţia stării se va face prin efectuarea
tranziţiilor.
Acţiunile sunt reprezentate într-un dreptunghi asociat etapelor, acestea putând fi
executate când etapa respectivă este activă (figura 4.39).
i Acţiuni i
Ti Ri
1
a
0
i
1
b
0
Ti a 1
Xi
0
Xi 1
0
i+1
1 10 s
t/i+1/10 s 0
Ti+1 b 1 20 s
t/i+1/20 s 0
a) b)
- unde:
Xi reprezintă starea etapei i, iar Xi+1 reprezintă starea etapei i+1;
t/i+1/10s şi t/i+1/20s sunt variabile de temporizare raportate la etapa i+1;
a şi b - funcţii de receptivitate.
Acţiunile pot fi împărţite în două categorii: acţiuni de nivel impulsiv şi acţiuni de
nivel (pot fi condiţionate sau necondiţionate).
Acţiunile de nivel sunt definite numai pentru situaţii stabile.
137
Acţiunile impulsive au durată foarte scurtă şi realizează schimbarea unei
variabile sau contorizarea unei mărimi.
Pentru sistemul modelat, aceste acţiuni pot fi ieşiri. Funcţia de receptivitate
poate fi un eveniment extern sau un eveniment şi o condiţie.
Macroetape şi pseudo-macroetape
5
M30
ii Acţiuni i
Timpul de execuţie:
cu SET = RESET = 0: aproximativ 130 ms
cu RESET = 1: aproximativ 240 ms
cu SET = 1: aproximativ 250 ms
cu SINO invalid: aproximativ 150 ms
Reprezentarea va fi următoarea:
SK i - j
[ ] S: S activează funcţia de control secvenţial
[ ] R: R resetează funcţia de control secvenţial şi
activează programul de iniţializare
[b] SINO: SINO defineşte contorul numărului de etapă
[b] ERR: ERR indică starea de eroare
[b] SQNO: SQNO indică numărul etapei care se execută
[ ] TG: TG indică schimbarea numărul etapei de
executat
[$] INIT: INIT numele subprogramului de iniţializare
139
[$] AC1: AC1 numele etapei 1 (exemplu $START)
[$] AC2: AC2 numele etapei 2
[$] AC3: AC3 numele etapei 3
.
.
[$] ACj: ACj numele etapei j
Lucrări experimentale
140
doua se realizează ieşirea Q0.2. Din această etapă se poate trece în etapa
a treia dacă este activată intrarea I0.3. În etapa a treia se realizează ieşirea
Q0.3. Din această etapă se poate trece în prima etapă dacă este activată
intrarea I0.1. La activarea butonului de STOP-I0.0 se opreşte procesul.
2. Se va edita programul folosind funcţia de control secvenţial şi se va
compila.
3. Se va transfera programul, se va simula şi se va testa comportarea
acestuia la diverse combinaţii ale intrărilor.
141
LUCRAREA 6
Lucrări experimentale
1. Realizarea schemei Grafcet pentru procesul prezentat
142
Reprezentarea Grafcet a procesului
143
2. Realizarea programului pentru controlerul programabil cu ajutorul funcţiei
de control secvenţial plecând de la reprezentarea Grafcet a procesului.
00000 "
001 #include "luc.k42"
002 SK0 -9 Funcţie de control
secvenţial
003 [ ] S: 'START Pornire proces ciclic
004 [ ] R: 'STOP Oprire proces ciclic
005 [b] SINO:
006 [b] ERR:
007 [b] SQNO:
008 [ ] TG:
009 [$] INIT: $INI
010 [$] AC1: $E0
011 [$] AC2: $E1
012 [$] AC3: $E2
013 [$] AC4: $E3
014 [$] AC5: $E4
015 [$] AC6: $E5
016 [$] AC7: $E6
017 [$] AC8: $E7
018 [$] AC9: $E8
019 TGEN0 Funcţie generator de
semnal dreptunghiul
020 [ ] S: 'START Pornire proces ciclic
021 [w] I: KW 600
022 [ ] P: M 0.0 Semnal comutare etape
023 EP
00001 $INI "iniţializare
001 L KB 1
002 = SK0 SINO Funcţie de control
secvenţial
003 EM
00002 $E0 "Etapa 0
001 L 'START Pornire proces ciclic
002 A 'CP Condiţii de pornire
003 AN 'STOP Oprire proces ciclic
004 A 'N Semnal comutare etape
005 JCN END
006 L KB 2
007 = SK0 SINO Funcţie de control
secvenţial
00003 END "
001 EM
146
GN TGEN0 Funcţie generator de
semnal dreptunghiul
START I 0.0 Pornire proces ciclic
CP I 0.3 Condiţii de pornire
STOP I 0.5 Oprire proces ciclic
147
LUCRAREA 7
148
Figura 4.44 Maşină automată pentru dozare, ambalare şi etichetare
1 – dozator 1
2 – rolă antrenare ambalaj
3 – dozator 2
4 – folie ambalaj
5 – dispozitiv de măsurare a greutăţii
6 – paste făinoase ambalate
Pornirea maşinii se realizează prin acţionarea butonului de Start, iar oprirea prin
acţionarea butonului de Stop sau Avarie.
Lucrări experimentale
149
2. Se vor stabili numărul de intrări şi ieşiri necesare pentru controlul procesului.
3. Se va realiza fişierul de configurare specificând elementele hardware
utilizate. Pentru această aplicaţie se poate utiliza un modul master PS4 201
MM1 şi un modul slave LE 116-XD1.
150
PC
PS4 - 201-MM1 LE 116-XD1
Figura 4.45
3. Stabilirea valorii măsurate (greutatea)
Măsurarea greutăţii se realizează cu ajutorul unui traductor de greutate care
furnizează un semnal cuprins între 0 şi 10V proporţional cu greutatea măsurată.
Precizia măsurării este dată de cei 10 biţi pe care se realizează conversia intrării
analogice.
10v
Precizia de măsurare Pm = 10 = 9,76mV
2
Intrarea analogică IAW4 va fi în funcţie de valoarea greutăţii măsurate.
Greutăţii G2 (la care se închide dozatorul 2) îi va corespunde o valoare de 7V,
iar lui G1 o valoare de 8V.
Valoarea hexa corespunzătoare pentru G2 va fi:
210
7∗ = 717 = 2CDH
10
Valoarea hexa corespunzătoare pentru G1 va fi:
210
8∗ = 819 = 333H
10
4. Realizare fişier de referinţă. Fişierul de referinţă va cuprinde elementele din
tabloul următor.
151
PRIND Q 0.3 Prindere ambalaj
LIP Q 0.4 Lipire
TAI Q 0.5 Tăiere pungă
ETIC Q 0.6 Etichetare ambalaj
EVAC Q 0.7 Evacuare produs ambalat
M 0.0 Memorarea primului ciclu
T1 M 0.1 Ieşire temporizare prindere
T2 M 0.2 Ieşire temporizare lipire
CS SK0 Funcţie de control secvenţial
TP TR0 Temporizare prindere
TL TR1 Temporizare lipire
00001 $I "iniţializare
001 L KB 1
002 = SK0 SINO
003 EM
00002 $1 "
001 L K 1
002 = M 0.0 Memorare primul ciclu
003 L 'START Pornire instalaţie
004 A 'AP Ambalaj pregătit
005 AN 'STOP Oprire instalaţie
006 JCN END
007 L KB 2
008 = SK0 SINO
00003 END "
001 EM
00004 $2 "
001 L K 1
002 = 'AR Antrenare rola ambalaj
003 =N 'EVAC Evacuare produs
ambalat
004 L 'PO Poziţie oprire
005 AN 'STOP Oprire instalaţie
006 JCN END
007 L 'AP Ambalaj pregătit
008 JC ET1
009 L M 0.0 Memorare primul ciclu
010 JCN END
011 L KB 5
012 = SK0 SINO
013 JP END
00005 ET1 "
001 L KB 3
002 = SK0 SINO
00006 END "
001 EM
00007 $3 "
001 L K 1
002 = 'D1 Deschidere dozator 1
003 = 'D2 Deschidere dozator 2
004 L 'MG Măsura greutate
005 CP KHW 2CD
006 BLT END
007 L KB 4
008 = SK0 SINO
00008 END "
001 EM
00009 $4 "
153
001 L K 0
002 = 'D2 Deschidere dozator 2
003 L 'MG Măsura greutate
004 CP KHW 333
005 BLT END
006 L KB 5
007 = SK0 SINO
00010 END "
001 EM
00011 $5 "
001 L K 0
002 = 'D1 Deschidere dozator 1
003 =N 'PRIND Prindere ambalaj
004 L M 0.1 Ieşire temporizare
prindere
005 AN 'STOP Oprire instalaţie
006 JCN END
007 L KB 6
008 = SK0 SINO
00012 END "
001 EM
00013 $6 "
001 L K 1
002 =N 'PRIND Prindere ambalaj
003 = 'LIP Lipire
004 L M 0.2 Ieşire temporizare
lipire
005 AN 'STOP Oprire instalaţie
006 JCN END
007 L KB 7
008 = SK0 SINO
00014 END "
001 EM
00015 $7 "etichetare
001 L K 1
002 =N 'LIP Lipire
003 = 'ETIC Etichetare ambalaj
004 L 'PET Poziţie etichetare
005 AN 'STOP Oprire instalaţie
006 JCN END
007 L KB 8
008 = SK0 SINO
00016 END "
001 EM
00017 $8 "
001 L K 1
002 =N 'ETIC Etichetare ambalaj
003 = 'TAI Taiere punga
004 L 'CTAI Confirmare taiere
005 AN 'STOP Oprire instalaţie
006 JCN END
007 L KB 9
008 = SK0 SINO
00018 END "
154
001 EM
00019 $9 "
001 L K 1
002 =N 'TAI Taiere punga
003 = 'EVAC Evacuare produs ambalat
004 L 'CEVAC Confirmare evacuare
005 AN 'STOP Oprire instalaţie
006 JCN END
007 L KB 2
008 = SK0 SINO
00020 END "
001 EM
155
LUCRAREA 8
Contactele
a) b)
Fig.1 Contacte: a) n.d., b) n.î. (două
i t )
În cadrul unui program LD, contactele pot fi asociate intrărilor AP, ieşirilor PLC sau
unor variabile interne. La intrări pot fi conectate dispozitive care au două stări de
funcţionare cum ar fi contactele auxiliare ale contactoarelor şi releelor, contactele n.î. sau
n.d. ale butoanelor de comandă, limitatoarelor de cursă, detectoarelor de mărimi fizice,
elementelor de protecţie, ieşirile digitale ale unor aparate de măsură, protecţie sau
comandă, ieşirile digitale ale altor PLC sau sisteme de comandă etc.
Pe lângă contactele obişnuite, unii producători pun la dispoziţia programatorilor şi
alte elemente de programare corespunzătoare intrărilor AP, întâlnite, îndeosebi, în cazul
circuitele numerice, cum ar fi intrări cu memorie (latch), intrări active pe frontul crescător
sau active pe frontul descrescător.
Bobinele
Bobinele sunt elemente de programare care modelează funcţionarea bobinele
contactoarelor şi releelor electromagnetice. Ca şi în cazul bobinelor din schemele electrice,
bobinele din programele LD pot avea două stări: alimentate sau nealimentate. Ele pot fi
156
asociate ieşirilor automatului dar şi unor variabile interne modelând astfel releele auxiliare
din cadrul schemelor electrice cu contacte.
Fiecare ieşire este de asemenea identificată în mod unic, modul de identificare
diferind de la un producător la altul. Fiecărei ieşiri i se asociază o singură bobină şi unul
sau mai multe contacte ce pot fi utilizate în schemă în mod asemănător contactelor
auxiliare ale contactoarelor şi releelor.
La aceste ieşiri pot fi conectate dispozitive care au două stări de funcţionare cum ar fi
bobinele contactoarelor sau releelor, elemente de semnalizare acustică sau luminoasă,
sarcini de putere mică, intrările digitale ale unor aparate de măsură, protecţie sau comandă,
intrările digitale ale altor PLC sau sisteme de comandă etc.
În Fig.2 sunt date simbolurile folosite pentru reprezentarea bobinelor. Având în
vedere că bobinele sunt asociate ieşirilor şi că acestea pot fi negate, putem întâlni ca
element de programare în limbajul LD, bobina negată (Fig.2b). Într-un automat, fiecare
ieşire este identificată în mod unic, identificarea fiind diferită de la producător la
producător. Fiecărei ieşiri i se asociază unul sau mai multe contacte având acelaşi
identificator şi care pot fi folosite în diagrama LD.
OUT 001 OUT 002 OUT 003
a) b)
Fig.2 Bobine: a) normală (două variante), b)
ă
Temporizatoarele
Temporizatoarele sunt elemente de programare care modelează funcţionarea releelor
de timp şi a contactelor temporizate. Ele sunt utilizate pentru a realiza acţiuni întârziate sau
ce durează un anumit interval de timp. Producătorii de PLC furnizează atât funcţii
elementare de temporizare cât şi funcţii mai complexe. În acest fel, temporizatoarele
utilizate în programele LD au o flexibilitate şi o funcţionalitate mult mai mare decât
temporizatoarele utilizate în schemele electrice.
Temporizatoarele simple permit realizarea unei acţiuni întârziate cu un anumit
interval de timp ce poate fi programat. Funcţiile de temporizare mai complexe au în vedere
obţinerea unor temporizări variabile, funcţie de anumite condiţii care apar la un moment
dat.
În cadrul programelor LD, un temporizator are o structură de tipul celei din Fig.3.
Ieşire
Validare
Nr. temporizator
Baza de timp
Iniţializare Valoarea
prestabilită
157
Fiecare temporizator din schemă este identificat în mod unic, modul de identificare
fiind diferit de la un producător la altul.
Materializarea temporizatoarelor în PLC se realizează utilizând circuite numărătoare.
Ca urmare, indicarea temporizării se va face precizând numărul de incremente de timp pe
care temporizato rul îl va număra (valoarea prestabilită) şi durata unui increment (baza de
timp). În cazul în care implementarea limbajului permite utilizarea unor baze de timp
diferite pentru temporizatoare diferite, trebuie precizat pentru fiecare temporizator această
bază de timp. Valorile uzuale pe care le poate avea baza de timp sunt 0,01s; 0,1s sau 1s.
În cazul în care baza de timp este aceeaşi pentru toate temporizatoarele, precizată în
manualul de programare a AP, aceasta este omisă. Ca urmare, valoarea prestabilită poate fi
exprimată în unităţi de timp (s).
Temporizatoarele au cel puţin o intrare de iniţializare, la activarea căreia începe
temporizarea şi o ieşire. În unele variante, acestea sunt prevăzute şi cu o intrare de validare
şi încă o ieşire care reprezintă negata primei ieşiri.
Numărătoarele
Numărătoarele sunt elemente de programare care poate primi o serie de impulsuri
care sunt analizate în cadrul programului LD pentru a detecta numărul de apariţii ale unor
evenimente cum ar fi: numărul de paşi efectuaţi de un motor pas cu pas, numărul de
conectări-deconectări ale unui aparat. Numărul acestor evenimente poate fi comparat cu
anumite valori prestabilite şi în funcţie de rezultatul acestor comparaţii pot fi luate anumite
decizii şi date comenzile corespunzătoare.
Există mai multe tipuri de numărătoare, printre cele mai uzuale fiind: numărătoarele
unidirecţionale, crescătoare sau descrescătoare şi numărătoarele bidirecţionale care pot
număra atât descrescător cât şi crescător.
În cadrul programelor LD, un numărător are o structură de tipul celei din Fig.4.
Ieşire
Numărare
Nr. numărător
Ieşire negată
Iniţializare Valoare
prestabilită
158
Blocurile funcţionale
Pentru materializarea unor funcţii mai complexe menite să uşureze scrierea
programelor în limbaj LD sunt utilizate blocuri funcţionale. Aceste blocuri modelează
diverse categorii de funcţii dintre care cele mai utilizate sunt următoarele: funcţii de
încărcare a unor constante numerice, funcţii aritmetice, funcţii logice pe 8 sau 16 biţi,
funcţii de conversie a informaţiei din diferite formate (binar, BCD, Gray etc), funcţii de
tratare a întreruperilor, funcţii pentru detectarea fronturilor crescătoare sau descrescătoare a
semnalelor, funcţii pentru realizarea controlerelor şi secvenţiatoarelor, funcţii pentru
actualizarea rapidă a intrărilor şi ieşirilor, funcţii pentru comanda numărătoarelor de mare
viteză.
De obicei, formatul şi modul de funcţionare a blocurilor funcţionale diferă de la un
automat la altul, fiind specific fiecărui producător în parte. Prin intermediul standardului
IEC 61131-3 şi a altor iniţiative recente se caută standardizarea unor astfel de blocuri astfel
încât ele să aibă nu numai aceeaşi interfaţă dar şi acelaşi comportament, diferenţa fiind
dată numai de modul în care acestea sunt materializate pentru fiecare automat în parte.
Standardul are drept scop şi asigurarea că aceste blocuri funcţionale pot fi utilizate,
folosind aceeaşi interfaţă în oricare alt limbaj din cele 4 adoptate.
.
Pentru crearea unui fişier nou se execută comanda File->New şi se va deschide
fereastra PLC type settings cu ajutorul căreaia se stabileşte tipul de PLC. Se va selecta
FX2N ca în figura următoare.
Figura
Introducerea contactelor
160
Fig Elementele ferestrei de editare a programului de aplicaţiei în mediul de
programare MELSEC-MEDOC FX/WIN
Acesta poate indica o intrare (X000, X001 ... X005), o ieşire (Y000...Y003), un
element de temporizare (T000...T00n), element auxiliar (M000...M00n), elemente ale
blocurilor funcţionale.
161
Fereastra Device details
Introducerea bobinelor
Pentru introducerea bobinelor se utilizează butonul corespunzător sau tasta
funcţională F7. Ca şi în cazul contactelor va apare fereastra de dialog Input device în care
trebuie precizat indicatorul bobinei (Y000...Y003).
Introducerea temporizatoarelor
Pentru introducerea temporizatoarelor se utilizează acelaşi buton şi aceeaşi tastă
funcţinală utilizată pentru bobine. În fereastra de dialog Input device, pe lângă indicatorul
temporizatorului (T000...T00n) trebuie indicată şi valoarea temporizării sub forma Km,
unde m este valoarea temporizării în milisecunde.
Introducerea numărătoarelor
Pentru introducerea numărătoarelor (contoarelor) se utilizează acelaşi buton şi
aceeaşi tastă funcţinală utilizată pentru bobine. În fereastra de dialog Input device, pe
lângă indicatorul numărătorului (C000...C00n) trebuie indicată şi valoarea numărătorului
pentru care bobina este activată sub forma Km.
Introducerea funcţiilor speciale
Pentru introducerea funcţiilor speciale se utilizează butonul corespunzător sau tasta
funcţională F8. Ca urmare apare fereastra de dialog Input instruction (Fig. 10) unde
trebuie introduse mnemonicul funcţiei precum şi parametrii acestora. Fiecare instrucţiune
are lista ei proprie de parametri acestea fiind date în manualul de programare a familiei
Mitsubishi FX de PLC.
162
Pentru a putea fi transferat în memoria PLC, programul de aplicaţie scris folosind
limbajul LD trebuie convertit în formatul recunoscut de PLC. Pentru aceasta se execută
comanda Tools -> Convert.
Programul poate fi verificat dacă este corect executând comanda Option ->
Program check. În acest caz va apare dialogul următor.
Salvarea programului
Programul de aplicaţie poate fi salvat folosind comanda File -> Save as. Numele
fişierului trebuie sa respecte convenţia de nume pentru fişierele sistemului de operare MS-
DOS.
Transferul programului
Pentru transferul programului pe PLC se va selecta PLC -: Transfers şi apoi Write.
Lucrări experimentale
1. Se va instala şi lansa programul MELSECMEDOC FX/WIN.
2. Se vor scrie programele pe baza diagramelor LD pentru PLC pentru următoarele
aplicaţii:
• Y000=X001*X003 + X002*X004 + X005
• Partea de pornire/ oprire a unei instalaţii dacă există condiţii de pornire.
START – X000
STOP - X001
COPO – X005
INSTF – Y002
INSTF=(START* COPO+INSTF)*STOP
• Program pentru semnalizare avarie
163
• Daca semnalul de avarie AV este 1 el va activa lampa de semnalizare
E1. Dacă durata acestui semnal este mai mare de 2s va intra în
funcţiune hupa (H) şi va iniţia secvenţa de avarie (SAV).
Intrări
AV-X000
START – X001
STOP- X002
Ieşiri
E1- Y000
H-Y001
SAV-Y002
3. Se vor verifica programele şi se vor transfera pe PLC.
4. Se vor simula programele şi se vor nota observaţiile.
164
LUCRAREA 9
5.9.1 Caracteristici
167
Pentru a realiza un program trebuie să creăm un fişier nou selectând din meniul
File – New , ce va deschide o fereastră de dialog Functional Level Management în care
vom selecta Automatic şi nelul dorit după care dăm Ok. Ca urmare se va deschide
următoarea fereastră de lucru.
168
Programul poate fi editat în mai multe feluri (liste de instrucţiuni, diagrame
Ladder sau blocuri funcţionale). Selectarea modului de lucru se poate face accesând
meniul contextual Program.
169
După scriere programul se poate vizualiza erorile analizând programul (Analyze
program). Conectarea la controler se poate realiza din meniul PLC sau făcând clic pe
iconul , bineînţeles dacă există cablul TSX PCX 1031 conectat între PLC şi portul
serial al calculatorului.
Tot din meniul PLC se poate lansa în execuţie selectând RUN.
Lucrări experimentale
170
LUCRAREA 10
Element
Operator grafic Operaţie efectuată
corespondent
LD În acumulator se încarcă valoarea operandului
În acumulator se încarcă valoarea negată a
LDN
operandului
În acumulator se încarcă valoarea 1, atunci
LDR când este detectată o variaţie pe front crescător
a operandului
171
În acumulator se încarcă valoarea 1, atunci
LDF când este detectată o variaţie pe front
descrescător a operandului
În acumulator se încarcă rezultatul operaţiei
AND logice ŞI, dintre valoarea precedentă a
acumulatorului şi valoarea operandului
În acumulator se încarcă rezultatul operaţiei
ANDN logice ŞI, dintre valoarea precedentă a
acumulatorului şi valoarea negată a operandului
În acumulator se încarcă rezultatul operaţiei
logice ŞI, dintre valoarea precedentă a
ANDR
acumulatorului şi valoarea detecţiei frontului
crescător al operandului
În acumulator se încarcă rezultatul operaţiei
logice ŞI, dintre valoarea precedentă a
ANDF
acumulatorului şi valoarea detecţiei frontului
descrescător al operandului
În acumulator se încarcă rezultatul operaţiei
OR logice SAU, dintre valoarea precedentă a
acumulatorului şi valoarea operandului
XOR,
XORN,
SAU exclusiv
XORR,
XORF
MPS
MRD Comutare între bobine
MPP
N - Negaţie (NOT)
ST Operandul asociat ia valoarea din acumulator
Operandul asociat ia valoarea negată din
STN
acumulator
Operandul asociat este setat pe 1, atunci când
S
valoarea din acumulator este 1.
Operandul asociat este setat pe 0, atunci când
R
valoarea din acumulator este 1.
Se realizează un salt la o secvenţă având
JMP
eticheta specificată.
SRn Se realizează un salt la începutul unui
172
subprogram.
RET Revenire dintr-un subprogram.
END Sfârşit de program.
Sfârşit de program condiţionat cu un rezultat
ENDC
logic 1.
Sfârşit de program condiţionat cu un rezultat
ENDCN
logic 0.
Lucrări experimentale
173
LUCRAREA 11
Intrarea RUN/STOP
Constituie o funcţie specială putând fi afectată la toate intrările ale controlerului.
La pornire, dacă această funcţie este configurată, starea controlerului este
definită prin intrarea RUN/STOP.
Dacă intrarea RUN/STOP este în starea 0, controlerul este în mod STOP.
Dacă intrarea RUN/STOP este în starea 1, controlerul este în mod RUN.
În timpul pornirii controlerului, frontul crescător al stării intrării RUN/STOP
comută controlerul pe RUN.
Controlerul se opreşte dacă intrarea RUN/STOP este trecută pe 0. Dacă intrarea
RUN/STOP este pe 0, o comandă RUN dată de un PC conectat va fi ignorată de
controler.
174
Ieşirea de stare a controlerului
Ieşirea de stare a controlerului este o funcţie specială, care poate fi atribuită
uneia din ieşirile %Q0.0.1 şi %Q0.0.3. La pornire, dacă n-a fost detectată nici o eroare,
ieşirea de stare a controlerului trece în 1. Această funcţie poate fi utilizată în circuitele
de securitate externe, pentru control (Ex., pentru controlul alimentării controlerului).
Figura 4.50
175
Funcţionarea temporizatorului TOF
Faza Descriere
Valoarea curentă %TMi.V ia valoarea 0 pe un front crescător în intrarea
1
IN, chiar dacă temporizarea este în curs de desfăşurare.
Bitul de ieşire %TMi.Q trece în 1, atunci când un front crescător este
2
detectat la intrarea IN.
3 Temporizarea este demarată pe un front descrescător al intrării IN.
Valoarea curentă %TMi.V creşte până la %TMi.P, prin incrementarea cu o
4
unitate la fiecare pulsaţie a bazei de timp TB.
Bitul de ieşire %TMi.Q este resetat la 0 atunci când valoarea curentă atinge
5
valoarea dată de %TMi.P.
Faza Descriere
1 Temporizatorul porneşte pe un front crescător al intrării IN.
Valoarea curentă %TMi.V creşte până la %TMi.P, prin incrementarea cu o
2
unitate la fiecare pulsaţie a bazei de timp TB.
Bitul de ieşire %TMi.Q trece în 1, atunci când valoarea curentă atinge
3
valoarea %TMi.P.
176
Bitul de ieşire %TMi.Q păstrează valoarea 1, cât timp valoarea de intrării
4
IN este 1.
Atunci când un front descrescător este detectat la intrarea IN,
5 temporizatorul se opreşte, chiar dacă el nu a atins valoarea %TMi.P şi
%TMi.V este setat pe 0.
Lucrări experimentale
1. Se va seta intrarea I.03 ca fiind intrare de RUN.
2. Se va implementa o temporizare la anclanşare având ieşirea la %Q0.0 şi
fiind activată de %I0.0
3. Se va simula programul şi se vor da diferite valori pentru temporizări.
4. Se va implementa o temporizare la revenire având ieşirea la %Q0.2 şi fiind
activată de %I0.2
5. Se va simula programul şi se vor da diferite valori pentru temporizări.
6. Se va simula programul şi se vor da diferite valori pentru temporizări.
7. Program pentru semnalizare avarie
Daca semnalul de avarie AV- %I0.0 este 1 el va activa lampa de semnalizare
E1- %Q0.1. Dacă durata acestui semnal este mai mare de 2s va intra în
funcţiune semnalizarea de avarie E2 – %Q0.2 (perioadă 400ms).
177
LUCRAREA 12
Exemple Grafcet
Secvenţă liniară
178
Secvenţe simultane
Secvenţă divergentă
179
Structura unui program Grafcet
Un program TwidoSoft Grafcet se derulează în trei faze:
− Prelucrarea anterioară;
− Prelucrarea secvenţială;
− Prelucrarea posterioară.
Prelucrarea anterioară presupune administrarea următoarelor situaţii:
− reluări de alimentare;
− defectări;
− schimbări în modul de funcţionare;
− pre-poziţionarea etapelor Grafcet;
− logică de intrare.
Frontul crescător al intrării %I0.6 setează pe 1 bitul %S21.
Prelucrarea secvenţială
Prelucrarea secvenţială este executată pe baza unui graf având următoarele
elemente caracteristice:
− Etape
− Acţiuni asociate etapelor
− Tranziţii
− Condiţii de efectuare a tranziţiilor.
Exemple
181
Acţiuni asociate etapelor Grafcet
Un program Grafcet TwidoSoft oferă două moduri de programare a acţiunilor
asociate etapelor:
− în secţiunea de prelucrare posterioară;
− în lista de instrucţiuni.
Asocierea acţiunilor în prelucrarea posterioară
Este preferabil să se programeze acţiunile în secţiunea de prelucrare posterioară
a unei aplicaţii Grafcet. Se pot utiliza instrucţiunile în limbaj listă, de instrucţiuni SET şi
RESET sau programul schemă de contacte pentru lansarea etapelor Grafcet (%Xi)
Exemplu
182
Desfăşurarea lucrării
Lucrări experimentale
184
A3 Acţiuni etapa 3
A4 Acţiuni etapa 4
A5 Acţiuni etapa 6
A7 Acţiuni etapa 7
A8 Acţiuni etapa 8
N Semnal comutare etape
START Pornire proces ciclic
CP Condiţii de pornire
STOP Oprire proces ciclic
185
LUCRAREA 13
Pornirea maşinii se realizează prin acţionarea butonului de Start, iar oprirea prin
acţionarea butonului de Stop sau Avarie.
Lucrări experimentale
186
Se va configura fişierul creat specificând elementele hardware utilizate.
În varianta în care se utilizează controlere TWIDO ale firmei Schnaider, prolema
de automatizare poate fi rezolvată utilizând un modul master TWDLMDA20DRT şi un
modul slave de intrări ieşiri analogice, TWDAMM3HT.
=*= 1
LD %I0.0.1
AND %I0.0.10
AND %I0.0.11
#2
=*= 2
LD %I0.0.3
AND %I0.0.11
#3
LD %I0.0.3
ANDN %I0.0.11
AND %M0
ANDN %I0.0.9
#5
=*= 3
188
LD [ %IW0.1.0 >= 2867 ]
#4
=*= 4
LD [ %IW0.1.0 >= 3277 ]
#5
=*= 5
LD %TM0.Q
ANDN %I0.0.9
#6
=*= 6
LD %TM1.Q
ANDN %I0.0.9
#7
=*= 7
LD %I0.0.7
#8
=*= 8
LD %I0.0.4
AND %I0.0.6
ANDN %I0.0.9
#9
=*= 9
LD %I0.0.5
AND %I0.0.9
#2
LD %X1
ST %M0
LD %X2
ST %Q0.0.0
LD %X3
ST %Q0.0.1
ST %Q0.0.2
LD %X4
ST %Q0.0.2
LD %X5
ST %Q0.0.3
IN %TM0
LD %X6
ST %Q0.0.4
IN %TM1
189
LD %X7
ST %Q0.0.6
LD %X8
ST %Q0.0.5
LD %X9
ST %Q0.0.7
END
190
6 BIBLIOGRAFIE
191
CUPRINS
1 INTRODUCERE ............................................................................... 3
1.1 Procese tehnologice.................................................................................................................4
193
4.12.3 Prelucrarea secvenţială .................................................................................................85
4.12.4 Acţiuni asociate etapelor Grafcet..................................................................................86
4.12.5 Descrierea instrucţiunilor şi funcţiilor ..........................................................................86
4.12.6 Blocuri funcţionale standard.........................................................................................87
4.12.7 Programarea reversibilă ................................................................................................88
4.12.8 Blocul funcţional temporizator (%TMi) .......................................................................90
4.12.9 Programarea şi configurarea temporizărilor .................................................................93
4.12.10 Funcţia PWM..............................................................................................................99
5.6 Realizarea programului pentru automatizarea unui proces ciclic secvenţial ...............142
194
Acţiuni asociate etapelor Grafcet...........................................................................................182
Desfăşurarea lucrării..............................................................................................................183
Lucrarea îşi propune realizarea unui program pentru controlerul Twido ce permite
automatizarea următorului proces ciclic secvenţial .............................................................................183
6 BIBLIOGRAFIE............................................................................ 191
CUPRINS............................................................................................. 192
195