Sunteți pe pagina 1din 36

Mediul de programare Indralogic (Codesys)

Mediul de programare IndraLogic reprezint o soluie complet att


pentru programarea unui automat programabil ct i pentru a realiza o
interfa grafic cu utilizatorul.
Proiectul este mprit n patru zone de interes:
POU: programele ce vor rula pe automat
Data Types: structurile de date complexe declarate de programator
Visualisation: vizualizrile
Resources: resursele implicate.
Conceptul Program Organization Unit (POU)
Reprezint o funcie, un bloc funcional sau un program.
Fiecare POU este constituit dintr-o zon de declaraii i un corp. Acest corp
poate fi scris ntr-unul din limbajele de programare conform IEC care
include IL, ST, SFC, FBD sau LD.
O funcie este un POU a crui ieire este un singur element de date. La
declararea unei funcii trebuie s se hotrasc tipul de date returnat.
Un bloc funcional este un POU a crui rezultat poate fi diferit chiar dac
argumentul de intrare este acelai dar, spre deosebire de o funcie, blocul
nu returneaz o valoare. El poate avea mai multe instane (copii) ce au
comportament particular n funcie de starea lor intern. Fiecare dintre
instane are identificatorul propriu (numele instanei), i o structur de
date ce conine intrrile, ieirile, i variabilele interne. Instanele se
declar local sau global ca variabile unde numele blocului este
identificatorul.
Conceptul Program Organization Unit (POU)
Un program este un POU ce poate returna mai multe valori n timpul rulrii.
Programele sunt recunoscute global n proiect. Toate valorile se rein de la ultima
rulare pn la urmtoarea rulare. Programele nu pot fi apelate de ctre o funcie,
i nu pot exista mai multe instane ale aceluiai program. Dac un POU a apelat un
program, valorile interne ale acestuia modificndu-se, acele valori sunt reinute i
folosite la urmtoarea rulare chiar dac programul este apelat i de un alt POU.
Important n aceast categorie este programul denumit PLC_PRG. El este
un program special predefinit, fiind apelat exact o singur dat pe ciclu de
automat. Prima dat cnd se iniiaz un nou proiect, se va deschide o
fereastr de configurare a acestui program.

Conceptul Data Types

Data types este cea de-a doua zon de interes ntr-un proiect IndraLogic, i
reprezint pe lng tipurile de date standard predefinite i pe cele definite specific
de programator. Se pot crea aici structuri, enumeraii i referine.


Conceptul Visualizations

