microwin s7 200 norestriction

75
Pag. 1/75 Material suport pentru stagii de practica in domeniul dezvoltarii software pentru automatizari MEDIU DE DEZVOLTARE STEP 7 MICRO/WIN 32

Upload: manuela88

Post on 27-Dec-2015

91 views

Category:

Documents


3 download

DESCRIPTION

Siemens MicroWin S7-200

TRANSCRIPT

Pag. 1/75

 

Material suport pentru stagii de practica in domeniul dezvoltarii software pentru

automatizari MEDIU DE DEZVOLTARE STEP 7 MICRO/WIN 32

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 2/75  

 

CUPRINS

 

1.  Prezentare generală a mediului de programare Step 7 MICRO/WIN 32 ........................................................3 1.1 Meniu principal .........................................................................................................................................3 1.2 Formate de generare a unui program de aplicatie ...................................................................................7 1.3 Schimbul de date program‐PLC .................................................................................................................9 1.4 Configurarea blocului sistem .................................................................................................................. 10 1.5 Vizualizari ale variabilelor din program .................................................................................................. 14 1.6 Alte operatii de configurare ................................................................................................................... 16 

2. Programarea in STEP 7‐200 ........................................................................................................................... 17 2.1 Reprezentarea datelor ........................................................................................................................... 17 2.2 Editarea programelor ............................................................................................................................. 19 2.3 Tipuri de instructiuni .............................................................................................................................. 20 2.4 Adresarea directa si indirecta ................................................................................................................. 39 2.5 Organizarea biților speciali de memorie de tip SM ................................................................................ 40 2.6  Intreruperi si comunicare ...................................................................................................................... 50 2.7 Numaratoarele de viteza ........................................................................................................................ 55 2.8 Iesiri de viteza ......................................................................................................................................... 60 

3. Terminale pentru afişare şi comunicare ........................................................................................................ 65 3.1 Terminalul TD  200 ................................................................................................................................. 65 3.2 Terminalul TP 070 ................................................................................................................................... 69 

Bibliografie ......................................................................................................................................................... 75  

 

 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 3/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

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

11..11 MMeenniiuu pprriinncciippaall

- Notiunea de proiect (Project): Un singur fisier cu extensia ".mwp"

- Optiunea File

‐  

V3.1 STEP 7 MicroWIN SP1.lnk

*

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 4/75  

 

‐ Optiuni de configurare ecran  

 

 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 5/75  

 

‐ Optiuni de configurare ecran  

 

 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 6/75  

 

Zona de navigare

Fereastra de instructiuni

Fereastra de vizualizare program scris in STL

Fereastra de vizulalizare iesire

Zona de unelte

Feresatra de vizualizare program scris in LADDER logic

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 7/75  

 

 11..22 FFoorrmmaattee ddee ggeenneerraarree aa uunnuuii pprrooggrraamm ddee aapplliiccaattiiee

- 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. 8/75  

 

Stabilirea tipului de PLC

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 9/75  

 

 

11..33 SScchhiimmbbuull ddee ddaattee pprrooggrraamm--PPLLCC  

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. 10/75  

 

11..44 CCoonnffiigguurraarreeaa bbllooccuulluuii ssiisstteemm Configurare porturi (parametrii de transfer)

Filtrarea software a valorilor de pe intrarile analogice selectate

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 11/75  

 

Configurarea blocului sistem – tabela de output-uri

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Stabileste o durata de timp (in procente din ciclul scan) in care mediul de dezvoltare se ocupa de vizualizarea informatiilor din 

l b l ( d d )

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 12/75  

 

Configurarea blocului sistem – stabilirea intrarilor numerice rapide    

 

Intrari numerice rapide pe care se pot capta pulsuri 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 13/75  

 

Configurarea blocului sistem – definirea datelor salvate automat

Definirea zonelor de date ale PLC ce pot fi memorate la caderea tensiunii

Nivel 1 – Poate face orice fara parola 

Nivel 2 – Nu poate modifica programul fara parola si nu poate face download 

Nivel 3 – Nu poate modifica programul fara parola,  nu poate face download si nu poate face upload 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 14/75  

 

 

