Sunteți pe pagina 1din 75

Material suport pentru stagii de practica in

domeniul dezvoltarii software pentru


automatizari
MEDIU DE DEZVOLTARE STEP 7 MICRO/WIN 32

Pag. 1/75

CUPRINS

1. PrezentaregeneralamediuluideprogramareStep7MICRO/WIN32........................................................3
1.1Meniuprincipal.........................................................................................................................................3
1.2Formatedegenerareaunuiprogramdeaplicatie...................................................................................7
1.3SchimbuldedateprogramPLC.................................................................................................................9
1.4Configurareabloculuisistem..................................................................................................................10
1.5Vizualizarialevariabilelordinprogram..................................................................................................14
1.6Alteoperatiideconfigurare...................................................................................................................16
2.ProgramareainSTEP7200...........................................................................................................................17
2.1Reprezentareadatelor...........................................................................................................................17
2.2Editareaprogramelor.............................................................................................................................19
2.3Tipurideinstructiuni..............................................................................................................................20
2.4Adresareadirectasiindirecta.................................................................................................................39
2.5OrganizareabiilorspecialidememoriedetipSM................................................................................40
2.6Intreruperisicomunicare......................................................................................................................50
2.7Numaratoareledeviteza........................................................................................................................55
2.8Iesirideviteza.........................................................................................................................................60
3.Terminalepentruafiareicomunicare........................................................................................................65
3.1TerminalulTD200.................................................................................................................................65
3.2TerminalulTP070...................................................................................................................................69
Bibliografie.........................................................................................................................................................75

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 2/75

1. Prezentare general a mediului de programare Step 7


MICRO/WIN 32
Mediu de dezvoltare programe de aplicatie pentru echipamentele Siemens din clasa 200

V3.1 STEP 7 MicroWIN SP1.lnk

- Incarcare
- Incarcare

prin icoana
prin apel RUN:
"C:\Program Files\Siemens\STEP 7-MicroWIN 32\Bin\microwin.exe"

1.1 Meniu principal

- Notiunea de proiect (Project):


-

Un singur fisier cu extensia

".mwp"

Optiunea File

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 3/75

Optiunideconfigurareecran

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 4/75

Optiunideconfigurareecran

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 5/75

Zona de unelte

Fereastra de
vizualizare program
scris in STL
Zona de navigare
Fereastra de
instructiuni

Fereastra de
vizulalizare iesire

Feresatra de
vizualizare
program scris in
LADDER logic

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 6/75

1.2 Formate de generare a unui program de aplicatie


-

STL (Statement List ) este un limbaj in care programul este descris pe baza de
mnemonice. Este varianta cea mai performanta utilizata de programatori cu experienta.
Permite crearea unor secvente de program ce nu se pot realiza in celelalte moduri de
reprezentare. Este asemanator unui limbaj de asamblare.
LAD (Ladder logic) este un limbaj grafic care permite descrierea prin diagrame cu relee
electrice. Cand se lucreaza in acest limbaj editorul este grafic si permite aranjarea
secventelor pentru a forma o logica de retea Este un limbaj bun pentru programatori
incepatori. In principiu programele LADDER se bazeaza pe capabilitatea unitatii centrale de
a emula un flux electric pornind de la o sursa, printr-o serie de conditionari logice de
intrare pana la activarea unei conditii logice de iesire
FBD (Function Block Diagram) este un editor ce permite vizualizarea instructiunilor unui
program prin cutii logice care seamana cu portile logice (AND OR XOR NOT etc). Nu sunt
contacte sau relee ca si in LADDER dar sunt instructiuni echivalente care apar ca si cutii de
instructiuni. Logica programului este implementata prin modul de conectare dintre aceste
cutii de instructiuni.

Optiunea Zoom de la View permite configurarea promgramului de editare


in functie de limbajul ales

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 7/75

Stabilirea tipului de PLC

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 8/75

1.3 Schimbul de date program-PLC

Cum se transfera un program in PLC


1. Se incarca proiectul File -> Open -> nume -> Open
2. Se stabileste tipul automatului PLC -> Type -> OK
3. Se stabilesc parametrii de comunicare PLC -> Type -> Comunications ->PC/PPI ->
Properties -> Local Communications -> Ok .
4. Se porneste PLC-ul si se comuta butonul pe TERMINAL
5. Se stabileste comunicatia View -> Communicatons -> Double click se asteapta raspuns cu
adresa de conexiune
6. Se transfera programul in PLC prin File -> Download
7. Mediul executa o compilare generala, daca nu sunt erori programul de aplicatie este
transferat in PLC, care a fost trecut in mod STOP
8. Pentru executia programului automatul programabil se trece in regim RUN
Cum se incarca un program din PLC
1. Se incarca proiectul File -> Open -> nume -> Open
2. Se stabileste tipul automatului PLC -> Type -> OK
3. Se stabilesc parametrii de comunicare PLC -> Type -> Comunications ->PC/PPI ->
Properties -> Local Communications -> Ok .
4. Se porneste PLC-ul si se comuta butonul pe TERMINAL
5. Se stabileste comunicatia View -> Communicatons -> Double click se asteapta raspuns cu
adresa de conexiune
6. Se preia programul din PLC prin File -> Upload
7. Mediul transfera in memoria calculatorului programul de aplicatie iar acesta poate fi salvat
cu optiunea Save (Meniu File)

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 9/75

1.4 Configurarea blocului sistem


Configurare porturi (parametrii de transfer)

Filtrareasoftwarea
valorilordepeintrarile
analogice selectate

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 10/75

Configurarea blocului sistem tabela de output-uri

Stabilesteoduratadetimp(inprocentedin
ciclulscan)incaremediuldedezvoltarese
ocupadevizualizareainformatiilordin
l
bl(
d d
)

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 11/75

Configurarea blocului sistem stabilirea intrarilor numerice rapide

Intrarinumericerapidepe
caresepotcaptapulsuri

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 12/75

Configurarea blocului sistem definirea datelor salvate automat

DefinireazonelordedatealePLCcepotfi
memoratelacadereatensiunii

Nivel1Poatefaceoricefaraparola
Nivel2Nupoatemodificaprogramulfaraparolasi
nupoatefacedownload
Nivel3Nupoatemodificaprogramulfaraparola,
nupoatefacedownloadsinupoatefaceupload

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 13/75

1.5 Vizualizari ale variabilelor din program

Vizulalizari ale tabelei de simboli, blocului de date, structurii de harta de depanare


(chart) si a zonei de program

Dateinformativedespreprogramulde
aplicatiesiconfiguratiapecareruleaza

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 14/75


Referinte incrucisate

Inurmacompilariiprogramuluimediul
furnizeazatabeladereferinteincrucisate

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 15/75

1.6 Alte operatii de configurare


IntroducereadatesiatimpuluiinPLC

ComparareaproiectuluicuprogramuldinPLC

LaBEGINsecompileazzaprogramuldincalculatorsisecomparacu
programul din PLC pe blocurile selectate

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 16/75

2. Programarea in STEP 7-200


2.1 Reprezentarea datelor

Tipuri de date admise

Tipuri de numaratoare admise

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 17/75


Abrevieri uzuale din mediul STEP 7

Structura memoriei

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 18/75

2.2 Editarea programelor


De la meniu EDIT de foloseste Insert pentru a introduce:
- Network-uri
- linii
- coloane
- subrutine
- rutine de intreruperi
Delete pentru a sterge aceleasi elemente.
Editarea in STL
1.
2.
3.
4.

Pozitionati cursorul pe inceputul liniei.


Introduceti instructiunea (de ex. LD).
Tastati spatiu sau TAB.
Introduceti operantul care poate fi absolut (ex I0.2), poate fi simbolic (ex, Input1) sau
poate fi constanta (ex 100)
Obs: daca linia are mai multi operanzi ei pot fi separati utilizand spatiu virgula sau TAB.
5. Daca nu se doreste comentariu tastati ENTER pentru a trece la o noua linie
Nu utilizati MEND,RET,SBR sau INT pentru a termina subrutinele sau rutinele de intreruperi (
acestea se introduc automat de catre compilator)
Editarea in LADDER Logic
Pentru a crea un program deschideti INSTRUCTION TREE, apasati mouse-ul pe instructiunea
dorita si o trageti in fereastra program
Sunt doua modalitati de editare in functie de tasta INSERT
1. In modul INSERT cand s-a apasat tasta daca mutati o instructiune peste alta existenta,
editorul face loc noii instructiuni mutand-o pe cea veche mai la dreapta
2. In modul OVERSTRIKE (cand tasta INSERT nu este apasata) noua instructiune o substituie
pe cea veche
Zonele variabilelor ( cu ????) se editeaza mutand mouse-ul pe ele, facand click stanga si
introducand valoarea dorita
Editarea in FDB
Identic cu LADDER logic
Navigarea intre programul principal, subrutine si rutine de intreruperi se face fie din fereastra
Instruction Tree (dand dublu click pe mnemonica aferenta) fie din cursorul orizontal de la baza
ferestrei

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 19/75

2.3 Tipuri de instructiuni


A. Instructiuni de evaluare conditie
A1. Incarcarea si evaluarea unui bit

A2. Incarcarea si evaluarea imediata a unui bit

A3. Negarea

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 20/75

A4. Incarcarea si evaluarea unui octet (Byte)

A5. Incarcarea si evaluarea unui cuvint (Word)

A6. Incarcarea si evaluarea unui cuvant dublu (Dword)

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 21/75

A7. Incarcarea si compararea unui numar real

B.

Instructiuni de iesire

B8. Setarea/resetarea (imediata) a unui grup de biti

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 22/75

B9.Transmiterea directa si negata a intrarii catre iesire

C. Operatii logice
C10 Si, sau, sau exclusiv pe octet

C11. Si, sau, sau exclusiv pe cuvant

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 23/75

C12. Si, sau, sau exclusiv pe


dublu cuvant

C13. Complement pe byte, cuvant si


dublu cuvant

D. Operatii diverse cu memoria


D14. Mutarea unei locatii in alta; tip octet, cuvant, dublu cuvant, real

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 24/75

D15. Mutarea unei zone in alta; tip octet, cuvant, dublu cuvant

D16. Initializarea unei zone; tip cuvant

D18. Instructiuni de ceas

D17. Inversiune octet superior/inferior

D19. Salt neconditionat

D20. Terminare program

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 25/75

D21. Instructiuni de shift-are; pe octet, pe cuvant si dublu cuvant

D22. Instructuini de rotire; pe octet, pe cuvant si dublu cuvant

E. Instructiuni de control al programului


E23. Apel de subrutina
E24. Iesirea din subrutina