IndraLogic ofer posibilitatea de a face i o interfaa om-main. Aici se
pot trasa obiecte geometrice, tabele de variabile i alte elemente de
desenare n mod offline. Online, elementele desenate i modific
proprietile astfel nct s corespund strilor din automatul programabil.
Seciunea Resources
Global Variables declararea variabilelor globale ce pot fi folosite n ntreg
proiectul i pentru variabile de reea;
Alarm Configuration configurarea evenimentelor care genereaz alarme
Library manager permite adugarea sau excluderea unor librrii de
funcii, structuri de date, etc.;
Log este un sistem de arhivare a aciunilor pe parcursul unei sesiuni
online;
PLC Configuration este un instrument pentru configurarea elementelor
hardware ale automatului (carduri de intrare, ieire, comunicaie etc.);
Task Configuration permite organizarea programelor n task-uri ce se vor
executa pe automat;
Watch and Recipe Manager utilizat la vizualizarea anumitor variabile i
setarea valorilor implicite ale unor variabile;
Target system settings se folosete pentru a selecta i configura
automatul i proprietile acestuia pe care va rula proiectul
Seciunea Resources
Tipuri de date n IndraLogic
Variabile de tip Bool tipul de variabil boolean poate lua doar dou valori TRUE
sau FALSE.
Variabile de tip Integer. Acest tip de variabil se folosete pentru a memora
numere ntregi cu semn sau fr semn. Ele sunt mprite n urmtoarele categorii:
BYTE numr ntreg fr semn codificat pe opt bii de date;
WORD numr ntreg fr semn codificat pe aisprezece bii de date;
DWORD numr ntreg fr semn codificat pe treizeci i doi de bii de date;
SINT numr ntreg codificat pe opt bii de date cu semn cu valori ntre (-128, 127);
USINT numr ntreg codificat pe opt bii de date fr semn cu valori ntre (0, 255);
INT numr ntreg codificat pe aisprezece bii de date cu semn cu valori ntre (-32768,
32767);
UINT numr ntreg codificat pe aisprezece bii de date fr semn cu valori ntre (0 ,
65535);
DINT numr ntreg codificat pe treizeci i doi de bii de date cu semn cu valori ntre (-
2147483648, 2147483647);
UDINT numr ntreg codificat pe treizeci i doi de bii de date fr semn cu valori ntre
(0, 4294967295).
Tipuri de date n IndraLogic
Variabile de tip Real. Acest tip de variabil se folosete pentru reprezentarea
numerelor n formatul virgul mobil (numere reale) i sunt de dou tipuri:
REAL numere reale codificate pe treizeci i doi de bii de date;
LREAL numere reale codificate pe aizeci i patru de bii de date.
Variabile de tip String. Sunt tipul de variabile n care se poate memora un ir de
caractere. Numrul de caractere, cunoscut drept lungimea acestora se poate seta
la declarare, iar dac acesta nu este definit, implicit se acord 80 de caractere
lungime.
Variabile de tip Time. Acest tip de variabile este folosit pentru reinerea
momentelor de timp. Are rezoluie de milisecund iar intervalul de valori este (0,
49d17h2m47s295ms). Tipurile de tip Time sunt:
TIME
TIME_OF_DAY(TOD)
DATE
DATE_AND_TIME
Ultimele dou tipuri de date sunt tratate intern ca DWORD, timpul fiind redat n
secunde, i nu n milisecunde.
Tipuri de date definite de utilizator
Variabile de tip Array. Aceste variabile sunt folosite pentru declararea
vectorilor i a matricilor. Se pot defini cmpuri de date cu pn la trei
dimensiuni de orice tip de date, predefinite sau definite de utilizator.
Variabile de tip Struct. Acest tip de date reprezint structuri pe care
programatorul le poate implementa, structuri ce pot conine toate tipurile
de date i la rndul lor pot fi grupate n array-uri.
Variabile de tip Pointer. Sunt variabile ce pot indica un pointer ctre orice
tip de date sau bloc funcional chiar i pe cele definite de utilizator. Acest
tip de date se folosete n conjuncie cu funcia ADR pentru a asigna
valoarea dorit.
Variabile de tip Enumeration. Cu ajutorul lor se d posibilitatea
utilizatorului s creeze un numr de string-uri constante ce vor fi
considerate valori ale enumerrii. Important este faptul c acelai string
constant nu poate fi folosit n dou enumerri.
Variabile globale
.


Particulariti Indralogic
Toate programele au aceeai prioritate la execuie, depinznd
numai de setrile impuse de utilizator prin configurarea task-
urilor.
Prin meniul de proprieti se pot seta parametrii de timp ai
unei etape (timpul minim sau maxim ct automatul rmne n
etapa respectiv), opiuni de inserare a unei etape+tranziie,
paralelism sau divergen, proprieti vizuale ale etapei
(nlime, lime, comentarii) i cele legate de aciunile
asociate etapei.
Spre deosebire de proprietile aciunilor din ISaGRAF,
aciunile din IndraLogic sunt de trei tipuri:
Entry Action se execut o singur dat la intrare ntr-o etap;
Action se execut pe tot parcursul etapei la fiecare ciclu;
Exit Action se execut o singura dat la ieirea din etap.