11..55 VViizzuuaalliizzaarrii aallee vvaarriiaabbiilleelloorr ddiinn pprrooggrraamm Vizulalizari ale tabelei de simboli, blocului de date, structurii de harta de depanare (chart) si a zonei de program 

Date informative despre programul de aplicatie si configuratia pe care ruleaza 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 15/75  

 

 Referinte incrucisate  

 

In urma compilarii programului mediul furnizeaza tabela de referinte incrucisate 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 16/75  

 

 

11..66 AAllttee ooppeerraattiiii ddee ccoonnffiigguurraarree Introducerea date si a timpului in PLC  

 

 

 

 

 

 

 

 

Compararea proiectului cu programul din PLC  

 

 

 

 

 

 

La BEGIN se compileazza programul din calculator si se compara cu programul din PLC pe blocurile selectate

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 17/75  

 

 

2. Programarea in STEP 7-200 22..11 RReepprreezzeennttaarreeaa ddaatteelloorr  

 Tipuri de date admise

 

Tipuri de numaratoare admise

 

 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 18/75  

 

 

Abrevieri uzuale din mediul STEP 7

Structura memoriei

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 19/75  

 

 

22..22 EEddiittaarreeaa pprrooggrraammeelloorr 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. Pozitionati cursorul pe inceputul liniei. 2. Introduceti instructiunea (de ex. LD). 3. Tastati spatiu sau TAB.

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

4. Introduceti operandul care poate fi absolut (ex I0.2), poate fi simbolic (ex, Input1) sau

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 20/75  

 

22..33 TTiippuurrii ddee iinnssttrruuccttiiuunnii 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. 21/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. 22/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. 23/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. 24/75  

 

C12. Si, sau, sau exclusiv pe C13. Complement pe byte, cuvant si dublu cuvant 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. 25/75  

 

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

D16. Initializarea unei zone; tip cuvant D17. Inversiune octet superior/inferior

D18. Instructiuni de ceas D19. Salt neconditionat

D20. Terminare program

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 26/75  

 

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

E. Instructiuni de control al programului E23. Apel de subrutina E24. Iesirea din subrutina E25. Incheiere program

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

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 27/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. 28/75  

 

intreaga cu rezultat in dublu cuvinte dublu cuvinte

F33. Adunare/ scadere reala F34. Inmultire/ impartire reala

F35. Radical

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 29/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          (din 1 in 0)

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 30/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).

valoare curenta valoare precedenta valoare de referinta iesire gain perioada de esantionare timp de integrare timp de derivare suma de integrare (bias)

- Tabloul buclei stocheaza urmatorii noua parametri:

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 31/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. 32/75  

 

J44. Conversii reciproce BCD–intreg 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. 33/75  

 

K Operatii cu tabele K 47. Introducerea in tabele

K48. Cautari 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

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. 34/75  

 

K49. Operatii in tabele

L Instructiuni de control program L50. Instructiuni de segmentare program

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

Cand n=1 segmentul este activat SCRE indica sfârşitul segmentului SCRT valideaza bitul pentru următoarea secţiune activată

LSCR marcheaza inceputul unui segment.

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 35/75  

 

Exemplu de parcurgere secventiala

L51. Invalidare durată maxima de Scan

M Operatii de transfer imediat M 52. Instructiuni de citire/scriere si transfer imediat

N Timere

NETWORK LSCR "Stare_L" // incepe L NETWORK //…. Instructiuni NETWORK LD I0. 0 // O conditie. SCRT "Stare_M" // enable M, disable L. NETWORK SCRE // Sfarsit State L NETWORK LSCR "Stare_M" // Incepe M NETWORK //…. Instructiuni NETWORK LD I0. 1 // Alta conditionare SCRT "Stare_N" // enable N, disable M. NETWORK SCRE // Sfarsit M NETWORK LSCR "Stare_N" // Incepe N NETWORK //…. Instructiuni NETWORK LD I0. 2 // Conditionare. SCRT "State_L" // enable L,disable N. NETWORK SCRE // Sfarsit N.

Daca programul este prea lung pe anumite secvente si da eroare ca depaseste durata maxima admisa de