E25. Incheiere program

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 26/75

E26. Ciclul For

F. Instructiuni matematice
F27. Incrementare, decrementare; octet, cuvant, dublu cuvant

F27. Adunare,scadere;

cuvant, dublu cuvant

F28. Inmultire/impartire F29. Inmultire/impartire intregi F30. Inmultire/impartire

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 27/75

intreaga

cu rezultat in dublu cuvinte

F33. Adunare/ scadere reala

dublu cuvinte

F34. Inmultire/ impartire reala

F35. Radical

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 28/75

G. Instructiuni de evaluare conditie


G36. Instructiuni de ramificare a conditionarilor

ALD = SI intre valorile primului si celui de al doilea nivel al stivei cu rezultatul in varful stivei
OLD = SAU intre valorile primului si celui de al doilea nivel al stivei cu rezultat in varful stivei
LPS = dubleaza varful stivei si pune rezultatul pe varful stivei. Ultima valoare din stiva se
pierde
LPP = elimina valoarea din varful stivei. A doua valoare devine noul varf pe stiva.
LRD = pune a doua valoare pe varful stivei (vechea valoare din varf se pierde); nu se modifica
adancimea stivei
LDS = duplica al n-lea bit din stiva plasandu-l in varful acesteia; valoarea de la baza stivei este
eliminata.
G37. Instructiuni de stabilire a tranzitiei

EU = tranzitie pozitiva
(din 0 in 1)
ED = tranzitie negativa

(din1in0)

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 29/75

H38. Operatii trigonometrice si logaritmi

I39. Algoritm PID

- pentru a putea efectua calculul algoritmului, varful stivei trebuie sa fie ON


- instructiunea are 2 operanzi o adresa de tablou (adresa de inceput a tabloului) si un numar
cuprins intre 0 si 7 indicand a catea bucla PID din program este (se admit maxim 8 bucle).
- Tabloul buclei stocheaza urmatorii noua parametrii:
valoare curenta
valoare precedenta
valoare de referinta
iesire
gain
perioada de esantionare
timp de integrare
timp de derivare
suma de integrare (bias)

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 30/75

J Instructiuni de conversie
- prima litera a mnemonicii codifica tipul datei de intrare, a doua data rezultata
J40. Conversie reciproca octet-intreg

J41. Conversie reciproca intreg-dublu cuvant

J42. Conversie dublu cuvant real

J43. Conversie real- dublu cuvant (prin rotunjire sau trunchiere)

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 31/75

J44. Conversii reciproce BCDintreg

J44. Conversii reciproce ASCII-hexazecimal

J45. Conversii ASCII din intreg, dublu cuvant si real

J46. Conversii pentru alimentare afisoare cu 7 segmente

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 32/75

K Operatii cu tabele
K 47. Introducerea in tabele
O tabela de tip word.
- Prima valoare din tabel este lungimea maxima a
tabelului.
- A doua valoare indica numarul intrarilor ocupate.
Cand o noua data este introdusa in tabel numarul
intrarilor ocupate este incrementat, Dimensiunea
maxima a unui tabel este 100 + cei doi parametrii
anteriori prezizati.
- Parametrii instructiunii reprezinta data de introdus
si adresa unde incepe tabelul

K48. Cautari in tabele


