Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
1
6
Programowanie zaawansowane
Informacje wst
ę
pne:
BLOKI DZIAŁAŃ NA BITACH
W sterownikach GE Fanuc dost
ę
pne s
ą
nast
ę
puj
ą
ce bloki do działa
ń
na bitach:
−
AND - koniunkcja słów bitowych,
−
OR - alternatywa słów bitowych,
−
XOR - ró
ż
nica symetryczna słów bitowych,
−
NOT - negacja słowa bitowego,
−
SHIFTL - przesuni
ę
cie bitów o 1 pozycj
ę
w lewo,
−
SHIFTR - przesuni
ę
cie bitów o 1 pozycj
ę
w prawo,
−
ROL - przesuni
ę
cie bitów o 1 pozycj
ę
w lewo w obiegu zamkni
ę
tym,
−
ROR - przesuni
ę
cie bitów o 1 pozycj
ę
w prawo w obiegu zamkni
ę
tym,
−
BIT_TST - testowanie warto
ś
ci bitu w okre
ś
lonym słowie,
−
BIT_SET - ustawianie bitu w okre
ś
lonym słowie,
−
BIT_CLR - zerowanie bitu w okre
ś
lonym słowie,
−
BIT_POS - testowanie na której pozycji bitowej w danym słowie wyst
ę
puje 1,
−
BIT_SEQ – kr
ążą
ca jedynka,
−
MASK_COMP – porównanie z maskowaniem.
Blok funkcyjny Typ argumentów
Opis
IN1: WORD
IN2: WORD
Q: WORD
Iloczyn logiczny
Q:= IN1 AND IN2
IN1: WORD
IN2: WORD
Q: WORD
Suma logiczna
Q:= IN1 OR IN2
IN1: WORD
IN2: WORD
Q: WORD
Alternatywa wył
ą
czaj
ą
ca
Q:= IN1 XOR IN2
Programowanie zaawansowane
2
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
IN1
•
•
•
•
•
•
•
•
•
•
IN2
•
•
•
•
•
•
•
•
•
•
ok
•
•
Q
•
•
•
•
•!
•
•
•
•
• Dozwolony typ parametru.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze zmiennych typu %S.
Blok funkcyjny Typ argumentów
Opis
IN: WORD
Q: WORD
Negacja
Q:= NOT IN
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
IN1
•
•
•
•
•
•
•
•
•
•
ok
•
•
Q
•
•
•
•
•!
•
•
•
•
• Dozwolony typ parametru.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze
zmiennych typu %S.
Blok funkcyjny
Typ argumentów
Opis
IN: WORD
N: INT
Q: WORD
length: 1-256
Powoduje rotacj
ę
o N bitów (ROL w lewo, ROR
w prawo) ci
ą
gu bitów, którego pocz
ą
tek okre
ś
la IN
i składa si
ę
z tylu WORD, ile wynosi length. Wynik
po rotacji przechowywany jest w obszarze,
którego pocz
ą
tek okre
ś
la Q.
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
IN
•
•
•
•
•
•
•
•
•
N
•
•
•
•
•
•
•
•
•
ok
•
•
Q
•
•
•
•
•!
•
•
•
•
• Dozwolony typ parametru.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze
zmiennych typu %S.
Blok funkcyjny
Typ argumentów
Opis
IN: WORD
N: INT
B1: BOOL
B2: BOOL
Q: WORD
length: 1-256
Powoduje przesuni
ę
cie o N bitów (SHIFTL w lewo,
SHIFTR w prawo) ci
ą
gu bitów, którego pocz
ą
tek
okre
ś
la IN i składa si
ę
z tylu WORD, ile wynosi
length. Wynik po przesuni
ę
ciu przechowywany jest
w obszarze, którego pocz
ą
tek okre
ś
la Q. B1 – bit
wsuwany, B2 – ostatnio wysuni
ę
ty bit.
Programowanie zaawansowane
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
3
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
IN
•
•
•
•
•
•
•
•
•
N
•
•
•
•
•
•
•
•
•
B1
•
B2
•
•
Q
•
•
•
•
•!
•
•
•
•
• Dozwolony typ parametru.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze
zmiennych typu %S.
Blok funkcyjny
Typ argumentów
Opis
IN: WORD
BIT: INT
length: 1-256
BITSET ustawia, BITCLR zeruje dokładnie jeden bit
o numerze BIT w ci
ą
gu bitów, którego pocz
ą
tek
okre
ś
la IN i składa si
ę
z tylu WORD, ile wynosi length
(bity s
ą
numerowane od 1).
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
IN
•
•
•
•
!
•
•
•
•
BIT
•
•
•
•
•
•
•
•
•
ok
•
•
• Dozwolony typ parametru.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze
zmiennych typu %S.
Blok funkcyjny
Typ argumentów
Opis
IN: WORD
BIT: INT
Q: BOOL
length: 1-256
Testuje stan bitu o numerze BIT w ci
ą
gu bitów,
którego pocz
ą
tek okre
ś
la IN i składa si
ę
z tylu
WORD, ile wynosi length.
Stan testowanego bitu podawany jest na Q.
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
IN
•
•
•
•
•
•
•
•
•
BIT
•
•
•
•
•
•
•
•
•
Q
•
•
• Dozwolony typ parametru.
Blok funkcyjny
Typ argumentów
Opis
IN: WORD
POS: INT
length: 1-256
Przeszukuje ci
ą
g bitów, którego pocz
ą
tek
okre
ś
la IN i składa si
ę
z tylu WORD, ile wynosi
length, w celu znalezienia pierwszej jedynki.
Numer pierwszego niezerowego bitu
umieszcza w POS (bity s
ą
numerowane od 1).
Programowanie zaawansowane
4
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
Parametr
Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała Brak
enable
•
IN
•
•
•
•
•
•
•
•
•
POS
•
•
•
•
•
•
•
•
ok
•
•
• Dozwolony typ parametru.
Blok funkcyjny
Typ argumentów
Opis
R: BOOL
DIR: BOOL
N: INT
ST: BYTE
length: 1-256
address: 3 WORD
Zbocze narastaj
ą
ce na wej
ś
ciu Enable
powoduje przesuni
ę
cie jedynki w ci
ą
gu bitów,
którego pocz
ą
tek okre
ś
la ST i składa si
ę
z tylu
bitów, ile wynosi length.
DIR - kierunek przesuni
ę
cia.
R=1 zeruje obszar okre
ś
lony przez ST i
length oraz ustawia jedynk
ę
na bicie o
numerze okre
ś
lonym przez N. Dopóki
R=1, Enable nie reaguje na zbocza
narastaj
ą
ce.
Parametr Sygnał
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
address
•
enable
•
R
•
DIR
•
STEP
•
•
•
•
•
•
•
•
•
•
ST
•
•
•
•
•!
•
•
•
•
•
ok
•
•
•
Dozwolony typ parametru.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze zmiennych
typu %S.
Blok funkcyjny
Typ argumentów
Opis
IN1: WORD lub DWORD
IN2: WORD lub DWORD
M: WORD lub DWORD
BIT: INT
MC: BOOL
Q: WORD lub DWORD
BN: INT
length: 1-2048
Porównuje dwa ci
ą
gi bitów, których pocz
ą
tek
okre
ś
la IN1 i IN2 i składaj
ą
si
ę
z tylu WORD
lub DWORD, ile wynosi length. Porównywanie
odbywa si
ę
z mask
ą
M, tzn. sprawdza tylko te
bity, które maska ma wyzerowane.
BIT – nr bitu, od którego zaczyna porównywa
ć
(bity s
ą
numerowane od 0).
MC =1 – znalazł ró
ż
nic
ę
.
Q – wynik porównania
BN – nr bitu, na którym wyst
ą
piła ró
ż
nica (bity
s
ą
numerowane od 1)
Programowanie zaawansowane
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
5
Parametr Sygnał
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ
Stała
Brak
enable
•
IN1
○
○
○
○
○
○
•
•
•
IN2
○
○
○
○
○
○
•
•
•
M
○
○
○
○
○
!
○
•
•
•
BIT
•
•
•
•
•
•
•
•
•
•
LEN
•
‼
MC
•
•
Q
○
○
○
○
○
!
○
•
•
•
BN
•
•
•
•
•
•
•
•
•
• Typ mo
ż
e by
ć
wykorzystany jako dany parametr bloku funkcyjnego.
○
Dopuszczalne jest stosowanie wył
ą
cznie danych typu WORD, nie mo
ż
na stosowa
ć
zmiennych typu
DWORD.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze
zmiennych typu %S.
‼
Maksymalna warto
ść
stałej mo
ż
e wynosi
ć
4095 dla danych typu WORD i 2047 dla danych typu DWORD.
Przykład 1.
Gdy marker %M00050=1 program steruj
ą
cy ma zerowa
ć
nast
ę
puj
ą
cy obszar pami
ę
ci: %M00001÷%M00016,
%M00030÷%M00035 oraz ustawia
ć
same jedynki w obszarze pami
ę
ci %M00020
÷
%M00026.
Rozwi
ą
zanie I (z wykorzystaniem bloków z grupy Data Move)
Zmienne M00030 i M00020 nale
ż
y zadeklarowa
ć
jako typu BOOL.
Rozwi
ą
zanie II (z wykorzystaniem bloków z grupy Bit Operations)
Przykład 2.
Program ma sprawdza
ć
ósmy i siódmy bit rejestru o nazwie STATUS. Je
ś
li oba s
ą
jedynkami, to ustawia
jedynk
ę
na szesnastym bicie rejestru o nazwie PARAMETR, w przeciwnym przypadku 16-ty bit rejestru
PARAMETR zeruje. Pozostałe bity rejestru PARAMETR pozostaj
ą
bez zmian.
Programowanie zaawansowane
6
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
Rozwi
ą
zanie
DZIAŁANIA NA TABLICACH
Bloki do wykonywania operacji na tablicach danych dzi
ę
ki indeksacji znacznie upraszczaj
ą
program:
−
SEARCH_EQ - przeszukiwanie tablicy w celu znalezienia warto
ś
ci równej warto
ś
ci zadanej,
−
SEARCH _NE - przeszukiwanie tablicy w celu znalezienia warto
ś
ci ró
ż
nej od warto
ś
ci zadanej,
−
SEARCH _GT - przeszukiwanie tablicy w celu znalezienia warto
ś
ci wi
ę
kszej od warto
ś
ci zadanej,
−
SEARCH _GE - przeszukiwanie tablicy w celu znalezienia warto
ś
ci wi
ę
kszej lub równej warto
ś
ci zadanej,
−
SEARCH _LT - przeszukiwanie tablicy w celu znalezienia warto
ś
ci mniejszej od warto
ś
ci zadanej,
−
SEARCH _LE - przeszukiwanie tablicy w celu znalezienia warto
ś
ci mniejszej lub równej warto
ś
ci zadanej
Programowanie zaawansowane
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
7
Blok funkcyjny
Typ argumentów
Opis
SR: INT, DINT, WORD, BYTE lub BOOL
SNX: UINT
DNX: UINT
N: UINT
DS: INT, DINT, WORD, BYTE lub BOOL
length: 32767
Kopiowanie
Kopiuje N elementów
z tablicy
ź
ródłowej
zdefiniowanej przez SR
i length pocz
ą
wszy od
elementu o numerze SNX
do tablicy przeznaczenia
zdefiniowanej przez DS
i length pocz
ą
wszy od
elementu o numerze DNX.
Elementami tablic s
ą
INT,
DINT, WORD, BYTE lub
BOOL liczone od 1.
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
SR
○
○
○
○
∆
!
○
•
•
•
SNX
•
•
•
•
•
•
•
•
•
DNX
•
•
•
•
•
•
•
•
•
N
•
•
•
•
•
•
•
•
•
ok
•
•
DS
○
○
○
○
!
○
•
•
•
• Dozwolony typ parametru. W funkcji ARRAY_MOVE_BOOL warto
ś
ci zmiennych dyskretnych %I, %Q,
%M i %T nie musz
ą
by
ć
podawane z uwzgl
ę
dnieniem podziału na bajty.
○
Mo
ż
e by
ć
wykorzystany wył
ą
cznie jako parametr do operacji na danych typu INT, BIT, BYTE lub WORD.
Nie mo
ż
na go wykorzystywa
ć
w przypadku operacji na danych typu DINT.
∆
Mo
ż
e by
ć
wykorzystany wył
ą
cznie jako parametr do operacji na danych typu BIT, BYTE lub WORD.
Nie mo
ż
na go wykorzystywa
ć
w przypadku operacji na danych typu INT lub DINT.
! Mo
ż
na stosowa
ć
wył
ą
cznie zmienne systemowe typu %SA, %SB i %SC. Nie mo
ż
na korzysta
ć
ze zmiennych typu %S.
Blok funkcyjny
Typ argumentów
Opis
AR: INT
INX: UINT
ONX: UINT
IN: INT
FD: BOOL
length: 32767
Przeszukuje tablic
ę
zdefiniowan
ą
przez
AR i length pocz
ą
wszy od elementu
INX w celu znalezienia elementów
równych wzorcowi IN. Je
ż
eli wynik
przeszukiwania b
ę
dzie pozytywny,
to D=1 i ONX - numer znalezionego
elementu tablicy. Elementami tablicy s
ą
INT, DINT, WORD lub BYTE. INX jest
liczone od 0, ONX jest liczone od 1.
Programowanie zaawansowane
8
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
AR: INT
INX: UINT
ONX: UINT
IN: INT
FD: BOOL
length: 32767
Przeszukuje tablic
ę
zdefiniowan
ą
przez
AR i length pocz
ą
wszy od elementu
INX w celu znalezienia elementów
ró
ż
nych od wzorca IN. Je
ż
eli wynik
przeszukiwania b
ę
dzie pozytywny,
to D=1 i ONX - numer znalezionego
elementu tablicy. Elementami tablicy s
ą
INT, DINT, WORD lub BYTE. INX jest
liczone od 0, ONX jest liczone od 1.
AR: INT
INX: UINT
ONX: UINT
IN: INT
FD: BOOL
length: 32767
Przeszukuje tablic
ę
zdefiniowan
ą
przez
AR i length pocz
ą
wszy od elementu
INX w celu znalezienia elementów
wi
ę
kszych od wzorca IN. Je
ż
eli wynik
przeszukiwania b
ę
dzie pozytywny,
to D=1 i ONX - numer znalezionego
elementu tablicy. Elementami tablicy s
ą
INT, DINT, WORD lub BYTE. INX jest
liczone od 0, ONX jest liczone od 1.
AR: INT
INX: UINT
ONX: UINT
IN: INT
FD: BOOL
length: 32767
Przeszukuje tablic
ę
zdefiniowan
ą
przez
AR i length pocz
ą
wszy od elementu
INX w celu znalezienia elementów
wi
ę
kszych lub równych wzorcowi IN.
Je
ż
eli wynik przeszukiwania b
ę
dzie
pozytywny, to FD=1 i ONX - numer
znalezionego elementu tablicy.
Elementami tablicy s
ą
INT, DINT,
WORD lub BYTE. INX jest liczone
od 0, ONX jest liczone od 1.
AR: INT
INX: UINT
ONX: UINT
IN: INT
FD: BOOL
length: 32767
Przeszukuje tablic
ę
zdefiniowan
ą
przez
AR i length pocz
ą
wszy od elementu
INX w celu znalezienia elementów
mniejszych od wzorca IN. Je
ż
eli wynik
przeszukiwania b
ę
dzie pozytywny,
to D=1 i ONX - numer znalezionego
elementu tablicy. Elementami tablicy s
ą
INT, DINT, WORD lub BYTE. INX jest
liczone od 0, ONX jest liczone od 1.
AR: INT
INX: UINT
ONX: UINT
IN: INT
FD: BOOL
length: 32767
Przeszukuje tablic
ę
zdefiniowan
ą
przez
AR i length pocz
ą
wszy od elementu
INX w celu znalezienia elementów
mniejszych lub równych wzorcowi IN.
Je
ż
eli wynik przeszukiwania b
ę
dzie
pozytywny, to FD=1 i ONX - numer
znalezionego elementu tablicy.
Elementami tablicy s
ą
INT, DINT,
WORD lub BYTE. INX jest liczone
od 0, ONX jest liczone od 1.
Parametr Przepływ
%I
%Q
%M
%T
%S
%G
%R
%AI
%AQ Stała
Brak
enable
•
AR
○
○
○
○
∆
○
•
•
•
INX
•
•
•
•
•
•
•
•
•
IN
○
○
○
○
∆
○
•
•
•
•
ONX
•
•
•
•
•
•
•
•
FD
•
•
• Dozwolony typ parametru.
○
Mo
ż
e by
ć
wykorzystany wył
ą
cznie jako parametr do operacji na danych typu INT, BYTE lub WORD. Nie
mo
ż
na go wykorzystywa
ć
w przypadku operacji na danych typu DINT.
∆
Mo
ż
e by
ć
wykorzystany wył
ą
cznie jako parametr do operacji na danych typu BYTE lub WORD. Nie mo
ż
na
go wykorzystywa
ć
w przypadku operacji na danych typu INT lub DINT.
Programowanie zaawansowane
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
9
Przykład 3.
Nale
ż
y skopiowa
ć
zawarto
ść
rejestrów %R00002÷%R00006 do rejestrów %R00044÷%R00048. Sygnał
dopływaj
ą
cy do %I00001 powinien uruchomi
ć
procedur
ę
kopiowania, brak sygnału na %I00001 powinien
spowodowa
ć
wyzerowanie tablicy docelowej.
Rozwi
ą
zanie:
Do wyzerowania obszaru %R00041÷%R00050 słu
ż
y blok BLK_CLR_WORD. Tablica
ź
ródłowa zajmuje
obszar od %R00001 do %R00010, tablica docelowa, zajmuje obszar od %R00041 do %R00050. Blok
ARRAY_MOVE_INT kopiuje 5 elementów z tablicy
ź
ródłowej pocz
ą
wszy od elementu nr 2 do tablicy
docelowej, umieszczaj
ą
c je pocz
ą
wszy od elementu nr 4. Poni
ż
szy rysunek ilustruje zasad
ę
kopiowania.
R1
N=5
Tablica
ź
ródłowa
Tablica docelowa
SNX=2
DNX=4
Length=10
R2
R3
R4
R5
R6
R7
R8
R9
R10
R41
R42
R43
R44
R45
R46
R47
R48
R49
R50
Przykład 4.
Program ma sprawdza
ć
, czy na którym
ś
z kanałów 16-to kanałowego modułu wej
ść
analogowych wyst
ą
piło
przekroczenie górne o warto
ś
ci 10000. Je
ż
eli jest przekroczenie, to program ma wł
ą
czy
ć
wyj
ś
cie o nazwie
BUCZEK oraz wskaza
ć
w rejestrze o nazwie NR_KAN numer pierwszego kanału, na którym wyst
ą
piło
przekroczenie.
Rozwi
ą
zanie:
Do przeszukiwania tablicy w celu znalezienia elementów wi
ę
kszych lub równych wzorcowi słu
ż
y funkcja
SEARCH_GE_INT. Aby był przeszukiwany obszar od %AI0001 do %AI00016 nale
ż
y ustawi
ć
parametr length
na warto
ść
16. Je
ż
eli ma by
ć
przeszukiwana cała tablica, nale
ż
y poda
ć
wej
ś
ciowy parametr INX=0. Gdyby
interesowało nas przeszukiwanie tablicy nie od elementu z indeksem 0 lecz dalszym, to nale
ż
y poda
ć
offset
w wej
ś
ciowym parametrze INX (mo
ż
na to wykorzysta
ć
do poszukiwania kolejnych wyst
ą
pie
ń
wzorca).
Wyj
ś
ciowy parametr ONX okre
ś
la miejsce, gdzie zostanie umieszczony indeks elementu przeszukiwanej
tablicy, który jest zgodny z wzorcem. Sygnał FD=1 sygnalizuje pozytywny wynik przeszukiwania.
Programowanie zaawansowane
10
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
FUNKCJE STERUJĄCE
Do funkcji steruj
ą
cych nale
żą
nast
ę
puj
ą
ce bloki:
−
DO_IO - natychmiastowe uaktualnienie stanu wej
ść
/wyj
ść
,
−
PID_ISA - regulator PID z algorytmem standardowym,
−
PID_IND - regulator PID z algorytmem o niezale
ż
nych wyrazach,
−
SVC_REQ - uruchomienie specjalnych funkcji sterownika.
Blok funkcyjny
Argument
Opis
FNC: 1
Odczyt/zmiana trybu pracy pracy sterownika (Normal, Const Sweep)
FNC: 2
Odczyt ustawie
ń
p
ę
tli (Programmer Window, Communication Window,
Background Window)
FNC: 3
Zmiana trybu Programmer Window
FNC: 4
Zmiana trybu Communication Window
FNC: 6
Odczyt/zmiana liczby słów sumy kontrolnej
FNC: 7
Odczyt/zmiana wskaza
ń
zegara czasu rzeczywistego
FNC: 8
Restart Watchdoga
FNC: 9
Odczyt czasu, jaki upłyn
ą
ł od pocz
ą
tku p
ę
tli
FNC: 10
Odczyt PLC Target Name
FNC: 11
Odczyt SNP ID
FNC: 12
Odczyt stanu Run
FNC: 13
Stop PLC
FNC: 14
Zerowanie Fault Table
FNC: 15
Odczyt ostatniego bł
ę
du z tablicy bł
ę
dów
FNC: 16
Odczyt czasu, jaki upłyn
ą
ł od zał
ą
czenia sterownika
FNC: 18
Sprawdzenie, czy s
ą
ustawione wymuszenia
FNC: 23
Odczyt sumy kontrolnej
FNC: 26/30
Porównanie konfiguracji sprz
ę
towej z konfiguracj
ą
w RAM i generowanie
bł
ę
dów
FNC: 29
Odczyt czasu, jaki upłyn
ą
ł od wył
ą
czenia sterownika
Programowanie zaawansowane
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
11
SVC_REQ #7 – odczyt/zmiana wskaza
ń
zegara czasu rzeczywistego
PARM
0=odczyt bie
żą
cego czasu i daty
1=zapis nowego czasu i daty
PARM +1
1=kod BCD
3=kod ASCII
PARM +2 do ko
ń
ca bloku parametrów
Odczyt daty i czasu w formacie BCD (niedziela 3 lipca 1988, godz. 14:45:30)
Bajt wy
ż
szy
Bajt ni
ż
szy
Bajt wy
ż
szy
Bajt ni
ż
szy
PARM
1=zapis lub 0=odczyt
0
PARM +1
1=kod BCD
1
PARM +2
miesi
ą
c
rok
07
88
PARM +3
godziny
dzie
ń
miesi
ą
ca
14
03
PARM +4
sekundy
minuty
30
45
PARM +5
(puste pola)
dzie
ń
tygodnia
00
01
Odczyt daty i czasu w formacie ASCII (poniedziałek 2 pa
ź
dziernika 1989, godz. 23:13:00)
Bajt wy
ż
szy
Bajt ni
ż
szy
Bajt wy
ż
szy
Bajt ni
ż
szy
PARM
1=zapis lub 0=odczyt
0
PARM +1
3=ASCII
3
PARM +2
Rok
Rok
39
38
PARM +3
Miesi
ą
c
(spacja)
31
20
PARM +4
(spacja)
Miesi
ą
c
20
30
PARM +5
Dzie
ń
miesi
ą
ca
Dzie
ń
miesi
ą
ca
32
30
PARM +6
Godziny
(spacja)
32
20
PARM +7
:
Godziny
3A
33
PARM +8
Minuty
Minuty
33
31
PARM +9
Sekundy
:
30
3A
PARM +10 (spacja)
Sekundy
20
30
PARM +11 Dzie
ń
tygodnia
Dzie
ń
tygodnia
32
30
Przykład 5.
Napisa
ć
program do obsługi zegara czasu rzeczywistego w sterowniku. Bie
żą
ce wskazania zegara maj
ą
po odczytaniu znale
źć
si
ę
w rejestrach %R00003÷%R00006. Rejestry %R00003÷%R00005 maj
ą
tak
ż
e
umo
ż
liwia
ć
wprowadzanie do sterownika nowych ustawie
ń
zegara. Odczyt zegara ma si
ę
odbywa
ć
raz na
sekund
ę
. Sygnał dwustanowy ZAPIS okre
ś
la, czy jest wykonywany odczyt, czy zapis nowych ustawie
ń
zegara.
ZAPIS = 0
odczyt zegara,
ZAPIS = 1
mo
ż
liwo
ść
wprowadzania nowych ustawie
ń
zegara.
Rozwi
ą
zanie
Skorzystano z bloku funkcyjnego SVC_REQ o numerze funkcji FNC=7. Parametrami tego bloku s
ą
rejestry
pocz
ą
wszy od R00001. Wprowadzenie do R00001 warto
ś
ci 0 powoduje odczyt zegara, wprowadzenie
warto
ś
ci 1 powoduje wej
ś
cie w tryb zapisywania. Zapis nowych ustawie
ń
do zegara czasu rzeczywistego
odbywa si
ę
przy zmianie stanu sygnału ZAPIS z jedynki na 0. Ustawienia zegara s
ą
odczytywane
(i wprowadzane) w nast
ę
puj
ą
cy sposób:
rejestr %R00003 = miesi
ą
c i rok (w kodzie BCD),
rejestr %R00004 = godzina i dzie
ń
(w kodzie BCD),
rejestr %R00005 = sekunda i minuta (w kodzie BCD),
rejestr %R00006 = numer dnia tygodnia (tylko odczyt).
Programowanie zaawansowane
12
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
Przykład 6.
Po 15 s od momentu wykrycia braku modułu wej
ść
/wyj
ść
sterownik ma si
ę
zatrzyma
ć
(przej
ść
w stan Stop).
Rozwi
ą
zanie
Do rozwi
ą
zania zadania posłu
ż
ono si
ę
zmienn
ą
systemow
ą
#LOS_IOM, która zostaje ustawiona na 1, gdy
procesor nie mo
ż
e skomunikowa
ć
si
ę
z modułem wej
ść
/wyj
ść
. Programowe przej
ś
cie sterownika w stan Stop
zrealizowano przy pomocy bloku SVC_REQ o numerze FNC=13.
Programowanie zaawansowane
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
13
Program
ć
wiczenia:
Zad. 1.
Napisa
ć
program, w którym na wyj
ś
ciach Q00001
÷
Q00016 co sekund
ę
b
ę
d
ą
pojawia
ć
si
ę
stany:
Q00016
Q00001
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
.
.
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
.
.
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Itd., czyli wydłu
ż
aj
ą
cy si
ę
, a potem skracaj
ą
cy w
ąż
jedynek.
Zad. 2.
Napisa
ć
program do pobierania wybranej przez operatora receptury. Zakładamy,
ż
e program obsługuje
12 receptur 10-składnikowych przechowywanych w nast
ę
puj
ą
cym obszarze rejestrów:
receptura nr 1:
%R00001
÷
%R00010
receptura nr 2:
%R00011
÷
%R00020
receptura nr 3:
%R00021
÷
%R00030
receptura nr 4:
%R00031
÷
%R00040
receptura nr 5:
%R00041
÷
%R00050
receptura nr 6:
%R00051
÷
%R00060
receptura nr 7:
%R00061
÷
%R00070
receptura nr 8:
%R00071
÷
%R00080
receptura nr 9:
%R00081
÷
%R00090
receptura nr 10: %R00091
÷
%R00100
receptura nr 11: %R00101
÷
%R00110
receptura nr 12: %R00111
÷
%R00120.
Operator wybiera
żą
dan
ą
receptur
ę
przez wpisanie numeru receptury do rejestru %R00411. Wówczas
program ma pobra
ć
wybran
ą
receptur
ę
do rejestrów %R00401
÷
%R00410 przewidzianych do wy
ś
wietlenia na
ekranie wizualizacji.
Zad. 3.
Program ma co sekund
ę
pobiera
ć
odczyt z wej
ś
cia analogowego WE_ANAL i przez 1 minut
ę
wpisywa
ć
odczyty do obszaru rejestrów %R00001
÷
%R00060. Po upływie 1 min. ma przepisa
ć
obszar odczytów
z ostatniej minuty do obszaru rejestrów %R00101
÷
%R00160 (przewidzianych np. do narysowania wykresu na
ekranie wizualizacji) oraz wyzerowa
ć
rejestry %R00001
÷
%R00060, aby przygotowa
ć
je do pobierania
odczytów z nast
ę
pnej minuty.
Zad. 4.
Napisa
ć
program, który co 0.5 s odczytuje stan zegara czasu rzeczywistego ze sterownika i przesyła do
rejestrów o nazwach ROK, MIES, DZIEN, GODZ, MIN, SEK aktualne odczyty zegara w formacie INT.
Zad. dod. 1.
Zaprojektowa
ć
układ sterowania ruchem manipulatora zgodnie
z zało
ż
eniami zawartymi w instrukcji nr 3 zad. 2, wykorzystuj
ą
c blok
BIT_SEQ. Zakładamy,
ż
e manipulator znajduje si
ę
w poło
ż
eniu dolnym
prawym. Po naci
ś
ni
ę
ciu niestabilnego przycisku START uruchamiana
jest jednorazowa sekwencja ruchu manipulatora: w gór
ę
, w lewo, w dół,
w gór
ę
, w prawo, w dół. Po powrocie manipulatora w dolne prawe
poło
ż
enie system sterowania czeka na nast
ę
pne naci
ś
ni
ę
cie przycisku
START.
START
Programowanie zaawansowane
14
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
Zad. dod. 2.
Zaprojektowa
ć
układ sterowania ruchem manipulatora zgodnie z zało
ż
eniami zawartymi w instrukcji nr 4
zad. dod. 1, wykorzystuj
ą
c blok BIT_SEQ. Program ma kontrolowa
ć
stan czujników otwarcia i zamkni
ę
cia
chwytaka i nie wykonywa
ć
nast
ę
pnej akcji, dopóki nie dostanie prawidłowego sygnału z czujnika.
Zad. dod. 3.
Napisz program sterowania
ś
wiatłami na skrzy
ż
owaniu wykorzystuj
ą
c BIT_SEQ. Fazy
ś
wiateł zgodnie
z zało
ż
eniami zawartymi w instrukcji nr 4 zad. 2.
Zad. dod. 4.
Program ma sprawdza
ć
, czy na którym
ś
z kanałów 16-to kanałowego modułu wej
ść
analogowych wyst
ą
piło
przekroczenie górne o warto
ś
ci 10000. Je
ż
eli jest przekroczenie, to program ma wł
ą
czy
ć
wyj
ś
cie o nazwie
BUCZEK oraz wskaza
ć
w rejestrze o nazwie KAN_NR numer kanału, na którym wyst
ą
piło przekroczenie.
Je
ż
eli przekroczenia s
ą
na kilku kanałach, to naciskaj
ą
c niestabilny przycisk DALEJ w rejestrze KAN_NR
b
ę
dziemy dostawa
ć
kolejne numery kanałów, na których wyst
ą
piło przekroczenie. Po wy
ś
wietleniu ostatniego
kanału z przekroczeniem, nast
ę
pne DALEJ powoduje wy
ś
wietlenie w KAN_NR numeru pierwszego kanału
z przekroczeniem itd.
Zad. dod. 5.
Napisa
ć
program, który znajduje najwi
ę
ksz
ą
warto
ść
w
ś
ród pomiarów przechowywanych w obszarze
%R00201-%R00260 i wpisuje j
ą
do rejestru o nazwie MAXIMUM. Zmiana warto
ś
ci pomiarów ma powodowa
ć
uaktualnienie rejestru MAXIMUM.
Zad. dod. 6.
Napisa
ć
program obliczaj
ą
cy
ś
redni
ą
arytmetyczn
ą
z pomiarów znajduj
ą
cych si
ę
w rejestrach pocz
ą
wszy
od %R00001. Ilo
ść
pomiarów, któr
ą
program ma bra
ć
do obliczenia
ś
redniej znajduje si
ę
w rejestrze o nazwie
L_REJ. Wynik ma by
ć
przechowywany w rejestrze o nazwie SREDNIA. Zakładamy,
ż
e ilo
ść
pomiarów
do obliczania
ś
redniej nie przekroczy 100 i warto
ść
ka
ż
dego pomiaru mie
ś
ci si
ę
w granicach –300
÷
+300.
Zad. dod. 7.
Napisa
ć
program, który zmienia czas zegara czasu rzeczywistego w sterowniku z letniego na zimowy
i odwrotnie. Naci
ś
ni
ę
cie niestabilnego przycisku PLUS ma spowodowa
ć
dodanie 1 godziny, a naci
ś
ni
ę
cie
niestabilnego przycisku MINUS ma odj
ąć
1 godzin
ę
.
Wymagana wiedza:
-
typy zmiennych w sterownikach GE Fanuc,
-
działanie bloków funkcyjnych z grupy Bit Operations, Data Table, Data Move, Control,
-
zasady konstrukcji szczebla,
-
podstawy obsługi oprogramowania narz
ę
dziowego Proficy ME Logic Developer PLC.
Warunek zaliczenia:
-
obecno
ść
na zaj
ę
ciach,
-
wykazanie si
ę
wymagan
ą
wiedz
ą
w trakcie
ć
wicze
ń
,
-
wykonanie zada
ń
według instrukcji. Ka
ż
dy program powinien znajdowa
ć
si
ę
w oddzielnym projekcie
o nazwie: T6_X_ZZ (X – nr zadania, ZZ – nr sekcji). Wszystkie projekty powinny zawiera
ć
konfiguracj
ę
zgodn
ą
ze sprz
ę
tem znajduj
ą
cym si
ę
na stanowisku, nazwy zmiennych zgodne z tre
ś
ci
ą
zadania
i komentarze. Konfiguracja sterownika powinna posiada
ć
adresy referencji dwustanowych zaczynaj
ą
ce
si
ę
od numeru referencji wyliczanego ze wzoru:
nr sekcji * 8 – 7
oraz adresy referencji analogowych zaczynaj
ą
ce si
ę
od numeru sekcji. W komentarzu powinny znale
źć
si
ę
nazwiska członków sekcji oraz opis programu.
-
przesłanie backup’ow projektów w terminie podanym w systemie e-learning’u,
-
pozytywne zaliczenie projektów,
-
uzyskanie pozytywnej oceny z ustnej lub pisemnej odpowiedzi na pytania kontrolne.
-
zadania dodatkowe nale
ż
y przysyła
ć
w systemie e-learning’u w projektach o nazwach T6_X_nazwisko.
Nie s
ą
one wymagane do zaliczenia, natomiast prawidłowo rozwi
ą
zane przez pierwsz
ą
osob
ę
w grupie s
ą
premiowane ocen
ą
bardzo dobr
ą
.
Literatura:
[1] Sterowniki serii VersaMax. Podr
ę
cznik u
ż
ytkownika. Astor Kraków 2001.
GFK1503C-PL
[2] Sterowniki serii VersaMax Micro/Nano. Opis funkcji. Astor Kraków.
LI
−
ASK
−
OF
−
GE1
[3] Zbiór zada
ń
dla sterowników GE Fanuc serii 90-30, VersaMax, VersaMax Micro/Nano wraz z przykładami
rozwi
ą
za
ń
. LI-ASK-ZZ-GE3