Particulariti Indralogic
Blocuri funionale
R_TRIG. Acest bloc funcional face detecia trecerii unei variabile
booleene de la un nivel low la un nivel high sau de la false la true. Aceast
variabil poate fi o intrare digital sau orice alt variabil boolean
existent. Ieirea acestui bloc va rmne false att timp ct intrarea n
acest bloc este false. Imediat ce intrarea acestui bloc devine true, i ieirea
lui va avea aceeai valoare pentru un ciclu automat, dup care devine
false, pn cnd la intrare se va detecta nc o trecere din false n true.


Blocuri funionale
CTU. Acest bloc funcional numr impulsurile de la intrare, incrementnd
o valoare de la care se pornete aceast numrare. Blocul funcional are
drept intrri booleene: CU (variabila pe al crui front cresctor se dorete
numrarea, incrementarea valorii counterului fcndu-se cu o singur
unitate la un puls), RESET (variabil care reiniializeaz counterul cu
valoarea 0), intrare de tip integer PV (reprezint valoarea cu care se
compar numrul de pulsuri incrementate), i dou ieiri: Q (variabila de
ieire boolean care devine true cnd valoarea din counter este egal sau
depete valoarea PV) i CV (valoarea actual a counterului).

Blocuri funionale
CTD. Acest bloc funcional decrementeaz o valoare cu o unitate la fiecare
puls, tranziie de la false la true a variabilei de la intrarea sa. El are drept
intrri booleene: CD (variabil pe al crui front descresctor se
decrementeaz valoarea din counter), LOAD (pe frontul cresctor al
acestei variabile se va face ncrcarea counterului cu o valoare
prestabilit), intrare de tip integer PV (valoarea cu care se dorete
iniializarea counterului), ieirea booleana Q (va fi adevarat att timp ct
valoarea counterului este 0) i ieirea de tip integer CV (valoarea actual a
counterului).
Blocuri funionale
CTDU. Acest bloc funcional este o combinaie ntre cele dou, adic
prezint ambele funcii de numrare incremental i decremental,
precum i cele de reset i load. Ieirile lui digitale sunt aceleai ca la cele
dou blocuri prezentate anterior.


Blocul funional TON
TON. Timer On Delay are drept scop ntrzierea cu un anumit timp a unui
semnal digital boolean. El are drept intrri: IN aici se conecteaz
variabila a crei schimbare din false n true se dorete a fi ntrziat, PT o
variabil de tip TIME sau o constant n formatul TIME care spune ct timp
se dorete a fi ntrziat semnalul, iar ca ieiri are Q variabila care va
deveni true dup trecerea timpului PT, precum i ET cea care d valoarea
timpului actual al timerului.
Modul de funcionare presupune c att timp ct intrarea IN este false,
ieirea Q s rmn false. Imediat ce IN devine true, atunci timpul din
timer, ET va ncepe s creasc de ordinul milisecundelor, pn cnd
valoarea sa atinge ceea ce utilizatorul a specificat n PT, dup care va
rmne constant. Dac intrarea IN devine false, timerul se reiniializeaz.
Ieirea Q devine true numai dac IN este true i ET este egal cu PT, altfel
este false.

Blocul funional TON





Graficul ce explic funcionarea acestui bloc
Blocul funional TOF
TOF. Timer Off Delay are o funcionalitate asemntoare. Are aceleai
intrari i ieiri dar face o ntrziere a frontului descresctor al variabilei de
la intrare.
Modul de funcionare presupune c att timp ct intrarea este true ieirea
Q s rmn true. Imediat ce IN devine false, timpul din timer ET va ncepe
s creasc de ordinul milisecundelor pn cnd valoarea sa atinge ceea ce
utilizatorul a specificat n PT, dup care va rmne constant. Dac intrarea
IN devine true, timerul se reiniializeaz.
Ieirea Q devine false numai dac IN este false i ET este egal cu PT, altfel
este true.
TOF