O tabela de tip word.
- Cauta in tabela incepand cu indexul precizat prin
INDX o data precizata in PATRN (sau PTN)
- Cautarea se face dupa criteriu CMD (care in STL
inseamna =, <>, <, >.
- Daca se gaseste conditia INDX pointeaza pe
valoarea din tabel gasita; pentru a gasi urmatoarea
potrivire trebuie intai avansat IBDX
- Daca nu se gaseste conditia ceruta IDNX are
valoarea indexul de dupa ultima valoare din tabela.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 33/75

K49. Operatii in tabele


Last-In-First-Out (LIFO)
- Extrage ultima valoare introdusa in tabela si o
depune in zona precizata prin parametrul DATA
- Contorul de intrari in tabela este decrementat
(ultina valoare este stearsa)

First-In-First-Out (FIFO)
- Extrage prima valoare introdusa in tabela si o
depune in zona precizata prin parametrul DATA
- Contorul de intrari in tabela este decrementat
- Toate elemetele tabelei sunt siftate in sus cu
o pozitie

L Instructiuni de control program


L50. Instructiuni de segmentare program

LSCR marcheaza inceputul unui segnment.


Cand n=1 segmentul este activat
SCRE indica sfritul segmentului
SCRT valideaza bitul pentru urmtoarea seciune
activat

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 34/75

Exemplu de parcurgere secventiala

NETWORK
LSCR "Stare_L"
NETWORK
//. Instructiuni
NETWORK
LD
I0. 0
SCRT "Stare_M"
NETWORK
SCRE
NETWORK
LSCR "Stare_M"
NETWORK
//. Instructiuni
NETWORK
LD
I0. 1
SCRT "Stare_N"
NETWORK
SCRE
NETWORK
LSCR "Stare_N"
NETWORK
//. Instructiuni
NETWORK
LD
I0. 2
SCRT "State_L"
NETWORK
SCRE

// incepe L

// O conditie.
// enable M, disable L.
// Sfarsit State L
// Incepe M

// Alta conditionare
// enable N, disable M.
// Sfarsit M
// Incepe N

// Conditionare.
// enable L,disable N.
// Sfarsit N.

L51. Invalidare durat maxima de Scan

Daca programul este prea lung pe


anumite secvente si da eroare ca
depaseste durata maxima admisa de
Scan se poate utilza aceasta
instructiune.
Atentie nu se mai dau erori de ciclu
infinit.!!!

M Operatii de transfer imediat


M 52. Instructiuni de citire/scriere si transfer imediat

BIR = citeste intrarile fizice IN si scrie octetul in locatia precizata in OUT

BIW=citestedinlocatiaprecizatalaINsiscrieoctetullaiesireafizicaOUT
N Timere

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 35/75

Exista 3 timuri de Timere:


pentru numararea timpului unui singur interval
On-Delay Timer (TON)
Retentive On-Delay Timer (TONR) pentru acumularea unui numar de intervale de timpi
pentru extinderea timpul de cand nu s-a indeplinit o conditie.
Off-Delay Timer (TOF)
Tip
Timer
TON

TONR

TOF

Valoare curenta >=


Valoare prestabilita
Timer bit ON,
Valoarea curenta
numara pana la
32,767
Timer bit ON,
Valoarea curenta
numara pana la
32,767
Timer bit OFF, Daca
Valoarea curenta =
Valoarea prestabilita
Nu mai numara

Validarea intrarii
pe ON
Valoarea curenta
numara timpul

Validarea intrarii
pe OFF
Timer Bit OFF
Valoarea curenta
=0

Punerre sub
tensiune/Primul ciclu
Timer Bit OFF
Valoarea curenta =0

Valoarea curenta
numara timpul

Timer bit si
valoarea curenta
mentin ultima
valoare
Timerul numara
ndupa tranzitia
ON - OFF

Timer Bit OFF


Valoarea curenta
poate fi mentinuta

Timer Bit ON
Valoarea curenta
=0

Timer Bit OFF


Valoarea curenta =0

N 53. Instructiuni de programare timere

- Primul parametru este tipul Timerului, al doilea este timpul


in numar de cuante (cuanta depinde de tipul timerului)
- La expirarea timpului se activeaza bitul Timer

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 36/75

- Primul parametru
este tipul Timerului,
al doilea este timpul
in numar de cuante
(cuanta depinde de
tipul timerului)
- Contorizeaza timpul
cand conditia este
OFF
- La expirarea
timpului se activeaza
bitul Timer

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 37/75

O Countere
O54. Instructiuni de numarare

CountUp(CTU)=numaracrescatorpanalaovaloare
maximafronturilecrescatoarealeintrarii
Candvaloarecurenta(precizatainCxxx)este>=
cuvaloareaprestabilita(PV)bitulcounteruluiseinscrie(1)

-Count Down (CTD) = numara descrescator de la o


valoare maxima fronturile descrescatoare ale intrarii
-Cand valoare curenta este 0 bitul counterului se inscrie
(1)
-Counterul isi sterge contorul curent initialiuzandul cu
valoarea presetata (PV) cand intrarea de incarcare LD se
pune pe 1
-Counterul nu mai numara cand atinge valoarea 0

- Count Up/Down (CTUD) = numara crescator pana la o


valoare maxima fronturile crescatoare ale intrarii (CU) si
numara descrescator tot fronturile crescatoare dar pe
intrarea de numarare down (CD)
-Cand valoare curenta (precizata in Cxxx) este >=
cu valoarea prestabilita (PV) bitul counterului se inscrie
(1)
-Counterul se sterge cand intrarea de Reset devine 1
-Counterul nu mai numara cand atinge valoarea PV

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 38/75

2.4 Adresarea directa si indirecta

Exista doua moduri de adresare: Directa si Indirecta


Adresarea directa
- prin adresare directa se specifica zona de memorie, dimensiunea si locatia
(de ev.VW1000 se refera la un cuvant din locatia 1000 in zona de memorie V)
- pentru a accesa un bit se specifica dupa punct al catelea bit din octet este accesat
( de ex, VB100,7 acceseaza ultimul bit de la locatia V100)
Adresarea indirecta
- se pot adresa indirect date de tip I,Q,M,T,C si V
- pentru aceasta se ceaza un poiter catre locatia precizata
- toti pointerii sunt de tip dublu cuvint, si pot fi accesate valori de octeti, cuvinte si duble
cuvinte.
Nu se pot adresa indirect valori pe biti
- Se utilizeaza instructiunea MOVD pentru a transfera adresa destinatie dorite catre un
pointer> Se pot utiliza doar locatii de memorie de tip V sau registrii acumulatori AC!, AC2 si
AC3 pentru a inmagazina adresa destinatie
- se utilizeaza & la inceput, indicandu-se ca este vorba de un pointer la adresa
- se utilizeaza * inaintea de adresa destinatie pentru a indica continutul locatiei de la aceasta
adresa.
Observatii:
- Pentru a accesa indirect octeti se incrementeaza respectiv decrementeaza pointerul cu 1
- Pentru a accesa indirect cuvinte se incrementeaza respectiv decrementeaza pointerul cu 2
- Pentru a accesa indirect dublu cuvinte se incrementeaza respectiv decrementeaza pointerul
cu 4
- Valorile de Timer si Counter sunt de tip word (deci adresa se incrementeaza/decrementeaza
cu 2)
Atentie: nu accesati zone din afara memoriei. Se produce Run time Error.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 39/75

2.5 Organizarea biilor speciali de memorie de tip SM

In limbajul STEP 7 sunt predefiniti 299 biti de memorie cu statut special. Bitii de la 0 la
29 sunt numai de citire, iar cei de la 30-299 sunt de citire si scriere.
In continuare sunt descrisi principabii biti speciali utilizati in programme:
SMB 0 - 8 biti care sunt actualizati de unitatea centrala la sfarsitul fiecarui ciclu scan.
SM0.0 - Bit inscris (1) tot timpul.
SM0.1 - Bit inscris (1) la primul ciclu scan
SM0.2 - Bit inscris (1) pentru un ciclu scan daca datele memorate "retentive" au fost pierdute.
Bitul poate fi utilizat ca indicator de eroare a memoriei.
SM0.3 - Bit inscris (1) pentru un ciclu scan cand modul RUN provine din conditia de punere sub
tensiune. Poate fi utilizat spre a lasa un timp de "incarzire" inaitea inceperii lucrului.
SM0.4- Bitul furnizeaza un "clock" este inscris (1) 30 de sec si sters (0) alte 30 secunde.
Utilizabil in intarzieri sau ca ceas de 1minut.
SM0.5 - Bitul furnizeaza un "clock" este inscris (1) 0.5 de sec si sters (0) alte 0.5 secunde.
Utilizabil in intarzieri sau ca ceas de 1 secunda.
SM0.6 - Bitul furnizeaza un "clock" ciclul scan este inscris (1) un ciclu scan si sters (0) in
urmatorul. Utilizabil ca numarator al ciclurilor scan.
SM0.7 - Bit care reflecta pozitia comutatorului de mode de lucru 0=TERM 1=RUN.
SMB 1 dau indicatii de eroare in diverse instructiuni de lucru cu tabele sau operatii
matematice.
SM1.0 - Bit inscris (1) cand rezultatul operatiei este zero.
SM1.1 - Bit inscris (1) cand intr-o instructiune apare depasire "overflow" sau o valoare
numerica ilegala.
SM1.2 - Bit inscris (1) cand intr-o instructiune matematica apare un rezultat negative.
SM1.3 - Bit inscris (1) cand se produce o impartire cu zero.
SM1.4 - Bit inscris (1) cand in instructinile de adaugare in tabel se producedepasirea acesteia.
SM1.5 - Bit inscris (1) cand o instructiune LIFO sau FIFO instructions asteapta sa citeasca
dintr-o tabea vida.
SM1.6 - Bit inscris (1) cand se incearca conversia unei valori "non-BCD" in binar.
SM1.7 - Bit inscris (1) cand o valoare ASCII nu poate fi convertita intr-o valare hexadecimala
valida.
SMB 2 bufer de receptie caracter in modul "Freeport" atat de la Port 0 cat si de la Port 1
SMB 3 utilizat in mod Freeport pentru semnalarea erorilor de paritate
SM3.0 - Eroarea de paritate de la Port 0 sau de la Port 1. (0 corect; 1 eroare.)
SM3.1 SM3.7
Rezervati
SMB 4 indicatii despre depasirea cozii de intreruperi, starea intreruperii (activata sau
dezactivata).
**SM4.0 - Bit inscris (1) cand coada de comunicatie este depasita.
**SM4.1 - Bit inscris (1) cand coada de intrare este depasita.
**SM4.2 - Bit inscris (1) cand coada de temporizare este depasita.
SM4.3 - Bit inscris (1) cand este detectata o probema de "run-time".
SM4.4 - Bit inscris (1) cand o intrerupere este vaidata.
SM4.5 - Bit inscris (1) cand transmitator este Port 0.
SM4.6 - Bit inscris (1) cand transmitator este Port 1.
SM4.7 - Bit inscris (1) cand exista unelement fortat.
** Biti utilizabili doar in rutine de intreruperi.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 40/75

SMB 5 contine biti de stare despre conditii de eroare detectate in operatii de I/O.
SM5.0 - Bit inscris (1) cand apare orice eroare I/O.
SM5.1 - Bit inscris (1) cand au fost conectate prea multe module I/O digitale pe magistrala.
SM5.2 - Bit inscris (1) cand au fost conectate prea multe module I/O analogice pe magistrala.
SM5.3 - Bit inscris (1) cand au fost conectate prea multe module I/O inteligente pe
magistrala.
SM5.4- SM5.6
Reservati
SM5.7 - Bit inscris (1) cand o eroare de magistrala standard DP este presenta.
SMB 8 - 21 sunt organizate in perechi pentru modulele de extensie 0-6. Octetul par indica
registrul de identificare al modulului (ID register) (indica tipul modului, tipul I/O, si numarul de
intrari si iesiri). Octetul impar este registrul de eroare al modului.
SMW 22 - 26 contin informatii despre ciclul scan.
SMW22
Cuvantul furnizeaza durata ultimului scan.
SMW24
Cuvantul furnizeaza durata scan-ului minim (de cand a inceput rularea).
SMW26
Cuvantul furnizeaza durata scan-ului maxim (de cand a inceput rularea).
SMB 28 - 29 contine valoarea numerica ajustarea analogica a lui 0 si 1.
SMB28
contine valoarea numerica ajustarea analogica a lui 0. Aceasta valoare este
actualizata o data pe scan la tranzitia STOP/RUN.
SMB29
contine valoarea numerica ajustarea analogica a lui 1. Aceasta valoare este
actualizata o data pe scan la tranzitia STOP/RUN.
SMB 30 si SMB 130 Controleaza comunicatia Freeport
SMB 30 controleaza comunicatia pe Freeport pentru portul 0;
SMB 130 controleaza comunicatia pe Freeport pentru portul 1.
MSB 7
LSB 0
p
p
d
b
b
b
m
m
pp =

Selectia paritatii
(SM30.6 si SM30.7 respectiv SM130.6 si SM130.7)
00 = fara paritate
01 = impar
10 = fara paritate
11 = par
d = Formatul bitilor de date pe caracter (SM30.5
respectiv SM130.5)
0 = 8 biti/caracter
1 = 7 biti/caracter
bbb = Rata de transfer pe Freeport[Baud] (SM30.2 SM30.4 respectiv SM130.2 - SM130.4)
000 = 38,400 baud
001 = 19,200 baud
010 = 9600 baud
011 = 4800 baud
100 = 2400 baud
101 = 1200 baud
110 = 600 baud
111 = 300 baud
mm = Selectia protocolului
(SM30.0 si SM30.1
respectiv SM130.0 si SM130.1)
00 = Protocol de interfata punct la punct (modul PPI/slave)
01 = Protocol Freeport
10 = Mod PPI/master
11 = Rezervat (implicit in modul PPI. master)
Nota: Cand se selecteaza codul mm-10 (PPI master), CPU devine master in retea si permite
utilizarea instructiunilor NETR si NETW. Bitii 2 pana la 7 sunt ignorati in modul PPI.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 41/75

SMB 31 si SMW 32 Controleaza scrierea EEPROM


Bitul special de memorie 31 si cuvantul special de memorie 32 ofera posibilitatea de a scrie
valorile memoriei de tip V din programul utilizator intr-un EEPROM.
Pentru a utiliza aceasta functie, se va incarca adresa locatiei ce trebuie salvata in SMW32. Apoi
se incarca SMB31 cu comanda de salvare a valorii. Nu se va schimba valoarea memoriei V pana
cand CPU reseteaza SM31.7, indicand ca operatia de salvare este completa.
La sfarsitul fiecarui ciclu scan, CPU verifica daca comanda de salvare a valorii in memoria
permanenta este posibila. Daca comanda este posibila , valoarea specificata este salvata in
memoria permanenta.
SMB31 defineste marimea datelor de salvat in memoria pemanenta si ofera posibilitatea de
comanda care initiaza executia operatiei de salvare.
SMW32 memoreaza adresa de inceput in memoria de tip V pentru datele care vor fi salvate in
memoria permanenta
Pentru SMB31
MSB 7
c

LSB 0
s

Pentru SMW32
MSB 15
LSB 0
Adresa de memorie V
Unde:
ss = Marimea valorii de salvat
(SM31.0 si SM31.1)
00 = byte
01 = byte
10 = word
11 = double word
c = Salveaza in memoria permanenta EEPROM
(SM31.7)
0 = Nu se aplica nici o cerere de salvare
1 = Programul utilizator cere PLC-ului sa salveze datele in memeoria permanenta.
CPU reseteaza acest bit dupa fiecare operatie de salvare.
Adresa memoriei V = pentru datele de salvat este memorata in SMW32. Aceasta valoare este
introdusa ca offset incepand de la V0. Cand se executa operatia de salvare, valoarea adresei de
memorie V este salvata in locatia de memorie V corespondenta in memoria pemanenta
(EEPROM).
SMB 34 si SMB 35 Controleaza intervalul pentru timerele care genereaza intreruperi
(eveniment 0 si 1)
Bitii speciali de memorie 34 si 35 controleaza intervalul de timp al intreruperilor 0 si 1. Se
poate specifica intervalul de timp (cu un ecart de 1ms) de la 1 la 255 ms. Valoarea intervalului
de timp este preluata de CPU in momentul in care intervalul respectiv al intreruperii este atasat
unei rutine. Pentru a schimba intervalul de timp, este necesar ca aceeasi intrerupere sa se
ataseze unei alte subrutine sau aceleiasi subrutine. Se poate incheia evenimentul respectiv
prin detasarea evenimentului atasat intreruperii.
SMB34 Intreruperea 0: Valoarea intervalului de timp (pentru un ecart de 1 ms intervalul este
de la 1 ms la 255 ms**).
SMB35 Intreruperea 1: Valoarea intervalului de timp (pentru un ecart de 1 ms intervalul este
de la 1 ms la 255 ms**).

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 42/75

** Pentru seria 21x, intervalul de timp (cu un ecart de 1ms) este de la 5 la 255 ms.
SMB36-SMB65 Octeti de programare pentru numaratoarele rapide HSC0, HSC1 si HSC2
Octetii speciali de memorie de la 36 la 65 pun la dispozitie informatia necesara pentru
monitorizarea si controlul operatiilor efectuate cu ajutorul contoarelor de mare viteza. HSC0,
HSC1 si HSC2
a) HSC0 utilizeaza octetii SMB36-SMB45
SMB 36
SM36.0 SM36.4 Reservat
SM36.5 Bit de stare indicand directia curenta de contorizare pt HSC0: 1 = crescator.
SM36.6 Bit de stare indicand daca valoarea curenta a lui HSC0 este egala cu valoarea
presetata: (daca este egal bitul este1).
SM36.7 Bit de stare indicand daca valoarea curenta a lui HSC0 este mai mare decat valoarea
presetata: (1 = mai mare).
SMB 37
SM37.0
1
SM37.1
SM37.2