instructiune. Atentie nu se mai dau erori de ciclu infinit.!!!

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

Scan se poate utiliza aceasta

BIW = citeste din locatia precizata la IN si scrie octetul la iesirea fizica OUT 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 36/75  

 

Exista 3 timuri de Timere:

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

Tip Timer

Valoare curenta >= Valoare prestabilita

Validarea intrarii pe ON

Validarea intrarii pe OFF

Punerre sub tensiune/Primul ciclu

TON Timer bit ON, Valoarea curenta numara pana la 32,767

Valoarea curenta numara timpul

Timer Bit OFF Valoarea curenta =0

Timer Bit OFF Valoarea curenta =0

TONR Timer bit ON, Valoarea curenta numara pana la 32,767

Valoarea curenta numara timpul

Timer bit si valoarea curenta mentin ultima valoare

Timer Bit OFF Valoarea curenta poate fi mentinuta

TOF Timer bit OFF, Daca Valoarea curenta = Valoarea prestabilita Nu mai numara

Timer Bit ON Valoarea curenta =0

Timerul numara ndupa tranzitia ON - OFF

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. 37/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. 38/75  

 

O Countere O54. Instructiuni de numarare

‐Count Up (CTU) = numara  crescator pana la o valoare maxima fronturile crescatoare ale intrarii 

‐Cand valoare curenta (precizata in Cxxx) este >= 

cu valoarea prestabilita (PV) bitul counterului se inscrie (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. 39/75  

 

22..44 AAddrreessaarreeaa ddiirreeccttaa ssii iinnddiirreeccttaa  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

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.

pointer> Se pot utiliza doar locatii de memorie de tip V sau registrii acumulatori AC1, AC2 si

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 40/75  

 

22..55 OOrrggaanniizzaarreeaa bbiiţţiilloorr ssppeecciiaallii ddee mmeemmoorriiee ddee ttiipp SSMM  

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.3 - Bit inscris (1) cand se produce o impartire cu zero.

SM1.5 - Bit inscris (1) cand o instructiune LIFO sau FIFO instructions asteapta sa citeasca

SM1.6 - Bit inscris (1) cand se incearca conversia unei valori "non-BCD" in binar.

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.

SM1.4 - Bit inscris (1) cand in instructinile de adaugare in tabel se produce depasirea acesteia.

SM1.2 - Bit inscris (1) cand intr-o instructiune matematica apare un rezultat negativ.

dintr-o tabela vida.

SM1.7 - Bit inscris (1) cand o valoare ASCII nu poate fi convertita intr-o valoare hexadecimala

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 41/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. 42/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 LSB 0

c 0 0 0 0 0 s 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. 43/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 Bit de control al nivelului activ pe reset: (0 = Reset este activ crescator; 1 = Reset este activ descrescator) SM37.1 Reservat SM37.2 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. 44/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.

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:

c) HSC2 utilizeaza octetii speciali SMB56-SMB65

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 45/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.

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.

sa fie stearsa de utilizator): 0 = fara depasire; 1 = depasirea limitei. SM76.7 Bit de inactivitate PTO0 :

SM67.1 Actualizarea valorii lungimii pulsului PWM0:

