WYKŁAD 06 KonstrJęzykowe

background image

WYKŁAD 6

KONSTRUKCJE JĘZYKOWE

JANUSZ KWAŚNIEWSKI AGH Katedra Automatyzacji Procesów

background image

2

Konstrukcje językowe

ciągi instrukcji,

rozgałęzienia warunkowe,

pętle, oraz

podprogramy, zawierające powyższe elementy.

Instrukcje

Nie

Tak

Badanie

warunku

Funkcja

Nie

Tak

Badanie

warunku

Funkcja

Nie

Tak

Badanie

warunku

c)

b)

a)

background image

3

Instrukcje do przenoszenia
danych

MOV (021) najczęściej używana instrukcja przenoszenia danych zarówno wewnątrz

sterownika jak również z zewnątrz np. wejścia analogowego, jedynie nie można

przenieść danych do obszarów instrukcji czasowych i licznikowych (T i C),

MVN (021) przenosi dane zanegowane,

BSET (071) przenosi te same dane od zadanego słowa startowego do zadanego

słowa końcowego; instrukcja przydatna np. do zerowania określonego obszaru

pamięci,

XCHG (073) zamienia miejscami dane pomiędzy dwoma określonymi słowami,

XCGL (562) jw. dla podwójnego słowa,

DIST (080) przenosi określone dane do słowa docelowego określonego zadanym

adresem powiększonym o parametr (wskaźnik), parametr ten można zmieniać,

dlatego instrukcja ta jest przydatna do działań na macierzach,

COLL (081) jest odwróconym działaniem do powyższej instrukcji, dane ze słowa

określonego zadanym adresem powiększonym o parametr (wskaźnik) przenoszone

są do słowa docelowego,

MOVB (082) umożliwia w zadanym słowie przenoszenie określonego bitu do innego

miejsca w tym słowie,

MOVD (083) umożliwia zamianę cyfr w ramach jednego słowa,

MOVL (498) instrukcja przenoszenia danych dla podwójnego słowa

background image

4

Porównanie bez histerezy

CMP(020)

100
#32

10.03

255.07

0.01

„<”

Wyjście 10.01 uruchamia przy użyciu instrukcji
SBS (091) podprogram 1, wyjście 10.02
podprogram 2, a wyjście 10.03 podprogram 3.

Załączenie

warunku,

umożliwia

porównanie wartości w kanale 100 np.
sygnału

z

czujnika

temperatury

z wartością stałą 32

CD1>CD2



CD1=CD2



CD1<CD2

 CD1
 CD2

10.01

255.05

„>”

10.02

255.06

„=”

10.03

CD2

255.07

255.06

255.05

t

t

t

t

CD1

10.01

10.02

SBS(091) 1

SBS(091) 2

SBS(091) 3

background image

5

Znaczniki lub instrukcje

znacznik równości = (P_EQ dawniej SR255.06)

lub instrukcje = (300), =DT (341),

znacznik większy niż > (P_GT dawniej SR255.05)

lub instrukcje > (320), >DT(345),

znacznik mniejszy niż < (P_LT dawniej SR255.07)

lub instrukcje < (310), <DT(343),

znacznik przeniesienia CARRY (P_CY dawniej SR 255.04).

background image

6

Porównanie z histerezą



CMP(020)

250
#25

P_GT

0.01

„>”

Program umożliwia sterowanie urządze-
niem grzewczym mającym za zadanie
utrzymać temperaturę w pomieszczeniu w
przedziale 25  50  C, przy użyciu grzałki

załączanej wyjściem 10.05

Załączenie warunku umożliwia porówna-
nie wartości w kanale 250 np. sygnału
z czujnika temperatury z dolną wartością
stałą 25 oraz w drugim porównaniu
z górną wartością stałą 50.

CD<LL



CD=LL



CD>UL

 CD
 LL

10.01

10.01

P_LT

„<”

UL
LL

P_GT

P_LT

10.01

10.02

t

t

t

t

CD

CMP(020)

250
#50

 CD
 UL

10.05

10.02

10.05

t

SET

10.02

RSET

10.02

background image

7

Porównanie z histerezą



ZCP(088)

250
#25
#50

0.01

Załączenie

warunku

umożliwia

porównanie wartości w kanale 250 np.
sygnału z czujnika temperatury z dolną
wartością stałą 25 oraz w drugim
porównaniu z górną wartością stałą 50.

CD>UL



LLCDUL




 CD
 LL
 UL

10.03

P_GT

„>”

UL