Bit de control al nivelului activ pe reset: (0 = Reset este activ crescator;


= Reset este activ descrescator)
Reservat
Selectia ratei de contorizare pentru contori in cuadratura: (0 = rata de contorizare 4x;
1= rata de contorizare 1x)
SM37.3 Bit de control al directiei HSC0: (1 = crescator)
SM37.4 Actualizarea HSC0: (1 = actualizare).
SM37.5 Actualizarea valorii de preset a HSC0: (1 = scrie noua valoare de preset in zona de
preset a lui HSC0).
SM37.6 Actualizarea valorii curente a lui HSC0: (1 = scrie noua valoare curenta in zona curenta
a lui HSC0).
SM37.7 Bit de activare HSC0: (1 = activ).
SMB 38 - SMB 41
valoarea curenta noua a lui HSC0: SMB38 este MSB (Most Significant Byte) iar SMB41 este
LSB (Least Significant Byte)
SMB 42 - SMB 45
noua valoare prestabilita lui HSC0: SMB42 este MSB iar SMB45 este LSB.
b) HSC1 utilizeaza octietii speciali SMB46-SMB55
SMB46
SM46.0 - SM46.4
Reservat
SM46.5 Bit de stare indicand directia curenta de contorizare pt HSC1: 1 = crescator.
SM46.6 Bit de stare indicand daca valoarea curenta a lui HSC1 este egala cu valoarea
presetata: (1 = egala).
SM46.7 Bit de stare indicand daca valoarea curenta a lui HSC1 este mai mare decat valoarea
presetata: (1 = mai mare).
SMB47
SM47.0

Bit de control al nivelului activ pe reset: (0 = Reset este activ crescator;


1 = Reset este activ descrescator)
SM47.1 Reservat
SM47.2 Selectia ratei de contorizare pentru contori in cuadratura:

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 43/75

(0 = rata de contorizare 4x;


1= rata de contorizare 1x)
SM47.3 Bit de control al directieiHSC1: 1 = crescator.
SM47.4 Actualizarea HSC1: 1 = actualizare.
SM47.5 Actualizarea valorii de preset a HSC1: (1 = scrie noua valoare de preset in zona de
preset a lui HSC1).
SM47.6 Actualizarea valorii curente a lui HSC1: (1 = scrie noua valoare curenta in zona
curenta a lui HSC1).
SM47.7 Bit de activare HSC1: (1 = activ).
SMB48 - SMB51
noua valoare curenta a lui: SMB48 este MSB iar SMB51 este LSB.
SMB52 - SMB55
noua valoare de preset a lui HSC1: SMB52 este MSB iar SMB55 este LSB.
c) HSC2 utilizeaza octietii speciali SMB56-SMB65
SMB56
SM56.0 SM56.4 Reservati
SM56.5 Bit de stare indicand directia curenta de contorizare pt HSC: (1 = crescator).
SM56.6 Bit de stare indicand daca valoarea curenta a lui HSC2 este egala cu valoarea
presetata: (1 = egala).
SM56.7 Bit de stare indicand daca valoarea curenta a lui HSC2 este mai mare decat valoarea
presetata: (1 = mai mare).
SMB57
SM57.0

Bit de control al nivelului activ pe reset: (0 = Reset este activ crescator;


1 = Reset este activ descrescator)
SM57.1 Reservat
SM57.2 Selectia ratei de contorizare pentru contori in cuadratura: (0 = rata de contorizare 4x;
1 = rata de contorizare 1x)
SM57.3 Bit de control al directieiHSC2: (1 = crescator).
SM57.4 Actualizarea HSC2: (1 = actualizare).
SM57.5 Actualizarea valorii de preset a HSC2: (1 = scrie noua valoare de preset in zona de
preset a lui HSC2).
SM57.6 Actualizarea valorii curente a lui HSC2: (1 = scrie noua valoare curenta in zona
curenta a lui HSC2).
SM57.7 Bit de activare HSC2: (1 = activ).
SMB58 - SMB61
noua valoare curenta a lui: SMB58 este MSB iar SMB61 este LSB.
SMB62 - SMB65
noua valoare de preset a lui HSC1: SMB62 este MSB iar SMB5 este LSB.
SMB66 - SMB85 Octeti de programare ai generatorului de impulsuri (Pulse Output)
Octetii SMB66 - SMB85 controleaza si monitorizeaza trenul de impulsuri de iesire si functiile de
modulatie in impuls ale instructiunilor referitoare la generatorul de pulsuri.
d) PTO0 utilizeaza SMB66-SMB75
SMB 66
SM66.0 - SM66.3 Reservati
SM66.4 Tipul de abandon pt PTO0:

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 44/75

0 = fara eroare,
1 = datorita unei erori de calcul.
SM66.5 Tip de abandon pt PTO0:
0 = abandon printr-o comanda externa;
1 = prin comanda utilizator.
SM66.6 Depasirea limitei PTO0 (este stearsa cand se utilizeaza un tip exetrn , altfel e necesar
sa fie stearsa de utilizator):
0 = fara depasire;
1 = depasirea limitei.
SM66.7 Bit de inactivitate PTO0:
0 = PTO activ,
1 = PTO inactiv.
SMB67
SM67.0 Actualizarea valorii timpului de ciclare PTO0/PWM0:
1 = scrie noua valoare.
SM67.1 Actualizarea valorii lungimii pusului PWM0:
1 = scrie noua durata a pulsului.
SM67.2 Actualizeaza noua valoare de contorizare a pulsului PTO0:
1 = scrie noua valoare.
SM67.3 Baza de timp PTO0/PWM0:
0 = 1 us/tact,
1 = 1 ms/tact.
SM67.4 Actualizarea modului de urmarire PWM0:
0 = actualizare asincrona,
1 = actualizare sincrona.
SM67.5 Operatia PTO0:
0 = segment unic de operatie (timpul de ciclare si contorul de pulsare sunt
memorate in memoria SM );
1 = segment multiplu de operatie (tabelul tip este memorat in memoria V).
SM67.6 Selectia PTO0/PWM0: ( 0 = PTO; 1 = PWM.)
SM67.7 Bit de activare PTO0/PWM0: 1 = activ.
SMB68 - SMB69 Valoarea timpului de ciclare PTO0/PWM0 (2 la 65535 unitati de timp):
SMB68 este MSB (Most Significant Byte) iar SMB69 este LSB (Least Significant Byte).
SMB70 - SMB71 Valoarea lungimii pulsului PWM0 (0 - 65535 unitati de timp):
SMB70 esteMSB iar SMB71 este LSB.
SMB72 - SMB75
valoarea contorului de puls PTO0 (1 to 2^32 - 1);
SMB72 este MSB iar SMB75 este LSB.
e) PTO1 utilizeaza SMB76-SMB85
SMB76
SM76.0 - SM76.3
Rezervati
SM76.4 Ttipul de abandon pt PTO0:
0 = fara eroare,
1 = datorita unei erori de calcul.
SM76.5 Tip de abandon pt PTO0:
0 = abandon printr-o comanda externa;
1 = prin comanda utilizator.
SM76.6 Depasirea limitei PTO0 (este stearsa cand se utilizeaza un tip exetrn , altfel e necesar
sa fie stearsa de utilizator):
0 = fara depasire;
1 = depasirea limitei.
SM76.7 Bit de inactivitate PTO0 :

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 45/75

0 = PTO activ,
1 = PTO inactiv.
SMB77
SM77.0
SM77.1
SM77.2
SM77.3

Actualizarea valorii timpului de ciclare PTO0/PWM0: 1 = scrie noua valoare.


Actualizarea valorii lungimii pusului PWM0: 1 = scrie noua durata a pulsului.
Actualizeaza noua valoare de contorizare a pulsului PTO0: 1 = scrie noua valoare.
Baza de timp PTO0/PWM0:
0 = 1 us/tact,
1 = 1 ms/tact.
SM77.4 Actualizarea modului de urmarire PWM0:
0 = actualizare asincrona,
1 = actualizare sincrona.
SM77.5 Operatia PTO0:
0 = segment unic de operatie (timpul de ciclare si contorul de pulsare
sunt memorate in memoria SM );
1 = segment multiplu de operatie (tabelul profil este salvat in memoria V).
SM77.6 Selectia PTO0/PWM0:
0 = PTO;
1 = PWM.
SM77.7 Bit de activare PTO0/PWM0: 1 = activ.
SMB78 - SMB79 Valoarea timpului de ciclare PTO1/PWM1 (2 - 65535 unitati de timp):
SMB78 este MSB iar SMB79 este LSB.
SMB80 - SMB81 Valoarea lung pulsului PWM1 (0 - 65535 unitati de timp):
SMB80 este MSB iar SMB81 este LSB.
SMB82 - SMB85
valoarea contorului de puls PTO1 (1 to 2^32 - 1);
SMB82 e MSB iar SMB85 e LSB.
SMB86 SMB94
Octeti de programare utilizati in receptia mesajelor
Octeti 86 - 94 si 186 - 194 sunt folositi pentru controlul si citirea starilor in instructiunile de
receptie a mesajelor.
Port 0
SMB86

Port 1
SMB186

Byte de stare mesaj receptionat


MSB 7
LSB 0
n
r
e
0
0
t
c
p

n:1 = receptia mesajului terminata prin comanda utilizator


r:1 = receptia mesaj terminata: eroare in parametrii de intrare sau lipseste conditia de start si
stop
e:1 = receptionat caracter de sfarsit
t:1 = receptia mesajului terminata: timpul a expirat
c:1 = receptia mesajului terminata: s-au inregistrat numarul maxim de caractere
p:1 = receptia mesajului terminata datorita unei erori de paritate
SMB87

SMB187

Octet control receptie mesaj


MSB 7
LSB 0
en
sc
ec
il
C/
tm bk
0
m
r

en: 0 = functia de receptie a mesajului inactiva ;

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 46/75

1 = functia de receptie a mesajului activa.Bitul de activare / dezactivare este verificat la fiecare


