Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Limbajul de programare de tip "Scheme cu contacte" (LD)

tehnica mecanica



Limbajul de programare de tip "Scheme cu contacte" (LD)

Originile limbajului LD

Limbajul bazat pe scheme cu contacte



- Ladder Diagram (LD) - provine de la reprezentarea grafica folosita pentru schemele electrice de comanda

- Comenzile erau realizate cu ajutorul releelor

Limbajul LD a fost dezvoltat pentru a usura crearea programelor si mentinerea facila a acestora

- reprezentari realizate cu calculatorul bazate pe reprezentarea grafica a schemelor cu contacte care erau usor de înteles

- se reduc costurile de învatare a limbajului si de suport tehnic

Scrierea programului în LD

Scrierea unui program în limbajul LD presupune desenarea unei diagrame (diagrama LD) similare unei scheme electrice cu contacte.

Elementele componente ale diagramei LD modeleaza functionarea elementelor unei scheme cu contacte.

Interpretarea functionarii diagramei LD este similara interpretarii schemelor electrice cu contacte.

Elementele de baza utilizate pentru scrierea unui program în limbaj LD sunt:

- contactele,- bobinele,- temporizatoarele,- numaratoarele si- blocurile functionale (functiile).

Contactele

Contactele sunt elemente de programare care modeleaza contactele aparatelor electrice de comutatie.

Ca si în cazul acestora din urma, contactele pot fi de tip n.d. (a) si n.i. (b).

În cadrul unui program LD, contactele pot fi asociate intrarilor AP, iesirilor AP sau unor variabile interne.

La intrari pot fi conectate dispozitive care au doua stari de functionare cum ar fi:

- contactele auxiliare ale contactoarelor si releelor,

- contactele n.î. sau n.d. ale butoanelor de comanda,

- contactele n.î. sau n.d. ale limitatoarelor de cursa,

- contactele n.î. sau n.d. ale detectoarelor de marimi fizice,

- contactele n.î. sau n.d. ale elementelor de protectie,

- iesirile digitale ale unor aparate de masura, protectie sau comanda,

- iesirile digitale ale altor AP sau sisteme de comanda etc.

Pe lânga contactele obisnuite, unii producatori pun la dispozitia programatorilor si alte elemente de programare corespunzatoare intrarilor AP, întâlnite, îndeosebi, în cazul circuitele numerice, cum ar fi:

intrari cu memorie (latch),

intrari active pe frontul crescator

intrari active pe frontul descrescator.


Bobinele

Bobinele sunt elemente de programare care

modeleaza functionarea bobinele contactoarelor si

releelor electromagnetice.

􀁺 Ca si în cazul bobinelor din schemele electrice,

bobinele din programele LD pot avea doua stari:

alimentate sau nealimentate.

a) b)

OUT 001 OUT 002 OUT 003

Bobinele

Ele pot fi asociate iesirilor automatului dar si unor variabile interne modelând astfel releele auxiliare din cadrul schemelor electrice cu contacte. Bobinele sunt elemente de programare care modeleaza functionarea bobinele contactoarelor si releelor electromagnetice.

􀁺 Ca si în cazul bobinelor din schemele electrice, bobinele din programele LD pot avea doua stari: alimentate sau nealimentate.

􀁺 Ele pot fi asociate iesirilor automatului dar si unor variabile interne modelând astfel releele auxiliare din cadrul schemelor electrice cu contacte.

Fiecare iesire este de identificata în mod unic, modul de identificare diferind de la un producator la altul.

Fiecarei iesiri i se asociaza o singura bobina si unul sau mai multe contacte ce pot fi utilizate în schema în mod asemanator contactelor auxiliare ale contactoarelor si releelor.

La aceste iesiri pot fi conectate dispozitive care au doua stari de functionare cum ar fi:

- bobinele contactoarelor sau releelor,

- elemente de semnalizare acustica sau luminoasa,

- sarcini de putere mica,

- intrarile digitale ale unor aparate de masura, protectie sau comanda,

- intrarile digitale ale altor AP sau sisteme de comanda etc.

Temporizatoarele

Temporizatoarele sunt elemente de programare care modeleaza functionarea releelor de timp si a contactelor temporizate.

Sunt utilizate pentru a realiza actiuni întârziate sau ce dureaza un anumit interval de timp.

Producatorii de AP furnizeaza atât functii elementare de temporizare cât si functii mai complexe.

Temporizatoarele utilizate în programele LD au o flexibilitate si o functionalitate mult mai mare decât temporizatoarele utilizate în schemele electrice.

Temporizatoarele simple permit realizarea unei actiuni întârziate cu un anumit interval de timp ce poate fi programat.