LL

P_GT

P_EQ

10.02

t

t

t

t

CD

10.05

10.02

10.05

t

SET

10.02

RSET

10.02

P_EQ

„=”

DIFD(014)

10.03

10.03

t

background image

8

Pętla

piła

MOV(02

1)

#0000
D0000

0.0

2

Maksymalne

nachylenie

piły

otrzymujemy

po

usunięciu

generatora P_0_1s, czyli 0.1 sek
jednak nachylenie to będzie się
zmieniało wraz ze zmianą czasu
cyklu.

Zastosowanie

różniczkowej

instrukcji

INC

powoduje, że tylko w jednym
cyklu, na przednim zboczu
impulsu 0,1 sek powiększa się
zawartość D 0000

Jeżeli zastosuje się tu
styk 10.00 to w D 0000
będziemy

mieli

przebieg piłokształtny.

 UL

górna wartość UL,

amplituda
przebiegu
piłokształtnego

startowa wartość

LL,

10.0
1

UL

LL

10.

00

Warunek

0.01

Start

0.02

t

t

t

t

D
00000

„=

10.00

P_EQ

JMP(004

)

1

0.0
2

@INC(03

8)

D0000

0.0

1

MOV(02

1)

#0250

D0001

P_0_1
s

10.0
0

CMP(02

0)

D0001
D0000

JME(00

5)

1

„<

10.01

10.0
1

P_LT

Pozostała część

programu

END(00

1)

0,1 sek

nachylen

ie

 LL

Sta

rt

Star

t

background image

9

Podprogramy

Podprogramy dzielą większe zadania sterownicze na mniejsze
zadania i umożliwiają wielokrotne zastosowanie danego zestawu
instrukcji

Główny program

Podprogram 1

Główny program

Podprogram 1

Główny program

Podprogramy mogą być uruchamiane:

• wywołaniami (instrukcją), jest to często warunek wykonalności,

• przerwaniami.

background image

10

Wywołanie warunkiem wykonalności

Program główny

SBS (091) 00

Program główny

SBN (092) 00

Podprogam

RET (093)

END (001)

END (001)

RET(093)

SBN (092) 00

SBS (091) 00

Warunek

wykonalności

Podprogram

background image

11

Ograniczona liczba zagnieżdżeń

RET(093)

SBS(091) 011

SBN(092) 010

SBS(091) 010

RET(093)

SBS(091) 012

SBN(092) 011

RET(093)

SBN(091) 012

Pierwsze

zagnieżdżenie

Drugie

zagnieżdżenie

background image

12

Warunki wykonalności
wybierają fragmenty programu

Program główny

A

SBS (091) 000

Program główny

B

SBN (092) 001

Podprogam

E

RET (093)

END (001)

SBN (092) 000

Podprogam

D

RET (093)

SBS (091) 001

Program główny

C

Wyłączone warunki wykonalności 000 i 001

ABC

Wyłączony tylko warunek wykonalności 001

ADBC

Wyłączony tylko warunek wykonalności 000

ABEC

Włączone warunki wykonalności 000 i 001

ADBEC

background image

13

Makro-
instrukcje

Podprogram definiujący makroinstrukcję MCRO.

Po cztery kolejne słowa są zarezerwowane na

wejścia i wyjścia. W sterowniku OMRON

CP1H są to dla wejść słowa A 600÷603, dla wyjść
A 604÷607 (dla CQM1 są to dla wejść IR 096 

099, dla wyjść IR 196  199, dla CPM1 są to

odpowiednio SR 232235 i SR 236239).

Natomiast w powyższym programie realizowanym

w sterowniku mogą być bity z dowolnego obszaru

pamięci, pod warunkiem, że jest pełna
konsekwencja z zachowaniem ich kolejności.

Numer podprogramu

P_On

„1”

SBN(092) 090

MCRO(099)

090

0010

H 009

MCRO(099)

090

0005
0120

MCRO(099)

090

0002
0105

MCRO(099)

090

0000
0100

A600.01

A604.01

A600.02

A604.00

A600.00

A604.00

A604.01

RET(093)

000.01

100.01

000.02

100.00

000.00

100.00

100.01

Pierwsze słowo wejść
Pierwsze słowo wyjść

002.01

105.01

002.02

105.00

002.00

105.00

105.01

005.01

120.01

005.02

120.00

005.00

120.00

120.01

010.01

H09.01

010.02

H09.00

010.00

H09.00

H09.01

Numer podprogramu
Pierwsze słowo wejść
Pierwsze słowo wyjść