executie a instructiunii RCV.
sc: 0 = ignora SMB88 sau SMB188;
1 = foloseste valoarea lui SMB88 sau SMB188 spre detectia inceputului mesajului.
ec: 0 = ignora SMB89 or SMB189;
1 = foloseste valoarea lui SMB89 sau SMB189 spre a detecta sfarsitul mesajului.
il: 0 = ignora SMW90 or SMB190;
1 = foloseste valoarea lui SMB90 sau SMB190 spre a detecta linie inactiva.
c/m:0 = timer-ul este unul inter-caracter;
1 = timer-ul este unul de mesaje.
tmr:0 = ignoreaSMW92 sau SMW192;
1 = receptia terminata daca perioada de timp in SMW92 sau SMW192 este depasit.
bk: 0 = ignora conditiile de intrerupere;
1 = foloseste conditia de intrerupere pentru a detecta unu nou mesaj.
Bitii de intrerupere ai mesajului sunt folositi spre a defini criteriul dupa care mesajul este
identificat.
Pentru a determina sfarsitul mesajului, sfarsitul activat este comparat prin SAU logic.
Ecuatiile penru start si stop sunt date mai jos:
Inceput = il * sc + bk * sc
Sfarsitul = ec + tmr + numarul maxim de caractere preluate
Metode de programare a inceputului de mesaj:
1. Detectie linie inactiva:
il=1, sc=0, bk=0, SMW90>0
2. Detectie caracter de start:
il=0, sc=1, bk=0, SMW90 nu are importanta
3. Detectia intreruperii:
il=0, sc=0, bk=1, SMW90 nu are importanta
4. Orice raspuns la cerere:
il=1, sc=0, bk=0, SMW90=0
5. Intreruperea si inceputul unui caracter:
il=0, sc=1, bk=1, SMW90 nu are importanta
6. Linie inactiva si caracter de inceput:
il=1, sc=1, bk=0, SMW90>0
7. Linie inactiva si caracter de inceput (ilegal):
il=1, sc=1, bk=0, SMW90=0
Nota: Receptia se incheie automat printr-o depasire de timp de executie sau eroare de paritate
(daca e activata).
SMB88

SMB188 Caracter de inceput de mesaj.

SMB89

SMB189 Caracter de sfarsit de mesaj.

SMB90
SMB91
SMB190 SMB191 Perioada de timp pentru linie inactiva este in milisecunde. Primul caracter
receptionat dupa expirarea timpului de linie inactiva este caracterul de inceput al noului mesaj.
SMB90 sau SMB190 sunt MSB iar SMB91 si SMB191 sunt LSB.
SMB92
SMB93
SMB192 SMB193 Valoarea extrema a timerului inter-caracter/mesaj este in milisecunde.
Daca perioada de timp este depasita , mesajul de receptie este terminat. SMB92 sau SMB192 e
MSB iar SMB93 sau SMB193 este LSB.
SMB94
SMB194 Numarul maxim de caractere receptionate (1 - 255 byte).
Nota: Acest domeniu trebuie sa fie setat la lungimea maxima permisa a buferului chiar daca
terminatorul de mesaj nu este folosit.
SMB 98

SMB99 Octeti de semnalare a erorilor de pe magistrala de estensii

Octetii 98 si 99 dau informatii despre numarul de erori pe magistrala de extensii pentru intrari/
iesiri.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 47/75

SMB98 SMB99 Aceasta locatie este incrementata de fiecare data cand este detectata o eroare
de paritate pe magistrala de extensie I/O.Este stearsa supa ce se realizeaza alimentarea si prin
inscrieriea valorii 0. SMB98 este MSB (Most Significant Byte).
SMB131 SMB165
Octeti de programare pentru numaratoarele rapide HSC3, HSC4 si HSC5
Octetii 131 - 165 sunt folositi spre a monitoriza si controla operatiile counter de mare
viteza.HSC3, HSC4 si HSC5.
a) Pentru HSC3
SMB131 - SMB135 Rezervati
SMB136
SM136.0 - SM136.4 Rezervati
SM136.5 Bit de stare indicand directia curenta de contorizare pt HSC3: 1 = crescator.
SM136.6 Bit de stare indicand daca valoarea curenta a lui HSC3 este egala cu valoarea
presetata: 1 = egala.
SM136.7 Bit de stare indicand daca valoarea curenta a lui HSC3 este mai mare decat valoarea
presetata: 1 = mai mare.
SMB137
SM137.0 -SM137.2 Rezervati
SM137.3 Bit de control al directiei HSC3 : 1 = crescator
SM137.4 Sensul de actualizare HSC3 : 1 = actualizare;
SM137.5 Valoare de preset actualizata HSC3: 1 = scrie noua valoare de preset
SM137.6 Valoare curenta actualizata HSC3 : 1 = scrie noua valoare curenta
SM137.7 Bit de activare HSC3: 1 = activ
SMB138 - SMB141 noua valoare curenta HSC3: SMB138 e MSB iar SMB141 e LSB
SMB142 - SMB145 noua valoare curenta HSC3: SMB142 e MSB iar SMB145 e LSB
b) Pentru HSC4
SMB146
SM146.0 - SM146.4 Rezervat
SM146.5 Bit de stare indicand directia curenta de contorizare pt HSC4: 1 = crescator.
SM146.6 Bit de stare indicand daca valoarea curenta a lui HSC4 este egala cu valoarea
presetata: 1 = egala.
SM146.7 Bit de stare indicand daca valoarea curenta a lui HSC4 este mai mare decat valoarea
presetata: 1 = mai mare.
SMB147
SM147.0 Bit de control al nivelului activ pt Reset:
0 = Reset e activ pe front crescator,
1 = Reset e activ pe front descrescator
SM147.1 Rezervat
SM147.2 Selectia ratei de contorizare:
0 = 4x ,
1 = 1x
SM147.3 bit control directie HSC4: 1 = crestere
SM147.4 sensul de actualizare HSC4: 1 = actualizare;
SM147.5 valoare de preset actualizata HSC4: 1 = scrie noua valoare de preset
SM147.6 valoare curenta actualizata HSC4 : 1 = scrie noua valoare curenta

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 48/75

SM147.7 bit de cativare HSC4 : 1 = activ


SMB148 - SMB151 noua valoare curenta HSC4: SMB148 e MSB iar SMB151 e LSB
SMB152 - SMB155 noua valoare curenta HSC4: SMB152 e MSB iar SMB155 e LSB
c) Pentru HSC5
SMB156
SM156.0 -SM156.4 Rezervat
SM156.5 Bit de stare indicand directia curenta de contorizare pt HSC5: 1 = crescator.
SM156.6 Bit de stare indicand daca valoarea curenta a lui HSC5 este egala cu valoarea
presetata: 1 = egala.
SM156.7 Bit de stare indicand daca valoarea curenta a lui HSC4 este mai mare decat valoarea
presetata: 1 = mai mare.
SMB157
SM157.0 Bit de control al nivelului activ pt Reset:
0 = Reset e activ pe front crescator,
1 = Reset e activ pe front descrescator
SM157.1 Rezervat
SM157.2 Selectia ratei de contorizare:
0 = 4x ,
1 = 1x
SM157.3 bit control directie HSC5: 1 = crestere
SM157.4 sensul de actualizare HSC5: 1 = actualizare;
SM157.5 valoare de preset actualizata HSC5: 1 = scrie noua valoare de preset
SM157.6 valoare curenta actualizata HSC5 : 1 = scrie noua valoare curenta
SM157.7 bit de cativare HSC4 : 1 = activ
SMB158 - SMB161 noua valoare curenta HSC5: SMB158 e MSB iar SMB161 e LSB
SMB162 - SMB165 noua valoare curenta HSC4: SMB162 e MSB iar SMB165 e LSB
SMB166 - SMB194
Octeti de programare PTO0 si PTO1 generatoare de tren de impulsuri
a) Pentru PTO0
SMB166 Numarul de intrare curent pentru profilul activ PTO0
SMB167 Rezervat
SMB168 -SMB169 Adresa memoriei V a tabelului de profil pentriu PTO0 data ca offset
incepand cu V0. SMB168 e MSB al adresei de offset
SMB170 -SMB175 Rezervati
b) Pentru PTO1
SMB176 Numarul de intrare curent pentru profilul activ PTO1
SMB177 Rezervat
SMB178 -SMB179 Adresa memoriei V a tabelului de profil pentriu PTO1 data ca offset
incepand cu V0. SMB178 e MSB al adresei de offset
SMB180 -SMB194 Rezervat
SMB200 SMB299 Octeti de cu informatii de stare privind modulele inteligente de extensii
SMB200 - SMB299 sunt rezervati pentru informatiile de stare privind modulele de extensie ca
EM 277 PROFIBUS-DP. SMB200 pana la SMB249 sunt rezervati pentru primul modul inteligent
de extensie (cel mai apropiat de CPU); SMB250 - SMB299 sunt rezervati pentru al doilea modul
inteligent de extensie.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 49/75

2.6 Intreruperi si comunicare


Tratarea intreruperilor se face pe baza de evenimente asociate lor. Segmentul de
program care trateaza evenimentul este o rutina speciala denumita rutina de intrerupere (INT).
La aparitia evenimentului logica secventiala de parcurgere a ciclului scan este rupta, controlul
fiind dat rutinei de intrerupere. Dupa tratarea intreruperii programul de aplicatie revine in
punctul in care a fost intrerupt si continua executia secventiala din exact acelasi context in care
a fost intrerupt.
In aceasta tratare se opereaza cu trei entitati:
A) eveniment generator de intrerupere
B) rutina de tratare a intreruperii
C) legatura dintre ele
A Prezentarea evenimentelor generatoare de intreruperi si a prioritatii de rezolvare
Nr
ev

Descrierea intreruperi

8
9
23
24
25
26
19

Intrerupere la receptie de caracter pe Port 0


Intrerupere la transmisie de mesaj pe Port 0
Intrerupere la receprie mesaj complet pe Port 0
Intrerupere la receprie mesaj complet pe Port 1
Intrerupere la receptie de caracter pe Port 1
Intrerupere la transmisie de mesaj pe Port 1
PTO 0 intrerupere a pulsului de numarare
completa
PTO 1 intrerupere a pulsului de numarare
completa
Front crescator, I 0.0
Front crescator, I 0.1
Front crescator, I 0.2
Front crescator, I 0.3
Front descrescator, I 0.0
Front descrescator, I 0.1
Front descrescator, I 0.2
Front descrescator, I 0.3
HSC0 CV=PV (valoare curenta=valoare presetata)
HSC0 schimbarea directiei de intrare
HSC0 reset extern
HSC1 CV=PV (valoare curenta=valoare presetata)
HSC1 schimbarea directiei de intrare
HSC1 reset extern
HSC2 CV=PV (valoare curenta=valoare presetata)
HSC2 schimbarea directiei de intrare
HSC2 reset extern
HSC3 CV=PV (valoare curenta=valoare presetata)
HSC4 CV=PV (valoare curenta=valoare presetata)
HSC4 schimbarea directiei de intrare
HSC4 reset extern
HSC5 CV=PV (valoare curenta=valoare presetata)
Intrerupere la intervale de timp programabile 0
Intrerupere la intervale de timp programabile 1