Graficul ce explic funcionarea acestui bloc
Problematica Timpului n IndraLogic
Msurarea timpului n mediul de programare IndraLogic necesit o
abordare diferit de cea din ISaGRAF. Dac se dorete ca automatul s
atepte un timp ntr-o etapa nainte de a efectua tranziia la etapa
urmtoare, utilizatorul nu are acces la variabila de timp local, care
msoar durata ct automatul se afl n acea stare, i de aceea trebuie
gsite alte soluii. Prima soluie provine chiar din proprietile unei etape.
Printre aceste proprieti utilizatorul poate stabili timpul minim ct
automatul trebuie s stea n etapa respectiv.
Dac se dorete ca automatul s stea ntr-o etap un interval de timp
variabil, atunci se folosete o alt metod care se bazeaz pe proprietile
aciunilor din IndraLogic. Dup cum a fost menionat mai sus, sunt trei
tipuri de aciuni: cele care se execut la intrarea ntr-o etap, cele care se
execut la fiecare ciclu att timp ct automatul se afl n acea etap i cele
care se execut la ieirea dintr-o etap. n plus trebuie s se foloseasc o
funcie predefinit a mediului de programare i anume funcia TIME().
Aceast funcie returneaz n milisecunde timpul care a trecut de cnd
automatul a fost pornit sub forma unei variabile de tip TIME.
Problematica Timpului n IndraLogic
Modul de folosire este urmtorul: variabila1:=TIME().
Metoda propus presupune memorarea momentului de timp n care se intr n
etapa respectiv (n engleza time stamp) i apoi citirea periodic a funciei
TIME(), pn cnd diferena ntre cele dou momente de timp este egal sau mai
mare cu intervalul de timp. Paii care trebuiesc urmai sunt:
se creaz etapa dorit dac aceasta nu exist deja;
se selecteaz etapa respectiv i se apas butonul din dreapta al mouse-ului;
se alege de acolo Add Entry Action n limbajul ST;
se declar o variabil de timp n care se va memora time stamp-ul de intrare
folosind funcia TIME();
se apas dublu click pe etapa respectiv pentru a se putea introduce aciunile
dorite a se efectua la fiecare ciclu;
se declar o variabil de timp n care se va memora time stamp-ul curent
folosind funcia TIME();
condiia de ieire din etapa este: time-stamp curent time-stamp de intrare >=
variabila de timp.
Problematica Timpului n IndraLogic
Aciune de tipul Entry
Problematica Timpului n IndraLogic
Aciune de tipul Action
Alarme
Alarma este privit ca o condiie special (valoarea unei expresii)
Evenimentul care declaneaz alarma descrie momentul n care o condiie iese din
starea ei normal.
Confirmarea alarmelor: scopul unei alarme este de a atrage atenia supervizorului
asupra unei stri anormale. Se decalneaz anumite aciuni cnd apare o alarm.
Supervizorul trebuie s confirme recepia alarmei pentru ca ea s dispar din list
Alarmele pot avea prioriti
Starea unei alarme:
NORM ( nu e activ)
INTO (abia a aprut)
ACK ( a fost confirmat de ctre user)
OUTOF (alarma a disprut fr s fie confirmat)
Sub-starea: o condiie de alarm poate avea limite:
LO, HI
LOLO, HIHI

Clase de Alarme
Pofi declarate clase de alarme

Clase de Alarme
Tipuri de confirmare:
NO_ACK: Nu e necesar confirmarea
ACK_INTO: Starea INTO a alarmei trebuie confirmat.
ACK_OUTOF: Starea "OUTOF", alarm terminattrebuie confirmat.
ACK_ALL: Ambele stri trebuie confirmate.