SM76.6 Depasirea limitei PTO0 (este stearsa cand se utilizeaza un tip extern, altfel e necesar

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 46/75  

 

0 = PTO activ, 1 = PTO inactiv. SMB77 SM77.0 Actualizarea valorii timpului de ciclare PTO0/PWM0: 1 = scrie noua valoare. SM77.1 Actualizarea valorii lungimii pusului PWM0: 1 = scrie noua durata a pulsului. SM77.2 Actualizeaza noua valoare de contorizare a pulsului PTO0: 1 = scrie noua valoare. SM77.3 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 Port 1 SMB86 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/m

tmr

bk 0

en: 0 = functia de receptie a mesajului inactiva ;

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 47/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. 48/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. 49/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. 50/75  

 

22..66 IInnttrreerruuppeerrii ssii ccoommuunniiccaarree 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 Nrev

Descrierea intreruperi Pri-ori-tate

Unitati centrale 210

212

214

215

216

221

222

224

226

8 Intrerupere la receptie de caracter pe Port 0 0 X X X X X X X X

9 Intrerupere la transmisie de mesaj pe Port 0 0 X X X X X X X X

23 Intrerupere la receprie mesaj complet pe Port 0 0 X X X X X X

24 Intrerupere la receprie mesaj complet pe Port 1 1 X X

25 Intrerupere la receptie de caracter pe Port 1 1 X X

26 Intrerupere la transmisie de mesaj pe Port 1 1 X X

19 PTO 0 intrerupere a pulsului de numarare completa

0 X X X X X X X

20 PTO 1 intrerupere a pulsului de numarare completa

1 X X X X X X X

0 Front crescator, I 0.0 2 X X X X X X X X X

2 Front crescator, I 0.1 3 X X X X X X X

4 Front crescator, I 0.2 4 X X X X X X X

6 Front crescator, I 0.3 5 X X X X X X X

1 Front descrescator, I 0.0 6 X X X X X X X X

3 Front descrescator, I 0.1 7 X X X X X X X

5 Front descrescator, I 0.2 8 X X X X X X X

7 Front descrescator, I 0.3 9 X X X X X X X

12 HSC0 CV=PV (valoare curenta=valoare presetata) 10 X X X X X X X X 27 HSC0 schimbarea directiei de intrare 11 X X X X

28 HSC0 reset extern 12 X X X X

13 HSC1 CV=PV (valoare curenta=valoare presetata) 13 X X X X X

14 HSC1 schimbarea directiei de intrare 14 X X X X X

15 HSC1 reset extern 15 X X X X X

16 HSC2 CV=PV (valoare curenta=valoare presetata) 16 X X X X X

17 HSC2 schimbarea directiei de intrare 17 X X X X X

18 HSC2 reset extern 18 X X X X X

32 HSC3 CV=PV (valoare curenta=valoare presetata) 19 X X X X 29 HSC4 CV=PV (valoare curenta=valoare presetata) 20 X X X X

30 HSC4 schimbarea directiei de intrare 21 X X X X

31 HSC4 reset extern 22 X X X X

33 HSC5 CV=PV (valoare curenta=valoare presetata) 23 X X X X

10 Intrerupere la intervale de timp programabile 0 0 X X X X X X X X

11 Intrerupere la intervale de timp programabile 1 1 X X X X X X X

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 51/75  

 

21 Timer T32 CT=PT (valoare curenta=valoare presetata)

2 X X X X X X

22 Timer T96 CT=PT (valoare curenta=valoare presetata)

3 X X X X X X

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. 52/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. 53/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 ca instructiunea sa lucreze; datele preluate de la portul precizat sunt stocate intr-un tabel cu acceasi structura ca si la XMT

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 54/75  

 

  Rutine de intreruperi utilizate in comunicatie

Structura tabelului de definire a comunicatiei in retea

SPA = Set Port Address – seteaza adresa statiei la valoarea precizata in parametrul ADDR ; noua adresa nu este permanenta ci pana la o pierdereaa limentarii; la revenirea tensiunii adresa

de download se repune

GPA = Get Port Address – citeste adresa statiei PLC pe portul specificat depanand rezultatul la ADDR

SPA = Set Port Address – seteaza adresa statiei la

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 55/75  

 

22..77 NNuummaarraattooaarreellee ddee vviitteezzaa

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 Descriere I0.0 I0.1 I1.2 0 Numarator sus/jos cu o singura faza cu control

al directiei intern SM37.3=0, numara in jos SM37.3=1, numara in sus

Clock

1 Reset

3 Numarator sus/jos cu o singura faza cu control

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

Clock

Dir. 4 Reset

6 Numarator cu doua faze cu intrari pe ceas

pentru numarare in sus si numarare in jos Clock (in sus)

Clock (in jos)

7 Reset

9 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.

Clock faza A

Clock faza B

10 Reset

HSC1 Mod Descriere I0.6 I0.7 I1.0 I1.1 0 Numarator sus/jos cu o singura faza cu control

al directiei intern SM47.3=0, numara in jos SM47.3=1, numara in sus

Clock

1 Reset

2 Start 3 Numarator sus/jos cu o singura faza cu control

al directiei extern Clock Dir.

4 Reset

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 56/75  

 

5 I0.7=0, numara in jos I0.7=1, numara in sus

Start

6 Numarator cu doua faze cu intrari pe ceas

pentru numarare in sus si numarare in jos Clock (in sus)

Clock (in jos)

7 Reset 8 Start 9 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.

Clock faza A

Clock faza B

10 Reset 11 Start

HSC2 Mod Descriere I1.2 I1.3 I1.4 I1.5 0 Numarator sus/jos cu o singura faza cu control

al directiei intern SM57.3=0, numara in jos SM57.3=1, numara in sus

Clock

1 Reset

2 Start 3 Numarator sus/jos cu o singura faza cu control

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

Clock

Dir. 4 Reset 5 Start

6 Numarator cu doua faze cu intrari pe ceas

pentru numarare in sus si numarare in jos Clock (in sus)

Clock (in jos)

7 Reset 8 Start 9 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.

Clock faza A

Clock faza B

10 Reset

11

HSC3 Mod Descriere I0.1 0 Numarator sus/jos cu o singura faza cu control

al directiei intern SM137.3=0, numara in jos SM137.3=1, numara in sus

Clock

HSC4 Mod Descriere I0.3 I0.4 I1.5 0 Numarator sus/jos cu o singura faza cu control

al directiei intern SM147.3=0, numara in jos SM147.3=1, numara in sus

Clock

1 Reset

3 Numarator sus/jos cu o singura faza cu control Clock Dir.

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 57/75  

 

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

Reset

6 Numarator cu doua faze cu intrari pe ceas

pentru numarare in sus si numarare in jos Clock (in sus)

Clock (in jos)

7 Reset

9 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.

Clock faza A

Clock faza B

10 Reset

HSC5 Mod Descriere I0.4 0 Numarator sus/jos cu o singura faza cu control

al directiei intern SM157.3=0, numara in jos SM157.3=1, numara in sus

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. 58/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. 59/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. 60/75  

 

Instructiuni pentru numaratoarele rapide

22..88 IIeessiirrii ddee vviitteezzaa

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.

Instructiunea de definire a numaratorului de mare viteza :

-ataseaza modul de lucru al numaratorului de la 0-11 in functie de tipul numaratorului

Instructiunea HSC cheama operatia definita in bitii de memoriei speciala ai numaratorului aferent (N

indica numarul numaratorului)

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 61/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

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 //la primul ciclu scan S V14.7, 1 //setez activ bitul de afisare mesaj pe TD 200 CALL SBR_0 //apelez subrutina de initializere PTO NETWORK 2 LD M1.0 //daca s-a cerut de la TD200 masuratoare S Q1.0, 1 //setez iesirea Q1.0 in 1 TON T32, +10000 //timer activ 10 sec PLS 1 //pornesc PTO 1 ATCH INT_0, 20 //atasez intrerupere pe evenimentul 20 (PTO a terminat de generat) ENI //validare intrerupere NETWORK 3 LD M10.1 //daca a terminat de generat semnalele stabilite MOVW +0, T32 //pun timerul T32 in 0 MOVW VW105, VW39 //pune in variabila de afisare (VW39) timpul in care a generat semnalul (VW105) R M10.1, 1 //resetez bit gata generare

Executa impulsuri in formatul precizat prin SMB pe Q0.0 sai Q0.1

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 62/75  

 

R M1.0, 1 //resetez cerere masuratoare R Q1.0, 1 //resetez iesirea Q1.0 CALL SBR_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 //daca frecventa curenta a semnalului este mai mare decat 1200 HZ //atunci opresc PTO 1 si citesc timpul cat a generat PTO 1 semnale MOVW T32, VW105 //citesc valoare timer T32 S M10.1, 1 //setez bit de terminare generare semnale DTCH 20 //dezactivare int_0 atasata evenimentului 20 R SM77.7, 1 //resetez din octetul de setare a lui PTO 1 bitul de validare a lui PTO 1 PLS 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. 63/75  

 

S V14.7, 1 //setez activ bitul de afisare mesaj pe TD 200 CALL SBR_0 //apelez subrutina de init. NETWORK 2 LD M10.0 //daca bit executie este 1 AD> VD100, +0 //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 //daca bit executie este 1 TON T37, +10 //pornesc timerul T37 pentru o secunda NETWORK 4 LD T37 //daca a trecut timpul de o secunda A M10.0 //daca bit executie este 1 CALL SBR_0 //apelez subrutina de initializare Legenda: -albastru – instructiuni din STEP7; -verde – comentariu. //subrutina de initializare (SBR_0) NETWORK 1 LD SM0.0 //la fiecare ciclu scan R M10.0, 1 //resetez bit executie //curata variabila de afisare MOVD +0, VD42 MOVD +0, VD56 //initializare HSC 1 MOVB 16#F8, SMB47 //mut F8 hexa in octetul de setare pentru HSC 1 (SMB47) HDEF 1, 0 //setez modul de lucru pentru HSC 1 MOVD +0, SMD48 //pun valoare presetata 0 MOVD +5, SMD52 //cate semmale sa numere MOVB 5, VB200 //pun in VB200 cate semnale ar trebui sa numere HSC 1 //pornesc HSC 1 //initializare HSC 0 MOVB 16#F8, SMB37 //mut F8 hexa in octetul de setare pentru HSC 0 (SMB37) HDEF 0, 0 //setez modul de lucru pentru HSC 0 MOVD +0, SMD38 //pun valoare presetata 0 MOVD +65535, SMD42 //cate semnale sa numere //initializare PTO 0 MOVB 16#85, SMB67 //mut 85 hexa in octetul de setare pentru PTO 0 (SMB67) MOVW +50, SMW68 //50=cate microsecunde tine un semnal MOVD +65535, SMD72 //cate semnale sa genereze

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 64/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. 65/75  

 

3. Terminale pentru afişare şi comunicare

33..11 TTeerrmmiinnaalluull TTDD 220000

Pentru Configurarea Panelului TD 200 se procedează dupa cum urmează:

A) La nivelul terminalulul TD

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 66/75  

 

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