20
0
2
4
6
1
3
5
7
12
27
28
13
14
15
16
17
18
32
29
30
31
33
10
11

Prioritate

Unitati centrale
2
1
0

0
0
0
1
1
1
0

2
1
2
X
X

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
0
1

2
1
4
X
X

2
1
5
X
X
X

2
2
1
X
X
X

2
2
2
X
X
X

2
2
4
X
X
X

2
1
6
X
X
X
X
X
X
X

2
2
6
X
X
X
X
X
X
X

X
X

X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X

X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

X
X

X
X

X
X

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 50/75

21
22

Timer T32
presetata)
Timer T96
presetata)

CT=PT

(valoare

curenta=valoare

CT=PT

(valoare

curenta=valoare

Stabilirea nivelului de prioritate pentru tratarea intreruperilor se face in urmatoarea


ordine, prezentata mai jos:
Intreruperea data de portul de comunicatia de date are asignata cea mai mare prioritate
Intreruperile generate de intrari/iesiri (inclusiv HSC si generatoarele de trenuri de impulsuri de
la iesire)
Intreruperile generate la un interval de timp programabil cea mai mica prioritate
Coada de asteptare
Intreruperile sunt servite de interfata controler de intreruperi pe baza principiului, prima venita
prima servita, luandu-se in seama prioritatile asignate lor.
Numai o rutina de intrerupere programata de utilizator este servita la un moment dat in timp.
Daca se seveste o intrerupere pe interval de timp programabil, nici o alta intrerupere discreta
care apare pe parcurs pe o secventa de biti sau o intrerupere de comunicare nu poate fi servita
in acelasi cu rutina de intrerupere la un interval de timp programabil.
Intreruperile care apar in timpul servirii altei intreruperi sunt puse intr-o coada de asteptare
pentru a fi procesate mai tarziu.
Coada de asteptare a unei intreruperi de comunicare ofera loc de stocare pentru caracterul
receptionat si indicatorul de paritate pentru acel caracter. .
Cateodata, pot aparea mai multe intreruperi decat marimea cozii de asteptare. Atunci, bitii de
memorie care depasesc marimea cozii de asteptare (identifica tipul de intrerupere care s-ar
putea pierde) sunt memorati de catre sistem. SMB04 se ocupa de gestionarea acestor cozi.
Acesti biti de stare sunt resetati cand coada de asteptare este goala si controlul este atunci
transferat programului principal.
Suportul oferit de sistem pentru lucru in intreruperi
Deoarece starea contactelor (intrari), bobinelor (iesiri ) si continutul acumulatorilor logici pot fi
afectati de intreruperi, sistemul salveaza si reincarca valorile logice din stiva,
registrii
acumulator si din bitii speciali de memorie (SM) care indica starea acumulatorului si operatiile
facute
Validare/invalidare globala
Cand utilizatorul trece pe mod RUN, se invalideaza intreruperile. Daca s-a intrat in mod RUN,
utilizatorul poate valida toate intreruperile executand o instructiune de validare globala a
intreruperilor (ENI). Instructiunea de invalidare globala a intreruperilor face ca intreruperile sa
fie puse intr-o coada de asteptare, dar nu permite ca rutinele de intrerupere sa fie apelate
(DISI).
Setarea intreruperilor
Inainte ca utilizatorul sa apeleze o rutina de intrerupere, trebuie stabilita o asociere intre
intreruperea respectiva si subrutina de program pe care dorim sa se execute la aparitia
aceastei intreruperi. Instructiunea de atasare (ATCH) asociaza unei intreruperi (specificata de
numarul intreruperii) un segment de program (specificat de numarul rutinei de intrerupere).
Utilizatorul poate atasa mai multe intreruperi unei singure rutine de intrerupere, dar un
eveniment nu poate fi atasat la mai multe rutine de intrerupere. Cand apare un eveniment si
intreruperile sunt validate, numai ultima rutina de intreruperi atasata acestui eveniment este
executata.
Utilizatorul poate invalida o anumita intrerupere anuland asocierea dintre evenimentul care
genereaza intrerupere si rutina de servire a intreruperii folosind instructiunea de dezatasare

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 51/75

(DTCH). Instructiunea de dezatasare returneaza intrerupere inactiva sau determina a stare de


ignorare.
B Rutine de intreruperi
Exista maxim 128 de rutine de intreruperi intr-un program. Se creaza prin:
Utilizatorul poate specifica fiecare rutina de intrerupere printr-o eticheta care marcheaza
punctul de intrare in rutina. Rutina consta in toate instructiunile dintre eticheta de intrerupere
si comanda de intoarcere/revenire neconditionata cu care se incheie obligatoriu o subrutina de
tratare a intreruperii. Utilizatorul poate iesi din rutina (si sa dea controlul programului
principal) executand o returnare neconditionata din instructiunea de intrerupere (CRETI) sau
executand o instructiune de returnare conditionata din instructiunea de intrerupere.
Intotdeauna este necesara instructiunea de returnarea neconditionata.
Modalitati de utilizare a intreruperilor
Pentru intreruperi, axioma, cu cat mai scurta, cu atat mai buna
Restrictiile pentru folosirea rutinei de intrerupere
Toate rutinele de intrerupere se pun dupa sfarsitul programului principal.
Nu se pot folosi instructiunile DISI, ENI, CALL, HDEF, FOR/NEXT si END intr-o rutina de
intrerupere
Utilizatorul trebuie sa termine fiecare rutina de intrerupere cu o returnare neconditionata din
instructiunea de intrerupere (CRETI)
Crearea unei rutine de intreruperi:

Instructiuni de utilizare a intreruperilor

Asociaza evenimentului Event (precizat


prin numarul sau Tabelul initial) rutina
de intrerupere INT

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 52/75

Instructiuni de comunicare

XMT= Instructiunea efectueaza o transmisie a datelor


dintr-un buffer care a re o structura:
- pe prima pozitie se specifica numarul octetilor de
transmis (<255)
- restul octetilor cuprind datele efectiv de transmis.
- operandul Port precizeaza numarul portului serial pe
care se face trimiterea (port configurat in prealabil prin
SMB)
RCV=incepe sau termina un serviciu de receptie mesaje;
trebuie specificate conditiile de inceput si de sfarsit pentru
Mediu de dezvoltare STEP 7 MICRO/WIN
32
pag. 53/75
ca instructiunea
sa lucreze; datele preluate de la portul
precizat sunt stocate intr-un tabel cu acceasi structura ca

si la XMT

Structura tabelului de definire


a comunicatiei in retea

Rutine de intreruperi utilizate in comunicatie

GPA = Get Port Address citeste adresa statiei PLC


pe portul specificat depanand rezultatul la ADDR

SPA = Set Port Address seteaza adresa statiei la valoarea


precizata in parametrul ADDR ; noua adresa nu este permanenta
Mediu de dezvoltare STEP 7 MICRO/WIN 32
pag. 54/75
ci pana la o pierdereaa limentarii; la revenirea tensiunii adresa
de download se repune

2.7 Numaratoarele de viteza


Numaratoarele de viteza mare numara evenimentele ce apar cu frecventa ridicata si
care nu pot fi controlate de rata de scanare a automatului programabil.
Numaratoare de viteza pot fi configurate pentru unu din cele 12 moduri diferite de
functionare. Modurile de numarare sunt prezentate in tabelul urmator:
HSC0
Mod
0
1

Descriere
Numarator sus/jos cu o singura faza cu control
al directiei intern
SM37.3=0, numara in jos
SM37.3=1, numara in sus

3
4

Numarator sus/jos cu o singura faza cu control


al directiei extern
I0.1=0, numara in jos
I0.1=1, numara in sus

6
7

Numarator cu doua faze cu intrari pe ceas


pentru numarare in sus si numarare in jos

9
10

Numarator in quadratura cu fazele A/B, faza A


este defazata cu 90 de grade fata de faza B
pentru rotatia axei in sensul acelor de
ceasornic, faza B este defazata cu 90 de grade
fata de faza A pentru rotatia axei traductorului
numaratorului in sensul acelor de ceasornic.

HSC1
Mod
0
1
2
3
4

Descriere
Numarator sus/jos cu o singura faza cu control
al directiei intern
SM47.3=0, numara in jos
SM47.3=1, numara in sus
Numarator sus/jos cu o singura faza cu control
al directiei extern

I0.0

I0.1

I1.2
Reset

Clock

Dir.
Reset

Clock

Clock
(in
sus)

Clock
(in
jos)

Clock
faza A

Clock
faza B

I0.6

I0.7

Reset

Reset

I1.0

I1.1

Reset

Clock

Start
Clock

Dir.
Reset

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 55/75

I0.7=0, numara in jos


I0.7=1, numara in sus

6
7
8

Numarator cu doua faze cu intrari pe ceas


pentru numarare in sus si numarare in jos

9
10
11

Numarator in quadratura cu fazele A/B, faza A


este defazata cu 90 de grade fata de faza B
pentru rotatia axei in sensul acelor de
ceasornic, faza B este defazata cu 90 de grade
fata de faza A pentru rotatia axei traductorului
numaratorului in sensul acelor de ceasornic.

HSC2
Mod
0
1
2

Descriere
Numarator sus/jos cu o singura faza cu control
al directiei intern
SM57.3=0, numara in jos
SM57.3=1, numara in sus

3
4
5

Numarator sus/jos cu o singura faza cu control


al directiei extern
I1.3=0, numara in jos
I1.3=1, numara in sus

6
7
8

Numarator cu doua faze cu intrari pe ceas


pentru numarare in sus si numarare in jos

9
10

Numarator in cuadratura cu fazele A/B, faza A


este defazata cu 90 de grade fata de faza B
pentru rotatia axului in sensul acelor de
ceasornic, faza B este defazata cu 90 de grade
fata de faza A pentru rotatia axului
numaratorului in sensul acelor de ceasornic.

11

HSC3
Mod
0

HSC4
Mod
0
1

Descriere
Numarator sus/jos cu o singura faza cu control
al directiei intern
SM137.3=0, numara in jos
SM137.3=1, numara in sus

Descriere
Numarator sus/jos cu o singura faza cu control
al directiei intern
SM147.3=0, numara in jos
SM147.3=1, numara in sus
Numarator sus/jos cu o singura faza cu control

Start

Clock
(in
sus)

Clock
(in
jos)

Clock
faza A

Clock
faza B

I1.2

I1.3

Reset
Start

Reset
Start

I1.4

I1.5

Reset

Clock

Start
Dir.
Reset

Clock

Clock
(in
sus)

Start
Clock
(in
jos)

Reset
Start

Reset
Clock
faza A

Clock
faza B

I0.1
Clock

I0.3

I0.4

Reset

Clock

Clock

I1.5

Dir.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 56/75

al directiei extern
I0.4=0, numara in jos
I0.4=1, numara in sus

6
7

Numarator cu doua faze cu intrari pe ceas


pentru numarare in sus si numarare in jos

9
10

Numarator in quadratura cu fazele A/B, faza A


este defazata cu 90 de grade fata de faza B
pentru rotatia axei in sensul acelor de
ceasornic, faza B este defazata cu 90 de grade
fata de faza A pentru rotatia axei traductorului
numaratorului in sensul acelor de ceasornic.

HSC5
Mod
0

Descriere
Numarator sus/jos cu o singura faza cu control
al directiei intern
SM157.3=0, numara in jos
SM157.3=1, numara in sus

Reset

Clock
(in
sus)

Clock
(in
jos)

Clock
faza A

Clock
faza B

Reset

Reset

I0.4
Clock

Fiecare numarator are dedicate intrari pentru ceas, controlul directiei, resetare si start
acolo unde aceste functii sunt suportate. Frecventa maxima la intrarea de ceas pentru HSC1 si
HSC2 este 7KHz. Pentru numaratoarele cu doua faze, ambele ceasuri pot functiona pe 7KHz.
In modul cuadratura, o optiune este aceea de a selecta 1x sau 4x rata de numarare. La
rata 1x, rata de numarare maxima este 7KHz si pentru rata 4x, rata maxima de numarare este
28KHz. HSC1 si HSC2 sunt complet independenti unul fata de celalalt si nu afecteaza alte
functii de viteza.
Ambele numaratoare functioneaza la rata maxima fara a interfera cu un altul.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 57/75

Modurile de functionare 0,1,2

Modurile de functionare 3,4,5

Modurile de functionare 6,7,8

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 58/75

Modurile de functionare 9,10,11 cu cuadratura 1x

Modurile de functionare 9,10,11 cu cuadratura 4x

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 59/75

Instructiuni pentru numaratoarele rapide

Instructiunea de definire a numaratorului de mare


viteza :
-ataseaza modul de lucru al numaratorului de la 011 in functie de tipul numaratorului

Instructiunea HSC cheama operatia definita in bitii


de memoriei speciala ai numaratorului aferent (N
indica numarul numaratorului)

2.8 Iesiri de viteza


CPU permite ca Q0.0 si Q0.1 sa genereze trenuri de impulsuri la iesirile de viteza (PTO)
sau sa controleze modularea in latime a semnalului (PWM)- factor de umplere variabil.
Functia PTO ofera o iesire de unda patrata (factorul de umplere de 50%) pentru un
numar specificat de impulsuri si un ciclu de timp fix. Numarul de impulsuri poate fi specificat
intre 1 si 4.294.967.295 de impulsuri. Ciclu de timp poate fi specificat fie in microsecunde intre
250 si 65.535, fie in milisecunde intre 2 si 65.535. Specificand orice numar de microsecunde
sau milisecunde mai mare decat limita impusa, duce la distorsionarea factorului de umplere.
Functia PWM ofera un ciclu de timp fix si o iesire variabila a factorului de umplere. Ciclu
de timp si latimea semnalului pot fi date fie in microsecunde, fie in milisecunde. Ciclu de timp
poate fi specificat fie in microsecunde intre 250 si 65.535, fie in milisecunde intre 2 si 65.535.
Latimea semnalului poate fi fie de la 0 la 65.535 microsecunde, fie de la 0 la 65.535
milisecunde. Cand latimea semnalului este egala cu ciclu de timp, factorul de umplere este 100
si iesirea este tot timpul pornita. Cand latimea semnalului este 0, factorul de umplere este 0 si
iesirea este oprita. Daca ciclu de timp specificat este mai mic decat doua unitati de timp,
valoarea implicita a ciclului de timp va fi doua unitati de timp.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 60/75

Apelarea operatiilor PTO/PWM


Fiecare generator de PTO/PWM are un octet de control (8 biti), valoarea ciclului de timp si
valoarea latimii semnalului sunt fara semn pe 16 biti si valoarea semnalului de numarare este o
valoare fara semn pe 32 de biti. Aceste valori sunt memorate in arii de memorie speciale de biti
de memorie. Odata ce aceste locatii de memorie speciala a bitului de memorie au fost setate sa
faca operatia dorita, operatie ce se executa cu instuctiunea de semnal (PLS). Aceasta
instructiune duce la citirea memorie speciale a bitului de memorie si a programului generat de
PTO/PWM.
Instructiuni pentru iesiri rapide

Executa impulsuri in formatul precizat prin


SMB pe Q0.0 sai Q0.1

Exemple de utilizare a intrarilor si iesirilor rapide


Exemplu 1:
Programul prezentat spre exemplu are drept scop realizarea unei baleieri de frecventa in gama
400Hz-1200Hz intr-un timp de aproximativ 500 microsecunde. In acest scop s-a programat
PTO 1 sa genereze un singur semnal cu o frecventa de 400Hz , la pornirea lui PTO 1 se
porneste simultan cu el un timer.Cand PTO 1 a terminat de generat un semnal intra intr-o
rutina de intrerupere unde creste frecventa cu un ecart de aproximativ un Hz pana cand ajunge
la 1200 Hz, atunci citeste valoarea timerului si o trimite spre afisare la TD 200.
//program principal (main)
NETWORK 1
LD
SM0.1
S
V14.7, 1
CALL SBR_0
NETWORK 2
LD
M1.0
S
Q1.0, 1
TON
T32, +10000
PLS
1
ATCH INT_0, 20
ENI
NETWORK 3
LD
M10.1
MOVW +0, T32
MOVW
VW105, VW39
semnalul
(VW105)
R
M10.1, 1

//la primul ciclu scan


//setez activ bitul de afisare mesaj pe TD 200
//apelez subrutina de initializere PTO
//daca s-a cerut de la TD200 masuratoare
//setez iesirea Q1.0 in 1
//timer activ 10 sec
//pornesc PTO 1
//atasez intrerupere pe evenimentul 20 (PTO a terminat de generat)
//validare intrerupere
//daca a terminat de generat semnalele stabilite
//pun timerul T32 in 0
//pune in variabila de afisare (VW39) timpul in care a generat
//resetez bit gata generare

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 61/75

R
R
CALL

M1.0, 1
Q1.0, 1
SBR_0

//resetez cerere masuratoare


//resetez iesirea Q1.0
//apelez subrutina de initializare

//suburutina de initializare (SBR_0)


NETWORK 1
LD
SM0.0

//la fiecare ciclu scan (de cate ori e apelata subrutina)

//initializare PTO 1 sa genereze un semnal de frecventa 400Hz


MOVW
+2500, VW102
//se stabileste frecventa initiala la 400Hz (2500
microsecunde)
MOVB 16#85, SMB77
//mut 85 hexa in octetul de setare pentru PTO 1 (SMB77)
MOVW VW102, SMW78
//cate microsecunde tine un semnal
MOVD +1, SMD82
//mut in SMD82 numarul de semnale care trebuie sa le
genereze
// rutina de intrerupere(INT_0)
NETWORK 1
LDW< VW102, +800
1200 HZ
//atunci
MOVW
S
DTCH
R
1
PLS

//daca frecventa curenta a semnalului este mai mare decat

opresc PTO 1 si citesc timpul cat a generat PTO 1 semnale


T32, VW105
//citesc valoare timer T32
M10.1, 1
//setez bit de terminare generare semnale
20
//dezactivare int_0 atasata evenimentului 20
SM77.7, 1
//resetez din octetul de setare a lui PTO 1 bitul de validare a lui PTO
1

//reapelez PTO 1 cu bit de validare 0 pentru a opri PTO

NETWORK 2
LDW>= VW102, +800//daca frecventa curenta a semnalului este mai mica sau egala decat
1200HZ
-D
+7, VD100
//decrementez frecventa cu (7 microsecunde) aproximativ 1
Hz
MOVW VW102, SMW78
//50=cate microsecunde tine un semnal
PLS
1
//reapelez PTO 1
Exemplul 2:
In exemplu urmator vom prezenta un program care utilizeaza doua HSC-uri si un PTO. Astfel
cand pe HSC 1 apare un semnal acesta va numara 5 astfel de semnale dupa care genereaza o
rutina de intrerupere (INT_0) unde va fi reprogramat sa numere 25 semnale, se reporneste
HSC 1 si in acelasi timp se porneste si PTO 0 si HSC 0, cand numarul de semnale numarat de
HSC 1 este egal cu noua valoare presetata (25) acesta va genera din nou rutina de intrerupere
(INT_0) unde se va citi valoarea masurata de HSC 0, HSC 0 numarand semnalele generate de
PTO 0. Cunoscand numarul semnalelor numarate de HSC 1 si frecventa semnalului generat de
PTO 0 si citind numarul semnalelor numarate de HSC 0 putem calcula frecventa semnalului citit
pe HSC 1, frecventa care este apoi trimisa spre afisare la TD 200.
//programul principal (main)
NETWORK 1
LD
SM0.1

//la primul ciclu scan

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 62/75

S
CALL

V14.7, 1
SBR_0

//setez activ bitul de afisare mesaj pe TD 200


//apelez subrutina de init.

NETWORK 2
LD
M10.0
AD>
VD100, +0

//daca bit executie este 1


//si s-a citit un numar de semnale dif. de zero din PTO

//calculeaza frecventa din numarul de semnale


MOVD
+1000000, VD150
//pun in VD150 (nr.de semnale/durata_PTO)/10^6
*D
+50, VD150
//50*VD150
/D
VD100, VD150
//nr_din PTO/VD150
MOVD
VD150, VD42
//pun rezultatul in vd44 pentru TD 200
MOVD
VD100, VD56
//pun in TD200 nr. de semnale generate
NETWORK 3
LD
M10.0
TON
T37, +10

//daca bit executie este 1


//pornesc timerul T37 pentru o secunda

NETWORK 4
LD
T37
A
M10.0
CALL
SBR_0

//daca a trecut timpul de o secunda


//daca bit executie este 1
//apelez subrutina de initializare

Legenda:
-albastru instructiuni din STEP7;
-verde comentariu.
//subrutina de initializare (SBR_0)
NETWORK 1
LD
SM0.0
R
M10.0, 1

//la fiecare ciclu scan


//resetez bit executie

//curata variabila de afisare


MOVD +0, VD42
MOVD +0, VD56
//initializare HSC 1
MOVB 16#F8, SMB47
HDEF
1, 0
MOVD +0, SMD48
MOVD +5, SMD52
MOVB 5, VB200
HSC
1
//initializare HSC 0
MOVB 16#F8, SMB37
HDEF
0, 0
MOVD +0, SMD38
MOVD +65535, SMD42
//initializare PTO 0
MOVB 16#85, SMB67
MOVW +50, SMW68
MOVD +65535, SMD72

//mut F8 hexa in octetul de setare pentru HSC 1 (SMB47)


//setez modul de lucru pentru HSC 1
//pun valoare presetata 0
//cate semmale sa numere
//pun in VB200 cate semnale ar trebui sa numere
//pornesc HSC 1
//mut F8 hexa in octetul de setare pentru HSC 0 (SMB37)
//setez modul de lucru pentru HSC 0
//pun valoare presetata 0
//cate semnale sa numere
//mut 85 hexa in octetul de setare pentru PTO 0 (SMB67)
//50=cate microsecunde tine un semnal
//cate semnale sa genereze

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 63/75

//curata variabile de lucru


MOVD +0, VD100
MOVD +0, VD150
//apeleaza rutina de interupere
ATCH INT_0, 13
//intrerupere pentru HSC 1
ENI
//validare intrerupere

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 64/75

3. Terminale pentru afiare i comunicare


3.1 Terminalul TD 200
Pentru Configurarea Panelului TD 200 se procedeaz dupa cum urmeaz:
A) La nivelul terminalulul TD

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 65/75