Temporizatoarele complexe au în vedere obtinerea unor temporizari variabile, functie de anumite conditii care apar la un moment dat.

Fiecare temporizator din schema este identificat în mod unic, modul de identificare fiind diferit de la un producator la altul.

În cazul în care baza de timp este aceeasi pentru toate temporizatoarele, precizata în manualul de programare a AP, aceasta este omisa.

Valoarea prestabilita poate fi exprimata în unitati de timp (s).

Temporizatoarele au cel putin o intrare de initializare, la activarea careia începe temporizarea si o iesire.

În unele variante, temporizatoarele sunt prevazute si cu o intrare de validare si înca o iesire care reprezinta negata primei iesiri.

Numaratoarele

Numaratoarele sunt elemente de programare care poate primi o serie de impulsuri care sunt analizate în cadrul programului LD pentru a detecta numarul de aparitii ale unor evenimente cum ar fi:

- numarul de pasi efectuati de un motor pas cu pas,

- numarul de conectari-deconectari ale unui aparat.

- numarul de sticle care au fost umplute într-o statie de îmbuteliere, etc.

Numarul de evenimente poate fi comparat cu anumite valori prestabilite si în functie de rezultatul acestor comparatii pot fi luate anumite decizii si date comenzile corespunzatoare.

Exista mai multe tipuri de numaratoare, printre cele mai uzuale fiind:

- numaratoarele unidirectionale crescatoare

- numaratoarele unidirectionale descrescatoare si

- numaratoarele bidirectionale care pot numara atât descrescator cât si crescator.

Fiecare numarator din schema este identificat în mod unic, modul de identificare fiind diferit de la un producator la altul.

Pentru fiecare numarator se precizeaza valoarea prestabilita, aceasta reprezentând valoarea maxima pe care o va numara numaratorul dupa care va activa iesirea.

Numaratorul are cel putin doua intrari, una de numarare si una de initializare (la activarea acesteia numaratorul începe sa numere impulsurile sosite la intrarea de numarare) si o iesire.

Alte variante de numaratoare sunt prevazute si cu o intrare de validare si o iesire care reprezinta negata primei iesiri.




Blocurile functionale

Pentru materializarea unor functii mai complexe menite sa usureze scrierea programelor în limbaj LD sunt utilizate blocurile functionale (BF).

BF modeleaza diverse categorii de functii cele mai utilizate fiind:

- functii de încarcare a unor constante numerice,

- functii aritmetice,

- functii logice pe 8 sau 16 biti,

- functii de conversie a informatiei din diferite formate (binar, BCD, Gray etc),

- functii de tratare a întreruperilor,

- functii pentru detectarea fronturilor crescatoare sau descrescatoare a semnalelor,

- functii pentru realizarea controlerelor si secventiatoarelor,

- functii pentru actualizarea rapida a intrarilor si iesirilor,

- functii pentru comanda numaratoarelor de mare viteza.

Formatul si modul de functionare a blocurilor functionale difera de la un automat la altul, fiind specific fiecarui producator în parte.

Restrictii în scrierea programelor orientate pe scheme de contacte

Atunci când se realizeaza scrierea unui program LD pentru un automat programabil

concret, trebuie sa se tina seama de limitarile pe care pachetul de programe le poate avea:

- limitari privitoare la formatul diagramei LD

- limitari legate de modul de executie a programului

Limitari privitoare la formatul diagramei LD

Limitarile tin de:

- proprietatile intrinseci ale limbajului;

- implementarile specifice ale diferitelor pachete de programe comerciale

Sunt datorate solutiilor tehnice adoptate de firmele producatoare pentru implementarea

diverselor elemente ale limbajului.

O parte a acestor limitari sunt prezentate în continuare:

- o bobina trebuie sa fie alimentata întotdeauna prin intermediul unui contact;

- bobina trebuie sa fie introdusa întotdeauna la capatul din dreapta al liniei;

- toate contactele trebuie sa fie pe directie orizontala;

- numarul contactelor pe o linie de alimentare a unei bobine este limitat prin program;

- un grup de contacte poate alimenta o singura bobina;

- realizarea buclelor poate fi realizata într-un singur mod sau poate sa nu fie permisa;

- sensul curentului prin circuit este de la stânga la dreapta diagramei.

De obicei manualele de utilizare ale programelor contin toate informatiile necesare pentru ca utilizatorul sa poata scrie programul în formatul acceptat de AP.

Limitari legate de modul de executie a programului

Functionarea AP se bazeaza pe executia repetata a programului pe care îl are înscris în memorie.

Fiecare ciclu de executie a programului cuprinde 3 etape separate:

- citirea intrarilor

- executia instructiunilor din program

- actualizarea iesirilor