- 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. 67/75  

 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 68/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. 69/75  

 

33..22 TTeerrmmiinnaalluull TTPP 007700

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. 70/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 de instrumente

Bara grupuri de control Structura proiect Zona de ecran

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 71/75  

 

Menu Bar File Edit View Setup Help Opţiunea FILE

Opţiunea EDIT

Opţiunea VIEW

Opţiunea SETUP

– Creeaza un nou fisier TP. – Deschide un fisier de configurarea TP existent. – Salveaza fisierul activ.  

–    Compileaza fisierul activ. 

– Transmite fisierul activ catre TP  

– Afiseaza proprietatile fisierului activ

  

– Taie zona selectata si o plaseaza in Clipboard. – Copiaz zona selectata si o plaseaza in Clipboard. – Insereaza continutul Clipboard.  

– Insereaza un nou ecran, control, tag sau imagine. – Sterge zona selectata. 

‐ Activeaza ecranul precedent. ‐ Activeaza ecranul urmator. ‐ Activeaza lista de tag‐uri. ‐ Activeaza lista de imagini. ‐ Activeaza lista rezultatelor. ‐ Activeaza sau ascunde Bara de Controale. ‐ Activeaza sau ascunde Structura proiectului. ‐ Activeaza sau ascunde Bara de Controale sau pe cea Standard. ‐ Activeaza sau ascunde gridul. ‐ Activeaza sau inactiveaza modelul de grid implicit. 

– Selecteaza o limba de circulatie interationala. – Configureaza comunicatia intre TP Designer , S7‐200 

si TP 070. 

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 72/75  

 

Opţiunea HELP

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

Acelasi lucru se poate face si cu bara instrumentelor de control.

– Aceseaza  sistemul Help.  

I f ii

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.

 

Mediu de dezvoltare STEP 7 MICRO/WIN 32 pag. 73/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. 74/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. 75/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-C48-01

3) SIMATIC S7-200 Programmable Controller System Manual - Edition 05/2003 - A5E00212536-02

4) SIMATIC Automate programmable S7-200 Manuel système - 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-G7076-C552-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 C79000–G7076–C206–03