Se utilizeaza M5 (8 biti)
pentru validarea
functiilor F1-F4

SHIFTF1SHIFTF4

- Zona VB0 este rezervata pentru cei


12 octeti ai blocului de parametrii de
definitie
- VB12.0-VB12.2 (3 mesaje) corespund
validarii celor 3 mesaje
- Primul mesaj incepe la VB32 si are 40
de octeti

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 66/75

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 67/75

B) in automatul programabil
- din intrarea analogica de tensiune se transfera in VW43 valoarea
MOVW

AIWx,VW43

presupunand ca valoarea de curent este o valoare de configurare


cand se editeaza valoarea, dupa validare se activeaza bitul V61.2
verificarea acestui bit poate duce la transferul valorii de curent din locatia VW63
LD V61.2
MOVW VW63, in locatia unde se fac alte calcule
acelasi procedeu se utilizeaza si cu alte mesaje;
la aparitia unor biti M5 (ce corespund celor 8 functii) se fac actiuni de afisare ale diferitelor
ecrane
(de exemplu la F1 (M5.0) se afiseaza ecranul cu primul mesaj care se realizeaza prin setarea
bitului corespunzator V12.0)
Observatii
1) programarea TD 200 se efectueaza in zonele de memorie ale automatului, zone
contigue, care nu pot fi utilizate pentru altceva
2) dupa programarea TD 200 trebuie facut Download (ca dupa orice modificare de
program)
3) se pot concepe mesaje de meniuri imbricate
4) setul de caractere speciale internationale ce pot fi afisate

5) setul de caractere in modul Bar Graf


cand se introduc datele se apasa ALT + combinatie pentru zonele in cauza

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 68/75

3.2 Terminalul TP 070


Pentru programare se utilizeaza un program special TP Designer.
Aplicatia TP Designer este un instrument soft usor de utilizat care permite crearea de
ecrane pentru Touch Panel TP070 Simatic HMI.
Fiecare ecran contine unul sau mai multe controale, care sunt afisaje de date si elemente de
atingere (touch elements) pe care operatorul le utilizeaza spre a citi date sau pentru a da
comenzi dispozitivului TP 070. Dispozitivul TP 070 permite utilizatorului sa realizeze controlul
masinii sau al procesului.
Folosirea aplicatiei TP 070 presupune configurarea controalelor prin asignarea
de tag-uri si functii care permit TP sa interactioneze cu programul S7-200. Se pot
deasemenea plasa imagini pe ecran pentru a realiza o prezentare sau pentru animatie.
Butoanele de stare (State Button) pot afisa atat imagini cat si text.
Instrumentele care sunt puse la dispozitie sunt:
Screens
Controls
Tags
Events/ Functions
Images
a) Screens

(Ecrane)

Se pot crea pana la 30 de ecrane pentru controlul procesului. In mod normal ecranele
au definite o ierarhie.
La punerea sub tensiune TP 070 contine un Ecran.
Se poate defini un control , spre exemplu un buton de stare, spre a incarca si afisa un ecran
distinct la apasarea butonului.
b) Controls (Controale)
Prin intermediul controalelor si al proprietatilor acestora, se defineste modul de interactionare
al operatorului cu dispozitivul TP 070. Sunt definite urmatoarele controale.
Input
Output
State Button
Text
Bar
Graphic

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 69/75

c) Tags (Locatii de memorie destinatie)


Tagurile sunt locatii de memorie in PLC. TP poate citi si scrie din/in urmatoarele locatii de
memorie: Input (I), Output (Q), Flag (M), Variable (V), Timer (T), si Counter (C).
d) Events/Functions (Evenimente/Functii)
Functiile transmit dispozitivului o anumita actiune care se va realiza.
De exemplu se poate folosi functia Change mode pentru a pune TP in unul din urmatoarele
moduri de operare :
Online: este modul normal de operare in care TP-ul comunica cu S7-200
Offline: comunicatia este dezactivata ; acest mod este utilizat pentru Debugger si pentru
aplicarea unor functii logice de deconectare a TP fara a mai fi necesara deconectarea cablului
de comunicatie.
Serial Download: in acest mod TP opreste comunicatia si asteapta descarcarea unei noi aplicatii
TP Designer.
Evenimentele (events) sunt actiuni care permit intreruperea functiilor.
Pentru un buton de stare exemplu de evenimente posibile sunt OnButtonUp si
OnButtonDown.
e) Images

(Imagini)

Se pot incarca fisiere bitmap intr-o aplicatie TP, ele devenind in acest fel imagini active in
aplicatie. Odata ce o imagine bitmap a fost incarcata ei i se pot atribui controale grafice si
controalele butoanelor de stare.
Ecranul principal al aplicatiei TP Designer
Bara de meniuri

Bara grupuri de control

Bara de instrumente

Structura proiect

Zona de ecran

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 70/75

Menu Bar

File

Edit

View Setup

Help

Opiunea FILE

CreeazaunnoufisierTP.
DeschideunfisierdeconfigurareaTPexistent.
Salveazafisierulactiv.

Compileazafisierulactiv.

TransmitefisierulactivcatreTP

Afiseaza proprietatile fisierului activ

Opiunea EDIT

TaiezonaselectatasioplaseazainClipboard.
CopiazzonaselectatasioplaseazainClipboard.
InsereazacontinutulClipboard.

Insereazaunnouecran,control,tagsauimagine.
Stergezonaselectata.

Opiunea VIEW

Activeazaecranulprecedent.
Activeazaecranulurmator.
Activeazalistadetaguri.
Activeazalistadeimagini.
Activeazalistarezultatelor.
ActiveazasauascundeBaradeControale.
ActiveazasauascundeStructuraproiectului.
ActiveazasauascundeBaradeControalesaupeceaStandard.
Activeazasauascundegridul.
Activeazasauinactiveazamodeluldegridimplicit.

Opiunea SETUP

Mediu de dezvoltare STEP 7 MICRO/WIN 32

Selecteazaolimbadecirculatieinterationala.
ConfigureazacomunicatiaintreTPDesigner,S7200
siTP070.

pag. 71/75

Opiunea HELP

AceseazasistemulHelp.
I f

ii

Toolbars
Se regasesc instrumentele principale din meniurile anterior enumerate:
New
Open
Save
Cut
Copy
Paste
Compile
Download
Showgrid
Snapgrid
Zoom
Bara grupurilor de control: permite inserarea controalelor prin click pe icoana corespunzatoare
Introduce un control de intrare pe ecranul activ.
Introduce un control de intrare pe ecranul activ.
Introduce controlul unui buton de stare.
Introduce un control de tip text.
Introduce un control indicator
Introduce un control grafic.
Acelasi lucru se poate face si cu bara instrumentelor de control.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 72/75

Project Tree : se foloseste pentru navigarea rapida in cadrul proiectului

Screen Design Area : permite realizarea designului in ecran. Prin click dreapta se pot realiza
functii de copiere, decupare, aplicare, etc

Proiectarea cu TP Designer
Etapa 1
1) Se creaza ecrane cu design-ul dorit.
2) In

ecrane se definesc controale care pot fi


butoane (care genereaza actiuni)
intrari pentru variabile
iesiri pentru vizualizare variabile
texte
bar grafuri
imagini grafice de tip bitmap

3) pentru controalele care au legatura cu PLC-ul se asociaza Tag-uri prin care se precizeaza
modul de afisare pe ecran (nr, de puncte zecimale, latime, etc.)
culoare, font ales penttru afisare
prin Value permite asocierea cu PLC-ul: tipul variabilei si numarul acesteia
prin Function se precizeaza rolul controlului in proces (Bit de selectie, bit de reset,
selectare de ecran, setare de bit, valoare ce se poate incrementa)
4) din meniul principal se poate vizualiza lista tag-urilor, lista imaginilor si lista rezultatelor.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 73/75

Etapa 2 = Dupa proiectare programul se incarca in memoria TP prin Download.


Transferul efectiv se face la punerea sub tensiune a TP-ului si apasarea in acesta a butonului
Transfer. Apoi din program se da Download
Etapa 3 = Se transfera conectorul din calculator TP

intre

PLC - TP.

Etapa 4 =Automatul interactioneaza cu TP-ul.

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 74/75

Bibliografie
1) SIMATIC Programming with STEP 7 Manual - Edition 03/2006 - A5E00706944-01
2) SIMATIC Working with STEP 7 Getting Started - Edition 03/2006 - C79000-P7076-C4801
3) SIMATIC S7-200 Programmable Controller System Manual - Edition 05/2003 A5E00212536-02
4) SIMATIC Automate programmable S7-200 Manuel systme - Edition 08/2008 A5E00307988-04
5) SIMATIC Configuring Hardware and Communication Connections with STEP 7
Manual - Edition 03/2006 - A5E00706939-01
6) SIMATIC Standard Software for S7 and M7 STEP 7 User Manual - C79000-G7076C552-01
7) SIMATIC First Steps with STEP 7 Lite V3.0 - Edition 04/2004 - A5E00293886-01
8) Configuration a Profibus-DP node using Step7 and WAGO-I/O components
Application note - 2007 by WAGO Kontakttechnik GmbH & Co. KG
9) SIMATIC STEP 7 Micro/DOS User Manual C79000G7076C20603

Mediu de dezvoltare STEP 7 MICRO/WIN 32

pag. 75/75

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