Durata unui astfel de ciclu depinde atât de viteza procesorului cu care este dotat AP, cât si de lungimea programului utilizatorului.

Etapa de citire a intrarilor, se citesc starile terminalelor de intrare în AP si conform acestora se înscrie informatia în tabelul intrarilor.

Etapa de executie a instructiunilor din program, valorile intrarilor sunt folosite pentru executia instructiunilor, rezultatul acestora fiind înscrise în tabela iesirilor.

Etapa de actualizare a iesirilor consta în transferarea informatiei din tabela iesirilor catre terminalele de iesire a automatului.

Cele trei etape amintite mai sus se executa separat, modificarea semnalelor de la intrarile AP în etapa a doua nu are efect asupra valorilor intrarilor folosite pentru executia instructiunilor. Ele vor fi folosite doar dupa ce vor fi citite în urmatoarea etapa de citire a intrarilor.

Daca în etapa a doua, în urma executiei uneia sau mai multor instructiuni se modifica valoarea unei iesiri în tabela de iesiri, aceasta modificare nu va apare efectiv la terminalul de iesire corespunzator, decât în etapa a treia. Atunci se realizeaza actualizarea iesirilor pe baza tabelei iesirilor calculata în etapa de executie a instructiunilor care a precedat-o.

În scrierea unui program în limbajul LD trebuie avute în vedere si modul în care este interpretat programul scris.






Interpretarea programelor LD

Exista doua moduri de interpretare a unui program LD:

- citirea se face pe linie - se citesc contactele pe linie, de la stânga la dreapta, linie cu linie, începând cu prima linie si terminând cu ultima;

- citirea se face pe coloana - se citesc contactele pe coloana, câte unul, de sus pâna jos, coloana cu coloana, începând cu prima coloana din stânga si terminând cu ultima din dreapta.

În ambele situatii trebuie sa se aiba în vedere diferenta fata de schemele de comanda cu relee:

- Relee: O modificare în starea unui contact din circuitul de alimentare a bobinei unui contactor poate duce la modificarea imediata a starii acesteia indiferent daca mai exista sau nu alte elemente legate în serie sau paralel cu acel contact.

- Program LD: starea bobinei nu va fi modificata decât dupa ce se va citi starea tuturor elementelor prin care aceasta este alimentata.

Datorita vitezei mari de executie a procesorului, acest lucru nu pune în general nici o problema. Ea trebuie considerata în cazurilor unor aplicatii critice unde ar putea sa apara o functionare diferita de cea dorita.


Interpretarea programului LD - Citirea pe linie








Interpretarea programului LD - Citirea pe coloana

Limbajul LD în standardul IEC 61131-3

Prin introducerea acestui limbaj în standardul IEC 61131-3 s-a cautat uniformizarea unui întreg set de limbaje care se proclamau a fi de tip scheme cu contacte.

Executia programului

Liniile programului sunt evaluate de la stânga la dreapta si de sus în jos

Ramificatiile din cadrul unei linii sunt evaluate de la stânga sus la dreapta jos

Bobine fara memorie

Bitul corespunzator elementului este pus în 0 când tensiunea de alimentare este oprita

- Bobina -( )-

Pune bitul în 1 când linia este evaluata la 1 logic si pus în 0 când linia este evaluata la 0 logic

- Bobina negata -( / )-

Pune bitul în 0 când linia este evaluata la 1 logic si pus în 1 când linia este evaluata la 0 logic

În general nu e folosita datorita confuziei pe care o poate introduce

- Bobina Set (Latch) -(S)-

Pune bitul în 1 când linia este evaluata la 1 logic si nimic când linia este evaluata la 0 logic

- Bobina Reset (Unlatch) -(R)-

Pune bitul în 0 când linia este evaluata la 1 logic si nimic când linia este evaluata la 0 logic

Contacte

􀁺 Contact normal deschis -| |-

- Valideaza linia de program la dreapta elementului daca linia este validata în stânga acestuia si bitul corespunzator e în 1 logic.

Contact normal închis -|/|-

- Valideaza linia de program la dreapta elementului daca linia este validata în stânga acestuia si bitul corespunzator este în 0 logic

􀁺 Contact activ pe frontul crescator -|P|-

- Valideaza partea dreapta a liniei de program pentru un ciclu când partea stânga este validata

􀁺 Contact activ pe frontul descrescator -|N|-

Valideaza partea dreapta a liniei de program pentru un ciclu când partea stânga este invalidata


Operatii cu memorare sau fara memorare

Definitie

- Valorile cu memorare îsi mentin valoarea si dupa un ciclu deconectare-reconectare la sursa de alimentare