Aciuni asociate alarmelor:
Save
Print
Message: apare un text n obicetul de vizualizare ataar alarmei
E-mail
Variable: o variabil din proiect va cpta starea alarmei
Execute: un program va fi executat (ex. Notepad)
Grupuri de alarme
Tipuri de alarme
DIG=0 Alarm digital, activ indat ce expresia devine FALSE.
DIG=1 Alarm digital, activ indat ce expresia devine TRUE.
LOLO Alarm analogic, activ ndat ce valoarea expresiei scade sub valoarea
LOLO. Se poate defini o toleran (Deadband). Ct timp expresia este n
interiorul toleranei nu va fi activat alarma.
LO Corespunztor lui LOLO
HI Alarm analogic, activ ndat ce valoarea expresiei crete peste valoarea
HI. Se poate defini o toleran (Deadband). Ct timp expresia este n interiorul
toleranei nu va fi activat alarma..
HIHI Corespunztor lui HI
DEV- Deviaie de la valoarea int; Alarma se activeaz ndat ce valoarea
expresiei scade sub valoarea definit pt. Alarma de tip DEV- plus procentul
deviaiei. Procentul deviaiei = valoarea int * (deviaia in %) / 100.
DEV+ Deviaie de la valoarea int; Alarma se activeaz ndat ce valoarea
expresiei crete peste valoarea definit pt. Alarma de tip DEV+ plus procentul
deviaiei. Procentul deviaiei = valoarea int * (deviaia in %) / 100
ROC Viteza de variaie pe unitatea de timp; Alarma se activeaz cnd expresia
deviaz puternic fa de valoarea precedent.
Taskuri
Taskurile sunt colecii de programe executate de ctre automatul care ruleaza
aplicaia Indralogic
Un Task este definit de un nume, o prioritate i de un tip ce determin satisfacerea
crei condiii va porni acel task. Aceste condiii pot fi definite de un moment de
timp (ciclic, freewheeling), sau un eveniment intern sau extern, de exemplu
frontul cresctor al unei variabile globale sau o ntrerupere n automatul
programabil.
Dac taskul este executat n ciclul prezent, atunci programele taskului vor fi
procesate pe ntreaga lungime a unui ciclu. Ordinea n care se execut taskurile va fi
determinat de combinaia, de prioritatea i condiiile de pornire.
Proprietile unui Task
Tipurile unui Task
Cyclic: taskul va fi procesat ciclic conform cu perioada de timp declarat
Freecycling: taskul va fi procesat in continuu, adic odat ncheiat va fi
reluat imediat
Triggered by event: taskul va fi pornit doar atunci cnd variabila declarat
n cmpul Event trece din False in True
Triggered by external event: taskul va fi pornit atunci cnd evenimentul
extern, definit n cmpul Event, are loc. Evenimentul depinde de
automatul int i apare sub form de list.

Watchdog: pentru fiecare task poate fi definit un control de timp
(watchdog). Dac taskul depete timpul specificat el va fi oprit din
execuie cu un cod de eroare, dar nu neaprat la prima ntrziere a
taskului, ci in funcie de valoarea parametrului Sensitivity.
Ecrane de vizualizare
n cadrul unui proiect IndraLogic pot fi dezvoltate ecrane de vizualizare a
valorilor unor variabile print-o reprezentare grafic precum i de
introducere a unor date n automatul programabil n timp real cu ajutorul
mouse-ului sau a tastaturii.
Editorul de vizualizri, care este o parte integrant a mediului de
programare, permite utilizarea unor elemente grafice care pot fi
configurate astfel nct s fie conectate la variabilele proiectului prin
intermediul unui dialog corespunztor unui singur element al unei
vizualizri. Parametrii de baz pot fi setai prin activarea unor opiuni, iar
prin introducerea variabilelor procesului se poate obine parametrizarea
dinamic.
Pot fi fi inserate diferite forme geometrice, poze n format bitmap, fiiere
metafile, butoane i chiar alte vizualizri existente.
Ecrane de vizualizare

Editarea proprietilor unui obiect
Editarea proprietilor unui obiect

S-ar putea să vă placă și