Numer podprogramu
Pierwsze słowo wejść
Pierwsze słowo wyjść

Numer podprogramu
Pierwsze słowo wejść
Pierwsze słowo wyjść

Postać programu

z wykorzystaniem instrukcji MCRO

Postać programu

bez wykorzystania instrukcji MCRO

background image

14

Przerwania

W sterownikach najczęściej stosuje się przerwania:

sprzętowe (ang. interrupts) w trybie bezpośrednim lub

licznikowym (ustawiane wejścia w CPU lub specjalne moduły

przerwań),

czasowe, zegarowe, planowe, (ang. schedule, timed

interrupts) (specjalne bloki programowe lub instrukcje

generujące przerwania co określoną chwilę czasową ),

szybkie licznikowe (ang. high speed counter interrupts)

(ustawiane wejścia w CPU lub specjalne moduły).

Dla przerwań równorzędnych priorytet przerwania sprzętowego
na wejściu 0 > przerwania na wejściu 1 >...
>przerwania na wejściu n, zewnętrznego specjalnego modułu >
>przerwania na wejściach jw. w CPU>
>przerwania szybkiego licznika>
>przerwania czasowego.

background image

15

Przerwania sprzętowe

tryb bezpośredni i licznikowy

Główny program

Podprogram, zadanie

Główny program

Stan przerwania
sprzętowego lub
programowego

Główny program

Podprogram, zadanie

Główny program

zadana liczba impulsów

background image

16

Przerwania sprzętowe

tryb bezpośredni i licznikowy

@MSKS(690
)113

(lub13)

#0000

 N: Kod wejścia

0.3

SBN(092) 000

RET(093)

Podprogram
lub zadanie 144

  

Warunek wyboru
przerwania

@MSKS(69
0

)

#0000


S: Zbocze narastające, ON
(#0000),
opadające, OFF
(#0001)

0.0

103 (lub 9)

N: Kod wejścia
0.3

S: Zezwolenie, nie maskowane
(#0000),
brak zezwolenia, maskowane
(#0001)

S: Dekrementacja
(#0002),
inkrementacja
(#0003)

MOV(021)

#0014

A535

Wpisanie 20

impulsów

(0014hex)

RET(093)

Podprogram
lub zadanie
144

  

Warunek wyboru
przerwania

@MSKS(690
)

#0002


0.0

113 (lub13)

N: Kod wejścia
0.3

SBN(092) 000

@MSKS(690
)

#0002


113 (lub13)

N: Kod wejścia
0.3

S: Zbocze narastające
(#0000),
opadające (#0001)

TRYB
LICZNIKOWY

TRYB
BEZPOŚREDNI

W przerwaniu czasowym stosujemy tylko jedną instrukcję MSKS i operand 4
dla przerwania bez zerowania lub 14 z zerowaniem, drugi operand służy do
ustawienia liczby 0÷270F hex (0÷9999) mnożonej przez ustawienie w Settings
w zakładce Timings wybierając Scheduling Interrupt Interval.

background image

17

Przerwania szybkie licznikowe

Sygnał
z
enkoder
a

Tryb rewersyjny

1 2 3 4 5 6 7 8 7 6 5 4 3
2 1 0 -1 0

Stan licznika

Faza A

Faza B

Przyrost

Ubytek

Tryb przyrostowy

Stan licznika

1 2 3 4 5

Wejście

impulso

we

Faza Z zerowanie sprzętowe

i/lub programowe

Wejście
podając
e
kierune
k

Do 1 MHz

background image

18

Przerwania szybkie licznikowe

W ustawieniach sterownika CP1H Settings:

• w zakładce Built-in Input wybieramy numer licznika (0÷3)

• określamy typ liczenia Counting mode:

• liniowy Linear mode (8000 0000÷7FFF FFFF i może wystąpić przepełnienie)

• kołowy Circular mode, przy czym należy tu określić maksymalną liczbę po której nastąpi
nawrót od zera (0÷FFFF FFFF hex, nigdy się nie przepełni).

• typ zerowania Reset:

• fazą Z (sprzętowe) + programowe (programowe musi być na początku cyklu),

• programowe zerowanie (bitem zerującym),
• fazą Z + programowe (porównujące),

• programowe zerowanie (porównujące).

• tryb pracy licznika Input Setting:

• wejście fazowo-różnicowe Differentia phase input,

• impulsowe + kierunek obrotów Pulse+direction input,

• zliczanie w dół i w górę (rewersyjne) Up/Down input,

• impulsowe inkrementalne wejście Increment pulse input.

background image

19

Instrukcje do przerwania
szybkim licznikiem

@CTBL(88
2)

#0000

 P: Numer licznika 0

(0÷3)

Warunek wyboru
przerwania

C: 0000 hex – tablica progową z
natychmiastowym rozpoczęciem
porównania

0.0

#00
00

D10000

 D: Pierwsze słowo tablicy

przedziałowej

W 0.0

W
0.0

W 0.1

A
531.0

A 531.0W

0.0

0.1

Program
cykliczny

Program przerwania,
zadanie 10

100.0
Poprawnie

W
0.1

A
274.0

END (001)

W 0.1

A 274.0

A 274.0 Znacznik
spełnienia
warunku porównania

100.1 Błędnie

A 531.0 Zerowanie

Trzy instrukcje pomocnicze:
INI(880) – do zainicjowania odczytu tablic,
PRV(881)- odczytywanie bieżącego stanu liczników PV,
PRV2(883)- licznikiem 0 ma możliwość mierzenia częstotliwości.

background image

20

Przerwanie szybkie licznikowe

tablica progowa

Tablica progowa

Dopuszczalne wartości dla progów:

04 294 967 295 (0000 0000 FFFF FFFF hex)

górne słowo dolne słowo

D 0000 0002 Liczba progów: 2 (maksymalnie 48 (30 hex))
D 0001 1000 Wartość docelowa progu 1: 1000 (c)
D 0002 0000 (tu wpisuje się górne słowo)
D 0003 000A Spełnienie warunku uruchamia zadanie 10 (A hex)
D 0004 2000 Wartość docelowa progu 2: 2000
D 0005 0000
D 0006 000B Spełnienie warunku uruchamia zadanie 11 (B hex)

Uwaga: Słowa z numerami zadań na najniższych ma numer a na
najwyższym bicie kierunek: 0-inkrementalny lub 1- dekrementalny

Rozpoczęcie zadania 10

Rozp. zadania 11

A 271 i A 270 lub
miejsce określone w PRV (062)

t

t

t

2000

1000

A 274.0

A 274.1

background image

21

Przerwania szybkie licznikowe

tablica przedziałowa



Rozpoczęcie zadania 10

Rozp. zadania 11

A 271 i A 270 lub
miejsce określ. w PRV (062)

Przedziałowa tablica porównań

, ma zawsze 8 przedziałów


D 00000 1500 Dolna granica przedziału 1: 1500 (dolne słowo)
D 00001 0000 (górne słowo)
D 00002 2000 Górna granica przedziału 1: 2000 (dolne słowo)
D 00003 0000 (górne słowo)
D 00004 000A Spełnienie warunku uruchamia zadanie 10 (A hex)
D 00005 2800 Dolna granica przedziału 2: 2800
D 00006 0000
D 00007 7500 Górna granica przedziału 2: 7500
D 00008 0000
D 00009 000B Spełnienie warunku uruchamia zadanie 11
D 00010 0000
D 00011 0000
D 00012 0000
D 00013 0000
D 00014 FFFF Przedział 3 niewykorzystany (AAAA przerwanie

nie wykonywane)


D 00035 0000
D 00036 0000
D 00037 0000
D 00038 0000
D 00039 FFFF Przedział 8 niewykorzystany

t

t

t

7500

1500

2000

2800

A274.0

A274.1

background image

22

Dziękuję za uwagę

i pobudzam do stosowania ciekawych

konstrukcji językowych


Document Outline


Wyszukiwarka

Podobne podstrony:
Wyklad 06 kinematyka MS
wykład 06
elektro wyklad 06
KWP Wyklad 06
Metalurgia wyklad 06, Księgozbiór, Studia, Metalurgia
Sciaga ze stali-semV-wyklad4, BUDOWNICTWO, KONSTRUKCJE METALOWE 2
hydrologia wyklad 06
Z Wykład 06 2008
wyklad 06, ekonomia pochodzi od greckiego oiconomicos, oikos-dom, nomos -prawo
WYKŁAD 06, GENETYKA WYKŁAD 6
Wykład 06 2014
wyklad 06[1].01.2008, Zarządzanie studia licencjackie, Finanse publiczne
023 HISTORIA SZTUKI WCZESNOCHRZEŚCIJAŃSKIEJ I BIZANTYJSKIEJ, WYKŁAD, 1 06 10
Makroekonomia Wykład 06 12 2009

więcej podobnych podstron