- Valorile fara memorare iau valoarea initiala (de obicei 0) dupa un ciclu deconectare-reconectare la sursa de alimentare

IEC 61131-3 permite valorilor sa fie definite ca fiind cu memorare

bobinele sunt elemente cu memorare.

Bobine cu memorare

Bitul din memorie corespunzator ramâne nemodificat dupa întreruperea si reconectarea alimentarii

- Bobina cu memorie -(M)-

Pune bitul în 1 când linia este valida si o pune în 0 când este invalida.

- Bobina Set cu memorare (Latch) -(SM)-

Pune bitul în 1 când linia este valida si nu face nimic când este falsa

- Bobina Reset cu memorare (Unlatch) RM)-

Pune bitul în 0 când linia este valida si nu face nimic când este falsa


Bobine activate pe front

􀁺 Bobina activata pe frontul pozitiv -(P)-

- Pune bitul în 1 logic când linia din stânga trece din starea invalida în starea valida

- Bitul ramâne în aceasta stare

Bobina activata pe frontul negativ N)-

- Pune bitul în 0 logic când linia din stânga trece din starea valida în starea invalida

Bitul ramâne în aceasta stare


Temporizatoare in LD

Exista 3 instructiuni ce realizeaza functiile de temporizare în cadrul standardului IEC 61131-3

- TP - Temporizator tip impuls

- TON - Temporizator la conectare

- TOF - Temporizator la deconectare

Valorile timpului

- Baza de timp este de 1ms (1/1000 s)

- Valorile sunt introduse folosind formatul literal

Temporizatoare in limbajul LD

Doua variante de vizualizare în functie de folosirea iesirilor EN/ENO

- prima metoda necesita elemente suplimentare de programare daca este necesara utilizarea starii temporizatorului în alte linii de program



Functionarea temporizatoarelor

IN = conditia de intrare a liniei

Q = iesirea comparatorului

- difera în functie de tipul de temporizator

PT = valoarea prestabilita

ET = timpul scurs de la activarea temporizatorului


Numaratoare în LD

Trei instructiuni cu functii de numarator în IEC 61131

- CTU - Numarator crescator

- CTD - Numarator descrescator

- CTUD - Numarator bidirectional

Toate trei contorizeaza tranzitiile liniei

Doua vizualizari posibile în functie de

utilizarea iesirilor EN/ENO

- prima metoda necesita elemente de

programare suplimentare daca starea

temporizatorului este necesara în alte linii de program

- a doua metoda asociaza iesirii Q un bit

care poate fi folosit în alte linii de program,ENO=EN

Functionarea numaratoarelor

Parametri

- CU/CD = Numarare crescatoare/descrescatoare

- Q/QU/QD = Iesirea comparatorului

- R = Aducere în Zero

- LD = Încarcarea CV cu PV

- PV = Valoarea prestabilita

- CV = Valoarea numarata de la momentul activarii

Parametri

- CU/CD = Numarare crescatoare/descrescatoare

- Q/QU/QD = Iesirea comparatorului

- R = Aducere în Zero

- LD = Încarcarea CV cu PV

- PV = Valoarea prestabilita

- CV = Valoarea numarata de la momentul activarii


Setul de instructiuni IEC1131-3

IEC 61131-3 furnizeaza un set de baza de instructiuni care sa realizeze operatiile de baza (81 instructiuni LD)

- Conversii ale tipurilor de date - Trunc, Int_to_Sint, Dint_to_Real, Bcd_To_Int

- Operatii Booleene - Bit Test, Bit Set, One Shot, Semaphores .

- Temporizatoare / Numaratoare - Ton, Tp, Ctu, Ctd, Ctud

- Operatii aritmetice simple - Add, Sub, Mul, Div, Mod, Move, Expt

- Diferite operatii matematice - Abs, Sqrt, Ln, Log, Exp, Sin, Cos, Tan, Asin, Acos, Atan

- Deplasari de biti - Shl, Shr, Ror, Rol

- Operatii logice - And, Or, Xor, Not

- Selectie - Sel, Max, Min, Limit, Mux

- Comparatie - GT, GE, EQ, LE, LT, NE

- siruri de caractere - Len, Left, Right, Mid, Concat, Insert, Delete, Replace, Find

- Control - JMP, LBL, JSR, RET

Extinderea setului de instructiuni IEC1131-3

Toate operatiile complexe sunt lasate pentru a fi definite de producator sau utilizator

- Operatiile cu fisiere, PID, diagnostic, bucle For/Next, cautarile, sortarile nu sunt în IEC1131-3

- Sunt permise extensii astfel încât producatorii sa vina în întâmpinarea cerintelor clientilor

Toti producatorii au definite propriile lor extensii






Document Info


Accesari: 11656
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )