Mam instrukcje do kglwin po polsku i angielsku
STEROWNIK PLC LG SERII MASTER-K
PODRĘCZNIK PROGRAMOWANIA
Opracowanie:
FOSTER
ul. JS Bacha 20
80-171 Gdańsk
tel. (58) 320 15 37
fax (58) 320 15 39
e-mail: foster@foster.pl
www.foster.pl
Spis treści
1.1 Wprowadzenie.......................................................................................................................................................... 6
1.1.1 Instalacja programu ........................................................................................................................................... 6
1.1.2 Okno aplikacji KGL WIN ................................................................................................................................. 7
1.1.3 System pomocy ................................................................................................................................................. 8
1.2 Tworzenie projektu................................................................................................................................................... 9
1.2.1 Tworzenie nowego projektu .............................................................................................................................. 9
1.2.2 Edycja programu (język drabinkowy) ............................................................................................................. 10
1.2.3 Edycja zmiennych ........................................................................................................................................... 12
1.2.4 Lista użytych w programie komórek pamięci.................................................................................................. 13
1.2.5 Zapis projektu na dysku................................................................................................................................... 14
1.3 Połączenie ze sterownikiem PLC ........................................................................................................................... 15
1.3.1 Kabel połączeniowy ........................................................................................................................................ 15
1.3.2 Parametry połączenia....................................................................................................................................... 15
1.3.3 Ustanawianie połączenia ze sterownikiem ...................................................................................................... 16
1.3.4 Rozłączanie ..................................................................................................................................................... 16
1.3.5 Zapis programu w PLC.................................................................................................................................... 16
1.3.6 Uruchomienie programu.................................................................................................................................. 16
1.3.7 Skrócona procedura wgrywania programu ...................................................................................................... 16
1.4 Praca online ............................................................................................................................................................ 17
1.4.1 Monitor............................................................................................................................................................ 17
1.4.2 Zmiana wartości zmiennej............................................................................................................................... 18
1.4.3 Montorowanie wartości wielu zmiennych – okno Monitor ............................................................................. 18
2.1 Dane techniczne...................................................................................................................................................... 19
K10S1 / K80S / K200S / K300S .............................................................................................................................. 19
2.2
Mapa konfiguracji pamięci ............................................................................................................................... 20
2.2.1
K10S1 ....................................................................................................................................................... 20
2.2.2
K80S......................................................................................................................................................... 21
2.3
Obiekty pamięci serii MASTER-K .................................................................................................................. 22
2.3.1
Obszar input / output : P ........................................................................................................................... 22
2.3.2
Przekaźnik pomocniczy : M ..................................................................................................................... 23
2.3.3
Przekaźnik Keep : K ................................................................................................................................. 24
2.3.4
Przekaźnik Link : L .................................................................................................................................. 24
2.3.5
Sterownik kroków : S ............................................................................................................................... 24
2.3.6
Przekaźnik Timer : T ................................................................................................................................ 25
2.3.7
Przekaźnik Counter : C............................................................................................................................. 26
2.3.8
Rejestr Data D .......................................................................................................................................... 27
2.3.9
Pośrednie wyznaczenie rejestru data : #D ................................................................................................ 27
2.3.10 Przekaźnik specjalny : F ........................................................................................................................... 28
2.3.11 Przekaźnik specjalny M / L : M / L .......................................................................................................... 28
2.3.12 Rejestr Special data : D ............................................................................................................................ 28
2.4 Ustawianie parametrów .......................................................................................................................................... 29
2.4.1 Nastawa Watchdog timera............................................................................................................................... 29
2.5
Praca CPU ........................................................................................................................................................ 30
2.5.1
Praca cykliczna ......................................................................................................................................... 30
2.5.2
Mod pracy CPU ........................................................................................................................................ 31
2.6
Funkcje specjalne serii MASTER-K ................................................................................................................ 33
2.6.1
Funkcja RTC (Real Time Clock) (Zegar czasu rzeczywistego) ............................................................... 33
2.7 Sprawdzanie programu ........................................................................................................................................... 35
2.7.1
JMP – JME ............................................................................................................................................... 35
2.7.2
CALL , SBRT / RET ................................................................................................................................ 36
2.7.3
MCS – MCSCLR...................................................................................................................................... 37
2.7.5
END / RET ............................................................................................................................................... 38
2.7.6
Dual coil(Podwójna cewka)...................................................................................................................... 38
2.8
Obsługa błędów ................................................................................................................................................ 39
2.8.1
Błędy podczas RUN / STOP..................................................................................................................... 39
2.8.2
Flagi błędów (F110 / F115) ...................................................................................................................... 39
2.8.3
Wskazania LEDów ................................................................................................................................... 40
2.8.4
Lista kodów błędów (Error code) ............................................................................................................. 41
Rozdział 3 Instrukcje....................................................................................................................................................... 43
2
3.1 Instrukcje podstawowe ........................................................................................................................................... 43
3.1.1 Instrukcje Contact............................................................................................................................................ 43
3.1.2 Instrukcje Connection...................................................................................................................................... 43
3.1.3 Instrukcja negacji............................................................................................................................................. 43
3.1.4 Instrukcje Master control................................................................................................................................. 44
3.1.5 Instrukcje Output ............................................................................................................................................. 44
3.1.6 Instrukcje Step controller (Sterowania krokami)............................................................................................. 44
3.1.7 Instrukcja END................................................................................................................................................ 44
3.1.8 Instrukcja „nic nie rób” No operation.............................................................................................................. 44
3.1.9 Instrukcje liczników czasu - Timer.................................................................................................................. 45
3.1.10 Instrukcje liczników- Counter ....................................................................................................................... 46
3.2 Instrukcje aplikacyjne............................................................................................................................................. 47
3.2.1 Instrukcje Data transfer ................................................................................................................................... 47
3.2.2 Instrukcje Conversion (Konwersji).................................................................................................................. 48
3.2.3 Instrukcje Compare (Porównania) ................................................................................................................... 48
3.2.4 Instrukcje Increment / Decrement (Zwiekszania/ Zmniejszania) .................................................................... 51
3.2.5 Instrukcje Rotation (Rotacji) ........................................................................................................................... 51
3.2.6 Instrukcje Shift ................................................................................................................................................ 52
3.2.7 Instrukcje Exchange (Wymiany) ..................................................................................................................... 53
3.2.8 Instrukcje BIN arithmetic ................................................................................................................................ 53
3.2.9 Instrukcje BCD arithmetic............................................................................................................................... 55
3.2.10 Instrukcje Logical opration............................................................................................................................ 56
3.2.11 Instrukcje Data processing............................................................................................................................. 57
3.1.12 Instrukcje Systemowe.................................................................................................................................... 59
3.2.13 Instrukcje skoków - Branch ........................................................................................................................... 59
3.2.14 Instrukcje pętli Loop...................................................................................................................................... 59
3.2.15 Instrukcje Flag ............................................................................................................................................... 60
3.2.16 Instrukcje Special module ............................................................................................................................. 60
3.2.17 Instrukcje Data link ....................................................................................................................................... 60
3.2.18 Instrukcje Interrupt ........................................................................................................................................ 61
3.2.19 Instrukcje Sign inversion ............................................................................................................................... 61
3.2.20 Instrukcje Bit contact..................................................................................................................................... 62
4. Instrukcje podstawowe ................................................................................................................................................. 63
4.1 Instrukcje stykowe.................................................................................................................................................. 63
4.1.1 LOAD, LOAD NOT, OUT.............................................................................................................................. 63
4.1.2
AND, AND NOT...................................................................................................................................... 65
OR, OR NOT............................................................................................................................................................ 66
Praca silnika (Przykład stosowania instrukcji LOAD, AND, OR, OUT ).................................................................... 67
4.2 Instrukcje Connection............................................................................................................................................. 68
4.1.1 AND LOAD .................................................................................................................................................... 68
4.2.2 OR LOAD ....................................................................................................................................................... 70
4.2.3 MPUSH, MLOAD, MPOP.............................................................................................................................. 72
4.3 Instrukcje negacji.................................................................................................................................................... 74
4.3.1 NOT................................................................................................................................................................. 74
4.4 Instrukcje master control ........................................................................................................................................ 75
4.4.1 MCS, MCSCLR .............................................................................................................................................. 75
Obwód ze wspólną linią (Przykład instrukcji MCS i MCSCLR) ............................................................................. 77
4.5 Instrukcje Output .................................................................................................................................................... 78
4.5.1 D ...................................................................................................................................................................... 78
Wysterowanie naprzemienne (Przykład instrukcji D) .............................................................................................. 79
4.5.2 D NOT............................................................................................................................................................. 80
4.5.3 SET.................................................................................................................................................................. 81
4.5.4 RST.................................................................................................................................................................. 82
Przeciwdziałanie skutkom zaniku napięcia zasilania (Różnice pomiędzy obszarem P i obszarem K)..................... 83
4.6
Instrukcje Step controller.................................................................................................................................. 84
4.6.1
SET Sxx.xx............................................................................................................................................... 84
Sterowanie sekwencyjne ( przykład instrukcji SET Sxx.xx )................................................................................... 85
4.6.2
OUT Sxx.xx.............................................................................................................................................. 86
4.7 Instrukcja End......................................................................................................................................................... 87
4.7.1 END................................................................................................................................................................. 87
4.7 Instrukcja No operation – nic nie rób ..................................................................................................................... 88
4.7.1 NOP ................................................................................................................................................................. 88
3
4.9 Instrukcje liczników czasu - Timer......................................................................................................................... 89
4.9.1 TON................................................................................................................................................................. 89
Migająca lampka (przykład instrukcji TON)............................................................................................................ 90
4.9.2
TOFF ........................................................................................................................................................ 91
Sterowanie transporterem (przykład instrukcji TOFF)............................................................................................. 92
4.9.3
TMR ......................................................................................................................................................... 93
Alarm – wymiana wiertła (przykład instrukcji TMR) .............................................................................................. 94
4.9.4
TMON ...................................................................................................................................................... 95
Układ zapobiegający drganiom (przykład instrukcji TMON) .................................................................................. 96
4.9.5
TRTG........................................................................................................................................................ 97
Układ wykrywający błędy transportera (przykład instrukcji TRTG) ....................................................................... 98
4.10 Instrukcje liczników - Counter ............................................................................................................................. 99
4.10.1 CTU .......................................................................................................................................................... 99
4.10.2 CTD ........................................................................................................................................................ 100
4.10.3 CTUD ..................................................................................................................................................... 101
Układ sterowania pracą silników (przykład instrukcji CTUD) .............................................................................. 102
4.10.4 CTR ........................................................................................................................................................ 103
5 Instrukcje Application ................................................................................................................................................. 104
5.1 Instrukcje Data transfer ........................................................................................................................................ 104
5.1.1 MOV, MOVP, DMOV, DMOVP.................................................................................................................. 104
5.1.2 CMOV, CMOVP, DCMOV, DCMOVP ....................................................................................................... 106
5.1.3 GMOV, GMOVP .......................................................................................................................................... 108
5.1.4 FMOV, FMOVP............................................................................................................................................ 110
5.1.5 BMOV, BMOVP........................................................................................................................................... 112
5.2 Instrukcje Conversion........................................................................................................................................... 114
5.2.1
BCD, BCDP, DBCD, DBCDP ............................................................................................................... 114
Wyświetlanie wartości bieżącej licznika (przykład instrukcji BCD i BMOV) ...................................................... 116
5.2.2
BIN, BINP, DBIN, DBINP..................................................................................................................... 117
5.3 Comparison instructions ....................................................................................................................................... 119
5.3.1
CMP, CMPP, DCMP, DCMPP .............................................................................................................. 119
Układ porównania (Przykład instrukcji CMP) ....................................................................................................... 121
5.3.2
TCMP, TCMPP, DTCMP, DTCMPP..................................................................................................... 122
5.4
Operacje Increment/decrement....................................................................................................................... 124
5.4.1
INC, INCP, DINC, DINCP..................................................................................................................... 124
5.4.2
DEC, DECP, DDEC, DDECP ................................................................................................................ 126
5.5 Instrukcje Rotacji.................................................................................................................................................. 128
5.5.1
ROL, ROLP, DROL, DROLP ................................................................................................................ 128
5.5.2
ROR, RORP, DROR, DRORP ............................................................................................................... 130
5.5.3
RCL, RCLP, DRCL, DRCLP ................................................................................................................. 132
5.5.4
RCR, RCRP, DRCR, DRCRP ................................................................................................................ 134
5.6
Instrukcje Shift ............................................................................................................................................... 136
5.6.1
BSFT, BSFTP......................................................................................................................................... 136
5.6.2
WSFT, WSFTP....................................................................................................................................... 138
5.7
Instrukcje Exchange ....................................................................................................................................... 140
5.7.1
XCHG, XCHGP, DXCHG, DXCHGP ................................................................................................... 140
5.8 Instrukcje BIN arithmetic ..................................................................................................................................... 142
5.8.1
ADD, ADDP, DADD, DADDP ............................................................................................................. 142
5.8.2
SUB, SUBP, DSUB, DSUBP ................................................................................................................. 144
5.8.3
MUL, MULP, DMUL, DMULP............................................................................................................. 146
5.8.4
DIV, DIVP, DDIV, DDIVP.................................................................................................................... 148
5.9 Instrukcje BCD arithmetic.................................................................................................................................... 150
5.9.1
ADDB, ADDBP, DADDB, DADDBP................................................................................................... 150
5.9.2
SUBB, SUBBP, DSUBB, DSUBBP ...................................................................................................... 152
5.9.3
MULB, MULBP, DMULB, DMULBP .................................................................................................. 154
5.9.4
DIVB, DIVBP, DDIVB, DDIVBP ......................................................................................................... 156
5.10 Instrukcje Logical arithmetic.............................................................................................................................. 158
5.10.1 WAND, WANDP, DWAND, DWANDP .............................................................................................. 158
5.10.2 WOR, WORP, DWOR, DWORP........................................................................................................... 160
5.10.3 WXOR, WXORP, DWXOR, DWXORP ............................................................................................... 162
5.10.4 WXNR, WXNRP, DWXNR, DWXNRP ............................................................................................... 164
5.11 Instrukcje Data processing.................................................................................................................................. 166
5.11.1 SEG, SEGP............................................................................................................................................. 166
4
5.11.2 ASC, ASCP ............................................................................................................................................ 169
5.11.3 BSUM, BSUMP, DBSUM, DBSUMP................................................................................................... 171
5.11.4 ENCO, ENCOP ...................................................................................................................................... 173
5.11.5 DECO, DECOP ...................................................................................................................................... 175
5.11.6 FILR, FILRP, DFILR, DFILRP ............................................................................................................. 177
5.11.7 FILW, FILWP, DFILW, DFILWP ......................................................................................................... 179
5.11.8 DIS, DISP ............................................................................................................................................... 181
5.11.9 UNI, UNIP.............................................................................................................................................. 183
5.12 System instructions......................................................................................................................................... 185
5.12.1 DUTY..................................................................................................................................................... 185
5.12.2 OUTOFF................................................................................................................................................. 187
5.13 Instrukcje skoków - Branch ................................................................................................................................ 188
5.13.1 JMP, JME ............................................................................................................................................... 188
5.13.2 CALL, CALLP, SBRT, RET.................................................................................................................. 190
5.14 Instrukcje Flag ................................................................................................................................................ 192
5.14.1 STC, CLC ............................................................................................................................................... 192
5.15 Instrukcje High speed counter ........................................................................................................................ 193
5.15.1 HSCNT ................................................................................................................................................... 193
5.15.2 HSC ........................................................................................................................................................ 195
5.16 Instrukcje RS-485 communication ................................................................................................................. 197
5.16.1 RECV (K10S1)....................................................................................................................................... 197
5.16.2 SEND (K10S1) ....................................................................................................................................... 199
5.16.3 MODBUS (K80S) .................................................................................................................................. 201
Dodatek .......................................................................................................................................................................... 202
A.1 Konfiguracja pamięci .......................................................................................................................................... 202
A.1.1Obiekty pamięci bitowej................................................................................................................................ 202
A.1.2 Obiekt pamięci Bit / Word ( timer & counter )............................................................................................. 202
A.1.3 Obiekt pamięci word(słowowej)................................................................................................................... 202
A.2 Przekaźniki specjalne .......................................................................................................................................... 202
A.2 Przekaźniki specjalne .......................................................................................................................................... 203
A.2.1 K10S1 / K10S / K30S / K60S....................................................................................................................... 203
A.3 Lista instrukcji ..................................................................................................................................................... 206
5
Rozdział 1 Program KGL WIN
1.1 Wprowadzenie
Program KGL WIN jest narzędziem służącym do programowania wszystkich sterowników PLC LG
serii Master K.
Aplikacja działająca w systemie Windows umożliwia programowanie za pomocą języka drabinek
(Ladder - LD) lub listy instrukcji (Mnemonic - IL).
Program umozliwia m.in.:
- edycję programu w trybie off-line (bez obecności PLC)
- edycję on-line – przy działającym PLC
- odczyt programu ze sterownika
- debugowanie programu
- monitoring działającego programu
- konfigurację parametrów sterownika takich jak np. protokoły komunikacyjne, filtracja sygnałów
wejściowych
1.1.1 Instalacja programu
Wersja instalacyjna programu znajduje się w katalogu KGL_WIN na płycie CD-ROM. W
podkatalogu DISK1 znajduje się program uruchamiający instalację (setup.exe).
Program instalacyjny prosi uzytkownika o podanie docelowej ścieżki instalacyjnej.
Po zainstalowaniu programu w menu Start pojawi się folder KGL_WE Application, a w nim pozycja
KGL_WE uruchamiająca program.
6
1.1.2 Okno aplikacji KGL WIN
Okno aplikacji KGL WIN podzielone jest na cztery części.
1
3
2
4
1. Obszar Menu programu oraz paska narzędzi – umożliwia dostęp do większości funkcji programu.
Przykładowo: tworzenie nowego projektu, zapis programu do PLC, drukowanie itd..
2. Obszar projektu umozliwia przechodzenie pomiędzy edycją programu, zmiennych, parametrów sterownika
oraz podglądem stanu zmiennych.
3. Obszar edycji. W obszarze tym pojawiają się okna edycji programu, edycji zmiennych, edycji parametrów
itp.
4. Obszar komunikatów – zawiera m.in. komunikaty o błędach i stanie połączenia z PLC .
7
1.1.3 System pomocy
KGL WIN wyposażony jest w bogaty system pomocy zawierający wszystkie podstawe informacje dotyczące
typów zmiennych, konfiguracji pamieci sterownika oraz instrukcji.
Dostęp do systemu pomocy możliwy jest z menu Help-KGLWIN Help lub z paska narzędzi
& lt; Okno wyszukiwarki systemu pomocy & gt;
& lt; Okno z informacją przykładowo wybranej o instrukcji & gt;
8
.
1.2 Tworzenie projektu
1.2.1 Tworzenie nowego projektu
Aby utworyć nowy projekt wybierz menu Project-New project...
W oknie New project wybierz opcję Blank Project
Następne okno dialogowe umożliwia wybranie serii sterownika, dla którego będzie tworzony program,
wybranie rodzaju edycji Ladder – drabinki, Mnemonic – lista instrukcji. Zmiany trybu edycji będzie można
także dokonać w trakcie pisania programu.
Dodatkowe pola służą do wpisania informacji o autorze i programie – nie są obowiązkowe.
9
Po potwierdzeniu wprowadzonych informacji pojawi się okno programu
1.2.2 Edycja programu (język drabinkowy)
Program z języku drabinek tworzy się za pomocą kilku podstawowych „bloczków” widocznych na pasku
narzędzi okna Program. Znaczenie poszczególnych przycisków podano poniżej.
1. Podstawowy – kursor nie posiada żadnej specjalnej funkcji
2. Selekcja – umożliwia zaznaczenie fragmentu programu np. w celu kopiowania
3. Kontakt normalnie otwarty (NO)
4. Kontakt normalnie zamknięty (NC)
5. Linia pozioma – odpowiednik funkcji „and” lub przypisania
6. Linia pionowa – odpowiednik funkcji „or”
7. Cewka wyjściowa – odpowiednik zmiennej, której przypisujemy wyrażenie zapisane z lewej strony
8. Blok funkcyjny – umożliwia zapisanie za pomocą drabinek zaawansowanych funkcji np. liczników
9. Negacja
10. Powiększenie widoku programu
11. Pomniejszenie widoku programu
12. Dodanie kolumny
13. Usunięcie kolumny
14. Widok szczegółów instrukcji
15. Przejście do edycji programu w formie listy instrukcji
16. Widok użytych zmiennych
17. Widok operacji na użytych zmiennych
18. Pokazywane będą tylko adresy zmiennych
19. Pokazywane będą tylko nazwy zmiennych
20. Pokazywane będą adresy i nazwy
21. Pokazywane będą adresy i komentarze
10
Realizacja przykładowej funkcji logicznej:
P0040= (P0001 OR P0002) AND (NOT P0003)
Kliknij na symbolu -| |- . Następnie kliknij w pierwszej kolumnie pola edycji (lub w miejscu, w którym chcesz
umieścić symbol).
W oknie wprowadź adres bitu (P0001). UWAGA! KGL WIN umożliwia operację bezpośrednio na adresach
dostępnej pamięci. Wcześniejsza deklaracja zmiennych nie jest obowiązkowa.
Tak samo postępuj w przypadku innych symboli przykładowo -|/|- oraz –( )-. Podana powyżej funkcja w
postaci drabinek wygląda następująco:
UWAGA
Program zawsze musi być zakończony instrukcją END. Aby wprowadzić instrukcję END kliknij na przycisk
Blok funkcyjny i wpisz END.
11
& lt; wstawianie bloku funkcyjnego & gt;
1.2.3 Edycja zmiennych
KGL WIN umożliwia edycję programu bez wcześniejszej definicji zmiennych – operacje zapisywane są z
wykorzystaniem bezpośrednich adresó odpowiednich komórek pamięci. W celu uzyskania przejrzystości
programu zaleca się zdefiniowanie listy występujących w nim zmiennych. Aby tego dokonać kliknij na gałęzi
Variable/Comment drzewka projektu (z lewej strony okna aplikacji).
Po podwójnym kliknięciu na wolnej pozycji okna zawierającego listę zmiennych pojawi się okienko edycji
zmeinnej.
12
Wprowadzone nazwy zmiennych mogą być widziane w podczes edycji programu po kliknięci przycisku
Device+Variable na pasku narzędziowym okna edycji.
1.2.4 Lista użytych w programie komórek pamięci
Bardzo pożytecznym narzędziem udostępnianym przez KGL WIN jest lista uzytych w programie komórek
pamięci oraz lista operacji wykonanych na tych komórkach. Aby zobaczyć pierwszą z nich kliknij na
przycisku Used I/O paska narzędzi okna edycji.
Druga z nich dostępna jest po kliknięciu na przycisk Device Reference.
W oknie listy użytych zmiennych wybieramy z paka narzędzi typ komórek, których wykorzystanie nas
interesuje.
13
Podobnie postępujemy w oknie operacji z amiennych. Okno ta dostarcza nam informacji o tym, w którym
kroku programu wystąpiła operacja, jaki był jej typ i którym operandem jest dana zmienna.
1.2.5 Zapis projektu na dysku
Aby zapisać projekt na dysku wybierz menu Project- Save lub Project Save As... i podaj odpowiednią
nazwę.
14
1.3 Połączenie ze sterownikiem PLC
1.3.1 Kabel połączeniowy
Sterowniki LG łączone są z komputerem za pomocą złącza RS232 (COM1, COM2 w komputerze). Każdy
sterownik posiada port loaderowy. Serie K80S, K120S, K200S, oraz K300S posiadają żeńskie gniazdo 9
pinowe, natomiast seria K10S1 gniazdo typu PS2.
& lt; Układ połączeń w kablu komputer PC- PLC LG (loader) & gt;
kod
Komputer PC 9 pin
PLC – LG 9 pin (lub PS2)
kod
RxD
TxD
GND
2
3
5
3
2
5
TxD
RxD
GND
kod
Komputer PC 25 pin
PLC – LG 9 pin (lub PS2)
kod
RxD
TxD
GND
3
2
7
3
2
5
TxD
RxD
GND
1.3.2 Parametry połączenia
Aby ustalić parametry połączenia wybierz menu Project- Options. Na zakładnce Connection Option
wybierz RS232C oraz podaj nazwę portu w twoim komputerze, którego używasz do połączenia ze
sterownikiem.
15
1.3.3 Ustanawianie połączenia ze sterownikiem
Aby połączyć się ze sterownikiem wybierz z menu Online-Connect lub naciśnij przycisk Connect na pasku
narzędzi.
Jeżeli parametry połaczenia oraz fizyczne połączenie (np. kabel) są poprawne w obszarze komunikatów
aplikacji pojawi się informacja Connected With PLC. Przycisk Connect na pasku narzędzi otrzyma nowe
znaczenie – Disconnect (Rozłącz) W przeciwym przypadku pojawi się monit:
1.3.4 Rozłączanie
Aby zamknąć połączenie ze sterownikiem wybierz z menu Online-Disconnect lub naciśnij przycisk
Disconnect na pasku narzędzi.
W obszarze komunikatów aplikacji pojawi się informacja Disconnected With PLC.
1.3.5 Zapis programu w PLC
Po połączeniu z PLC wybierz menu Online-Download lub naciśnij przycisk Download na pasku narzędzi.
1.3.6 Uruchomienie programu
Aby sterownik rozpoczął wykonywanie programu niezbędne jest przestawienie go tryb RUN. W tym celu
Naciśnij przycisk RUN na pasku narzędzi.
1.3.7 Skrócona procedura wgrywania programu
KGL WIN udostępnia skróconą procedurę wgrywania programu do PLC. Słuzy do tego polecenie
Connect+Download+Run+Monitor z menu Online lub przycisk Connect+Download+Run+Monitor z
paska narzędzi.
Po wybraniu tego polecenia KGL WIN nawiązuje połącznie z PLC, zapisuje w jego pamięci program, ustawia
PLC w tryb RUN i włącza monitorowanie stanu zmiennych w PLC.
16
1.4 Praca online
1.4.1 Monitor
Aby przejśc do pracy w trybie monitor połącz się z PLC i wybierz opcję Monitor z menu Online.
W trybie tym KGL WIN umożliwia podgląd stanu zmiennych programu, a także ich modyfikację.
W trybie tym możliwa jest także modyfikacja programu. Przy próbie wprowadzenia zmian do programu w
trybie Online pojawi się ostrzeżenie o mozliwości wywołania poważnego błędu w działającym układzie
automatyki.
Przed zapisaniem zmodyfikowanego programu do PLC KGL WIN zapyta raz jeszcze czy zapisać
zmodyfikowany program w pamięci sterownika:
17
1.4.2 Zmiana wartości zmiennej
Zmiany wartości wybranej zmiennej dokonujemy kilkając prawym klawiszem myszy na symbolu odnoszącym
się do tejże zmiennej. Z podręcznego menu wybieramy opcję Change Current I/O. W oknie dialogowym
wprowadzamy nową wartość.
1.4.3 Montorowanie wartości wielu zmiennych – okno Monitor
Kliknij na gałęzi Monitor drzewka projektu. W pasku okna monitora wybierz typ zmiennej, którą chcesz dodać
do listy. W polu edycji (Device) wpisz jej adres i potwierdź klawiszem ENTER.
18
Rozdział 2 Specyfikacja
2.1 Dane techniczne
K10S1 / K80S / K200S / K300S
Pozycja
K10S1
K80S
K200S
Sposób wykonywania
programu
Cykliczne wykonywanie programu
Sposób sterowania I/O
K300S
Bezpośredni (Odświeżanie)
Liczba
instrukcji
Podstawowe
Application
Max liczba wejść/wyjść
30
154
218
14
10-80
384
5121
Liczba kroków programu
P (I/O relay)
M (Auxiliary relay)
K (Keep relay)
L (Link relay)
F (Special relay)
100ms
T (Timer relay)
10ms
C (Counter relay)
S (Step controller)
D (Data register)
The range of integer
3.2 ~ 7.6µs/krok
0.5 µs/krok
0.2 µs/krok
800
7000
15 000
P0000 ~ P001F
(32 points)
Szybkość procesora
P0000 ~ P015F (256 points)
P0000 ~ P035F
(512 points)
M0000 ~ M015F
(256 points)
K0000 ~ K007F
(128 points)
L0000 ~ L007F
(128 points)
F0000 ~ F015F
(256 points)
T000 ~ T031
(32 points)
T032 ~ T047
(16 points)
C000 ~ C015
(16 points)
S00.00 ~ S15.99
(16×100 steps)
M0000 ~ M191F (3072 points)
K0000 ~ K031F (512 points)
L0000 ~ L063F (1024 points)
F0000 ~ K063F (1024 points)
T000 ~ T191 (192 points)
T192 ~ T255 (64 points)
C000 ~ C255 (255 points)
S00.00~ S99.99 (100×100 steps)
D0000 ~ D0063
(64 words)
D0000 ~ D4999 (5000 words)
16 bit : − 32768 ~ 32767
32 bit : − 2147483648 ~ 2147483647
Typy timerów
Opóźnienie On, Opóźnienie Off, Akumulacyjny, Monostabilny, Powtarzalny
(5 typów)
Typy liczników
Up, Down, Up-down, Ring counter (4 typy)
Język programowania
Mnemonic, Ladder diagram
Funkcje specjalne
Real time clock (Zegar czasu rzeczywistego), High speed counter(Szybki
licznik), RS-485 communication
19
2.2
Mapa konfiguracji pamięci
2.2.1
K10S1
Obszar Bit Data
0
~
Obszar Word Data
F
0000
P00
Przekaźnik I/O
(32 points)
P01
M00
~
FFFF
D000
Rejestr Data
(64 words)
“P”
Przekaźnik pomocniczy
(256 points)
Word
“D”
D063
“M”
M15
K00
K07
F00
F15
L00
T000
Przekaźnik Keep
(128 points)
“K”
Przekaźnik specjalny
(256 points)
“F”
Przekaźnik Link
(128 points)
“L”
L07
T031
T032
T047
C000
C015
Przekażnik Timer
(100ms)
(32 points)
Obszar programu
użytkowego
(800 steps)
NastawaTimera
(48 words)
T047
C000
C015
C000
S00
“T”
Timer czasu który
upłynął
(48 words)
Nastawa Countera
(16 words)
Counter wartości już
odliczonej
(16 words)
Sterownik kroków
(16 x 100 steps)
S00.00~S15.99
S15
Przekażnik Timer
(10ms)
(16 points)
Obszar ustawiania
parametrów
T047
T000
C015
T000
Obszar programu
użytkowego
“S”
“T”
Przekażnik Counter
(16 points)
“C”
Obszar nieulotny
P obszar
Brak
T obszar
T024 ~ T031 (10msec)
K obszar
K000 ~ K07F
T044 ~ T047 (100msec)
L obszar
L00 ~ L07F
C obszar
C012 ~ C015
D obszar
D048 ~ D063
S obszar
S12.00 ~ S15.99
20
2.2.2 K80S
Obszar Bit Data
0
~
Obszar Word Data
F
0000
P00
FFFF
D000
Przekaźnik I/O
P13
M00
~
Rejestr Data
(4500 words)
“P”
Przekaźnik pomocniczy
(3,040 points)
Word
“D”
D4500
“M”
M191
K00
K31
F00
F63
L00
T000
Przekaźnik Keep
(512 points)
“K”
Przekaźnik specjalny
(1,024 points)
“F”
Przekaźnik Link
(1,024 points)
“L”
L63
T191
T192
T255
C000
C255
Przekaźnik Timer
(100ms)
(192 points)
Obszar programu
użytkowego
(2,048 steps)
NastawaTimera
(255 words)
T255
C000
C255
C000
S00
“T”
Timer czasu który
upłynął
(255 words)
Nastawa Countera
(255 words)
Counter wartości już
odliczonej
(255 words)
Sterownik kroków
(100 x 100 steps)
S00.00~S99.99
S99
Przekaźnik Timer
(10ms)
(64 points)
Obszar ustawiania
parametrów
T255
T000
C255
T000
Obszar programu
Użytkowego
“S”
“T”
Przekaźnik Counter
(256 points)
“C”
Obszar nieulotny – możliwa modyfikacja za pomocą KGL WIN
P obszar
T obszar
K obszar
Brak
T072 ~ T095 (10msec)
K000 ~ K15F
T120 ~ T127 (100msec)
L00 ~ L15F
C096 ~ C127
D192 ~ D255
S24.00 ~ S31.99
L obszar
C obszar
D obszar
S obszar
21
2.3
Obiekty pamięci serii MASTER-K
2.3.1 Obszar input / output : P
Obiekty P są używane do przemieszczania danych pomiędzy PLC CPU a urządzeniami
zewnętrznymi.
Obiekty input zachowują dane ON/OFF przychodzące z urządzeń zewnętrznych (np przyciski,
przełączniki wyboru, krańcówki, przełączniki cyfrowe, etc.) na moduł input. Dane wejściowe są
używane przez program jako styki (NO1 i NC) oraz jako dane źródłowe dla instrukcji
basic(podstawowych) i application.
Obiekty output są używane do wystawiania na module output wyników operacji programu do
urządzeń zewnętrznych (np cewki, styczniki, lampki sygnałowe, wskaźniki cyfrowe). Dla obiektów
output dostępne są tylko styki typu NO.
Nadmiarowe obiekty P które nie są podłączone do urządzeń zewnętrrznych, mogą być użyte w taki
sam sposób jak przekaźniki pomocnicze M.
& lt; Rys. 1. Przykład konfiguracji input/output & gt;
P0000
P0001
P0020
( )
P0020
P0002
P0000
P0001
P0021
( )
P0002
P0023
( )
P0021
P0201
Input
P0020
P0021
P0021
P0024
( )
P0023
Output
P0024
Sygnały wejściowe są zapamietywane w pamięci input data w momencie poprzedzającym
wykonanie każdego scan’u. Pamięć input data jest używana do wykonywania sekwencyjnie
operacji programu. Wyniki operacji są sukcesywnie wystawiane do pamięci output data. Dane z
pamięci output data są wystawiane na moduł output po wykonaniu instrukcji END. Proszę się
upewnić, że nie ma konfliktu pomiędzy input a output w programie użytkowym, ponieważ seria
MASTER-K używa obszaru P wspólnie dla input i output.
1
NO : Normally Open contact, NC : Normally Closed contact
22
& lt; Rys. 2. Przepływ danych input / output w modzie odświeżania & gt;
CPU
P0000
Read
P0020
( )
P0001 P0020
Pamięć
Input P
Data
Read
Moduł Input
Write
Moduł Output
P0021
( )
Write
Read
Pamięć
Output P
Data
Moduł CPU
- Odświeżenie Input
Dane wejściowe są czytane ( ) z modułu input module przed wykonaniem step 0 i
zapamiętane w pamięci input data.
- Gdy jest wykonywany rozkaz input contact(wprowadzenie styku):
Dane wejściowe są czytane ( ) z pamięci input data i użyte do wykonania sekwencji programu.
- Gdy jest wykonywany rozkaz output contact(wyprowadzenie styku):
Dane wyjściowe są czytane ( ) z pamięci output data i użyte do wykonania sekwencji
programu.
- Gdy wykonywane jest wystawianie instrukcji OUT:
Wynik operacji ( ) jest zapamiętywany w pamięci output data.
- Odświeżenie Output
Dane ( ) z pamięci output data są wystawiane do modułu output po wykonaniu instrukcji END.
2.3.2 Przekaźnik pomocniczy : M
Obszar M jest wewnętrznym przekaźnikiem używanym przez PLC CPU i nie może on być
bezpośrednio połączony z urządzeniami zewnętrznymi. Cały obszar M oprócz obszaru
latched(zatrzaskujący się) będzie wyczyszczony do 0, gdy PLC zostanie włączony lub wejdzie w
mod RUN. W K80S/K200S / K300S / K1000S, użytkownik może zmienić obszary latched przez
zmianę parametrów(parameter setting).
23
2.3.3 Przekaźnik Keep : K
Obszar K funkcjonuje tak samo jak obszar M. Jednakże wyniki operacji są zachowane, przez
zmianę parametrów(parameter setting).Obszar K może być wyczyszczony przy użyciu
następujących metod;
- Wstaw procedurę inicjalizacji do sekwencji programu.
- Uruchom funkcję wyczyszczenia danych przez hand-held loader (KLD-150S)
- Uruchom funkcję wyczyszczenia danych przez PC graphic loader (KGL-WIN)
2.3.4
Przekaźnik Link : L
Obszar L jest wewnętrzną pamięcią używaną do przechowywania danych lub do komputerowych
systemów link. Jeżeli w systemie PLC nie ma zamontowanych modułów link to obszar ten może
być używany tak samo jak obszar M. W K200S / K300S / K1000S, istnieje możliwość zmiany
zakresu obszaru link przez zmianę parametrów(parameter setting). Szczegóły użycia obszaru L,
patrz lista przekaźników link w appendix oraz
w podręczniku computer link.
2.3.5 Sterownik kroków : S
Obszar S może być użyty dla dwóch rodzajów sterownika kroków, zgodnie z instrukcjami - OUT
lub SET.
Jeżeli użyto instrukcji OUT, obszar S funkcjonuje w priorytecie „ostatnio użyty”. W przeciwnym
przypadku funkcjonuje on jako sterownik sekwencyjny. (Szczegóły użycia - patrz rozdział 4)
Gdy PLC zostanie włączony lub wejdzie w mod RUN, to obszar S zostanie zainicjowany na krok
(Sxx.00) oprócz obszaru latch wyznaczonego przez nastawę parametrów(parameter setting).
OUT
S00.02
OUT
S00.29
OUT
S00.61
SET
S00.01
SET
S00.02
SET
S00.03
SET
S00.04
SET
S00.00
W tej samej grupie, włączony ostatnio
ma proiorytet.
Sterowanie sekwencyjne oznacza, że
dany proces może być wykonany tylko
wtedy gdy poprzedni został już
zakończony.
Warunek wyczyszczenia (Sxx.00 )
może być wykonany w każdym czasie,
sekwencji procesu.
24
2.3.6 Przekaźnik Timer : T
Seria MASTER-K posiada timery 100msec i 10msec (K120S także 1msec). Działanie timerów jest
różne w zależności instrukcji timera (TON, TOFF, TMR, TMON, TRTG). Maksymalna nastawa
timera jest hFFFF hexadecymalnie lub 65535 dziesiętnie. Rysunki poniżej pokazują działanie
timerów w zależności od ich instrukcji.
& lt; Rys. 3. Typy timerów i ich działanie & gt;
Instrukcja
Timer
Styk Input
Instrukcja
timera
Opis
No. timera
Nastawa
Działanie
Przebiegi czasowe
Opóźnienie ON
Input
TON
ON Delay
Narastająco
t
Output
Input
TOFF
OFF Delay
t =Nastawa
Opóźnienie OFF
t
Opadająco
Output
t =Nastawa
Input
TMR
Accumulation
ON Delay
t = t1 + t2
Narastająco
t1
Output
t2
t =Nastawa
Timer Monostabilny
Input
TMON
Monostable
t
Opadająco
Output
t =Nastawa
Input
TRTG
Retriggerable
Timer
Sumujący
t
Opadająco
Output
Timer ponownie
wyzwalany
(Powtarzalny)
t =Nastawa
25
2.3.7 Przekaźnik Counter : C
Licznik liczy narastające zbocza impulsów. Zliczanie odbywa się w momencie zmiany na input z
OFF na ON. Seria MASTER-K posiada 4 instrukcje licznika: CTU, CTD, CTUD i CTR. Maksymalna
wartość nastawy licznika wynosi hFFFF ( = 65535). Praca liczników została pokazana poniżej.
& lt; Rys. 4. Typy i działanie instrukcji liczników & gt;
Input
U CXX CXXX
R & lt; S & gt; XXXX
Reset
Symbol
instrukcji
Typ
Zbocze narastające (OFF→ON)
Sposób
liczenia
Sygnał
Przebiegi czasowe
input
Reset
CTU
Up
Counter
Input
Increment
1
Nastawa
Wartość odliczona
Output
Reset signal
CTD
Down
counter
Input
Decrement
1
Wartość odliczona
Nastawa
Output
Reset
Input up
CTUD
Up/Down
Counter
Increment /
Decrement
2
Input down
Nastawa
Wartość odliczona
Output
Reset
Input
CTR
Ring
counter
Increment
1
Nastawa
Wartość odliczona
Output
26
2.3.8 Rejestr Data D
Obszar D jest używany do zapamiętywania danych numerycznych. Każdy rejestr danych zawiera
16 bitów (1 słowo) które jest podstawową jednostką do zapisu i odczytu.
Dla instrukcji o podwójnej długości słowa, numer rejestru danych przeznaczony jest dla 16 bitów
młodszych, natomiast numer rejestru danych +1, przeznaczony jest dla 16 bitów starszych.
Przykład)
DMOV
h12345678
High 16 bits
D050
Lower 16 bits
D51
D50
h1234
h5678
Obszar D oprócz obszaru latch wyznaczonego przez nastawę parametrów, zostanie wyczyszczony
na 0, gdy PLC zostanie włączony lub wejdzie w mod RUN.
2.3.9 Pośrednie wyznaczenie rejestru data : #D
#D jest używany do pośredniego adresowania obszaru D. Zawartość rejestru data oznaczonego
symbolem ‘#’ wskazuje rzeczywisty adres rejestru data pod którym zapamiętywany jest wynik
operacji. Jeżeli #D jest używana w związku z instrukcją o podwójnym słowie, numer rejestru
danych #D przeznaczony jest dla 16 bitów młodszych, natomiast numer rejestru danych +1,
przeznaczony jest dla 16 bitów starszych.
Przykład)
MOV D000 #D1023
(No. rejestru Data)
D0000
(Hex value)
h7893
Rzeczywiste przesunięcie
danych
D1000
D1023
Adresowanie pośrednie
(#D1023)
h03E8(1000)
Uwagi
Jeżeli wartość danych w rejestrze # D przekroczy zakres adresu obszaru D, to
zostanie ustawiona flaga błędu(F110), a wykonywana instrukcja zostanie
zignorowana.
27
2.3.10 Przekaźnik specjalny : F
Obszar F jest przeznaczony wyłącznie do odczytu i użytkownik nie może zmienić zawartości tego
obszaru.
Szczegóły – patrz tabela przekaźnik Fw rozdziale appendix.
2.3.11 Przekaźnik specjalny M / L : M / L
Niektóre przekaźniki M lub L są zarezerwowane do specjalnych zastosowań. Patrz lista
przekażników specjalnych w rozdziale appendix i bądź ostrożny w używaniu obszarów M lub L w
programie.
2.3.12 Rejestr Special data : D
Niektóre rejestry data są zarezerwowane do specjalnych zastosowań. Rejestry te różnią się w
zależności od typu CPU. Patrz lista rejestrów specjalnych w rozdziale appendix i bądź ostrożny w
używaniu tych rejestrów w programie.
Dla sterownika Master K80S obszar rejestrów specjalnych zawiera komórki D4500 - D4999.
28
2.4 Ustawianie parametrów
2.4.1 Nastawa Watchdog timera
(Tylko dla K200S / K300S / K1000S)
Zakres nastawy : 10msec ~ 6000msec
Jednostki nastawy : 10msec
Wartość pierwotna watch dog timera wynosi 200msek. Watch dog timer sterowników K10S1,
K10S, K30S, oraz K60S jest ustawiony na stałe na 200msek.
29
2.5
Praca CPU
2.5.1 Praca cykliczna
W pracy cyklicznej jest powtarzana seria operacji. CPU powtarza operacje jak pokazano poniżej.
Rys. 2-3 Praca CPU
Odświeżanie Input
Step : 0000
Step : 0001
Operation
:
:
1 Scan
END
Samodiagnozowanie
Odświeżanie output
CPU odświeża input data, następnie wykonuje sekwencję programu przechowywaną w pamięci
wewenętrznej, poczynając od step 0 do instrukcji END. Po wykonaniu instrukcji END, CPU
wykonuje samodiagnozowanie i odświeża output data, następnie powraca do odświeżenia input.
Uwagi
Scan : Seria kroków od step 0 do następnego step 0 nazywana jest scan’em. Czas scanu
jednostki CPU jest liczony jako całkowity czas wykonania sekwencji programu (step 0 do END)
plus czas wewnętrznego procesu (samodiagnoza i odświeżanie I/O) jednostki CPU.
30
2.5.2 Mod pracy CPU
Seria MASTER-K posiada 4 mody pracy jak poniżej. Strzałki pokazują jakie zmiany modów pracy
są możliwe.
& lt; Rys. 2-4 Mody pracy serii MASTER-K & gt;
Mod
RUN
Mod
Program
Mod
Pause
Mod
Debug
1) Diagram modu RUN
Start modu RUN
Wyczyść obszary
pamięci nie-latch
Sprawdź program
użytkowy
Wykonanie sekwencji
programu
END wykonywania *1)
Odświeżanie I/O
Sprawdź zmianę modu
*1) END(Koniec) wykonywania : Samodiagnozowanie, uaktualnienie Timer / Counter
31
2) Diagram modu Program (PGM)
Start modu PGM
Ustaw output off
Samodiagnozowanie
Odświeżanie I/O
Sprawdź zmianę modu
- Program czytanie / pisanie / monitorowanie może być wykonywany w modzie program.
Zewnętrzne połączenia przewodów mogą być sprawdzane przez funkcję wymuszenia stanów
on/off na I/O.
3) Diagram modu Pause
Start modu Pause
Samodiagnozowanie
Sprawdź zmianę modu
- Stopuje pracę CPU, lecz utrzymuje status output oraz pamięci wewnętrznej.
4) Diagram modu Debug
Start modu Debug
Wyczyść obszary pamięci nie-latch
T
Stop operation
N
Wykonaj operację od wyznaczonego
step’u(kroku )
Samodiagnozowanie
Odśwież I/O
Sprawdź zmianę modu
32
2.6
Funkcje specjalne serii MASTER-K
2.6.1 Funkcja RTC (Real Time Clock) (Zegar czasu rzeczywistego)
Ponieważ funkcja RTC jest opcjonalna, nie cała seria MASTER-K obsługuje tę funkcję. Patrz
katalog oraz podręczik CPU dla stosowanego modelu.
Zegar funkcji RTC funkcjonuje w oparciu o baterię lub super kondensator, nawet gdy CPU jest
odłączona od zasilania.
1) Dane zegara
Dane zegara zawierają rok, miesiąc, dzień, godzinę, minuty, sekundy i datę.
Nazwa danych
Rok
Miesiąc
Dzień
Godzina
Minuta
Sekunda
Data
Opis
Dwie najmłodsze cyfry Ery Chrześcijańskiej
1 do 12
1 do 31 (Rok przestępny jest odróżniany
automatycznie)
0 do 23 (24 godziny)
0 do 59
0 do 59
0
Niedziela
1
Poniedziałek
2
Wtorek
3
Środa
4
Czwartek
5
Piątek
6
Sobota
2) Dokładność
1,728 sekund na dzień (głównie temperatura)
3) K10S / K30S / K60S
a) Czytaj RTC data
RTC data są zapamiętane jak pokazuje tabela poniżej.
Obszar pamięci
(Word)
Wyższy byte
Niższy byte
Przykładowe
dane
(BCD format)
L012
Rok
-
h98xx
L013
Dzień
Miesiąc
h2212
L014
Godzina
Data
h1902
L015
Sekunda
Minuta
h4637
Description
Przykład : 1998. 12. 22. 19:37:46, Wtorek
33
b) Zapisz RTC data
Są dwa sposoby zapisu nowych RTC data do CPU.
Pierwszy to użycie handy loader (KLD-150S)(Programator ręczny) lub graphic loader
(KGL-WIN)(Program na PC). Szczegółowe informacje patrz podręcznik user’s manual
KLD-150S lub KGL-WIN.
Drugi sposób to użycie programu piszącego. Przez ustawienie specjalnych bitów
użytkownik może zamienić bieżące RTC data na ustawione w wyspecyfikowanym
obszarze pamięci. Adresy pamięci obszaru ustawionych danych oraz przykładowy
program, podane są poniżej.
Ustawione RTC data są zapamiętywane jako następująca tabela.
Obszar pamięci
(Word)
Wyższy byte
Niższy byte
Przykładowe
dane
(BCD format)
D249
Rok
-
h99xx
D250
Dzień
Miesiąc
h1701
D251
Godzina
Data
h1100
D252
Sekunda
Minuta
h2453
Opis
Przykład : 1999. 1. 17. 11:53:24, Niedziela
M310 (bit zmiany RTC data) : Gdy bit M310 zostanie ustawiony, nowe dane z D249 ~
D252 zostaną przesunięte do L12 ~ L15. Po tej operacji, M310 musi zostać natychmiast
wyzerowany, ponieważ bieżące dane będą odświeżane z każdym scan’em gdy bit
M310 jest ustawiony.
& lt; Przykładowy program & gt;
P000
[ MOV h9900 D0249 ]
:1999
[ MOV h1701 D0250 ]
:17ty Stycznia
[ MOV h1100 D0251 ]
:11sta Niedziela
[ MOV h2453 D0252 ]
Styk startu
:53m 24s
[ D M310 ]
:Zmiana możliwa
Inny program
Uwagi
a) RTC data nie są ustawiane fabrycznie. Przed użyciem funkcji RTC , zapisz
poprawne RTC data do modułu CPU lub RTC.
b) Jeżeli nierozsądne RTC data są wpisane do CPU, to operacja RTC nie może być
wykonywana normalnie.
Przykład : 13 (miesiąc) 32 (dni)
34
2.7 Sprawdzanie programu
2.7.1 JMP – JME
1) Jeżeli warunek input instrukcji JMP n zostanie ustawiony, CPU pomija wszystkie instrukcje aż
do napotkania JME n. Pominięte instrukcje są traktowane jako instrukcje NOP. Maksymalnie
może być użytych 128 JMP-JME. (JMP 0 ~ JMP 127, JME 0 ~ JME 127)
JMP
LOAD
000
P0000
OUT
JME
P001
000
Wykonywane
jako NOP’
2) Instrukcja JMP n powinna współpracować tylko z jedną instrukcją JME n. W programie może
występować tylko jedna instrukcja JME n. Jednakże instrukcja JMP n może występować
wielokrotnie.
JMP
JMP
JMP
001
001
JME
001
001
JME
001
JME
001
Błąd
Nie ma
błędu
3) Instrukcja JMP n bez odpowiadającej jej instrukcji JME n (JMP n bez odpowiednika),
spowoduje błąd programu. Jeżeli JME lub JMP znajduje się wewnątrz pęli (podprogram,
FOR~NEXT blok lub procedura interrupt), to wystąpi błąd operacji w momencie ustawienia
warunku skoku JMP.
JMP 005 : Błąd (Występuje
MOV
JMP 005
pojedyńczo)
: Błąd gdy ustawiony
warunek skoku
FOR 50
END
JME 005
NEXT
35
2.7.2 CALL , SBRT / RET
1) CALL n, CALLP n :
Instrukcja CALL(P) wykonuje podprogram wyspecyfikowany przez wskaźnik ‘n’.
Dozwolony wielokrotny poziom zagłębiania instrukcji CALL(P).
2) SBRT / RET
Instrukcja SBRT wskazuje start podprogramu, a RET wskazuje koniec. Obie te instrukcje
powinny występować parami.
LOAD
P000
SBRT
40
: Błąd (SBRT przed END)
END
RET
: Błąd (Występuje pojedyńczo)
LOAD
P042
CALL
30
: Błąd (Brak SBRT)
END
LOAD
P010
CALL
30
END
SBRT
30
: Błąd (Brak RET)
LOAD
P03F
END
SBRT
20
: Błąd (Brak CALL)
RET
36
2.7.3 MCS – MCSCLR
Instrukcja MCS n startuje sekwencję master control. Po każdej instrukcji MCS występuje liczba (n),
która wskazuje jaki jest priorytet sekwencji master control. Zakres (n) jest 0 ~ 7.
MCS
0 : High(Wysoki)
↕
MCS
7 : LOW(Niski)
Instrukcja MCSCLR n kończy sekwencję master control. Gdy instrukcja MCSCLR jest
wykonywana, to wszystkie master control które mają niższy priorytet, są automatycznie zerowane.
MCS
MCS
0
1
↕
MCSCLR
MCSCLR
0 : (MCS 1 jest zerowana automatycznie)
1 : Błąd (Niepoprawny rozkaz MCSCLR)
Gdy używana jest master control, to powinna startować od najwyższego priorytetu a kończyć od
najniższego priorytetu. Instrukcje MCS n i MCSCLR n powinny występować parami. W przeciwnym
wypadku wystąpi błąd.
37
2.7.5
1)
END / RET
Jeżeli w sekwencji programu brakuje END , wystąpi błąd i CPU przerwie pracę.
LOAD
P012
JMP
JME
2)
10
10
: Brakujący END
Jeżeli w sekwencji podprogramu brakuje RET , wystąpi błąd i CPU przerwie pracę.
END
SBRT
LOAD
OUT
P000
: Brakujący RET
P010
2.7.6 Dual coil(Podwójna cewka)
Jeżeli memory device(obiekt pamięci) jest używany jako output operacji dwa lub więcej razy, to
wystąpi błąd
dual coil. Ponieważ nie jest to poważny błąd, nie nastąpi zatrzymanie pracy CPU.
LOAD
P0000
OUT
M000
OUT
M000 : Błąd dual coil
SET
M000 : Błąd dual coil
38
2.8
Obsługa błędów
2.8.1
Błędy podczas RUN / STOP
Gdy wystąpi błąd operacji (błąd adresowania pośredniego, błąd operacji BCD, etc) , jednostaka
CPU decyduje
kontynuować operację lub nie bazuje na nastawach parametrów.
Patrz rozdział 2.4.4 .
2.8.2 Flagi błędów (F110 / F115)
Gdy wystąpi błąd CPU w modzie RUN, to zapalą się dwie flagi błędów (F110 i F115).
F110 jest odświeżana po wykonaniu każdej instrukcji. Wykonywana instrukcja nie jest związana z
jakimkolwiek błędem (jak na przykład instrukcja LOAD), jest to tylko konsekwencja poprzedniej
wartości. Natomiast flaga F115 jest ustawiana natychmiast po wystąpieniu błędu. Zerowanie flagi
F115 wykonuje instrukcja CLE. Tabela poniżej pokazuje przykłady działania F110 i F115.
Program
Wystąpił błąd?
F110
F115
ADD D0 10 M20
Nie
OFF
OFF
MOV D0 #D10
Tak
ON
ON
LOAD P0000
N/A
ON
ON
INC D0
Nie
OFF
ON
LOAD P0001
N/A
OFF
ON
WAND P01 M10 #D400
Tak
ON
ON
LOAD P0002
N/A
ON
ON
WAND P01 M10 D300
Nie
OFF
ON
CLE
N/A
OFF
OFF
LOAD P0003
N/A
OFF
OFF
WAND P01 M10 D500
Nie
OFF
OFF
BCD hFFFF D20
Tak
ON
ON
39
Uwagi
D10 = hFFFF
D400 = hFF00
Zeruj F115
2.8.3 Wskazania LEDów
1) K10S1 / K10S / K30S / K60S
Nazwa LED
Status pracy
Wskazanie LED
· Błąd poważny
ERR
Miganie z okresem 1sek
· Błąd Light
· Błąd programu lub parametru
· CPU jest w modzie RUN
RUN
CPU jest w modzie Stop lub
wystąpił błąd
40
ON w sposób ciągły
OFF w sposób ciągły
2.8.4 Lista kodów błędów (Error code)
Komunikat
Kod
(F006)
CPU
Opis
Korekcja
Błąd
wewnętrzny
systemu
System error
h0001
Stop
Uszkodzenie w ROM systemowym lub
w H/W .
Kontakt z serwisem LG
Błąd OS ROM
OS ROM
error
h0002
Stop
Uszkodzony wewnętrzny ROM.
Kontakt z serwisem LG
Błąd OS RAM
OS RAM
error
h0003
Stop
Uszkodzony wewnętrzny RAM.
Kontakt z serwisem LG
Błąd Data
RAM
Data RAM
error
h0004
Stop
Uszkodzony RAM data.
Kontakt z serwisem LG
Błąd Program
RAM
Error
h0005
Stop
Uszkodzony RAM program.
Kontakt z serwisem LG
Błąd Gate
array
G/A error
h0006
Stop
Uszkodzona matryca CPU.
Kontakt z serwisem LG
Błąd Sub rack
power down
Sub power
error
h0007
Stop
Brak zasilania szyny rozszerzeń lub jej
uszkodzenie.
Sprawdź zasilanie
szyny rozszerzeń.
Włącz/wyłącz
CPU.Jeżeli błąd jest
nadal, skontaktuj się z
serwisem LG.
Typ Error
Błąd OS WDT
time out
(przekroczenie
czasu)
Błąd wspólnej
RAM
Przerwa w
bezpieczniku
Błąd kodu
instrukcji
Błąd Flash
Memory
OS WDT
error
h0008
Stop
Za długi czas operacji CPU
(nie chodzi tu o czas scan’u).
Common
RAM error
h0009
Stop
Błąd wspólnej RAM
Kontakt z serwisem LG
I/O fuse error
h000A
Run
(Stop)
Przepalony bezpiecznik
Wymień bezpiecznik
h000B
Stop
CPU podczas wykonywania napotkał
instrukcję której nie może zdekodować.
Kontakt z serwisem LG
H000C
Stop
CPU nie ma dostępu do wewnętrznej
pamięcil flash.
Sprawdź pamięć flash
i w razie potrzeby
wymień.
Montaż lub demontaż modułu gdy
PLC jest zasilany.Czynność
niepoprawna.
Uszkodzony moduł I/O lub kabel
rozszerzający.
Wyłącz zasilanie –
Zamontuj moduł –
Włącz zasilanie
Wymień moduł I/O
lub kabel
rozszerzający.
OP code
error
User
memory
error
Błąd I/O slot
I/O slot error
h0010
Stop
Przekroczenie
liczby I/O
Max I/O over
h0011
Stop
Błąd karty
specjalnej I/F
Special I/F
error
h0012
Stop
Błąd
Fmm 0 I/F
Fmm 0 I/F
error
h0013
Stop
Błąd Fmm 0 I/F
Kontakt z serwisem LG
Błąd
Fmm 1 I/F
Fmm 1 I/F
error
h0014
Stop
Błąd Fmm 1 I/F
Kontakt z serwisem LG
Błąd
Fmm 2 I/F
Fmm 2 I/F
error
h0015
Stop
Błąd Fmm 2 I/F
Kontakt z serwisem LG
Błąd
Fmm 3 I/F
Fmm 3 I/F
error
h0016
Stop
Błąd Fmm 3 I/F
Kontakt z serwisem LG
Błąd
parameteru
Parameter
error
h0020
Stop
Zły parametr lub ma on niepoprawną
sumę kontrolną
Zmień parametry
nastaw.
Liczba punktów I/O przekroczyła limit.
(Błąd nadmiernej ilości
zamontowanych Fmm , ···)
Błąd wystąpił podczas dostępu do
karty specjalnej.
41
Wymień moduł I/O.
Kontakt z serwisem LG
Error Code(Kody błędów) (Kontynuacja)
Typ Error
Komunikat
Kod
(F006)
CPU
Opis
Gdy CPU zostanie zasilona lub ustawiona
w mod RUN, a moduły I/O nie są
zamontowane tak jak w nastawach
parametrów I/O.
Wartość nastawy parametrów I/O lub
ilość zamontowanych punktów I/O
przekracza maksymalną liczbę punktów
I/O modułu CPU
Korekcja
Zmień parametry
nastaw lub przestaw
moduły I/O
Błąd
parameteru I/O
I/O parameter
error
h0021
Stop
Błąd Maximum
I/O
I/O parameter
error
h0022
Stop
Błąd
parametru
Fmm 0
Błąd
parametru
Fmm 1
Błąd
parametru
Fmm 2
Błąd
parametru
Fmm 3
Fmm 0
parameter
error
Fmm 1
parameter
error
Fmm 2
parameter
error
Fmm 3
parameter
error
Operation
error
h0023
Run
Błąd parametru Fmm 0
Zmień parametry
nastaw
h0024
Run
Błąd parametru Fmm 1
Zmień parametry
nastaw
h0025
Run
Błąd parametru Fmm 2
Zmień parametry
nastaw
h0026
Run
Błąd parametru Fmm 3
Zmień parametry
nastaw
h0030
Stop
(Run)
· Błąd operacji BCD
· Błąd operandu
Sprawdź program
Czas scan przekroczył wartość nastawy
parametru “watch dog” timera.
Zmień parametry
nastaw lub wstaw
instrukcję WDT.
Błąd Operacji
Błąd WDT
WDT over
error
h0031
Stop
Błąd zmiany
programu
PGM Change
error
h0032
Stop
Błąd zmiany
programu
Błąd
sprawdzaniako
du
Błąd braku
instrukcji END
PGM Change
error
h0033
Run
Code chack
error
h0040
Stop
Natrafiono na instrukcję która nie może
być zdekodowana w programie.
h0041
Stop
Brak w programie instrukcji END.
h0042
Stop
Brak instrukcji RET w podprogramie.
h0043
Stop
h0044
Stop
Błąd wystąpił w czasie edycji programu w
modzie RUN. (Zmiana nie została
zakończona.)
Błąd wystąpił w czasie edycji programu w
modzie RUN.
Zmień parametry
nastaw
Sprawdź program
Błąd instrukcji
JMP~JME
Missing END
instruction
Missing
RET
instruction
Missing
SBRT
instruction
JMP/JME
error
Błąd instrukcji
FOR~NEXT
FOR~NEXT
error
h0045
Stop
Instrukcje FOR~NEXT zostały użyte
niepoprawnie.
Sprawdź program
Błąd MCS ~
MCSCLR
MCS ~
MCSCLR error
h0046
Stop
Instrukcje MCS ~MCSCLR zostały użyte
niepoprawnie.
Sprawdź program
Błąd MPUSH
~ MPOP
MPUSH ~
MPOP error
h0047
Stop
Instrukcje MPUSH ~ MPOP zostały użyte
niepoprawnie.
Sprawdź program
Błąd Dual Coil
Dual Coil error
h0048
Stop
Device został użyty jako output operacji
więcej niż jeden raz.
Sprawdź program
Błąd Syntax
Syntax
error
h0049
Stop
Zły warunek input lub za dużo instrukcji
LOAD, etc.
Sprawdź program
Błąd Baterii
Battery error
h0050
Run
Za niskie napięcie baterii podtrzymującej.
Zmień na nową,
Błąd braku
RET
Błąd braku
SBRT
Przywoływany jest podprogram przez
instrukcję CALL, lecz takiego
podprogramu nie ma.
Instrukcje JMP~JME zostały użyte
niepoprawnie.
42
Wstaw instrukcję END
na końcu programu.
Wstaw instrukcję RET
na końcu
podprogramu.
Napisz podprogram
Sprawdź program
Rozdział 3 Instrukcje
3.1 Instrukcje podstawowe
Symbol
instrukcji
Funkcja
No
CPU
Jedn
3.1.1 Instrukcje Contact
Str.
LOAD
-
-
NO styk operacja start
4 1
LOAD NOT
-
-
NC styk operacja start
4 1
AND
-
-
NO styk połączenie szeregowe
4 3
AND NOT
-
-
NC styk połączenie szeregowe
4 3
OR
-
-
NO styk połączenie równoległe
4 4
OR NOT
-
-
NC styk połączenie równoległe
4 4
Symbol drabinkowy
Wykonywane operacje
AND LOAD
-
OR LOAD
-
MPUSH
005
MPUSH
MLOAD
006
MLOAD
MPOP
007
A
A
B
MPOP
( )
( )
( )
Połączenie szeregowe bloków
4 6
-
B
Str.
-
Symbol drabinkowy
CPU
Funkcja
No
Połączenie równoległe bloków
4 8
-
Zapamiętuje wynik operacji
4 10
-
Czyta wynik operacji z MPUSH
4 10
-
Czyta wynik operacji z MPUSH i
zeruje wynik
4 10
Jedn
Symbol
instrukcji
Jedn
3.1.2 Instrukcje Connection
Wykonywane operacje
Wykonywane operacje
Symbol
instrukcji
Funkcja
No
NOT
-
Symbol drabinkowy
Uwagi
Aplikacja w typie CPU : ○ = Wszystkie CPUs ;
K1000S
-
Neguje wynik operacji
CPU
3.1.3 Instrukcja negacji
= K10S1 / K10S / K30S / K60S ; * = K200S / K300S /
43
Str.
4 12
Funkcja
No
MCS
010
MCS
MCSCLR
011
MCSCLR n
Symbol drabinkowy
Wykonywane operacje
CPU
Symbol
instrukcji
Jedn
3.1.4 Instrukcje Master control
Str.
-
n
Startuje master control
-
Kończy master control
4 – 13
4 13
D
017
D NOT
018
SET
-
RST
-
RST
OUT
-
Narastające
zbocze
sygnału
wejściowego ustawia device na
czas trwania jednego scan’u.
-
Opadające
zbocze
sygnału
wejściowego ustawia device na
czas trwania jednego scan’u.
4 – 18
-
Ustawia obiekt
4 – 19
D
SET
-
-
Resetuje obiekt
4 – 20
)
-
Wystawia obiekt na wyjściu
Symbol drabinkowy
D
D
D NOT
D
(
CPU
Funkcja
No
Wykonywane operacje
D
Symbol
instrukcji
Jedn
3.1.5 Instrukcje Output
Str.
4 16
Funkcja
No
SET S
-
OUT S
-
Symbol drabinkowy
Wykonywane operacje
CPU
Symbol
instrukcji
Jedn
3.1.6 Instrukcje Step controller (Sterowania krokami)
Str.
Sxx.xx
-
Sterowanie sekwencyjne
( Sxx.xx )
-
Ostatnio użyty ma priorytet
4 – 24
SET
4 22
Funkcja
No
END
001
Symbol drabinkowy
END
-
Wykonywane operacje
Kończy sekwencję programu
CPU
Symbol
instrukcji
Jedn
3.1.7 Instrukcja END
Str.
4 25
Funkcja
No
NOP
000
Symbol drabinkowy
Brak symbolu
-
Wykonywane operacje
Nie rób nic (zajmuje 1 krok)
44
CPU
Symbol
instrukcji
Jedn
3.1.8 Instrukcja „nic nie rób” No operation
Str.
4 26
Funkcja
No
Symbol drabinkowy
Wykonywane operacje
-
Str.
& lt; Opóźnienie On & gt;
nastawa
TON
CPU
Symbol
instrukcji
Jedn
3.1.9 Instrukcje liczników czasu - Timer
Input
TON Txxx
t
-
4 27
Output
Timer No.
t = nastawa
& lt; Opóźnienie Off & gt;
nastawa
TOFF
-
Input
TOFF Txxx
t
-
4 – 29
Output
Timer No.
t = nasatawa
& lt; Akumulacja & gt;
nastawa
TMR
-
TMR Txxx
v
Input
-
Output
Timer No.
Input
-
TMON Txxx v
-
4 – 33
t = nastawa
& lt; Timer ponownie wyzwalany & gt;
nastawa
-
t
Output
Timer No.
TRTG
4 – 31
2→
t = nastawa ( t = t1+t2 )
& lt; Timer monostabilny & gt;
nastawa
TMON
1
←t → ←t
TRTG Txxx v
Input
-
t
Output
Timer No.
t = nastawa
45
4 – 35
Funkcj
a No
Symbol drabinkowy
Counter No.
↓
Input
-
Reset
v
R & lt; S & gt;
Wykonywane operacje
Str.
Reset
Input
U CTU C
CTU
CPU
Symbol
instrukcji
Jedn
3.1.10 Instrukcje liczników- Counter
- Wartośćbi
Nastawa
4 37
Nastaw
a
4 – 38
eżąca
↑
Nastawa
Counter No.
Input
D CTD C
-
Reset
↓
Input
CTD
Output
Reset
v
R & lt; S & gt;
↑
- Wartośćb
ieżąca
Nastawa
Output
Counter No.
Reset
↓
Up
Input
CTUD
-
Down
Input
U CTUD C
Up
Input
Down
Input
D
Nastawa
Reset
v
R & lt; S & gt;
↑
Wartośćbi
eżąca
Nastawa
Output
Counter No.
Reset
↓
Input
CTR
-
4 – 39
D CTR C
Reset
v
R & lt; S & gt;
↑
Nastawa
Input
Wartość
bieżąca
Output
46
4 – 41
3.2 Instrukcje aplikacyjne
Funkcja
No
MOV
080
MOV
S
D
MOVP
081
MOVP
S
D
DMOV
082
DMOV
S
D
DMOVP
083
DMOV
CMOV
084
CMOV
S
D
CMOVP
085
CMOV
S
D
DCMOV
086
DCMO
S
D
DCMOVP
087
DCMOVP S
D
GMOV
090
GMOV S
D
GMOVP
091
GMOVP S
D n
FMOV
092
FMOV S
D
FMOVP
093
FMOVP S
D n
BMOV
100
BMOV S
D Cw
BMOVP
101
BMOVP S
16 bits
32 bits
D Cw
5-3
5-3
5-5
5-7
16 bits
n
5-1
5-9
Rewersyjne przesunięcie danych
Rewersyjne przesunięcie danych
[
[
S + 1, S ]
[
[
S]
[D ]
[
S]
S + 1, S]
D + 1, D ]
[D ]
[
D + 1, D ]
S Przesunięcie grupowe D
16 bits
n
Move data (Przesuń dane)
16 bits
D
5-1
Move data (Przesuń dane)
n bit
S
Str.
Wykonywane operacje
32 bits
Symbol drabinkowy
CPU
Symbol
instrukcji
Jedn
3.2.1 Instrukcje Data transfer
n
Przesunięcie wypełniające D
S
n
Przesuń Bit
47
Funkcja
No
BCD
060
BCDP
Symbol drabinkowy
BCDP
S
D
DBCD
062
DBCD
S
D
DBCDP
063
DBCDP
S
D
BIN
064
BIN
S
D
BINP
065
BINP
S
D
DIND
066
DBIN
S
D
DBINP
067
S
DBINP
16 bits
061
D
5-11
BCD
[ D + 1, D ]
5-11
Binary
D ]
5-14
Binary
D + 1, D ]
5-14
BCD conversion
Binary
[ S ]
32 bits
D
Binary
[ S + 1, S ]
BCD
[D ]
BCD conversion
BIN conversion
16 bits
S
Str.
Wykonywane operacje
BCD
[ S ]
32 bits
BCD
CPU
Symbol
instrukcji
Jedn
3.2.2 Instrukcje Conversion (Konwersji)
BCD
[
BIN conversion
[
S + 1, S ]
[
S1
S2
CMPP
051
CMPP
S1
S2
DCMP
052
DCMP S1
S2
DCMPP
053
TCMP
054
TCMP S1
S2
D
TCMPP
055
TCMPP S1
S2
D
DTCMP
056
DTCM S1
S2
D
DTCMPP
057
DCMPP S1
DTCMPP S1
S2
S2 D
CPU
CMP
16 bits
050
Str.
Porównaj S1 i S2.
5-16
32 bits
CMP
Symbol drabinkowy
Porównaj [ S1+1, S1] i [ S2+1, S2]
Wynik w F120 ~ F125
5-16
16 bits
Funkcja
No
Porównaj S1 i 16 slów z S2 Wynik
(16bitów) zapamiętany w D
5-19
32 bits
Symbol
instrukcji
Jedn
3.2.3 Instrukcje Compare (Porównania)
Porównaj [ S1+1, S1] i 32 slowa z
S2 Wynik (32bity) zapamiętany w
[ D+1, D]
5-19
Wykonywane operacje
Wynik w F120 ~ F125
48
Jedn
Instrukcje Porównania (Kontynuacja)
Funkcja
No
LOAD=
028
=
S1
S2
AND=
094
=
S1
S2
OR=
188
=
S1
S2
5-23
LOAD & gt;
038
& gt;
S1
S2
5-21
AND & gt;
096
& gt;
S1
S2
OR & gt;
196
& gt;
S1
S2
5-23
LOAD & lt;
048
& lt;
S1
S2
5-21
AND & lt;
098
& lt;
S1
S2
OR & lt;
198
& lt;
S1
S2
5-23
LOAD & gt; =
058
& gt; =
S1
S2
5-21
AND & gt; =
106
& gt; =
S1
S2
OR & gt; =
216
& gt; =
S1
S2
5-23
LOAD & lt; =
068
& lt; =
S1
S2
5-21
AND & lt; =
108
& lt; =
S1
S2
OR & lt; =
218
& lt; =
S1
S2
5-23
LOAD & lt; & gt;
078
& lt; & gt;
S1
S2
5-21
AND & lt; & gt;
118
& lt; & gt;
S1
S2
OR & lt; & gt;
228
& lt; & gt;
S1
S2
Wykonywane operacje
Str.
16 bits
16 bits
16 bits
16 bits
16 bits
5-21
16 bits
Symbol drabinkowy
CPU
Symbol
instrukcji
Warunek Input jest ON gdy [S1] =
[S2]
Warunek Input jest ON gdy [S1] & gt;
[S2] (Uwzględniając znak)
Warunek Input jest ON gdy [S1] & lt;
[S2] (Uwzględniając znak)
Warunek Input jest ON gdy [S1] & gt; =
[S2] (Uwzględniając znak)
Warunek Input jest ON gdy [S1] & lt; =
[S2] (Uwzględniając znak)
Warunek Input jest ON gdy [S1] & lt; =
[S2] (Uwzględniając znak)
5-22
5-22
5-22
5-22
5-22
5-22
5-23
49
LOADD=
029
ANDD=
095
Symbol drabinkowy
=
=
S1
S1
CPU
Funkcja
No
Wykonywane operacje
S2
S2
=
S1
S2
LOADD & gt;
039
& gt;
S1
S2
ANDD & gt;
097
& gt;
S1
S2
ORD & gt;
197
& gt;
S1
S2
LOADD & lt;
049
& lt;
S1
Warunek Input jest ON gdy
[S1+1, S1] = [S2+1, S2]
S2
099
& lt;
S1
S2
ORD & lt;
199
& lt;
S1
059
& gt; =
S1
[S1+1,
S1]
& gt;
[S2+1,
(Uwzględniając znak)
S2]
Warunek Input jest ON gdy [S1+1,
S1] & lt; [S2+1, S2] (Uwzględniając
znak)
S2
107
& gt; =
S1
S2
ORD & gt; =
217
& gt; =
S1
069
& lt; =
S1
5-22
5-21
Warunek Input jest ON gdy [S1+1,
S1] & gt; = [S2+1, S2] (Uwzględniając
znak)
S2
LOADD & lt; =
5-23
S2
5-22
5-23
5-21
32 bits
ANDD & gt; =
5-22
5-23
S2
LOADD & gt; =
5-21
Warunek Input jest ON gdy
5-21
32 bits
ANDD & lt;
5-22
5-23
32 bits
189
32 bits
ORD=
Str.
5-21
32 bits
Symbol
instrukcji
Jedn
Instrukcje Porównania (Kontynuacja)
Warunek Input jest ON gdy [S1+1,
S1] & lt; = [S2+1, S2] (Uwzględniając
znak)
109
& lt; =
S1
S2
ORD & lt; =
219
& lt; =
S1
S2
5-23
LOADD & lt; & gt;
079
& lt; & gt;
S1
S2
5-21
ANDD & lt; & gt;
119
& lt; & gt;
S1
S2
ORD & lt; & gt;
229
& lt; & gt;
S1
S2
32 bits
ANDD & lt; =
Warunek Input jest ON
[S1+1, S1] & lt; & gt; [S2+1, S2]
gdy
5-22
5-22
5-23
50
D
021
INCP
D
DINC
022
DINC
D
DINCP
023
DINCP
D
DEC
024
DEC
D
DECP
025
DECP
D
DDEC
026
DDEC
D
DDECP
027
DDECP
D
CPU
INCP
INC
16 bits
020
Str.
5-24
5-24
Wykonywane operacje
5-26
5-26
Increment (Zwieksz)
32 bits
INC
Symbol drabinkowy
Increment (Zwieksz)
16 bits
Funkcja
No
Decrement (Zmniejsz)
32 bits
Symbol
instrukcji
Jedn
3.2.4 Instrukcje Increment / Decrement (Zwiekszania/ Zmniejszania)
Decrement (Zmniejsz)
[
D ] +1
[
D +1, D ] +1
[
[
[
[
D ] -1
D +1, D ]
[
D +1, D ] -1
[
D ]
D ]
D +1, D ]
020
ROL
D
ROLP
021
ROLP
D
ROR
034
ROR
D
RORP
035
RORP
D
RCL
RCLP
041
RCLP
D
RCR
044
RCR
D
RCRP
045
RCRP
D
16 bits
040
5-32
5-34
0
D
1 bit w lewo
15
D
Carry
0
1 bit w prawo
15
0
D
1 bit w lewo uwzględniając carry
15
16 bits
RCL
5-30
15
5-28
Carry
Str.
Wykonywane operacje
Carry
D
CPU
ROL
Symbol drabinkowy
16 bits
Funkcja
No
16 bits
Symbol
instrukcji
Jedn
3.2.5 Instrukcje Rotation (Rotacji)
D
0
Carry
1 bit w prawo uwzględniając carry
51
D
DROL
022
DROL
DROLP
023
DROLP
D
DROR
036
DROR
D
DRORP
037
DRORP
D
043
DRCLP
D
DRCR
046
DRCR
D
DRCRP
047
DRCRP
D
DRCLP
5-30
5-32
D
5-34
0
D +1 0 15
D
0
Carry
1 bit w prawo
32 bits
D
D +1 0 15
1 bit w lewo
15
15
D +1 0 15
D
0
1 bit w lewo uwzględniając carry
15
32 bits
DRCL
042
15
5-28
Carry
Str.
Wykonywane operacje
Carry
DRCL
CPU
Symbol drabinkowy
32 bits
Funkcja
No
32 bits
Symbol
instrukcji
Jedn
Instrukcje Rotation (Kontynuacja)
D
+1 0 15
0
D
Carry
1 bit w prawo uwzględniając carry
Symbol drabinkowy
BSFT
074
BSFT
S1
S2
BSFTP
075
BSFTP S1
S2
CPU
Funkcja
No
S1-S2 bits
Symbol
instrukcji
Jedn
3.2.6 Instrukcje Shift
S2
S2
S1
5-38
S2
S1
5-36
0
S1
Str.
Wykonywane operacje
5-40
S2
S1
0
WSFT
070
WSFT
S1
S2
WSFTP
071
WSFTP S1
S2
S1-S2 words
1 bit shift from S1 to S2
0
S1
S2
S1
S2
S2
S1
S2
S1
0
SR
237
SR
D n
16 bits
1 word shift from S1 to S2
D +n
Bit shift (See 4. For details)
52
D
Funkcja
No
XCH
102
XCHP
103
XCHP
DXCH
104
DXCH D1
DXCHP
105
DXCH D1
Symbol drabinkowy
16 bits
D1
[ D1 ]
[ D2 ]
32 bits
D1
XCH
Wykonywane operacje
[ D1+1, D1 ]
[ D2+1, D2 ]
CPU
Symbol
instrukcji
Jedn
3.2.7 Instrukcje Exchange (Wymiany)
Str.
5-42
5-42
S2
D
ADDP
111
ADDP S1
S2
D
DADD
112
DADD S1
S2
D
DADDP
113
DADDP S1
SUB
114
SUB
S1
S2
D
SUBP
115
SUBP
S1
S2
D
DSUB
116
DSUB S1
S2
D
DSUBP
117
DSUBP S1
MUL
120
MUL
S1
S2
D
MULP
121
MULP S1
S2
D
S2 D
S2 D
[ S1 ] + [ S2 ]
[D]
Str.
5-44
5-44
5-46
5-46
Wykonywane operacje
CPU
S1
16 bits
ADD
32 bits
110
16 bits
ADD
Symbol drabinkowy
5-48
5-48
[S1+1, S1] + [S2+1, S2]
[D+1, D]
[ S1 ] - [ S2 ]
[D]
32 bits
Funkcja
No
[S1+1, S1] - [S2+1, S2]
16 bits
Symbol
instrukcji
Jedn
3.2.8 Instrukcje BIN arithmetic
[ S1 ] [ S2 ]
[D+1, D]
[ D+1, D ]
[D+1] : High word, [D] : Low word
DMUL
122
DMUL S1
DMULP
123
DMULP S1
S2
D
S2 D
32 bits
[S1+1, S1][S2+1, S2]
[D+3,D+2,D+1,D]
[D+3,D+2] = Higher 2 words
[D+1, D] = Lower 2 words
53
DIV
124
DIV
S1
S2
D
DIVP
125
DIVP
S1
S2
D
Symbol drabinkowy
Wykonywane operacje
[ S1 ][ S2 ]
CPU
Funkcja
No
16 bits
Symbol
instrukcji
Jedn
Instrukcje BIN arithmetic (Kontynuacja)
Str.
5-50
5-50
[D]
[D+1] = Remainder (Reszta)
[D] = Quotient (Wynik)
DDIV
126
DDIVP
127
DDIV
S1
DDIVP S1
S2
D
S2 D
32 bits
[S1+1, S1][S2+1, S2]
[D+3, D+2, D+1, D]
[D+3, D+2] = Remainder (Reszta)
[D+1, D] = Quotient (Wynik)
MULS
072
MULSP
073
MULSP S1
S2
D
S2
D
16 bits
Mnozenie (Uwzgledniajac znak)
MULS S1
[ S1 ] [ S2 ]
[ D+1, D ]
[D+1] : High word, [D] : Low word
Mnozenie (Uwzgledniajac znak)
076
DMUL S1
DMULSP
077
DMULSP S1
S2
D
S2 D
[S1+1, S1][S2+1, S2]
32 bits
DMULS
[D+3,D+2,D+1,D]
[D+3,D+2] = Higher 2 words
[D+1, D] = Lower 2 words
DIVS
088
DIVS
S1
S2
D
DIVSP
089
DIVSP S1
S2
D
16 bits
Dzielenie (Uwzgledniajac znak)
[ S1 ][ S2 ]
[D]
[D+1] = Remainder (Reszta)
[D] = Quotient (Wynik)
Dzielenie (Uwzgledniajac znak)
128
DDIVS S1
DDIVSP
129
DDIVSP S1
S2
D
S2 D
[S1+1, S1][S2+1, S2]
32 bits
DDIVS
[D+3, D+2, D+1, D]
[D+3, D+2] = Remainder (Reszta)
[D+1, D] = Quotient (Wynik)
54
S2
D
ADDBP
131
ADDB S1
S2
D
DADDB
132
DADD S1
S2
D
DADDBP
133
DADDBP S1
SUBB
134
SUBB S1
S2
D
SUBBP
135
SUBBP S1
S2
D
DSUBB
136
DSUBB S1
S2
D
DSUBBP
137
DSUBBP S1
MULB
140
MULB S1
S2
D
MULBP
141
MULB S1
S2
D
S2 D
S2 D
Str.
5-52
5-52
5-54
5-54
5-56
5-56
Wykonywane operacje
CPU
ADDB S1
16 bits
130
32 bits
ADDB
Symbol drabinkowy
5-58
5-58
BCD addition (Dodawanie)
[ S1 ] + [ S2 ]
[D]
BCD addition (Dodawanie)
[S1+1,S1]+[S2+1,S2]
[D+1,D]
16 bits
Funkcja
No
BCD subtraction (Odejmowanie)
32 bits
Symbol
instrukcji
Jedn
3.2.9 Instrukcje BCD arithmetic
BCD subtraction (Odejmowanie)
[ S1 ] - [ S2 ]
[D]
[S1+1,S1]-[S2+1,S2]
[D+1,D]
16 bits
BCD multiplication (Mniozenie)
[ S1 ] [ S2 ]
[ D+1, D ]
[D+1] : High word, [D] : Low word
BCD multiplication (Mniozenie)
142
DMUL S1
DMULBP
143
DMULBP S1
S2
D
S2 D
[S1+1, S1][S2+1, S2]
32 bits
DMULB
[D+3,D+2,D+1,D]
[D+3,D+2] = Higher 2 words
[D+1, D] = Lower 2 words
DIVB
144
DIVB
S1
S2
D
DIVBP
145
DIVBP S1
S2
D
16 bits
BCD division(Dzielenie)
[ S1 ][ S2 ]
[D]
[D+1] = Remainder (Reszta)
[D] = Quotient (Wynik)
BCD division(Dzielenie)
146
DDIVB S1
DDIVBP
147
DDIVBP S1
S2
D
S2 D
[S1+1, S1][S2+1, S2]
32 bits
DDIVB
[D+3, D+2, D+1, D]
[D+3, D+2] = Remainder (Reszta)
[D+1, D] = Quotient (Wynik)
55
WANDP
131
WAND S1
S2
D
DWAND
132
DWAN S1
S2 D
DWANDP
133
DWANDPS1
WOR
154
WAND S1
WORP
155
WAND S1
S2
DWOR
156
DWAN S1
S2 D
DWORP
157
DWANDPS1
WXOR
160
WXOR S1
S2
WXORP
161
WXORP S1
S2 D
DWXOR
162
DWXO S1
S2 D
DWXORP
163
DWXORPS1
WXNR
164
WXNR S1
S2
D
WXNRP
165
WXNR S1
S2
D
DWXNR
166
DWXN S1
S2 D
DWXNRP
167
DWXNRPS1
S2 D
S2
D
D
S2 D
D
S2 D
CPU
D
16 bits
S2
32 bits
WAND S1
16 bits
130
32 bits
WAND
Symbol drabinkowy
16 bits
Funkcja
No
32 bits
Symbol
instrukcji
Jedn
3.2.10 Instrukcje Logical opration
[ S1 ] AND [ S2 ]
5-60
5-60
5-62
5-62
5-64
[D]
Str.
Wykonywane operacje
5-64
5-66
5-66
[S1+1,S1] AND [S2+1,S2]
[D+1,D]
[ S1 ] OR [ S2 ]
[D]
[S1+1,S1] OR [S2+1,S2]
[D+1,D]
[ S1 ] XOR [ S2 ]
[D]
[S1+1,S1] XOR [S2+1,S2]
[D+1,D]
[ S1 ] XNR [ S2 ]
[D]
[S1+1,S1] XNR [S2+1,S2]
[D+1,D]
S2 D
56
S
D Cw
SEGP
175
SEGP
S
D Cw
ASC
190
ASC
S
D Cw
ASCP
191
ASCP
S
D Cw
BSUM
170
BSUMP
171
DBINP
S
D
DBSUM
172
DBIN
S
D
DBSUMP
173
DBINP
S
D
ENCO
176
ENCO
S
D n
ENCOP
177
ENCOP S
D n
DECO
178
DECO
S
D n
DECOP
179
S
D
D n
5-68
5-71
5-73
5-73
[S]
5-75
[D]
dekoduje
Zamienia data [S] na ASCII code
format i zapamietuje w [D].
[S]
15
5-77
5-79
5-79
[D
0
Quantity
of 1
15
[S+1
0 15
[S]
0
[D+1, D]
Quantity
of 1
2n bits
[S]
0
[D
Encode
[S]
n bits
DECOP S
Str.
7 Segment decode
n
DBIN
CPU
SEG
Wykonywane operacje
16 bits
174
16 bits
SEG
Symbol drabinkowy
32 bits
Funkcja
No
2 bits
Symbol
instrukcji
Jedn
3.2.11 Instrukcje Data processing
0
n bits
[D
Decode
File table read
180
FILRP
181
FILR
FILRP
S
S
D n
D n
[S]
16 bits
FILR
[S+n]
[D
File table read (czytaj)
[S]
182
DFILRP
183
DFILR S
DFILRP S
D n
D n
[S+n]
[S+n+1
32 bits
DFILR
[D]
[D+1]
57
Funkcja
No
Symbol drabinkowy
CPU
Symbol
instrukcji
Jedn
Instrukcje Data processing (Kontynuacja)
Str.
5-81
5-81
5-83
Wykonywane operacje
5-85
*
5-87
Zapisz File table
184
FILWP
185
FILW
S
FILWP S
D n
D n
[S]
16 bits
FILW
[S+n]
[D
Zapisz File table
[S]
186
DFILW S
D n
DFILWP
187
DFILWP S
D n
[S+n]
[S+n+1
32 bits
DFILW
[D]
[D+1]
4bits
DIS
194
DISP
195
DIS
S
D n
DISP
S
D n
16 bits
[S]
When
n=3
[D]
[D+1]
[D+2]
All 0
4bits
UNI
192
UNI
S
D n
UNIP
193
UNIP
S
D n
32 bits
4bits
[S]
[S+1]
[S+2]
When
n=3
[D]
IORF
200
IORFP
201
IORF
D1
IORFP D1 D2
16 bits
4bits
Odświeża obszar pamięci od [D1]
do [D2] ( [D1] & lt; [D2] )
58
Funkcja
No
FALS
204
FALS n
DUTY
205
DUTY D n1 n2
Wykonywane operacje
Str.
Zapamietuje n do
wyspecyfikowanego obszaru F
*
5-89
5-90
Zeruje watch dog timer
Symbol drabinkowy
CPU
Symbol
instrukcji
Jedn
3.1.12 Instrukcje Systemowe
*
5-92
Ustawia wszystkie outputs na Off
5-94
Stopuje pracę CPU
*
5-95
Wykonywane operacje
Generuje impulsy jak poniżej
n2 scans
n1 scans
WDT
WDT
202
WDTP
203
WDTP
OUTOFF
208
OUTOFF
STOP
008
STOP
Funkcja
No
JMP
012
JME
Symbol drabinkowy
CPU
Symbol
instrukcji
Jedn
3.2.13 Instrukcje skoków - Branch
JME n
Jump end (Koniec skoku)
CALL
014
CALL n
CALLP
015
CALLP n
SBRT
016
SBRT n
Startuj subroutine (podprogram)
RET
004
RET
End(Kończ) subroutine
5-98
Jump (Skok)
013
5-96
JMP n
Str.
Przywołaj subroutine
Funkcja
No
FOR
206
FOR n
NEXT
207
NEXT
BREAK
220
BREAK
Symbol drabinkowy
CPU
Symbol
instrukcji
Jedn
3.2.14 Instrukcje pętli Loop
Wykonywane operacje
Wykonuje n razy
programu
zawartą
FOR i NEXT
sekwencję
pomiędzy
Escape from FOR/NEXT
(Wyjdź z pętli FOR/NEXT )
59
loop
Str.
*
5-100
*
5-101
Jedn
3.2.15 Instrukcje Flag
Funkcja
No
Symbol drabinkowy
STC
002
STC
Set the carry flag (Ustaw carry)
CLC
003
CLC
Clear the carry flag (Zeruj carry)
CLE
009
CLE
Clear the error flag (Zeruj carry)
5-102
*
5-103
Wykonywane operacje
CPU
Str.
Czytaj data ze wspólnej pamięci
RAM modułu specjalnego
*
5-104
Pisz data do wspólnej pamięci
RAM modułu specjalnego
*
5-106
Wykonywane operacje
CPU
Str.
Jedn
Wykonywane operacje
CPU
Symbol
instrukcji
Str.
Czytaj/Pisz data zdalnej station
*
Symbol
instrukcji
Funkcja
No
GET
230
GET n1 S
D n2
GETP
231
GETP n1 S
D n2
PUT
234
PUT
n1 S
D n2
PUTP
235
PUTP n1 S
D n2
Symbol drabinkowy
Jedn
3.2.16 Instrukcje Special module
3.2.17 Instrukcje Data link
Symbol
instrukcji
Funkcja
No
Symbol drabinkowy
READ
244
READ n1 st D S n SS
WRITE
245
WRIT n1 st D S n SS
RGET
232
5-108
RGET n1 st D S n SS
5-111
RPUT
233
RPUT n1 st D S n SS
Czytaj/Pisz data
pamięci
RAM
specjalnego
CONN
246
CONN n1 st D SS
Ustanów kanał komunikacyjny
*
STATUS
247
STATU n1 st D SS
Czytaj data zdalnej station
*
60
wspólnej
modułu
5-113
*
5-116
5-118
Jedn
3.2.18 Instrukcje Interrupt
Funkcja
No
Symbol drabinkowy
EI
236
EI n
Umożliwij interrupt
DI
239
DI n
Uniemożliwij interrupt
EI
221
EI
Umożliwij wszystkie interrupts
DI
222
DI
Uniemożliwij wszystkie interrupts
TDINT
226
TDINT n
Start TDI routine
INT
227
INT
Start PDI routine
IRET
225
IRET
Str.
*
5-119
*
Wykonywane operacje
CPU
Symbol
instrukcji
5-119
5-120
n
*
5-121
End interrupt(przerwanie) routine
Funkcja
No
Symbol drabinkowy
NEG
240
NEG
D
NEGP
241
NEGP
D
DNEG
242
DNEG
D
DNEGP
243
DNEGP D
CPU
Symbol
instrukcji
Jedn
3.2.19 Instrukcje Sign inversion
Str.
Zmień znak [ D ]
*
5-122
Zmień znak [ D+1, D ]
*
5-122
Wykonywane operacje
61
Jedn
Wykonywane operacje
CPU
3.2.20 Instrukcje Bit contact
Str.
-
Styk NO startuje bitem n słowa [ D ]
*
5-124
D n
Styk NC startuje bitem n słowa [ D ]
*
5-124
B
D n
Styk NO łączy szeregowo bitem n
słowa [ D ]
*
5-125
251
BN
D n
Styk NC łączy szeregowo bitem n
słowa [ D ]
*
5-125
BOR
252
B
D n
Styk NO łączy równolegle bitem n
słowa [ D ]
*
5-126
BORN
253
BN
D n
Styk NC łączy równolegle bitem n
słowa [ D ]
*
5-126
BOUT
236
BOUT D n
Wystawia wynik operacji do bitu n
słowa [ D ]
*
5-127
BSET
223
SET
D n
Ustaw bit n słowa [ D ]
*
5-128
BRST
224
RST
D n
Zeruj bit n słowa [ D ]
*
5-128
Symbol
instrukcji
Funkcja
No
BLD
248
B
D n
BLDN
249
BN
BAND
250
BANDN
Symbol drabinkowy
62
4. Instrukcje podstawowe
4.1 Instrukcje stykowe
4.1.1 LOAD, LOAD NOT, OUT
LOAD
LOAD NOT
Dostępne Obiekty
Instrukcje
M
LOAD
LOAD
NOT
S
OUT
D
P
K
L
F
T
C
S
O
O
O
O
O
O
O
D
#
D
Int
Step
OUT
Flaga
Error
(F110)
Zero
(F111)
Carry
(F112)
O
1
O
O
O
LOAD
O*
O
OUT
S
LOAD NOT
D
S
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) LOAD S
a) Funkcje
- Start styku NO.
- Pobiera on/off data ze wskazanego obiektu ( S ) i używa dane jako wynik operacji.
2) LOAD NOT S
a) Funkcje
- Start styku NC.
- Pobiera on/off data ze wskazanego obiektu ( S ) i używa dane jako wynik operacji.
3) OUT D
a) Funkcje
- Wydaje wynik operacji do wskazanego obiektu ( D ).
- Można użyć kilka instrukcji OUT równolegle z tym samym wynikiem operacji.
63
4) Przykład programu
- Gdy warunek input (P020) jest ON, to P060 i P061 zostanie ustawiony ON a P062
- zostanie wyłączony OFF.
[ Program ]
P020
( P060 )
( P061 )
LOAD
P020
( P063 )
OUT
LOAD NOT
[ Diagram czasowy ]
P020
P060
P061
P063
64
4.1.2
AND, AND NOT
AND
Dostępne Obiekty
Instrukcje
M
AND
AND NOT
S
P
K
L
F
T
C
S
O
O
O
O
O
O
O
D
#
O
Int
Flaga
Error
(F110)
Zero
(F111)
Carry
(F112)
1
(
)
(
AND
D
Step
AND NOT
)
S
AND NOT
S
1) AND
a) Funkcje
- Połączenie szeregowe styku NO
S
- Czyta on/off data ze wskazanego obiektu ( ), wykonuje operację AND tych danych i
wyniku poprzedniej operacji, czego następnie używa jako wynik nowej operacji.
2) AND NOT
a) Funkcje
- Połączenie szeregowe styku NC
S
- Czyta on/off data ze wskazanego obiektu ( ), wykonuje operację AND tych danych i
wyniku poprzedniej operacji, czego następnie używa jako wynik nowej operacji.
3) Przykład programu
Styk P061 zostanie ustawiony ON, gdy P020 i P021 są ON a P022 jest OFF.
P020
P021
P022
( P061 )
AND
S
AND NOT
65
S
OR, OR NOT
OR
Dostępne Obiekty
Instrukcje
OR
OR NOT
M
S
P
K
L
F
T
C
S
O
O
O
O
O
O
O
D
#
D
Integ
er
O
Step
OR NOT
Flaga
Error
(F110)
Zero
(F111)
Carry
(F112)
1
(
)
OR S
OR NOT
S
1) OR
a) Funkcje
- Połączenie równoległe styku NO
S
- Czyta on/off data ze wskazanego obiektu ( ), wykonuje operację OR tych danych i
wyniku poprzedniej operacji, czego następnie używa jako wynik nowej operacji.
2) OR NOT
a) Funkcje
- Połączenie równoległe styku NC
S
- Czyta on/off data ze wskazanego obiektu ( ), wykonuje operację OR tych danych i
wyniku poprzedniej operacji, czego następnie używa jako wynik nowej operacji.
3) Przykład programu
Styk P061 zostanie ustawiony ON, gdy P020 i P021 jest ON.
P020
( P061 )
P021
OR
S
66
Praca silnika (Przykład stosowania instrukcji LOAD, AND, OR, OUT )
1. Działanie
Są trzy przyciski - PB0, PB1 i PB2. Gdy PB1 jest przyciśnięty, silnik startuje i obraca się w prawo.
Startuje w przeciwnym kierunku (w lewo), gdy zostanie przyciśnięty przycisk PB2. PB0 jest przyciskiem
bezpieczeństwa i silnik zatrzymuje się, gdy PB0 zostaje przyciśnięty.
2. Struktura systemu
Moduł binarny
input [ P03 ]
Moduł binarny
input [ P06 ]
& lt; Stop & gt; PB0
0
0
& lt; Prawo & gt; PB1
1
1
& lt; Lewo & gt; PB2
2
2
3
3
Silnik
S
Stycznik S/W
Stycznik S/W
Obroty w lewo
Obroty w prawo
3. Program
P030
P031
P032
P061
( P060 )
0000
P060
∙ Praca w prawo. Ustaw zabronienie
pracy w lewo (P032, P061)
P032
P030
P032
P031
P060
( P061 )
0006
P061
P061
∙ ∙ Praca w lewo. Ustaw zabronienie
pracy w prawo (P031, P062)
P031
P060
[ END ]
0011
Uwagi
[ Obwód samopodtrzymujący się ]
Gdy tylko P031 jest ON, P060 ustawi się na ON i będzie tak długo w tej pozycji aż P030
ustawi się na ON.
P031
P000
P030
( P060 )
P060
67
4.2 Instrukcje Connection
4.1.1 AND LOAD
Dostępne Obiekty
Instrukcje
M
P
K
L
F
T
C
S
D
#
D
Intege
r
AND LOAD
Step
AND LOAD
Flaga
Error
(F110)
Zero
(F111)
1
AND LOAD
(
Block A
)
Block B
1) Funkcje
- Wykonuje operację AND bloku A i bloku B, i używa jako wyniku operacji.
- Instrukcja AND LOAD może być napisana kolejno do 7 razy.
2) Przykład programu
[ Program ]
P020
P023
P021
P024
P026
P025
( P060 )
P022
AND
LOAD
[ Diagram czasowy ]
P020
P022
P026
P060
68
Carry
(F112)
[ UWAGA ] Kolejne użycie instrukcji AND LOAD
Są dwie metody łączenia kilku bloków szeregowo. Patrz przykład poniżej.
[ Program drabinkowy ]
M000
M002
M004
M006
M008
( P060 )
M001
M005
M003
M007
M009
[ END ]
[ Program mnemoniczny ]
[ A ] Nie używaj instrukcji AND
LOAD kolejno
[ B ] Używaj instrukcji
LOAD kolejno
LOAD
M000
LOAD
M000
OR
M001
OR
M001
LOAD
M002
LOAD
M002
OR
M003
OR
M003
AND LOAD
LOAD
M004
LOAD
M004
OR
M005
OR
M005
LOAD
M006
OR
AND
M007
AND LOAD
LOAD
M006
LOAD
M008
OR
M007
OR
M009
AND LOAD
AND LOAD
LOAD
M008
AND LOAD
OR
M009
AND LOAD
AND LOAD
AND LOAD
OUT
P060
OUT
P060
Instrukcja AND LOAD może być użyta kojeno 7 razy (8 bloków). Gdy łączysz więcej niż 8 bloków,
pisz program mnemonicznie jak pokazuje przykład [ A ]. Jeżeli używasz programu KGL-WIN i
piszesz program drabinkowy, to KGL-WIN software dokonuje konwersji programu drabinkowego
na mnemoniczny [ A ] automatycznie.
69
4.2.2 OR LOAD
Dostępne Obiekty
Instrukcje
M
P
K
L
F
T
C
S
D
#
D
Intege
r
OR LOAD
Step
OR LOAD
Flaga
Error
(F11
0)
Zero
(F11
1)
1
Block A
(
)
Block A
1) Funkcje
- Wykonuje operację OR na bloku A i bloku B, i używa jako wyniku operacji.
- Instrukcja OR LOAD może być napisana kolejno do 7 razy.
2) Przykład programu
[ Program ]
P020
P023
P025
P026
P021
( P060 )
( P061 )
P023
P024
OR LOAD
[ Diagram czasowy ]
P020
P024
P025
P060
P061
0
70
Carry
(F112)
[ UWAGA ] Kolejne użycie instrukcji OR LOAD
Są dwie metody łączenia kilku bloków równolegle. Patrz przykład poniżej.
[ Program drabinkowy ]
M000
M001
( P060 )
M002
M003
M004
M005
M006
M007
M008
M009
[ END ]
[ Program mnemoniczny ]
[ A ] Nie używaj instrukcji
LOAD kolejno
LOAD
OR
[ B ] Używaj instrukcji
kolejno
OR LOAD
M000
LOAD
M000
M001
M001
AND
LOAD
M002
LOAD
M002
AND
M003
AND
M003
LOAD
M004
AND
OR LOAD
LOAD
M004
AND
M005
AND
M005
LOAD
M006
AND
M007
M006
LOAD
M008
M007
AND
M009
OR LOAD
LOAD
AND
OR LOAD
OR LOAD
LOAD
M008
OR LOAD
AND
M009
OR LOAD
OR LOAD
OR LOAD
OUT
P060
OUT
P060
Instrukcja OR LOAD może być użyta koljeno 7 razy (8 bloków). Gdy łączysz więcej niż 8 bloków,
pisz program mnemonicznie jak pokazuje przykład [ A ]. Jeżeli używasz programu KGL-WIN i
piszesz program drabinkowy, to KGL-WIN software dokonuje konwersji programu drabinkowego
na mnemoniczny [ A ] automatycznie.
71
4.2.3 MPUSH, MLOAD, MPOP
FUN (005) MPUSH
MLOAD
FUN (006) MLOAD
MPOP
FUN (007) MPOP
Instrukcje
Flaga
Dostępne Obiekty
M
P
K
L
F
T
C
S
D
MPUSH
MLOAD
MPOP
#
D
Intege
r
Step
MPUSH
Error
(F110)
Zero
(F111)
Carry
(F112)
1
MPUSH
MLOAD
MPOP
1) Funkcje
a) MPUSH : Zapamiętuje wynik operacji (On/Off) natychmiast wykonuje instrukcję MPUSH.
b) MLOAD : Czyta wynik operacji zapamiętany przez instrukcję MPUSH podejmuje operację od
następnego kroku, z tym wynikiem operacji.
c) MPOP :Czyta wynik operacji zapamiętany przez instrukcję MPUSH podejmuje operację od
następnego kroku, z tym wynikiem operacji. Następnie zeruje wynik operacji zapamiętany
przez instrukcję MPUSH.
d) Instrukcja MPUSH może być użyta kolejno 8 razy. Liczba zostaje zredukowana o 1, gdy
pomiędzy zostanie użyta instrukcja MLOAD.
72
2) Przykład programu
[ Program drabinkowy ]
00000
P020
P021
P022
P023
P024
P060
(
P025
(
(
P027
(
)
P064
(
P029
)
P065
(
)
P066
P02A
(
00027
[
[ Program mnemoniczny ]
INSTRUKCJA
LOAD
MPUSH
AND
MPUSH
AND
AND
MPUSH
AND
OUT
MLOAD
AND
OUT
MPOP
AND
OUT
MLOAD
AND
OUT
MPOP
AND
OUT
MLOAD
AND
OUT
MPOP
AND
OUT
END
NOP
NOP
NOP
)
P063
P028
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
)
P062
P026
STEP
)
P061
P020
P021
P022
P023
P024
P060
P025
P061
P026
P061
P027
P063
P028
P064
P029
P065
P02A
P066
73
)
END
]
4.3 Instrukcje negacji
4.3.1 NOT
NOT
Instrukcja
M
P
K
L
F
T
C
S
D
#
D
Step
Dostępne Obiekty
Integ
er
NOT
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
1
NOT
(
)
1) Funkcje
- Dokonuje inwersji wyniku operacji występującej przed instrukcją NOT.
Przed instrukcją NOT
Po instrukcji NOT
Styk NC
Styk NO
Styk NO
Styk NC
Połączenie szeregowe
Połączenie rónoległe
(AND)
(OR)
Połączenie rónoległe
Połączenie szeregowe
(OR)
(AND)
2) Przykład programu
Dwa programy poniżej wykonują tę samą operację.
Program A
P020
P021
P022
P023
P024
( P060 )
Program B
P020
( P060 )
P021
P022
P023
P024
74
4.4 Instrukcje master control
4.4.1 MCS, MCSCLR
FUN (010) MCS
MCSCLR
FUN (011) MCSCLR
Instrukcje
Dostępne Obiekty
M
P
K
L
F
T
C
S
D
MCS
MCSCLR
#
D
Intege
r
O
MCS
n
Step
MCS
Flaga
Error
(F110)
Zero
(F111)
Carry
(F112)
1
- n (Zagnieżdżenie) : do 7
MCSCLR n
1) Funkcje
-
Gdy warunek instrukcji MCS zostanie ustawiony (ON), to zostanie wykonana sekwencja
programu znajdująca się pomiędzy instrukcjami MCS i MCSCLR o tym samym numerze n.
Po każdej instrukcji MCS występuje numer (n) wskazujący priorytet master control. 0 jest
najwyższym priorytetem a 7 najniższym. Instrukcja MCS powinna być używana zgodnie z
porządkiem priorytetu.
Instrukcja MCSCLR oznacza koniec master control. Gdy instrukcja MCSCLR n zostanie
wykonana, wszystkie inne master control o niższym priorytecie niż ‘n’ zostają zakończone.
75
2) Przykład programu
Użyj 2 bloków master control (MCS 0 i MCS 1). Zerowanie następuje instrukcją MCSCLR 0. Blok
MCS 1 jest zerowany automatycznie.
P030
0000
[ MCS 0 ]
P031
0002
(
P060
)
(
P061
MCS 0 blok
)
P032
0004
P033
0006
[ MCS 1 ]
M0001
0008
(
P062
)
(
P063
MCS 1 blok
)
M0002
0010
0012
[ MCSCLR 0 ]
0013
[ END ]
Uwagi
1. Scanning pomiędzy instrukcjami MCS i MCSCLR odbywa się nawet wtedy, gdy
warunek na wejściu jest OFF. należy pamiętać, że czas sacn’u w tej sytuacji nie
jest krótszy.
2. Gdy warunek na wejściu instrukcji MCS jest OFF, to wynik operacji pomiędzy
MCS a MCSCLR jest jak pokazano poniżej.
TIMER
Wyjście timera oraz jego wartość bieżąca przyjmuje
wartość 0.
COUNTER
Wyjście countera oraz jego wartość bieżąca przyjmuje
wartość 0.
OUT
Wszystkie OFF
SET, RST
Zachowuje bieżącą wartość
3. Jeżeli instrukcje które nie wymagają instrukcji styku tuż przed nimi (FOR, NEXT,
EI, DI, etc.) a zawierają się w bloku MCS ~ MCSCLR, to CPU wykonuje te
instrukcje niezależnie od statusu (On/Off) warunku na wejściu instrukcji MCS.
76
Obwód ze wspólną linią (Przykład instrukcji MCS i MCSCLR)
Obwód poniżej nie może być wpisany do PLC bezpośrednio. Do tego celu należy użyć instrukcji
master control. ( Instrukcje MCS i MCSCLR )
[ Obwód
Praca
ręczna
Praca
automatyczna
P020
P021
P024
P023
P061
( P060 )
P022
P029
P027
P060
( P061 )
P026
P027
P061
[ Program PLC z master
P020
P021
[ MCS 0 ]
P022
(
P026
P021
P020
P024
P023
P027
(
P027
P029
M010 )
M011
)
Obwód
główny
[ MCSCLR 0 ]
M010
M010
[ MCS 1 ]
(
M020 )
(
M021
)
Obwód
automatyczny
[ MCSCLR 0 ]
P061
( P060 )
M020
M011
P060
( P061 )
M021
P061
[ END ]
77
Obwód
wspólny
4.5 Instrukcje Output
4.5.1 D
D
FUN (017) D
Instrukcje
D
M
P
K
L
O
O
O
T
C
S
D
#
Integ
er
O*
D
F
D
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
2
Obiekt ma być zamieniony
na impuls
D
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Instrukcja D ustawia wskazany obiekt na czas jednego scan’u, gdy warunek
- na wejściu instrukcji D zostanie ustawiony ON.
- Bądź ostrożny w używaniu obszaru P jako .
2) Przykład programu
Gdy P032 jest ustawione ON, to M002 jest ON na czas jednego scan’u.
[ Program ]
P032
[ D M002 ]
M002
( P060 )
P060
Układ podtrzymania wskazuje, że M002 był ON.
[ Diagram czasowy ]
P032
M002
→
←
1scan On
P060
P060 zachowuje stan w wyniku działania obwodu podtrzymania.
78
Wysterowanie naprzemienne (Przykład instrukcji D)
1. Praca
Gdy przycisk PB0 zostanie przyciśnięty, P060 ustawia się na ON. Gdy przycisk PB0 zostanie
przyciśnięty ponownie, P060 ustawia się na OFF. P060 będzie powtarzał ON / OFF za każdym
przyciśnięciem PB0.
2. Struktura systemu
Moduł Digital
output P06
Moduł Digital
input P00
PB0
0
Program
0
1
1
2
2
3
.
.
.
.
.
.
Powtarzane On/Off
.
3. Program
0000
0003
0009
P000
[ D M000 ]
P060
M000
P060
M000
( P060 )
[ END ]
4. Diagram czasowy
P000
P060
79
4.5.2 D NOT
FUN (018) D NOT
Dostępne Obiekty
Instrukcje
D NOT
M
D
P
K
L
O
O
O
F
T
C
S
D
#
D
Intege
r
O*
Step
D NOT
Flaga
Error
(F110)
Obiekt ma być zamieniony
na impuls
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
3) Funkcje
- Instrukcja D ustawia wskazany obiekt na czas jednego scan’u, gdy warunek
- na wejściu instrukcji D zostanie ustawiony ON.
- Bądź ostrożny w używaniu obszaru P jako .
4) Przykład programu
Gdy P033 jest ustawione OFF, to M003 jest ON na czas jednego scan’u.
[ Program ]
P033
[ D M003 ]
M003
( P060 )
P060
Układ podtrzymania wskazuje, że M003 był ON.
[ Diagram czasowy ]
M003
→
Carry
(F112)
2
D NOT
P033
Zero
(F111)
←
1scan On
P060
P060 zachowuje stan w wyniku działania obwodu podtrzymania.
80
4.5.3 SET
SET
Instrukcje
SET
M
D
P
K
L
O
O
O
F
T
C
O*
S
D
#
D
Integ
er
O
SET
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
1
D
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Gdy warunek input instrukcji SET jest ustawiony na ON, to wskazany obiekt zostanie
ustawiony na ON.
- Obiekt pozostanie ustawiony na ON, nawet gdy warunek input instrukcji SET został
wyłączony. Obiekt może być wyłączony instrukcją RST.
2) Przykład programu
Gdy warunek input P020 jest ON, P060 i P061 jest ustawiane na ON przez instrukcje
OUT i SET.
[ Program ]
P020
( P060 )
P020
[ SET P061 ]
[ Diagram czasowy ]
P020
P060
P061
81
4.5.4 RST
RST
Instrukcje
RST
M
D
P
K
L
O
O
O
O*
F
T
C
S
D
#
D
Integ
er
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
1
RST
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Gdy warunek input instrukcji RST jest ustawiony na ON, to wskazany obiekt zostanie
zmieniony jak poniżej.
Obiekt
Status
M, P, K, L Wskazany bit ustawiony na OFF
Wyjście timera ustawia się na OFF a wartość
T
bieżąca jest zerowana.
2) Przykład programu
Ustaw P061 z P020 i resetuj P061 z P021.
[ Program ]
P020
( P060 )
P020
[ SET P061 ]
P021
[ RST P061 ]
[ Diagram czasowy ]
P020
P021
P060
P061
82
Przeciwdziałanie skutkom zaniku napięcia zasilania (Różnice pomiędzy obszarem P i
obszarem K)
1. Różnice pomiędzy przekaźnikami I/O (P) i przekaźnikami keep (K) w stosunku do
instrukcji OUT
Program poniżej pokazuje różnice pomiędzy obszarami P i obszarami K. P060 i K000 posiadają
układ podtrzymania i praca tych dwóch styków jest identyczna. Jednakże, kiedy zostanie
wyłączone zasilanie a następnie znowu włączone (zanik napięcia), wówczas zachowanie się P i
K jest różne jak to pokazano poniżej.
PB0
Wyłączenie
napięcia
PB1
( P060 )
↓
↓
PB0
PB1
P060
PB0
Włączenie
napięcia
P060
PB1
( K000 )
K000
K000
Podtrzymanie
Nieulotny w
czasie zaniku
2. Różnice pomiędzy przekaźnikami I/O (P) i przekaźnikami keep (K) w stosunku do
instrukcji SET/RST
Instrukcja SET powoduje ustawienie wskazanego obiektu i utrzymywania jego statusu aż do
wykonania instrukcji RST. Jednakże, obszary P i K zachowują się inaczej w momencie gdy
nastąpi zanik napięcia.
Wyłączenie
napięcia
PB0
[ SET P060 ]
PB1
PB0
[ SET K000 ]
PB1
[ RST P060 ]
P060
[ RST K000 ]
K000
↓
83
Włączenie
napięcia
↓
Instrukcje Step controller
4.6
4.6.1 SET Sxx.xx
SET S
Instrukcje
SET S
M
P
K
L
F
T
C
S
D
#
D
Integ
er
O
D
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
2
S xx.xx
SET S xx.xx
Step No. (00 ~ 99)
* K10S1
: 0 ~ 15
K10S / K30S / K60S
: 0 ~ 31
K200S / K300S / K1000S : 0 ~ 99
Group (00 ~ 99*)
1) Funkcje
- The Sxx.xx contact will turn on when the previous step of same group and the input
condition is on.
- Once a Sxx.xx is switched on, it keeps on state until the next step turns on or the step
controller group is initialized. (The Sxx.00 is switched on)
- Even if multiple input condition turn on, only one step controller is switched on.
- The Sxx.00 is initialization step and the Sxx.xx group will be initialized by switching on the
Sxx.00. When the CPU is turned to RUN mode, the Sxx.00 is set by default.
2) Przykład programu
Sekwencyjne sterowanie przy użyciu grupy S01.xx
[ Program ]
0000
0003
0006
0009
Reset 0012
P030
SET
S01.04
SET
P034
S01.03
SET
P033
S01.02
SET
P032
S01.01
SET
P031
S01.00
[ Diagram czasowy ]
P030
P031
P032
P033
P034
S01.xx reset warunku input
S01.01
S01.02
S01.03
S01.04
84
Sterowanie sekwencyjne ( przykład instrukcji SET Sxx.xx )
1. Praca
Program ten pokazuje krótki przykład sterowania sekwencyjnego przy użyciu instrukcji SET
Sxx.xx . W przykładzie tym są 4 procesy i każdy z nich jest realizowany sekwencyjnie. Proces 2
startuje gdy proces 1 skończył się. Proces 3 startuje gdy proces 2 skończył się. Gdy proces 4
skończył się, process1 startuje ponownie.
2. Program
Start
Start proces 1
SET S01.01
Koniec procesu 1
Start proces 2
SET S01.02
Koniec procesu 2
Start proces 3
SET S01.03
Koniec procesu 3
Start proces 4
SET S01.04
Koniec procesu 4
Inicjuj step controller
SET S01.00
S00.01
Proces 1
Koniec procesu 1
(
)
S00.02
Proces 2
Koniec procesu 2
(
)
S00.03
Proces 3
Koniec procesu 3
(
S00.04
)
Proces 4
Koniec procesu 4
(
)
[ END ]
85
Wykonuj proces 1 i ustaw
‘Koniec procesu 1’ gdy proces 1
zakończy się.
Wykonuj proces 2 i ustaw
‘Koniec procesu 2’ gdy proces 2
zakończy się.
Wykonuj proces 3 i ustaw
‘Koniec procesu 3’ gdy proces 3
zakończy się.
Wykonuj proces 4 i ustaw
‘Koniec procesu 4’ gdy proces 4
zakończy się.
4.6.2 OUT Sxx.xx
OUT S
Instrukcje
OUT S
M
P
K
L
F
T
C
S
D
#
D
Integ
er
O
D
(
Sxx.xx
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
2
S xx.xx
)
Step No. (00 ~ 99)
* K10S1
: 0 ~ 15
K10S / K30S / K60S
: 0 ~ 31
K200S / K300S / K1000S : 0 ~ 99
Group (00 ~ 99*)
1) Funkcje
- Sterowanie z priorytetem Last-in (Włączony ostatni)
- Gdy warunek input jest na ON, wskazany step controller jest ustawiony na ON i utrzymuje
swój status, aż inny step controller tej samej grupy ustawi się na ON.
- Tylko jeden step controller ustawi się na ON, nawet gdy wiele warunków input zostanie
ustawionych. W tej sytuacji step controllerktóry włączył się ostatni, ma najwyższy priorytet.
- Sxx.00 jest krokiem inicjacyjnym i grupa Sxx.xx zostanie zainicjowana przez ustawienie
Sxx.00 na ON. Gdy CPU wejdzie w mod RUN, to Sxx.00 zostanie ustawiony w wyniku
nastawy pierwotnej.
2) Przykład programu
P020
)
( S02.23
)
P022
( S02.98
)
P023
Reset
( S02.01
P021
[ Program ]
( S02.04
)
P024
( S02.00
)
[ Diagram czasowy ]
P020
P021
P022
P023
P024
Warunek input S02.xx reset
S02.01
S02.23
S02.98
S02.04
86
4.7 Instrukcja End
4.7.1 END
END
FUN (001) END
Instrukcja
M
P
K
L
F
T
C
S
#
D
Integ
er
D
END
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
1
(
)
(
)
[ END ]
1) Funkcje
- Instrukcja END wskazuje koniec sekwencji programu. Gdy CPU napotyka instrukcję END,
zatrzymuje wykonywanie sekwencji programu i wykonuje procedurę END.
- Wszystkie instrukcje występujące po instrukcji END oprócz podprogramów i procedur
przerwań, są ignorowane i nie są wykonywane.
- Jeżeli brakuje instrukcji END, to pojawi się błąd programu.
Odświeżanie Input
0000 LOAD P020
0001 AND P021
1scan
Koniec sekwencji programu
Samodiagnoza
Odświeżanie Output
87
4.7 Instrukcja No operation – nic nie rób
4.7.1 NOP
NOP
FUN (000) NOP
Instrukcja
M
P
K
L
F
T
C
S
D
#
D
Integ
er
NOP
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
1
Brak symbolu drabinkowego (Dostępny tylko mod mnemoniczny)
1) Funkcje
- Instrukcja no operation nie wpływu na wynik operacji poprzedzających.
- Instrukcja NOP jest używana w następujących przypadkach:
a) Rezerwacja przestrzeni w sekwencji programu dla debuggingu.
b) Umożliwienie usunięcia instrukcji bez zmiany num,eracji adresów.
c) Umożliwienie tymczasowego usunięcia instrukcji.
2) Przykład programu
[Program drabinkowy]
[Program mnemoniczny]
0000
0001
0002
0003
0004
0005
0006
LOAD P020
AND P021
NOP
OUT P060
LOAD P022
OUT P061
END
00000
00004
P021
P020
( P060 )
NOP pominięta
P022
( P061 )
00006
[ END ]
88
4.9 Instrukcje liczników czasu - Timer
4.9.1 TON
TON
Opóźnienie On
Instrukcje
TON
M
P
K
L
F
Txxx
T
C
S
D
#
D
Integ
er
O
O
V
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
Nastawa Timera
Warunek Input
TON
Txxx
V
Numer styku Timera
* Nastawa czasu ( t ) = Jednostka czasu (0.1 lub 0.01 sek) x Nastawa Timera
1) Funkcje
- Timer składa się ze styku timera, wartości bieżącej i nastawy.
- Wartość bieżąca timera zaczyna narastać, gdy warunek input ustawi się na ON. Wzrasta
ona o 1 co każdą 0.1 lub 0.01 sek, aż osiągnie nastawę lub warunek input zostanie
zgaszony.
- Styk timera zostanie ustawiony na ON, gdy wartość bieżąca osiągnie nastawę.
- Styk timera i wartość bieżąca zostanie wyzerowana, gdy warunek input zostanie zgaszony
lub zostanie wykonana instrukcja RST.
2) Program example
T097 (0.01 sek timer) zostanie ustawiony na ON w 20 sekund po załączeniu P020 na ON.
P020
[Program]
[ TON T097 00200 ]
T097
( P065 )
P021
[ RST T097 ]
[Diagram czasowy
P020
←
t = 20sek
→
T097
( Narastanie )
89
Migająca lampka (przykład instrukcji TON)
1. Praca
Zastosowanie dwóch timerów – lampka miga gdy P020 jest ON.
2. Struktura układu
Moduł
Output P06
Moduł
Input P02
Start
P020
0
0
1
Program
L
1
2
2
3
.
.
.
.
.
3
.
.
.
.
.
F
F
3. Program
[Program drabinkowy]
P020
T001
[ TON T000 00005 ]
[ TON T001 00006 ]
T000
Ustaw czas Off (0.5sek)
Ustaw czas On (0.6sek)
( P065 )
[ END ]
[Diagram czasowy]
P020
T0 T1
T000
90
* T000, T001
wybrany
jako
timer
100 msek
4.9.2 TOFF
TOFF
Opóźnienie Off
Instrukcje
TOFF
M
P
K
L
F
Txxx
T
C
S
D
#
D
Integ
er
O
O
V
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
Nastawa Timera
Warunek Input
TOFF
Txxx
Numer styku Timera
* Nastawa czasu ( t ) = Jednostka czasu (0.1 lub 0.01 sek) x Nastawa Timera
1) Funkcje
- Timer składa się ze styku timera, wartości bieżąceji nastawy.
- Gdy warunek input zostanie ustawiony, to wartość bieżąca przyjmie nastawę timera i styk
timera ustawi się na ON.
- Gdy warunek input zostanie zgaszony, to wartość bieżąca będzie maleć o 1 co każdą 0.1
lub 0.01 sek, aż osiągnie 0 lub warunek input zostanie zgaszony.
- Styk timera zostanie zgaszony, gdy wartość bieżąca osiągnie 0.
- Gdy warunek input zostanie zgaszony lub zostanie wykonana instrukcja RST, to styk
timera i wartość bieżąca zostanie wyzerowana.
2) Przykład programu
T000 (0.1 sek timer) zostanie zgaszony w 5 sekund po wyłączeniu P020.
[Program]
P020
[ TOFF T097 00200 ]
T000
( P065 )
P022
[ RST T000 ]
[ Diagram czasowy ]
P020
← t = 5sek →
T000
( Opadanie )
91
Sterowanie transporterem (przykład instrukcji TOFF)
1. Praca
Trzy transportery (A, B, C) pracują sekwencyjnie używając timerów TOFF.
(Start : A – B – C, Stop : C – B – A)
2. Struktura systemu
Moduł Input
P06
Moduł Output
P02
On/Off
Transporter
C
B
A
Program
0
1
2 →
3
.
.
.
Silnik 1
MC0
MC1
MC2
F
F
Silnik 2
0
1
2
3
.
.
.
Silnik 0
3. Program
0000
0004
0006
0010
0014
0017
0021
P020
[ TOFF T010 00100 ]
T010
( P060 )
P020
Ustaw opóźnienie OFF transportera A
(10sek)
[ TON T000 00050 ]
[ TOFF T011 00050 ]
T000
Ustaw opóźnienie ON transportera B
(5sec)
Ustaw opóźnienie OFF transportera B
(5sec)
T011
( P062 )
T011
P020
T001
[ TON T001 00100 ]
P020
( P062 )
Ustaw opóźnienie ON transportera C
(5sec)
[ END ]
0024
[ Diagram czasowy ]
On/Off (P020)
T010
A (P060)
B(P061)
C(P062)
T000
T011
T001
92
4.9.3 TMR
TMR
Timer Sumujący
Instrukcje
TMR
M
P
K
L
F
Txxx
T
C
S
D
#
D
Integ
er
O
O
V
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
Nastawa Timera
Warunek Input
TMR
Txxx
V
Numer styku Timera
* Nastawa czasu ( t ) = Jednostka czasu (0.1 lub 0.01 sek) x Nastawa Timera
1) Funkcje
- Wartość bieżąca wzrośnie o 1, gdy warunek input jest ON.
- Gdy wartość bieżąca osiągnie nastawę timera, to styk timera ustawi się na ON.
- Nawet gdy warunek input jest OFF, to wartość bieżąca nie jest zerowana. Jeżeli timer
używany jest w obszarze danych nieulotnych, to timer zachowa wartość bieżącą podczas
wyłączenia CPU.
- Gdy warunek input zostanie zgaszony lub zostanie wykonana instrukcja RST, to styk
timera i wartość bieżąca zostanie wyzerowana.
2) Przykład programu
[Program]
P020
[ TMR T096 300 ]
T096
( P061 )
P023
[ RST T096 ]
[ Diagram czasowy]
P023
P020
Nastawa
T096
t 1= 20
P061
t 2= 10
t = t1+t2
93
Alarm – wymiana wiertła (przykład instrukcji TMR)
1. Praca
W centrach maszynowych całkowity czas używania wiertła jest kontrolowany przez PLC. Jeżeli
całkowity czas używania przekroczy czas życia wiertła (100 hours), PLC wystawia sygnał alarmu
pokazując, że należy wymienić wirtło.
2. Struktura systemu
Moduł Input
P02
Wiertło
0
Czujnik
Sil
ik
Moduł Output
P06
1
1
2
.
.
.
.
.
.
Zakończenie
wymiany
L
0
Program
2
.
.
.
.
.
.
I/O
Lampka alarmu
Opis
P020
Detekcj opuszczenia wiertła
P021
Zakończenie wymiany
P060
Zapal lamkę alarm
T000
Timer czasu życia wiertła
3. Program
P020
[ TMR T000 36000 ]
T000
[ RST T096 ]
T000
U
CTU C000
R
C000
C000
timer 1 godziny
& lt; s & gt; 00100
P021
( P060 )
P060
94
Counter
(1godz100 = 100godz)
4.9.4 TMON
TMON
Timer monostabilny
Flaga
Instrukcje
TMON
M
P
K
L
F
Txxx
T
C
S
D
#
D
Step
Dostępne Obiekty
Intege
r
O
O
V
Erro
r
(F11
0)
Zero
(F11
1)
Carr
y
(F11
2)
3
O
Nastawa Timera
Warunek Input
TMON
Txxx
V
Numer styku Timera
* Nastawa czasu ( t ) = Jednostka czasu (0.1 lub 0.01 sek) x Nastawa Timera
1) Funkcje
- Gdy warunek input ustawi się na ON, to wartość bieżąca zostanie ustawiona na nastawę i
zacznie maleć. Styk timera ustawi się na ON, gdy warunek input ustawi się na ON.
- Gdy warunek input ustawi się na OFF, to wartość bieżąca zmniejszy się o 1 co każdą 0.1
lub 0.01 sek, aż osiągnie 0 i styk timera zostanie zgaszony gdy tylko wartość bieżąca
osiągnie wartość 0.
- Podczas pracy timera, zmiany on/off warunku input są ignorowane.
- Gdy wykonywana jest instrukcja RST, styk timera zostaje zgaszony a wartość bieżąca
zostaje wyzerowana.
2) Przykład programu
P020
[Program]
[ TMON T000 00100 ]
T000
( P061 )
P023
[ RST T000 ]
[ Diagram czasowy ]
P023
P020
Nastawa timera
T000
← Nastawa czasu ( t )
→
P061
95
Układ zapobiegający drganiom (przykład instrukcji TMON)
1. Praca
Sygnał wejściowy z krańcówki ma charakter drgań. Przy zastosowaniu instrukcji TMON,
można uzyskać sygnał stabilny.
2. Struktura systemu
Wyjście krańcówki dla
małej prędkości wózka
Kierunek ruchu
Moduuł Input
P02
0
Wózek
1
Wyjście krańcówki dla
dużej prędkości wózka
I/O
P020
M0020
T000
Stabilny sygnał
(stały okres)
Opis
2
.
.
.
.
.
.
T
F
Wyjście krańcówki
Stabiliny sygnał P020
Timer
zapobiegający
drganiom
3. Program
P020
T000
[ TMON T000 0002 ]
( M0020 )
96
Jeżeli P020 drga przez moment po
załączeniu P020, to M0020 utrzymuje go
w stanie ON przez 0,2 sekundy.
4.9.5 TRTG
TRTG
Timer ponownie wyzwalany
Instrukcje
TRTG
M
P
K
L
F
Txxx
T
C
S
D
#
D
Integ
er
O
O
V
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
Nastawa Timera
Warunek Input
TRTG
Txxx
V
Numer styku Timera
* Nastawa czasu ( t ) = Jednostka czasu (0.1 lub 0.01 sek) x Nastawa Timera
1) Funkcje
- Gdy warunek input ustawi się na ON, to wartość bieżąca zostanie ustawiona jako nastawa
timera i zacznie maleć. Styk timera ustawi się na ON, gdy warunek input jest ustawiony na
ON.
- Wartość bieżąca będzie zmniejszała się o 1 co każdą 0.1 lub 0.01sek aż do osiągdnięcia
0, a styk timera zostanie zgaszony gdy wartość bieżąca osiągnie 0.
- Jeżeli warunek input ustawi się ponownie na ON podczas pracy timera, to wartość bieżąca
zostanie zresetowana , czyli ustawiona jako nastawa timera i timer zacznie pracę od
początku.
- Gdy wykonywana jest instrukcja RST, styk timera zostaje zgaszony a wartość bieżąca
zostaje wyzerowana.
2) Przykład programu
[Program]
P020
[ TRTG T096 50 ]
T096
( P065 )
P023
[ RST T096 ]
[ Diagram czasowy ]
t=5sek
P020
t
P065
97
Układ wykrywający błędy transportera (przykład instrukcji TRTG)
1. Praca
Wykrywaj błąd transportera sprawdzając czy produkt pojawił się w wyznaczonym czasie czy nie.
2. Struktura systemu
Moduł Input
P02
Zadajnik
Czujnik
0
1
Transporter
2
.
.
.
.
.
.
F
3. Program
P020
[ TRTG T005 00200 ]
T005
Sygał
czujnika
Wartość bieżąca
timera
( M100 )
P020
T5
T=20sek
Praca
poprawna
M100
98
Jeżeli przez 20 sekund nie ma
produktu, timer zostaje zgaszony a
M100 wyłączony.
Podczas poprawnej pracy, M100
utrzymuje stan ON.
4.10 Instrukcje liczników - Counter
4.10.1 CTU
CTU
Up counter
Instrukcje
CTU
M
P
K
L
Cxx
x
F
T
C
S
D
#
D
Integ
er
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
V
O
O
Numer styku Countera
Input
U CTU
Reset
C xxx
R & lt; S & gt;
Nastawa Countera
1) Funkcje
- Każde narastające zbocze pojawiające na wejściu input, zwiększa wartość bieżącą o 1.
- Początkowo wartość bieżąca ma wartość 0, a gdy wartość bieżąca zrówna się z nastawą,
to styk countera ustawi się na ON.
- Po tym jak styk countera ustawi się na ON, wartość bieżąca wzrasta do wartości
maksymalnej. (65535)
- Gdy wykonywana jest instrukcja RST, styk countera zostaje zgaszony a wartość bieżąca
zostaje wyzerowana.
2) Przykład programu
- Za każdą zmianą P030 z OFF na ON, wartość bieżąca C010 zwiększa się o 1.
- P031 jest warunkiem reset.
P030
[Program]
U
C010
CTU C010
R
P031
& lt; S & gt; 00010
( P060 )
[ Diagram czasowy ]
P031
P030
Nastawa
C010
P060
99
4.10.2 CTD
CTD
Down counter
Instrukcje
CTD
M
P
K
L
Cxx
x
F
T
C
S
#
D
Integ
er
D
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
V
O
O
Numer styku Countera
Input
U CTD
Reset
C xxx
R & lt; S & gt;
Nastawa Countera
1) Funkcje
- Każde narastające zbocze pojawiające na wejściu input, zmniejsza wartość bieżącą o 1.
- Początkowo wartość bieżąca ma wartość nastawy, a gdy wartość bieżąca osiągnie 0, to
styk countera ustawi się na ON.
- Gdy wykonywana jest instrukcja RST, styk countera zostaje zgaszony a do wartości
bieżącej zostaje wpisana wartość nastawy.
2) Przykład programu
- Za każdą zmianą P030 z OFF na ON, wartość bieżąca C010 zmniejsza się o 1.
- P031 jest warunkiem reset.
P030
[Program]
P031
D
CTD C010
R
& lt; S & gt; 00010
C010
( P060 )
[ Diagram czasowy ]
P031
P030
Nastawa
C010
P060
100
4.10.3 CTUD
CTUD
Up-down counter
Instrukcje
CTUD
M
P
K
L
F
T
C
Cxx
x
S
#
D
D
Integ
er
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
V
O
O
Numer styku Countera
Up input
U CTUD
C xxx
Down input
D
Reset
R & lt; S & gt;
V
Nastawa Countera
1) Funkcje
- Każde narastające zbocze pojawiające na wejściu Up input, zwiększa wartość bieżącą o 1.
- Każde narastające zbocze pojawiające na wejściu Down input, zmniejsza wartość bieżącą
o 1.
- Początkowo wartość bieżąca ma wartość 0.
- Styk countera ustawia się na ON, gdy wartość bieżąca zrówna się lub będziewiększa od
nastawy.
- Gdy wykonywana jest instrukcja RST, styk countera zostaje zgaszony a wartość bieżąca
zostaje wyzerowana.
2) Przykład programu
- P030 jest up input, a P031 jest down input.
- P032 jest sygnałem reset.
P030
[Program]
P031
P032
U
CTUD C000
D
R
& lt; S & gt; 00010
C000
( P060 )
[ Diagram czasowy ]
P032
P030
P031
Nastawa
C000
101
Układ sterowania pracą silników (przykład instrukcji CTUD)
1. Praca
Praca 4 silników sterowana jest przez PLC. Za każdym przyciśnięciem przycisku PB1, ilość
pracujących silników zwiększa się o 1. Przyciśniecie PB2 zmniejsza ilość pracujących silników.
Gdy pracują 4 silniki i zostanie użyty przycisk PB1, to wszystkie silniki zatrzymają się.
2. Struktura systemu
S3
S2
0
1
2
3
.
.
.
.
.
S1
0
Program
PB1
PB2
S4
Moduł Output
P06
Moduł Input
P03
1
2
3
.
.
.
.
.
3. Program
0000
P030
P031
C005
0006
P030
P031
C005
0012
P030
P031
C005
0018
P030
P031
C005
0024
P030
P031
C005
U
CTUD C001
C001 : pracuje silnik 1
D
R
& lt; S & gt; 00001
U
CTUD C001
C002 : pracuje silnik 2
D
R
& lt; S & gt; 00002
U
CTUD C003
C003 : pracuje silnik 3
D
R
& lt; S & gt; 00001
U
CTUD C0004
C004 : pracuje silnik 4
D
R
& lt; S & gt; 00004
U
CTUD C005
D
R
& lt; S & gt; 00005
( P060 )
0030
C001
0032
C002
( P061 )
0034
C003
( P062 )
0036
C004
( P063 )
0038
[ END ]
102
C005 : sygnał reset
4.10.4 CTR
CTR
Ring counter
Instrukcje
CTR
M
P
K
Cxx
x
L
F
T
C
S
D
#
D
Integ
er
O
Step
Dostępne Obiekty
Flaga
Erro Zer Carr
r
o
y
(F11 (F11 (F11
0)
1)
2)
3
O
O
Numer styku Countera
Input
C xxx
U CTR
Reset
V
R & lt; S & gt;
Nastawa Countera
1) Funkcje
- Każde narastające zbocze pojawiające na wejściu input, zwiększa wartość bieżącą o 1.
- Gdy wartość bieżąca zrówna się z nastawą, to styk countera ustawi się na ON. Następnie
gdy pojawi się narastające zbocze na wejściu input, to styk countera zostaje zgaszony a
wartość bieżąca zostaje wyzerowana.
- Gdy wykonywana jest instrukcja RST, styk countera zostaje zgaszony a wartość bieżąca
zostaje wyzerowana.
2) Przykład programu
- P030 jest input i kiedy wartość bieżąca jest taka sama jak nastawa, to styk countera ustawi
się na ON.
- Gdy P030 jest włączony po raz jedenasty, to styk countera (P060) zostaje zgaszony a
wartość bieżąca ptrzyjmuje wartość 0.
[ Program ]
P030
P031
U
CTR
R
& lt; S & gt; 00010
C005
C010
( P060 )
[ Diagram czasowy ]
P031
P030
Nastawa
C005
P060
103
5 Instrukcje Application
5.1 Instrukcje Data transfer
5.1.1 MOV, MOVP, DMOV, DMOVP
MOV
FUN(80) MOV
(Move)
FUN(81)MOVP FUN(83)DMOCP
FUN(82) DMOV
Stosowane
Wszystkie CPU
w CPU
Dostępne Obiekty
Flaga
Instrukcje
Inte
D #D ger
M
MOV(P)
S
DMOV(P)
D
P
K
L
F
T
C
O
O
O
O
*
O
O
O
O
O
O
O
O
O*
O
O
O
Zero
(F11
1)
Carr
y
(F11
2)
O
S
S
Erro
r
(F11
0)
Step
O
Nastawa operandu
D
MOV
S
DMOV
S
O
5/7
D
D
Obiekt źródłowy gdzie
zapamiętywane są dane
przeznaczone do transferu
Obiekt przeznaczenia
transferu
MOVP
DMOVP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- MOV(P) : Transfer 16-bits data obiektu wskazanego w [ S ] do obiektu wskazanego w [ D ].
16 bits
S
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1 1 0 0 0 0 1 1 1 1 0 0 1 1
1
DMOV(P) : Transfer 32-bits data obiektu wskazanego w [ S+1, S ] do obiektu wskazanego
D
-
0
0
1
16 bits
S
+1
D +1
w [ D+1, D ].
16 bits
1 0
0 1 1 0 1
1 0
0 1 1
0 1
S
1 0
0 1 1 0 1
1 0
0 1
0 1
D
104
1
-
Warunki wykonywania
Warunki Input
MOV, DMOV
Wykonywany
przez scan
Wykonywany
przez scan
MOVP, DMOVP
Wykonywane tylko raz
Wykonywane tylko raz
2) Przykład programu
Zawsze kiedy na P020 wykryte jest narastające zbocze, to ‘h00F3’ jest przeniesione do P04 word.
P020
MOVP h70F3 P04
P04F
0
P040
1
1
1
1
0
105
0
0
0
1
1
1
1
0
0
1
1
5.1.2 CMOV, CMOVP, DCMOV, DCMOVP
FUN(84) CMOV
FUN(86)
CMOV
DCMOV
(Complement move)
FUN(85) CMOVP
Stosowane
Wszystkie CPU
w CPU
FUN(87)
DCMOCP
Flaga
Dostępne Obiekty
Instrukcje
D
Integ Step
#D er
O
O
O
O
O
O
M
CMOV(P)
DCMOV(P)
L
F
T
C
O
O
O*
O
O
O
D
K
O
S
P
O
O
O*
O
S
S
O
Error
(F110)
Zero
(F111)
O
5/7
Nastawa operandu
D
S
Obiekt źródłowy gdzie
zapamiętywane są dane
przeznaczone do transferu
D
Obiekt przeznaczenia
transferu
CMOV
DCMOV
S
Carry
(F112)
D
CMOVP
DCMOV
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- CMOV(P) : Dokonuje bitowo rewersji 16-bits data z [ S ] i transferuje wynik
do [ D ]
16 bits
S
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
Rewersja
D
-
1
0
0
0
1
1
1
1
0
0
DCMOV(P) : Dokonuje bitowo rewersji 32-bits data z [ S+1, S ] i transferuje wynik
16 bits
S +1
1 0
0
16 bits
1 1
0 1
1 0
0
Rewersja
D +1
0 1
1
do [ D+1,D ].
0
0 1 0
1 1
0 1
S
Rewersja
0 1
106
1
0
0 1 0
D
-
Warunki wykonywania
Warunki Input
CMOV, DCMOV
Wykonywany
przez scan
Wykonywany
przez scan
CMOVP, DCMOVP
Wykonywane tylko raz
Wykonywane tylko raz
2) Przykład programu
- Gdy M020 jest ON, następuje rewersja danych P02 word i przeniesienie wyniku do P06 word.
M020
CMOV P02 P06
16 bits
P02
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
Rewersja
P06
1
1
0
1
0
0
1
1
1
0
0
107
5.1.3 GMOV, GMOVP
GMOV
FUN(90) GMOV
(Group move)
FUN(91) GMOVP
Stosowane
w CPU
D
Integ Step
#D er
O
O
O
O
O
O
M
GMOVP
Flaga
Dostępne Obiekty
Instrukcje
GMOV
Wszystkie CPU
P
K
L
F
T
C
S
O
O
O
O*
O
O
D
O
O
O
O*
O
n
S
O
S
D
Zero
(F111)
O
O
S
D
Carry
(F112)
Nastawa operandu
n
n
Adres startu obszaru
danych źródłowych
D
GMOV
S
7
Error
(F110)
Adres startu obszaru
przeznaczenia
przenoszonych danych
n
GMOVP
Liczba przenoszonych słów
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Przenosi blokami zawartość ‘n’ words, poczynając od obiektu wyspecyfikowane-go w [ S ], do ‘n’ words
poczynając od obiektu wyspecyfikowanego w [ D ].
S
S +1
S +2
S + (n-3)
S + (n-2)
S + (n-1)
h0002
h0007
h007F
h0002
h0007
h007F
D
h005A
h006F
h0037
h005A
h006F
h0037
D + (n-3)
108
D +1
D +2
D + (n-2)
D + (n-1)
-
Warunki wykonywania
Warunki Input
GMOV
Wykonywany
przez scan
Wykonywany
przez scan
GMOVP
Wykonywane tylko raz
Wykonywane tylko raz
2) Przykładowy program
- Gdy P020 jest ON, przenieś dane z obszaru D000, D001, i D002 do obszaru P04, P05, i P06 .
P020
GMOV D0000 P04 3
S
n
D0000
D0001
D0002
D
h0001
h0004
h005F
h0001
h0004
h005F
109
P04
P05
P06
5.1.4 FMOV, FMOVP
FMOV
FUN(92) FMOV
(File move)
FUN(93) FMOVP
Stosowane
w CPU
Dostępne Obiekty
Instrukcje
D
Integ Step
#D er
O
O
FMOVP
O
O
O
P
K
L
F
T
C
S
O
O
O
O*
O
O
D
O
O
O
O*
O
n
S
O
S
D
D
7
Error
(F110)
Zero
(F111)
Carry
(F112)
O
O
Nastawa operandu
Obiekt w którym
zapamiętywany jest obszar
S danych żródłowych
n
FMOV
S
Flaga
O
M
FMOV
Wszystkie CPU
D
n
n
FMOVP
Adres startu obszaru
przeznaczenia
przenoszonych danych
Liczba przenoszonych słów
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Functions
- Przenosi blokami zawartość obiektu wskazanego w [ S ] do ‘n’ punktów, które rozpoczynają się w obiekcie
wskazanym w [ D ].
h005A
h005A
h005A
S
D
D +1
D +2
h005A
n words
h005A
h005A
h005A
110
D + (n-3)
D + (n-2)
D + (n-1)
-
Warunki wykonywania
Warunki Input
FMOV
Wykonywany
przez scan
Wykonywany
przez scan
FMOVP
Wykonywane tylko raz
Wykonywane tylko raz
2) Przykład programu
- Gdy na P030 pojawi się narastające zbocze, nastąpi transfer zawartości
- P02 word do bloku P04, P05 i P06.
P020
FMOVP P02 P04 3
P02
h0098
h0098
h0098
h0098
111
P04
P05
P06
5.1.5 BMOV, BMOVP
BMOV
FUN(100) BMOV
(Bit move)
FUN(101) BMOVP
Stosowane
w CPU
Dostępne Obiekty
Instrukcje
O
O
O
Error
(F110)
O
O
O
Step
7
D
O
P
K
L
F
T
C
S
BMOVP
Flaga
Integ
#D er
M
BMOV
Wszystkie CPU
O
O
O
O*
O
O
D
O
O
O
O*
O
S
Cw
Zero
(F111)
Carry
(F112)
O
Nastawa operandu
D Cw
S
S
Obiekt w którym zapamiętywane są dane źródłowe
D
BMOV
Obiekt który zapamięta
przenoszone dane
D Cw
S
Cw
BMOVP
Informacja o bicie startu i
liczbie przenoszonych bitów
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Format ‘Cw’
h
-
s
d
z
z
a) s : Bit startu w [ S ].
b) d : Bit startu w [ D ]
c) zz : Liczba przenoszonych bitów. (Hexadecimal)
Przenosi zawartość ‘zz’ bitów z ‘s’ bitów obiektu wskazanego w [ S ] do ‘zz’ bitów z ‘d’ bitów obiektu
wskazanego w [ D ].
Wartość maksymalna ‘zz’ jest h10 ( = 16). Jeżeli wartość ‘zz’ jest 0 lub ponad h10, instrukcjazostanie
zignorowana. ( Error flag F110 jest ustawiany gdy ‘zz’ wynosi ponad h10.)
112
-
Warunki wykonywania
Warunek Input
BMOV
Wykonywany
przez scan
Wykonywany
przez scan
BMOVP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P030, 4 bity z P020 zostaną przeniesione do P063.
P030
BMOVP P02 P06 h0304
4bits
P02F
1
1
P06F
P020
P023
0
0
0
4bits
1
1
1
P063
P066
113
1
0
P060
5.2 Instrukcje Conversion
5.2.1
BCD, BCDP, DBCD, DBCDP
BCD
FUN(60) BCD
decimal)
Stosowane
FUN(61) BCDP
(Binary coded
FUN(62) DBCD
FUN(63) DBCDP
w CPU
Wszystkie CPU
Dostępne Obiekty
Instrukcje
O
O
O
O
L
F
T
C
O
O
O
O
O
O*
DBCD(P)
D
O
O
O
O*
S
S
Zero
(F111)
Carry
(F112)
Nastawa operandu
D
Obiekt źródłowy gdzie
zapamiętywane są dane
przeznaczone do konwersji na
format BCD
Obiekt przeznaczenia
wyniku konwersji
BCD
S
DBCD
S
O
O
K
O
Error
(F110)
O
P
S
Step
5
D
M
BCD(P)
Flaga
Inte
#D ger
D
D
BCDP
DBCDP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Functions
- BCD : Konwersja binary data (0 do 9999) obiektu wskazanego w [ S ] na BCD format i transfer wyniku do
obiektu wskazanego w [ D ].
32768 16384
S
BIN (9999)
0
0
8192
4096
2048
1024
512
256
128
64
32
16
8
4
2
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1000
800
400
200
100
80
40
20
10
8
4
2
1
Upewnij się czy
ustawione 0. (Jeżeli
nie to konwersja BCD
8000
2000
1 1 0 0 1 1 0 0 1 1 0 0 1
0 0
DBCD : Konwersja binary data (0 do 99999999) obiektu wskazanego w [ S ] na BCD format i transfer wyniku
do obiektu wskazanego w [ D ].
D
-
4000
BCD (9999)
1
0
0
114
-
Warunki wykonywania
Warunek Input
BCD, DBCD
Wykonywany
przez scan
Wykonywany
przez scan
BCDP, DBCDP
Wykonywany tylko raz
Wykonywany tylko raz
- Błąd operacji
Błąd operacji oraz error flag (F110) ustawi się na ON, w następujących przypadkach.
a) Gdy używana jest instrukcja BCD(P)
Dane źródłowe [ S ] znajdują się poza zakresem 0 do 9999
b) Gdy używana jest instrukcja BCD(P)
Dane źródłowe [ S ] znajdują się poza zakresem 0 do 99999999
2) Przykład programu
- Gdy P020 jest ON, binary data D001 poddawane są konwersji i wynik jest przenoszony do word P05.
P020
BCD
32768 16384
D0001 (h1111)
D0001
P05
8192
4096
2048
1024
512
256
128
64
32
16
8
4
2
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
8000
P05 (4369)
0
4000
2000
1000
800
400
200
100
80
40
20
10
8
4
2
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
4000
300
60
115
9
Wyświetlanie wartości bieżącej licznika (przykład instrukcji BCD i BMOV)
1. Praca
Do magazynu wchodzą i wychodzą produkty które są liczone czujnikami świetlnymi. Aktualny stan jest pokazywany
na wyświetlaczu cyfrowym. Gdy stan magazynu osiągnie wartość 30, transporter zostaje zatrzymany.
2. Sruktura systemu
Moduł Input
P03
(P031)
(P030)
Czujnik S/W
Czujnik S/W
Moduł Output
P04
0
0
1
2
Outgoing
Wejście
Silnik transportera
Czujnik S/W
S
3
·
·
·
·
·
·
Program
1
2
3
4
5
6
7
·
F
Moduł
Output
Reset Countera S/W
(P032)
P06
Wskaźnik cyfrowy
1
0
·
·
F
8
3. Program
0000
P030
P031
P032
0006
0008
C000
F010
U CTU
D
C000D
R & lt; S & gt;
0003
( P06F )
[ BCD C000 M000 ]
[ BMOV M000 P04 h0008 ]
0021
[END ]
116
Konwersja wartości bieżącej
licznika na format BCD
Wyświetl tylko ostatnich 8bitów (2
cyfry)
5.2.2
BIN, BINP, DBIN, DBINP
BIN
FUN(64) BIN
FUN(66) DBIN
(Binary)
FUN(65) BINP
FUN(67) DBINP
Stosowane
Wszystkie CPU
w CPU
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O
K
L
F
T
C
O
O
O
O
O
O
O*
DBIN(P)
D
O
O
O
O*
S
S
Zero
(F111)
Carry
(F112)
Nastawa operandu
D
Obiekt źródłowy gdzie
zapamiętywane są dane
przeznaczone do konwersji na
format BCD
Obiekt przeznaczenia wyniku
konwersji
BIN
DBIN
S
O
O
P
S
Error
(F110)
O
M
BIN(P)
Step
5
D
Integ
#D er
S
D
D
BINP
DBINP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- BIN : Dokonuje konwersji BCD data (0 do 9999) obiektu wskazanego w [ S ] do formatu binarnego i
przeniesienie wyniku do obiektu wskazanego w [ D ].
8000
S
BCD (9999)
4000
2000
1000
800
400
200
100
80
40
20
10
8
4
2
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
8192
4096
2048
1024
512
256
128
64
32
16
8
4
2
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
32768 16384
D
BIN (9999)
0
0
Zawsze
ustawione 0
-
DBIN : Dokonuje konwersji BCD data (0 do 99999999) obiektu wskazanego w
przeniesienie wyniku do obiektu wskazanego w [ D ].
117
[ S ] do formatu binarnego i
-
Warunki wykonywania
Warunek Input
BIN, DBIN
Wykonywany
przez scan
Wykonywany
przez scan
BINP, DBINP
Wykonywany tylko raz
Wykonywany tylko raz
- Błąd operacji
Błąd operacji oraz error flag (F110) ustawi się na ON, w następujących przypadkach.
a) Każda cyfra (4 bity) obiektu [ S ] znajduje się poza zakresem 0 do 9
(Przykład : [ S ] = h78A5)
2) Przykład programu
- Gdy P020 jest ON, następuje konwersja BCD data word P00 i przeniesienie wyniku do D0001.
P020
BIN
P00
D0001
8000
P00 (4369)
4000
2000
1000
800
400
200
100
80
40
20
10
8
4
2
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
4000
32768 16384
D0001 (h1111)
0
0
300
60
9
8192
4096
2048
1024
512
256
128
64
32
16
8
4
2
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
118
5.3 Comparison instructions
5.3.1
CMP, CMPP, DCMP, DCMPP
CMP
FUN(50) CMP
FUN(52) DCMP
(Compare)
FUN(51) CMPP
FUN(53) DCMPP
Stosowane
w CPU
Wszystkie CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
F
T
C
S
CMP(P)
S1
O
O
O
O
O
O
O
O
O
S2
O
O
O
O
O
O
O
O
O
O
Error
(F110)
O
O
DCMP(P)
Step
5/9
D
Integ
#D er
S1
Carry
(F112)
Nastawa operandu
S2
CMP
S1
DCMP
S1
Zero
(F111)
Dane do porównania
S2
S2
CMPP
DCMPP
1) Funkcje
- Porównuje zawartość dwóch obiektów wskazanych w [ S1 ] i [ S2 ].
- Po dokonaniu porównania, ustawia odpowiednią flagę z zakresu pomiędzy F120 ~ F125.
F120
F121
F122
F123
F124
F125
& lt;
Flaga
≤
=
& gt;
≥
≠
S1
0
0
0
1
1
1
S1
& lt; S2
1
1
0
0
0
1
S1
-
& gt; S2
= S2
0
1
1
0
1
0
Flagi powyżej wskazują na wyniki instrukcji CMP ostatnio wukonywanych.
Flaga błędu (F110) jest ustawiana gdy [ S1 ] lub [ S2 ] wyspecyfikowane jako format #D jest poza zakresem
obiektu. Instrukcja w której miał miejsce błąd nie jest wykonywana.
119
-
Warunki wykonywania
Warunek Input
CMP, DCMP
Wykonywany
przez scan
Wykonywany
przez scan
CMPP, DCMPP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Gdy P020 jest ON, porównaj zawartość D000 i D001 następnie ustaw flagi w zależności od wyników.
(D0000)
0
0
0
1
0
0
0
(h0008)
(D0001)
0
0
1
0
0
0
1
(h2001)
[ Program ]
CMP D0000 D0001
F120
( M0000 )
( M0001 )
F123
F122
( M0002 )
END
[ Ustawianie flag ]
Wynik
F120
F121
F122
F123
F124
F125
& lt;
Flaga
≤
=
& gt;
≥
≠
1
1
0
0
0
1
120
Układ porównania (Przykład instrukcji CMP)
1. Praca
Jest up-down counter C000. P030 jest up input a P031 jestis down input. Jeżeli wartość bieżąca timera jest 0 ~ 9,
P060 ustawi się na ON. Jeżeli wartość bieżąca timera jest 10 ~ 19, P061 ustawi się na ON. P062 będzie ON, gdy 20 ~
29, P063 będzie ON, gdy 30 ~ 39 i P064 będzie ON, gdy wartość bieżąca będzie 40 lub większa.
2. Program
P030
0000
U CTUD C000
P031
D
P032
0006
R & lt; S & gt; 00050
C000 : wartość
bieżąca
licznika
F010
CMP C000 00010
F120
0012
( M0000 )
Mniej niż 10
F010
0014
CMP C000 00020
F120
0020
( M0001 )
F010
0022
Mniej niż 20
CMP C000 00030
F120
0028
( M0002 )
Mniej niż 30
F010
0030
CMP C000 00040
F120
0036
( M0003 )
Mniej niż 40
M0000
0038
( P060 )
( P061 )
0049
20 ~ 29
( P063 )
30 ~ 39
( P064 )
40 lub więcej
M0001
M0002
0043
0046
10 ~ 19
( P062 )
M0000
M0001
0040
0 ~ 10
M0002
M0003
M0003
0051
END
121
5.3.2
TCMP, TCMPP, DTCMP, DTCMPP
FUN(54) TCMP
TCMP
FUN(56) DTCMP
Stosowane
(Table compare)
FUN(55) TCMPP
FUN(57)
DTCMPP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
DTCMP(P)
Flaga
Dostępne Obiekty
Instrukcje
TCMP(P)
Wszystkie CPU
w CPU
O
O
O
O*
S1
S2
S
Zero
(F111)
O
Carry
(F112)
O
O
7/9
Nastawa operandu
D
TCMP
S1
Dane do porównania
S2
S2
D
TCMPP
DTCMP
Początek adresu bloku który ma
być porównany z S1
D
DTCMP
S1
Error
(F110)
Obiekt w którym ma być
zapamiętany wynik porównania
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Porównuje zawartość obiektu wskazanego w [ S1 ] z każdą zawartością 16 words z obiektu wskazanego w [ S2
].
- Wynik porównania (Jeżeli dwa słowa są takie same, wystawiane jest 1. Jeżeli nie, wystawiane jest 0) stanowi 16
bits i są one zapamiętywane w obiekcie wskazanym w [ D ].
- Jeżeli wszystkie wyniki porównań są 0, to wtedy zapalana jest flaga zero flag (F111). ( [ D ] = 0)
- Warunki wykonywania
Warunek Input
TCMP
Wykonywany
przez scan
Wykonywany
przez scan
TCMPP
Wykonywany tylko raz
Wykonywany tylko raz
122
2) Przykład programu
- Gdy P020 jest ON, porównaj zawartość D0001 z 16 słowami poczynając od M00 (M00 ~ M15) i wystaw
wynik porównania w słowie P06 (P060 ~ P06F).
P020
D0001
hBCDE
TCMP D0001 M000 P06
M004
1
0
1
0
1
P060
P061
P062
P063
P064
M012
M013
M014
M015
1
0
1
0
P06C
P06D
P06E
P06F
hBCDE
h1234
hBCDE
h0000
hBCDE
M000
hBCDE
h00FF
hBCDE
h0000
M002
123
5.4
Operacje Increment/decrement
5.4.1
INC, INCP, DINC, DINCP
INC
FUN(20) INC
FUN(22) DINC
Stosowane
(Increment)
FUN(21) INCP
FUN(23) DINCP
w CPU
Wszystkie CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
O
O
O
F
O*
T
C
O
D
O
S
O
Integ Step
#D er
O
Error
(F110)
D
DINC(P)
3
Carry
(F112)
O
INC(P)
Zero
(F111)
O
O
Nastawa operandu
D
INC
Obiekt który zwiększy swoją
wartość przez instrukcję INC.
D
DINC
D
INCP
DINCP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- INC(P) : Wykonuje dodanie 1 do obiektu (16-bits data) wskazanego w [ D ].
- DINC(P) : Wykonuje dodanie 1 do obiektu (32-bits data) wskazanego w
[ D +1, D].
- Jeżeli INC(P) lub DINC(P) są wykonywane gdy zawartość obiektu jest hFFFF lub hFFFFFFFF, to zawartość
obiektu po wykonaniu jest 0. Jednocześnie flaga zero (F111) i flaga carry (F112) są ustawione.
- Jeżeli obiekt wskazany przez #D jest poza zakresem, to pojawi sie błąd operacji oraz zostanie ustawiony error
flag (F110).
16 bits
D
h38D3
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
+1
D
h38D4
0
0
1
1
1
0
0
0
1
124
-
Warunki wykonywania
Warunek Input
INC, DINC
Wykonywany
przez scan
Wykonywany
przez scan
INCP, DINCP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P030, to zawartość słówa P06 zostanie powiększona o 1.
P030
INCP P006
P006
0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 h00C6
+1
P006
0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 h00C7
125
5.4.2
DEC, DECP, DDEC, DDECP
DEC
FUN(24) DEC
FUN(26) DDEC
Stosowane
(Decrement)
FUN(25) DECP
FUN(27) DDECP
w CPU
Wszystkie CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
O
O
O
F
O*
T
C
O
D
O
S
O
Integ Step
#D er
O
Error
(F110)
D
DDEC(P)
3
Carry
(F112)
O
DEC(P)
Zero
(F111)
O
O
Nastawa operandu
D
DEC
Obiekt który zmniejszy swoją
wartość przez instrukcję DEC.
D
DDEC
D
DECP
DDECP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- DEC(P) : Wykonuje odjęcie 1 od obiektu (16-bits data) wskazanego w [ D ].
- DDEC(P) : Wykonuje odjęcie 1 od obiektu (32-bits data) wskazanego w
[ D +1, D].
- Jeżeli DEC(P) lub DDEC(P) są wykonywane gdy zawartość obiektu jest 0, to zawartość obiektu po wykonaniu
jest hFFFF lub hFFFFFFFF. Jednocześnie flaga carry (F112) zostaje ustawiona.
- Jeżeli obiekt wskazany przez #D jest poza zakresem, to pojawi sie błąd operacji oraz zostanie ustawiony error
flag (F110).
16 bits
D
h38D3
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
–1
D
h38D2
0
0
1
1
1
0
0
0
1
126
-
Warunki wykonywania
Warunek Input
DEC, DDEC
Wykonywany
przez scan
Wykonywany
przez scan
DECP, DDECP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P020, to zawartość słowa M06 zmniejszy się o 1.
P020
DECP M006
M006 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 h00C6
-1
M006 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 h00C5
127
5.5 Instrukcje Rotacji
5.5.1
ROL, ROLP, DROL, DROLP
ROL
FUN(30) ROL
FUN(32) DROL
(Rotuje w lewo)
FUN(31) ROLP
FUN(33) DROLP
Stosowane
Wszystkie CPU
w CPU
Dostępne Obiekty
Flaga
Instrukcje
M
P
K
L
O
O
O
F
O*
T
C
O
O
D
O
S
Integ Step
#D er
O
Error
(F110)
ROL(P)
D
DROL(P)
Zero
(F111)
O
3
O
Nastawa operandu
D
ROL
Obiekt który ma być rotowany w
lewo przez instrukcję ROL.
D
DROL
D
ROLP
DROLP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- ROL(P) : Dokonuje rotacji w lewo 16 bitów obiektu wskazanego w [ D ].
- MSB zostanie przeniesiony do LSB i do flagi carry (F112).
Flaga
Carry
-
F
E
D
C
B
A
9
8
7
6
5
4
3
DROL(P) : Dokonuje rotacji w lewo 32-bitów obiektu wskazanego w [ D+1, D].
MSB [ D+1 ] zostanie przeniesiony do LSB [ D ] i do flagi carry (F112).
Flaga
Carry
D +1
D
16 bits
16 bits
128
2
Carry
(F112)
1
0
-
Warunki wykonywania
Warunek Input
ROL, DROL
Wykonywany
przez scan
Wykonywany
przez scan
ROLP, DROLP
Wykonywany tylko raz
Wykonywany tylko raz
2) Program example
- Zawsze kiedy zbocze narastające pojawi się na P030, 16-bitów słowa D0000 zostanie przesuniętych w lewo.
P030
ROLP D0000
D0000 = h78D3
Flaga
Carry
0
16 bits
0
1
MSB
1
1
1
0
0
0
1
1
0
1
0
0
1
Rotuj w lewo
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
MSB
0
LSB
Rotuj w lewo
Flaga
Carry
1
1
LSB
Flaga
Carry
0
1
1
1
1
0
0
0
1
1
0
MSB
1
0
0
1
1
0
1
LSB
129
5.5.2
ROR, RORP, DROR, DRORP
ROR
FUN(34) ROR
FUN(36) DROR
Stosowane
(Rotuje w prawo)
FUN(35) RORP
FUN(37) DRORP
w CPU
Wszystkie CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
O
O
O
F
O*
T
C
O
O
D
O
S
Integ Step
#D er
O
Error
(F110)
ROR(P)
D
DROR(P)
Zero
(F111)
O
3
O
Nastawa operandu
D
ROR
Obiekt który ma być rotowany w
prawo przez instrukcję ROR.
D
DROR
D
RORP
DRORP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- ROR(P) : Dokonuje rotacji w prawo 16 bitów obiektu wskazanego w [ D ].
- LSB zostanie przeniesiony do MSB i do flagi carry (F112).
F
-
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
Flaga
Carry
DROR(P) : Dokonuje rotacji w prawo 32 bitów obiektu wskazanego w [ D+1, D ].
LSB [ D ] zostanie przeniesiony do MSB [ D+1 ] i do flagi carry (F112).
D +1
D
16 bits
16 bits
130
Carry
(F112)
Flaga
Carry
-
Warunki wykonywania
Warunek Input
ROR, DROR
Wykonywany
przez scan
Wykonywany
przez scan
RORP, DRORP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P030, 16-bitów słowa D0000 zostanie przesuniętych w prawo.
P030
RORP D0000
D0000 = h78D2
Flaga
Carry
16 bits
0
1
MSB
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
LSB
Rotuj w prawo
0
0
1
1
1
1
0
Flaga
Carry
0
0
1
1
0
1
0
0
MSB
1
0
LSB
Rotuj w prawo
1
0
0
0
1
1
1
1
Flaga
Carry
0
0
0
1
MSB
1
0
1
0
0
LSB
131
1
5.5.3
RCL, RCLP, DRCL, DRCLP
ROL
FUN(40) RCL
(Rotuj w lewo
łącznie z flagą)
FUN(42) DRCL
FUN(41) RCLP
FUN(43) DRCLP
Stosowane
Wszystkie CPU
w CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
O
O
O
F
O*
T
C
O
O
D
O
S
Integ Step
#D er
O
Error
(F110)
RCL(P)
D
DRCL(P)
Zero
(F111)
Carry
(F112)
O
3
O
Nastawa operandu
Obiekt który ma być rotowany
D
w lewo przez instrukcję RCL.
D
RCL
DRCL
D
RCLP
DRCLP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- RCL(P) : Dokonuje rotacji w lewo 16 bitów obiektu wskazanego w [ D ] oraz flagi carry (F112) .
- MSB zostanie przeniesiony do flagi carry (F112), a flaga carry do LSB.
Flaga
Carry
-
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
DRCL(P) : Dokonuje rotacji w lewo 32 bitów obiektu wskazanego w [ D+1, D ] oraz flagi carry (F112) .
MSB [ D+1 ] zostanie przeniesiony do flagi carry (F112), a flaga carry do
LSB [ D ].
Flaga
Carry
D +1
D
16 bits
16 bits
132
-
Warunki wykonywania
Warunek Input
RCL, DRCL
Wykonywany
przez scan
Wykonywany
przez scan
RCLP, DRCLP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P030, 16-bitów słowa D0000 i flaga carry zostanie przesuniętych
w lewo.
P030
RCLP D0000
D0000 = h78D3
Flaga
Carry
0
16 bits
0
1
MSB
1
1
1
0
0
0
1
1
0
1
0
0
1
Rotuj w lewo
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
MSB
0
LSB
Rotuj w lewo
Flaga
Carry
1
1
LSB
Flaga
Carry
0
1
1
1
1
0
0
0
1
1
0
MSB
1
0
0
1
1
0
0
LSB
133
5.5.4
RCR, RCRP, DRCR, DRCRP
RCR
FUN(44) RCR
FUN(45) RCRP
(Rotuj w prawo
łącznie z flagą)
FUN(46) DRCR
FUN(47) DRCRP
Stosowane
Wszystkie CPU
w CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
O
O
O
F
O*
T
C
O
O
D
O
S
Integ Step
#D er
O
Error
(F110)
RCR(P)
D
DRCR(P)
Zero
(F111)
O
3
Carry
(F112)
O
Nastawa operandu
D
RCR
Obiekt który ma być rotowany w
prawo przez instrukcję RCR.
D
DRCR
D
RCRP
DRCRP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- RCR(P) : Dokonuje rotacji w prawo 16 bitów obiektu wskazanego w [ D ] oraz flagi carry (F112) .
- LSB zostanie przeniesiony do flagi carry (F112), a flaga carry do MSB.
F
-
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
Flaga
Carry
DRCR(P) : Dokonuje rotacji w prawo 32 bitów obiektu wskazanego w [ D+1, D ] oraz flagi carry (F112) .
LSB [ D ] zostanie przeniesiony do flagi carry (F112), a flaga carry do
MSB [ D+1 ].
D +1
16 bits
D
16 bits
134
Flaga
Carry
-
Warunki wykonywania
Warunek Input
RCR, DRCR
Wykonywany
przez scan
Wykonywany
przez scan
RCRP, DRCRP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P030, 16-bitów słowa D0000 i flaga carry zostanie przesuniętych
w prawo.
P030
RCRP D0000
D0000 = h78D2
Flaga
Carry
16 bits
0
1
MSB
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
LSB
Rotuj w prawo
0
0
1
1
1
1
0
Flaga
Carry
0
0
1
1
0
1
0
0
MSB
1
0
LSB
Rotuj w prawo
0
0
0
0
1
1
1
1
Flaga
Carry
0
0
0
1
MSB
1
0
1
0
0
LSB
135
1
5.6
Instrukcje Shift
5.6.1
BSFT, BSFTP
BSFT
FUN(74) BSFT
(Bit shift)
FUN(75) BSFTP
Wszystkie CPU
w CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
S1
O
O
O
O
O
O
O*
S1
F
T
C
S
Integ Step
#D er
O*
S2
BSFT(P)
Stosowane
D
Zero
(F111)
Carry
(F112)
O
5
Nastawa operandu
S2
Początkowy bit bloku do
przesunięcia
Końcowy bit bloku do
przesunięcia
S1
BSFT
S1
Error
(F110)
S2
S2
BSFTP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Przesuń blok wskazany jako [ S1 ] ~ [ S2 ] o 1 bit .
- Kierunek przesunięcia jest od [ S1 ] do [ S2 ]. Jednakże, jeżeli [ S1 ] jest niższy niż [ S2 ], to blok zostanie
przesunięty w lewo. W przeciwnym przypadku blok jest przesuwany w prawo.
[ S2 ]
Gdy [ S1 ] jest
niższy niż [ S2 ]
0
0
1
1
1
1
0
0
n bits
0 1
[ S1 ]
1
0
1
0
0
1
0
Tracony
0
Wchodzi 0
0
1 1
1
[ S2 ]
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
[ S1 ]
[ S1 ]
Gdy [ S1 ] jest
wyższy niż [ S2 ]
0
1
0
0
n bits
0 1
[ S2 ]
1
0
1
0
0
1
0
Tracony
Wchodzi 0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
[ S2 ]
[ S1 ]
136
0
-
Warunki wykonywania
Warunek Input
BSFT
Wykonywany
przez scan
Wykonywany
przez scan
BSFTP
Wykonywany tylko raz
Wykonywany tylko raz
3) Przykład programu
- Co sekundę, przesuwany jest w lewo blok z P040 do P045 o 1 bit. Jednosekundowy zegar flagi (F093) jest
używany jako warunek input. P040 jest ustawione na 1 gdy P031 jest ON.
F093
BSFT P040 P045
P031
P046
0
0
Tracony
0
0
SET P040
P045 P044 P043 P042 P041 P040 P03F
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
Wchodzi 0 gdy P031 jest
OFF; wchodzi 1 gdy P031
jest ON
137
5.6.2
WSFT, WSFTP
WSFT
FUN(70) WSFT
(Word shift)
FUN(71) WSFTP
w CPU
Wszystkie CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
S1
O
O
O
S2
WSFT(P)
Stosowane
O
O
O
D
O
O
O
O
O
O
T
C
O*
O
O*
O
S1
F
Integ Step
#D er
S
Zero
(F111)
Carry
(F112)
O
Nastawa operandu
S2
S1
S2
Początkowe słowo bloku do
przesunięcia
S2
WSFT
S1
5
Error
(F110)
Końcowe słowo bloku do
przesunięcia
WSFTP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Przesuń blok wskazany jako [ S1 ] ~ [ S2 ] o 1 słowo.
- Kierunek przesunięcia jest od [ S1 ] do [ S2 ]. Jednakże, jeżeli [ S1 ] jest niższy niż [ S2 ], to blok zostanie
przesunięty w lewo. W przeciwnym przypadku blok jest przesuwany w prawo.
[ S2+1 ]
[ S2 ]
n words
[ S1 ]
[ S1-1 ]
Gdy [ S1 ] jest
niższy niż [ S2 ]
Tracone
Wchodzi h0000
[ S1 ]
[ S2+1 ] [ S2 ]
Gdy [ S1 ] jest
wyższy niż [ S2 ]
[ S1+1 ]
[ S1 ]
n words
[ S1-1 ]
[ S2 ]
[ S2-1 ]
Tracone
Wchodzi h0000
[ S1+1 ]
[ S2 ]
[ S1 ]
138
[ S2-1 ]
-
Warunki wykonywania
Warunek Input
WSFT
Wykonywany
przez scan
Wykonywany
przez scan
WSFTP
Wykonywany tylko raz
Wykonywany tylko raz
4) Przykład programu
- Co sekundę, przesuwany jest w lewo blok z D0040 do D0043 o 1 słowo. Jednosekundowy zegar flagi (F093) jest
używany jako warunek input. D0040 jest ustawione na h1234 gdy P031 jest ON.
F093
WSFT D0040 D0043
P031
MOV h1234 D0040
D0044
D0043
D0042
D0041
D0040
D0039
h4F29
h5849
hF0B4
h7802
hA006
h9201
Tracone
h4F29
hF0B4
h7802
hA006
h9201
139
Wchodzi h0000 gdy P031
jest OFF; wchodzi h1234
gdy P031 jest ON.
5.7
Instrukcje Exchange
5.7.1
XCHG, XCHGP, DXCHG, DXCHGP
FUN(102) XCHG
FUN(104)
XCHG
DXCHG
(Word exchange)
FUN(103) XCHGP
Stosowane
w CPU
FUN(105)
Wszystkie CPU
DXCHGP
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
F
T
C
D
S
Integ Step
#D er
XCHG(P)
D1
O
O
O
O*
O
O
O
O
DXCHG(P)
D2
O
O
O
O*
O
O
O
O
D1
Zero
(F111)
Carry
(F112)
O
Nastawa operandu
D2
XCHG
D1
DXCHG
D2
D1
5
Error
(F110)
Dwa słowa których
zawartość ma być
zamieniona.
D2
XCHGP
DXCHG
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- XCHG(P) : Zamienia 16 bitową zawartość obiektów wskazanych w [ D1 ] i [ D2 ].
D1+1
D2+1
D2
h5849
hF0B4
hA006
h9201
h5849
h9201
hA006
hF0B4
D1+1
-
D1
D1
D2+1
D2
DXCHG(P) : Zamienia 32 bitową zawartość dwóch obiektów wskazanych jako
D1+1
D1
D2+1
D2
h5849
hF0B4
hA006
h9201
hA006
h9201
h5849
hF0B4
D1+1
D1
D2+1
D2
140
[ D1+1, D1 ] i [ D2+1, D2 ].
-
Warunki wykonywania
Warunek Input
XCHG, DXCHG
Wykonywany
przez scan
Wykonywany
przez scan
XCHGP, DXCHGP
Wykonywany tylko raz
5) Przykład programu
- Gdy P020 jest ON, wymień zawartość słów P04 i P05.
P020
XCHGP P04 P05
P05
P04
h5849
hF0B4
hF0B4
h5849
P05
P04
141
Wykonywany tylko raz
5.8 Instrukcje BIN arithmetic
5.8.1
ADD, ADDP, DADD, DADDP
FUN(110) ADD
ADD
FUN(112) DADD
Stosowane
(Binary addition)
FUN(111) ADDP
FUN(113)
w CPU
Wszystkie CPU
DADDP
Dostępne Obiekty
Flaga
Instrukcje
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
DADD(P)
K
L
F
T
C
S
O
O
O
O
O
O
S
O
O
O
O
O
D
ADD(P)
P
O
O
O
O*
S
S
S
7/9/11
Error
(F110)
Zero
(F111)
Carry
(F112)
O
O
O
Nastawa operandu
D
S
Obiekt zapamiętujący
pierwszy składnik
S
ADD
Obiekt zapamiętujący drugi
składnik
DADD
S
S
D
D
ADDP
DADDP
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- ADD(P) : Wykonuje dodawanie binarne 16-bitowych danych wskazanych w
[ S1 ] i [ S2 ]. Wynik
dodawania jest zapamiętywany w obiekcie wskazanym
w [ D ].
- DADD(P) : Wykonuje dodawanie binarne 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1, S2 ].
Wynik dodawania jest zapamiętywany w obiekcie wskazanym w [ D1+1, D1 ].
- Gdy wynik dodawania przekroczy hFFFF(ADD / ADDP) lub hFFFFFFFF(DADD / DADDP), to ustawi się flaga
carry (F112).
- Gdy wynik dodawania jest 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
142
-
Warunki wykonywania
Warunek Input
ADD, DADD
Wykonywany
przez scan
Wykonywany
przez scan
ADDP, DADDP
Wykonywany tylko raz
Wykonywany tylko raz
6) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P020, dodaj zawartość D0000 i D0001 i zapamiętaj wynik
dodawania w słowie P06.
P020
ADDP D0000 D0001 P06
16 bits
D0000
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1 h38D3
+
D0001
P06
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0 h120C
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1 h4ADF
143
5.8.2
SUB, SUBP, DSUB, DSUBP
FUN(114) SUB
SUB
FUN(116) DSUB
Stosowane
FUN(115) SUBP
(Binary subtraction)
FUN(117)
Flaga
Dostępne Obiekty
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
DSUB(P)
Wszystkie CPU
DSUBP
Instrukcje
SUB(P)
w CPU
O
O
O
O*
S1
S
Zero
(F111)
Carry
(F112)
O
O
O
Nastawa operandu
S2
S1
DSUB
S2
Obiekt zapamiętujący odjemną
S2
SUB
S1
7/9/11
Error
(F110)
Obiekt zapamiętujący
odjemnik
D
SUBP
DSUBP
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- SUB(P) : Wykonuje odejmowanie binarne 16-bitowych danych wskazanych w
[ S1 ] i [ S2 ]. Wynik
odejmowania jest zapamiętywany w obiekcie wskazanym
w [ D ].
- DSUB(P) : Wykonuje odejmowanie binarne 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1, S2
]. Wynik odejmowania jest zapamiętywany w obiekcie wskazanym w [ D1+1, D1 ].
- Gdy odjemna jest mniejsza od odjemnika, to LSB będzie niedopełniony i ustawi się flaga carry (F112).
- Gdy wynik odejmowania jest 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
144
-
Warunki wykonywania
Warunek Input
SUB, DSUB
Wykonywany
przez scan
Wykonywany
przez scan
SUBP, DSUBP
Wykonywany tylko raz
Wykonywany tylko raz
7) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P020, odejmij zawartość D0001 od zawartości D0000 i
zapamiętaj wynik odejmowania w słowie P06.
P020
SUBP D0000 D0001 P06
16 bits
D0000
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1 h38D3
D0001
P06
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0 h120C
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1 h26C7
145
5.8.3
MUL, MULP, DMUL, DMULP
FUN(120) MUL
MUL
FUN(122) DMUL
Stosowane
FUN(121) MULP
(Binary multiply)
FUN(123)
Flaga
Dostępne Obiekty
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
DMUL(P)
Wszystkie CPU
DMULP
Instrukcje
MUL(P)
w CPU
O
O
O
O*
S1
S
Zero
(F111)
O
Carry
(F112)
O
Nastawa operandu
S2
MUL
S1
DMUL
S2
S1
7/9/11
Error
(F110)
S2
D
MULP
DMULP
Obiekt zapamiętujący mnożną
Obiekt zapamiętujący mnożnik
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- MUL(P) : Wykonuje mnożenie binarne danych wskazanych jako [ S1 ] i [ S2 ]. Wynik mnożenia jest
zapamiętywany w obiekcie wskazanym jako [ D+1, D ].
- DMUL(P) : Wykonuje mnożenie binarne danych wskazanych jako [ S1+1, S1 ] i [ S2+1, S2 ]. Wynik mnożenia
jest zapamiętywany w obiekcie wskazanym jako [ D+3, D+2, D+1, D ]
- Gdy wynik mnożenia jest 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
- Warunki wykonywania
Warunek Input
MUL, DMUL
Wykonywany
przez scan
Wykonywany
przez scan
MULP, DMULP
Wykonywany tylko raz
146
Wykonywany tylko raz
2) Przykład programu
- Program zapamiętuje wynik mnożenia D0001 i D0002 w D0010, D0011 gdy P020 jest ON.
P020
MUL D0001 D0002 D0010
D0001
h1234
-
D0002
×
D0011
h5678
h6260
=
D0010
h0060
Program zapamiętuje wynik mnożenia D0001, D0002 i D0003,D0004 w D0010 ~ D0013 gdy P020 jest ON.
P020
DMULP D0001 D0003 D0010
D0001
h1234
D0002
h5678
=
D0013
h04C6
×
D0003
h4321
D0012
h1501
D0004
h8765
D0011
h55B7
147
D0010
h6558
5.8.4
DIV, DIVP, DDIV, DDIVP
FUN(124) DIV
DIV
FUN(126) DDIV
Stosowane
FUN(125) DIVP
(Binary divide)
FUN(127)
Flaga
Dostępne Obiekty
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
DDIV(P)
Wszystkie CPU
DDIVP
Instrukcje
DIV(P)
w CPU
O
O
O
O*
S1
S
Zero
(F111)
O
Carry
(F112)
O
Nastawa operandu
S2
DIV
S1
DDIV
S1
7/9/11
Error
(F110)
S2
S2
DIVP
DDIVP
D
Obiekt zapamiętujący dzielną
Obiekt zapamiętujący dzielnik
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- DIV(P) : Wykonuje dzielenie binarne danych wskazanych jako [ S1 ] i [ S2 ]. Wynik dzielenia jest
zapamiętywany w obiekcie wskazanym jako [ D+1, D ]. Iloraz zapamiętywany jest w [ D ], a reszta w [ D+1 ].
- DDIV(P) : Wykonuje dzielenie binarne danych wskazanych jako [ S1+1, S1 ]
i [ S2+1, S2 ]. Wynik
dzielenia jest zapamiętywany w obiekcie wskazanym jako [ D+3, D+2, D+1, D ]. Iloraz zapamiętywany jest w
[ D+1,D ], a reszta
w [ D+3, D+2 ].
- Gdy iloraz 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu lub zawartość dzielnika jest 0, to powstanie
błąd operacji i ustawi się error flag (F110).
- Warunki wykonywania
Warunek Input
DIV, DDIV
Wykonywany
przez scan
Wykonywany
przez scan
DIVP, DDIVP
Wykonywany tylko raz
148
Wykonywany tylko raz
2) Przykład programu
- Program zapamiętuje wynik dzielenia D0001 i D0002 w D0010, D0011 gdy P020 jest ON.
P020
DIV D0001 D0002 D0010
D0001
h78AB
D0002
:
D0011
h0678
D0010
h002D
h017D
=
Reszta
-
Iloraz
Program zapamiętuje wynik dzielenia D0001, D0002 i D0003,D0004 w D0010 ~ D0013 gdy P020 jest ON.
P020
DDIVP D0001 D0003 D0010
D0001
hF904
D0002
h5678
=
:
D0013
h0009
D0003
h0021
D0012
hED77
D0004
h8765
D0011
h0000
D0010
h076D
Iloraz
Reszta
149
5.9 Instrukcje BCD arithmetic
5.9.1
ADDB, ADDBP, DADDB, DADDBP
FUN(130) ADDB
FUN(132)
ADDB
DADDB
(BCD addition)
FUN(131) ADDBP
Stosowane
w CPU
FUN(133)
Wszystkie CPU
DADDBP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
DADDB(P)
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
ADDB(P)
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O*
S1
S
7/9/11
Error
(F110)
Zero
(F111)
Carry
(F112)
O
O
O
Nastawa operandu
S2
S1
DADDB
S1
Obiekt zapamiętujący
pierwszy składnik
S2
ADDB
Obiekt zapamiętujący drugi
składnik
S2
DADDB
DADDB
D
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- ADDB(P) : Wykonuje dodawanie BCD 16-bitowych danych wskazanych w
[ S1 ] i [ S2 ]. Wynik
dodawania jest zapamiętywany w obiekcie wskazanym
w [ D ].
- DADD(P) : Wykonuje dodawanie BCD 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1, S2 ].
Wynik dodawania jest zapamiętywany w obiekcie wskazanym w [ D1+1, D1 ].
- Gdy wynik dodawania przekroczy h9999(ADD / ADDP) lub h99999999(DADD / DADDP), to ustawi się flaga
carry (F112).
- Gdy wynik dodawania jest 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu lub zawartość [ S1 ] i [ S2 ] nie jest w
kodzie BCD (poza 0 ~ 9), to powstanie błąd operacji i ustawi się error flag (F110).
150
-
Warunki wykonywania
Warunek Input
ADDB, DADDB
Wykonywany
przez scan
Wykonywany
przez scan
ADDBP, DADDBP
Wykonywany tylko raz
Wykonywany tylko raz
8) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P020, dodaj zawartość BCD data D0000 i D0001 i zapamiętaj
wynik dodawania w słowie P06.
P020
ADDBP D0000 D0001 P06
16 bits
D0000
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1 h3893
+
D0001
P06
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0 h1204
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1 h5097
151
5.9.2
SUBB, SUBBP, DSUBB, DSUBBP
FUN(134) SUBB
FUN(136)
SUBB
DSUBB
(BCD subtraction)
FUN(135) SUBBP
Stosowane
w CPU
FUN(137)
Wszystkie CPU
DSUBBP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
DSUBB(P)
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
SUBB(P)
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O*
S1
S2
S
S1
DSUBB
S2
S2
Zero
(F111)
Carry
(F112)
O
O
O
Nastawa operandu
D
SUBB
S1
7/9/11
Error
(F110)
D
D
SUBBP
DSUBBP
Obiekt zapamiętujący odjemną
Obiekt zapamiętujący
odjemnik
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- SUBB(P) : Wykonuje odejmowanie BCD 16-bitowych danych wskazanych w
[ S1 ] i [ S2 ]. Wynik
odejmowania jest zapamiętywany w obiekcie wskazanym
w [ D ].
- DSUBB(P) : Wykonuje odejmowanie BCD 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1, S2 ].
Wynik odejmowania jest zapamiętywany w obiekcie wskazanym w [ D1+1, D1 ].
- Gdy odjemna jest mniejsza od odjemnika, to LSB będzie niedopełniony i ustawi się flaga carry (F112).
- Gdy wynik odejmowania jest 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu lub zawartość [ S1 ] i [ S2 ] nie jest w
kodzie BCD (poza 0 ~ 9), to powstanie błąd operacji i ustawi się error flag (F110).
152
-
Warunki wykonywania
Warunek Input
SUBB, DSUBB
Wykonywany
przez scan
Wykonywany
przez scan
SUBBP, DSUBBP
Wykonywany tylko raz
Wykonywany tylko raz
9) Przykład programu
- Zawsze kiedy zbocze narastające pojawi się na P020, odejmij zawartość D0001 od zawartości D0000 i
zapamiętaj wynik odejmowania w słowie P06.
P020
SUBB D0000 D0001 P06
16 bits
D0000
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1 h3803
D0001
P06
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0 h1209
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1 h2594
153
5.9.3
MULB, MULBP, DMULB, DMULBP
FUN(140) MULB
FUN(142)
MULB
DMULB
(BCD multiply)
FUN(141) MULBP
Stosowane
w CPU
FUN(143)
Wszystkie CPU
DMULBP
Dostępne Obiekty
Flaga
Instrukcje
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
DMULB(P)
K
L
F
T
C
S
O
O
O
O
O
O
S
O
O
O
O
O
D
MULB(P)
P
O
O
O
O*
S
S
S
S
DMULB
S
Zero
(F111)
O
Carry
(F112)
O
Nastawa operandu
D
MULB
S
7/9/11
Error
(F110)
S
D
D
MULBP
DMULB
Obiekt zapamiętujący mnożną
Obiekt zapamiętujący mnożnik
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- MULB(P) : Wykonuje mnożenie BCD danych wskazanych jako [ S1 ] i [ S2 ]. Wynik mnożenia jest
zapamiętywany w obiekcie wskazanym jako [ D+1, D ].
- DMULB(P) : Wykonuje mnożenie BCD danych wskazanych jako [ S1+1, S1 ]
i [ S2+1, S2 ]. Wynik
mnożenia jest zapamiętywany w obiekcie wskazanym jako [ D+3, D+2, D+1, D ]
- Gdy wynik mnożenia jest 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
- Warunki wykonywania
Warunek Input
MULB, DMULB
Wykonywany
przez scan
Wykonywany
przez scan
MULBP, DMULBP
Wykonywany tylko raz
154
Wykonywany tylko raz
3) Przykład programu
- Program zapamiętuje wynik mnożenia D0001 i D0002 w D0010, D0011 gdy P020 jest ON.
P020
MULB D0001 D0002 D0010
D0001
h1234
-
×
D0002
h5678
D0011
h0700
=
D0010
h6652
Program zapamiętuje wynik mnożenia D0001, D0002 i D0003,D0004 w D0010 ~ D0013 gdy P020 jest ON.
P020
DMULBP D0001 D0003 D0010
D0001
h1234
D0002
h5678
=
D0013
h0533
×
D0003
h4321
D0012
h5649
D0004
h8765
D0011
h5624
155
D0010
h7670
5.9.4
DIVB, DIVBP, DDIVB, DDIVBP
FUN(144) DIVB
FUN(146)
DIVB
DDIVB
(BCD divide)
FUN(145) DIVBP
Stosowane
w CPU
FUN(147)
Wszystkie CPU
DDIVBP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
DDIVB(P)
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
DIVB(P)
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O*
S1
S2
S
S1
DDIVB
S2
DIVBP
DDIVBP
Zero
(F111)
O
Carry
(F112)
O
Nastawa operandu
D
DIVB
S1
7/9/11
Error
(F110)
S2
D
D
Obiekt zapamiętujący dzielną
Obiekt zapamiętujący dzielnik
Obiekt zapamiętujący wynik
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- DIVB(P) : Wykonuje dzielenie BCD danych wskazanych jako [ S1 ] i [ S2 ]. Wynik dzielenia jest
zapamiętywany w obiekcie wskazanym jako [ D+1, D ]. Iloraz zapamiętywany jest w [ D ], a reszta w [ D+1 ].
- DDIVB(P) : Wykonuje dzielenie BCD danych wskazanych jako [ S1+1, S1 ]
i [ S2+1, S2 ]. Wynik
dzielenia jest zapamiętywany w obiekcie wskazanym jako [ D+3, D+2, D+1, D ]. Iloraz zapamiętywany jest w
[ D+1,D ], a reszta
w [ D+3, D+2 ].
- Gdy iloraz 0, to ustawi się flaga zero.
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu lub zawartość dzielnika jest 0 lub zawartość
[ S1 ] i [ S2 ] nie jest w kodzie BCD (poza 0 ~ 9), to powstanie błąd operacji i ustawi się error flag (F110).
156
-
Warunki wykonywania
Warunek Input
DIVB, DDIVB
Wykonywany
przez scan
Wykonywany
przez scan
DIVBP, DDIVBP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Program zapamiętuje wynik dzielenia D0001 i D0002 w D0010, D0011 gdy P020 jest ON.
P020
DIVB D0001 D0002 D0010
D0001
h7806
:
D0002
h0078
D0011
h0006
=
D0010
h0100
Reszta
-
Iloraz
Program zapamiętuje wynik dzielenia D0001, D0002 i D0003,D0004 w D0010 ~ D0013 gdy P020 jest ON.
P020
DDIVBP D0001 D0003 D0010
D0001
h3904
D0002
h5678
=
:
D0013
h0000
D0003
h0001
D0012
h1023
D0004
h0765
D0011
h0000
D0010
h3627
Iloraz
Reszta
157
5.10 Instrukcje Logical arithmetic
5.10.1 WAND, WANDP, DWAND, DWANDP
FUN(150) WAND
FUN(152)
WAND
DWAND
(Word AND)
FUN(151) WANDP
Stosowane
Wszystkie CPU
w CPU
FUN(153)
DWANDP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
WAND(P)
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O*
DWAND(P)
S1
S2
S
O
O
7/9/11
Carry
(F112)
Dane na których będą
wykonywane funkcje
logiczne
S1
DWAND
S2
S2
Zero
(F111)
Nastawa operandu
D
WAND
S1
Error
(F110)
Obiekt w którym jest
zapamiętywany wynik
operacji logjcznej
D
D
WANDP
DWAND
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- WAND(P) : Wykonuje operację logiczną na 16-bitowych danych wskazanych w
operacji jest zapamiętywany w obiekcie wskazanym w [ D ]
[ S1 ] i [ S2 ]. Wynik
16 bits
S1
S2
D
-
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
h3AD3
0
0
1
0
0
0
1
AND
0 0
1
0
0
1
1
0
1
h224D
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
h2241
0
DWAND(P) : Wykonuje operację logiczną na 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1,
S2 ]. Wynik operacji jest zapamiętywany w obiekcie wskazanym w [ D+1, D ].
Gdy wynik mnożenia jest 0, to ustawi się flaga zero (F111).
Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
158
-
Warunki wykonywania
Warunek Input
WAND, DWAND
Wykonywany
przez scan
Wykonywany
przez scan
WANDP, DWANDP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Program wykonuje iloczyn logiczny na słowach P04 i P05 oraz zapamiętuje wynik w słowie P06, gdy P020 jest
ON.
P020
WANDP P04 P05 P06
16 bits
P04
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
h3AD3
P05
0
0
1
0
0
0
1
AND
0 0
1
0
0
1
1
0
1
h224D
P06
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
h2241
0
159
5.10.2 WOR, WORP, DWOR, DWORP
FUN(154) WOR
WOR
FUN(156) DWOR
Stosowane
FUN(155) WORP
(Word OR)
FUN(157)
DWORP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
DWOR(P)
Flaga
Dostępne Obiekty
Instrukcje
WOR(P)
Wszystkie CPU
w CPU
O
O
O
O*
S1
S2
S
O
O
7/9/11
Carry
(F112)
DWOR
Dane na których będą
wykonywane funkcje
logiczne
S1
S2
S2
Zero
(F111)
Nastawa operandu
D
WOR
S1
Error
(F110)
D
Obiekt w którym jest
zapamiętywany wynik
operacji logjcznej
D
WORP
DWORP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- WOR(P) : Wykonuje logiczną sumę na 16-bitowych danych wskazanych w
jest zapamiętywany w obiekcie wskazanym w [ D ]
[ S1 ] i [ S2 ]. Wynik operacji
16 bits
S1
S2
D
-
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
WOR
0 0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
h3AD3
h224D
h3ADF
DWOR(P) : Wykonuje sumę logiczną na 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1, S2 ].
Wynik operacji jest zapamiętywany w obiekcie wskazanym w [ D+1, D ].
Gdy wynik mnożenia jest 0, to ustawi się flaga zero (F111).
Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
160
-
Warunki wykonywania
Warunek Input
WOR, DWOR
Wykonywany
przez scan
Wykonywany
przez scan
WORP, DWORP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Program wykonuje sumę logiczną na słowach P04 i P05 oraz zapamiętuje wynik w słowie P06, gdy P020 jest
ON.
P020
WORP P04 P05 P06
16 bits
P04
P05
P06
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
h3AD3
0
0
1
0
0
0
1
WOR
0 0
1
0
0
1
1
0
1
h224D
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
h3ADF
1
161
5.10.3 WXOR, WXORP, DWXOR, DWXORP
FUN(160) WXOR
WXOR
FUN(162)
DWXOR
Stosowane
(Word exclusive OR) FUN(161) WXORP
Wszystkie CPU
w CPU
FUN(163)
DWXORP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
K
L
F
T
C
O
O
O
O
O
O
S2
O
O
O
O
O
D
DWXOR(P)
P
S1
WXOR(P)
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O*
S1
S2
S
O
O
7/9/11
Carry
(F112)
Dane na których będą
wykonywane funkcje
logiczne
S1
DWXOR
S2
S2
Zero
(F111)
Nastawa operandu
D
WXOR
S1
Error
(F110)
D
Obiekt w którym jest
zapamiętywany wynik
operacji logjcznej
D
WXORP
DWXORP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- WXOR(P) : Wykonuje exclusive OR na 16-bitowych danych wskazanych w
operacji jest zapamiętywany w obiekcie wskazanym w [ D ]
[ S1 ] i [ S2 ]. Wynik
16 bits
S1
S2
D
-
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
h3AD3
WXOR
0 0
1
0
0
1
1
0
1
h224D
0
0
1
1
1
1
0
h589E
0
1
DWXOR(P) : Wykonuje exclusive OR na 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1, S2 ].
Wynik operacji jest zapamiętywany w obiekcie wskazanym w [ D+1, D ].
Gdy wynik mnożenia jest 0, to ustawi się flaga zero (F111).
Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
162
-
Warunki wykonywania
Warunek Input
WXOR, DWXOR
Wykonywany
przez scan
Wykonywany
przez scan
WXORP, DWXORP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Program wykonuje exclusive OR na słowach P04 i h2345 oraz zapamiętuje wynik w słowie P06, gdy P020 jest
ON.
P020
WXORP P04 h2345 P06
16 bits
P04
0
0
1
1
1
1
0
1
h2345
0
0
1
0
0
0
1
P06
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
h3AD3
WXOR
1 0
1
0
0
0
1
0
1
h2345
0
0
1
0
1
1
0
h1996
1
1
163
5.10.4 WXNR, WXNRP, DWXNR, DWXNRP
FUN(164) WXNR
WXOR
FUN(166)
DWXNR
(Word exclusive
Stosowane
FUN(165) WXNRP
NOR)
Wszystkie CPU
w CPU
FUN(167)
DWXNRP
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
O
O
O
O
O
O
S2
O
O
O
O
O
D
WXNR(P)
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O*
DWXNR(P)
S1
S2
S
O
O
7/9/11
Carry
(F112)
Dane na których będą
wykonywane funkcje
logiczne
S1
DWXNR
S2
S2
Zero
(F111)
Nastawa operandu
D
WXNR
S1
Error
(F110)
Obiekt w którym jest
zapamiętywany wynik
operacji logjcznej
D
D
WXNRP
DWXNRP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- WXNR(P) : Wykonuje exclusive NOR na 16-bitowych danych wskazanych w
operacji jest zapamiętywany w obiekcie wskazanym w [ D ]
[ S1 ] i [ S2 ]. Wynik
16 bits
S1
S2
D
-
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
WXNR
0 0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
h3AD3
h224D
hA761
DWXNR(P) : Wykonuje exclusive NOR na 32-bitowych danych wskazanych w
[ S1+1, S1 ] i [ S2+1, S2
]. Wynik operacji jest zapamiętywany w obiekcie wskazanym w [ D+1, D ].
Gdy wynik exclusive NOR jest 0, to ustawi się flaga zero (F111).
Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
164
-
Warunki wykonywania
Warunek Input
WXNR, DWXNR
Wykonywany
przez scan
Wykonywany
przez scan
WXNRP, DWXNRP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Program wykonuje exclusive NOR na słowach P04 i h2345 oraz zapamiętuje wynik w słowie P06, gdy P020 jest
ON.
P020
WXNRP P04 h2345 P06
16 bits
P04
0
0
1
1
1
1
0
1
h2345
0
0
1
0
0
0
1
P06
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
h3AD3
WXNR
1 0
1
0
0
0
1
0
1
h2345
1
1
0
1
0
0
1
hE669
0
0
165
5.11 Instrukcje Data processing
5.11.1 SEG, SEGP
SEG
FUN(174) SEG
(7 segment)
FUN(175) SEGP
Stosowane
w CPU
D
Integ Step
#D er
O
O
O
O
O
O
M
P
K
L
F
T
C
S
O
O
O
O
O
O
D
SEGP
Flaga
Dostępne Obiekty
Instrukcje
SEG
Wszystkie CPU
O
O
O
O*
O
S
Cw
7
Error
(F110)
Zero
(F111)
Carry
(F112)
O
O
S
Nastawa operandu
D Cw
S
S
Obiekt w którym zapamiętywane są dane źródłowe
D
SEG
Obiekt w którym zapamiętywane są dane 7 segmentowe
D Cw
Cw
SEGP
Informacje o bicie startu i
ilości bitów
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Format ‘Cw’
h
a)
b)
c)
d)
-
s
d
x
z
s : Bit startu w [ S ].
d : Bit startu w [ D ]
x : Nieistotne
z : Liczba dekodowanych elementów. (zakres : 0 ~ F)
Dekoduje dane z4 bitowe bloki poczynając od bitu s obiektu wskazanego w [ S ] do danych display’a 7
segmentowego i zapamiętuje wynik w z8 bitowych blokach rozpoczynających się od bitu s obiektu [ D ].
166
-
Warunki wykonywania
Warunek Input
SEG
Wykonywany
przez scan
Wykonywany
przez scan
SEGP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Gdy P030 jest ON, program dekoduje 8-bitów poczynając od bitu 2 słowa D0000 do formatu 7 segmentowego
display’a i zapamiętuje 16-bitowy wynik w słowie P06 poczynając od bitu3.
P030
SEGP D0000 P06 h2302
F
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
P04
E
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
hB
2
0
1
1
0
1
Start od bitu 2
słowa D0000
h4
h66
h7C
3
h3AD3
F
1
E
1
D
1
C
0
B
0
A
0
9
1
P07
8
1
7
0
P06
167
6
0
5
1
4
1
3
0
2
1
0
Start od bitu 3 słowa
P06 (P063)
3) Dane wyświetlacza 7 segmentowego
S
Hex
Binary
0
Konfiguracja
7
segmentowa
D
Display
b7
b6
b5
b4
b3
b2
b1
b0
0000
0
0
1
1
1
1
1
1
0
1
0001
0
0
0
0
0
1
1
0
1
2
0010
0
1
0
1
1
0
1
1
2
3
0011
0
1
0
0
1
1
1
1
3
4
0100
0
1
1
0
0
1
1
0
4
5
0101
0
1
1
0
1
1
0
1
5
6
0110
0
1
1
1
1
1
0
1
6
7
0111
0
0
1
0
0
1
1
1
7
0
1
1
1
1
1
1
1
8
b0
b5
b1
b6
b4
b2
b3
8
1000
9
1001
0
1
1
0
1
1
1
1
9
A
1010
0
1
1
1
0
1
1
1
A
B
1011
0
1
1
1
1
1
0
0
B
C
1100
0
0
1
1
1
0
0
1
C
D
1101
0
1
0
1
1
1
1
0
D
E
1110
0
1
1
1
1
0
0
1
E
F
1111
0
1
1
1
0
0
0
1
F
168
5.11.2 ASC, ASCP
ASC
FUN(190) ASC
(ASCII code)
FUN(191) ASCP
Stosowane
w CPU
Dostępne Obiekty
Instrukcje
D
Integ
#D er
O
O
O
O
O
P
K
L
F
T
C
S
O
O
O
O
O
O
D
ASCP
Flaga
O
M
ASC
Step
Wszystkie CPU
O
O
O
O*
O
S
C
7
Error
(F110)
Zero
(F111)
Carry
(F112)
O
O
S
Operand setting
D Cw
S
S
D Cw
Obiekt w którym zapamiętywane są dane źródłowe
D
ASC
Obiekt w którym zapamiętywane są dane ASCII
C
ASCP
Obiekt w którym zapamiętywane są dane źródłowe
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
2) Funkcje
- Format ‘Cw’
h
e)
f)
g)
h)
-
s
d
x
z
s : Bit startu w [ S ].
d : Bit startu w [ D ]
x : Nieistotne
z : Liczba dekodowanych elementów. (zakres : 0 ~ F)
Dokonuje konwersji danych z4 bitowe bloki poczynając od bitu s obiektu wskazanego w [ S ] do danych w
kodzie ASCII i zapamiętuje wynik w z8 bitowych blokach rozpoczynających się od bitu s obiektu [ D ].
169
-
Warunki wykonywania
Warunek Input
ASC
Wykonywany
przez scan
Wykonywany
przez scan
ASCP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Gdy P030 jest ON, program dokonuje konwersji 8-bitów poczynając od bitu 2 słowa D0010 na dane kodu ASCII
i zapamiętuje 16-bitowy wynik w słowie P06 poczynając od bitu1.
P030
ASC D0010 P06 h2102
F
D0010
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
hB
h42
2
1
0
0
P07
0
h4
Start od bitu 2
słowa D0010
h34
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
P06
170
0
Start od bitu 1 słowa
P06 (P061)
5.11.3 BSUM, BSUMP, DBSUM, DBSUMP
FUN(170) BSUM
FUN(172)
BSUM
DBSUM
(Bit summary)
FUN(171) BSUMP
Stosowane
w CPU
FUN(173)
Wszystkie CPU
DBSUMP
Dostępne Obiekty
Flaga
Instrukcje
D
Integ Steps
#D er
O
O
O
O
O
O
M
BSUM(P)
DBSUM(P)
P
K
L
F
T
C
S
O
O
O
O
O
O
D
O
O
O
O*
O
S
S
5
Zero
(F111)
O
Carry
(F112)
O
Nastawa operandu
D
Obiekt w którym liczone są
‘1’
BSUM
DBSUM
S
O
Error
(F110)
S
D
D
Obiekt w którym
zapamiętywany jest wynik
BSUMP
DBSUM
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- BSUM(P) : Liczy ilość ‘1’ w obiekcie wskazanym jako [ S ], następnie zapamiętuje wynik w obiekcie
wskazanym jako [ D ] w formacie hexadecy-malnym.
- DBSUM(P) : Liczy ilość ‘1’ w obiekcie wskazanym jako [ S+1, S ], następnie zapamiętuje wynik w obiekcie
wskazanym jako [ D ] w formacie hexadecy-malnym.
- Gdy wynik liczenia jest 0, to ustawi się flaga zero (F111).
- Jeżeli adres pośredni wskazany przez #D jest poza zakresem obiektu, to powstanie błąd operacji i ustawi się
error flag (F110).
- Warunki wykonywania
Warunek Input
BSUM, DBSUM
Wykonywany
przez scan
Wykonywany
przez scan
BSUMP, DBSUMP
Wykonywany tylko raz
171
Wykonywany tylko raz
2) Przykład programu
- Gdy M020 jest ON, program liczy ilość ‘1’ w P020 i P021, następnie zapamiętuje wynik liczenia w D0030.
M020
DBSUMP P020 D0030
F
P020
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
Liczba ‘1’ = 9
F
P021
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
Liczba ‘1’ = 8
F
D0030
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
Całkowita
liczba ‘1’ = 17
(h0011)
172
5.11.4 ENCO, ENCOP
ENCO
FUN(176) ENCO
(Encode)
FUN(177) ENCOP
Stosowane
w CPU
D
Integ Step
#D er
O
O
O
O
O
O
M
ENCOP
Flaga
Dostępne Obiekty
Instrukcje
ENCO
Wszystkie CPU
P
K
L
F
T
C
S
O
O
O
O
O
O
D
O
O
O
O*
O
n
S
O
S
D
Zero
(F111)
O
7
O
O
S
D
Carry
(F112)
Nastawa operandu
n
ENCOP
Adres początku obszaru
przeznaczenia zapamięta
wynik enkodowania
n
n
Adres początku obszaru
danych źródłowych
D
ENCO
S
Error
(F110)
Efektywna długość bitu
2n ( 1 ~ 8 )
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Enkoduje dane 2n bitów, począwszy od bitu 0 obiektu wskazanego jako [ S ], a wynik zapamiętuje w obiekcie
wskazanym jako [ D ].
- Dla ‘n’, 1 ~ 8 może być wskazane. Jeżeli wartość n jest poza zakresem, to brak działania i zawartość [ D ] nie
zmienia się.
- Gdy wiele bitów jest 1, to dziłanie obejmuje najbardziej znaczący bit. Gdy wynik jest 0, to ustawi się flaga zero
(F111).
- Gdy wartość n jest większa niż 4, to obszar danych źródłowych rozszerzy się jak [ S+1 ], [ S+2 ], … Gdy n=8, to
długość danych źródłowych wynosi 256 bitów.
( [ S+15, S+14, …, S+1, S ] )
- Warunki wykonywania
Warunek Input
ENCO
Wykonywany
przez scan
Wykonywany
przez scan
ENCOP
Wykonywany tylko raz
173
Wykonywany tylko raz
2) Przykład programu
- Gdy P020 jest ON, program enkoduje 8-bitów (bit 0 ~ bit 7) słowa P02 i zapamiętuje wynik w słowie P06.
P020
ENCOP P02 P06 3
F
P02
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
Najwyższa
pozycja ‘1’
- bit 7
Gdy n = 3,
8 (=2n ) bitów jest
efektywnych
F
P06
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
174
Wynik
enkodowania
= h0007
5.11.5 DECO, DECOP
DECO
FUN(178) DECO
(Decode)
FUN(179) DECOP
Stosowane
w CPU
D
Integ Step
#D er
O
O
O
O
O
O
M
DECOP
Flaga
Dostępne Obiekty
Instrukcje
DECO
Wszystkie CPU
P
K
L
F
T
C
S
O
O
O
O
O
O
D
O
O
O
O*
O
n
S
O
S
D
Zero
(F111)
O
7
O
O
S
D
Carry
(F112)
Nastawa operandu
n
DECOP
Adres początku obszaru
przeznaczenia zapamięta
wynik dekodowania
n
n
Adres początku obszaru
danych źródłowych
D
DECO
S
Error
(F110)
Efektywna długość bitu
2n ( 1 ~ 8 )
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Dekoduje dane 2n bitów, począwszy od bitu 0 obiektu wskazanego jako [ S ], a wynik zapamiętuje w obiekcie
wskazanym jako [ D ].
- Dla ‘n’, 1 ~ 8 może być wskazane. Jeżeli wartość n jest 0, to brak działania i zawartość [ D ] nie zmienia się.
Jeżeli wartość n jest powyżej 8, to brak działania i zostaje ustawiona flaga error (F110).
- Gdy wiele bitów jest 1, to dziłanie obejmuje najbardziej znaczący bit. Gdy wynik jest 0, to ustawi się flaga zero
(F111).
- Gdy wartość n jest większa niż 4, to obszar danych źródłowych rozszerzy się jak [ D+1 ], [ D+2 ], … Gdy n=8,
to długość danych źródłowych wynosi 256 bitów.
( [ D+15, D+14, …, D+1, D ] )
- Warunki wykonywania
Warunek Input
DECO
Wykonywany
przez scan
Wykonywany
przez scan
DECOP
Wykonywany tylko raz
175
Wykonywany tylko raz
2) Przykład programu
- Gdy P030 jest ON, program dekoduje 4 młodsze bity słowa P02 i zapamiętuje wynik dekodowania w słowie
P05.
P030
DECOP P02 P05 4
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
P02
Wartość 4
ostatnich bitów
słowa P02 =
h9
Gdy n = 4,
16 (=24 ) bitów jest
efektywnych
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0 dekodowania
P05
-
Wynik
= h0009
Program dekoduje wartość bieżącą licznika C000 i zapamiętuje wynik dekodowania w słowach P05 i P06.
Wartość bieżąca licznika zwiększa się co 1 sekundę i gdy osiągnie wartość 31, licznik C000 zeruje się.
F093
C000
U CTR C000
R & lt; S & gt; 00031
F010
DECO C000 P05 5
END
176
5.11.6 FILR, FILRP, DFILR, DFILRP
FUN(180) FILR
FILR
FUN(182) DFILR
Stosowane
(File table read)
FUN(181) FILRP
FUN(183)
DFILRP
D
Integ Step
#D er
O
O
O
O
O
O
M
P
K
L
F
T
C
S
DFILR(P)
Flaga
Dostępne Obiekty
Instrukcje
FILR(P)
Wszystkie CPU
w CPU
O
O
O
O
O
O
D
O
O
O
O*
O
n
S
O
S
D
Zero
(F111)
O
O
7
O
S
Pierwotny adres słowa
danych źródłowych
D
Słowo przeznaczenia do
którego zawartość [ S+n ]
jest przenoszona
n
Offset
DFILR
D
Carry
(F112)
Nastawa operandu
n
FILR
S
Error
(F110)
n
FILRP
DFILRP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- FILR(P) : Przenosi zawartość słowa [ S+n ] do obiektu wskazanego jako [ D ]
- DFILR(P) : Przenosi zawartość słowa [S+n+1, S+n ] do obiektu wskazanego jako [ D+1, D ].
- Gdy [ S+n ] jest poza zakresem korespondującego obszaru obiektu, to brak działania i ustawia się flaga error.
[ S -1 ]
[ S -1 ]
[S]
[S]
[ S+1 ]
[ S+1 ]
Offset = n
[ S+n ]
Offset = n
[D]
h6F30
h091E
[D]
h6F30
[ D+1 ]
h6F30
[ S+n ]
[ S+n+1 ]
h6F30
h091E
FILR(P)
DFILR(P)
177
-
Warunki wykonywania
Warunek Input
FILR, DFILR
Wykonywany
przez scan
Wykonywany
przez scan
FILRP, DFILRP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Program przenosi zawartość słowa M03+n do słowa M01, gdy P020 jest ON. Offset n zapamiętywany jest w
słowie D0010.
P020
FILRP M03 M01 D0010
M000
M001
h6030
M002
M003
M004
gdy n=3
M005
M006
h6030
M007
h5030
M000
M001
h5030
M002
M003
M004
gdy n=4
M005
M006
h6030
M007
h5030
178
5.11.7 FILW, FILWP, DFILW, DFILWP
FUN(184) FILW
FILW
DFILW
(File table write)
FUN(186)
FUN(185) FILWP
Stosowane
Wszystkie CPU
w CPU
FUN(187)
DFILWP
D
Integ Step
#D er
O
O
O
O
O
O
M
DFILW(P)
P
K
L
F
T
C
D
FILW(P)
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O
O*
O
S
O
O
O
O
O
O
n
S
O
D
S
Zero
(F111)
O
O
7
O
D
Pierwotny adres słowa danych
źródłowych
S
Dane źródłowe lub obiekt w
którym dane źródłowe są
zapamiętywane
n
Offset
DFILW
S
Carry
(F112)
Nastawa operandu
n
FILW
D
Error
(F110)
n
FILWP
DFILWP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- FILW(P) : Przenosi zawartość słowa [ S ] do obiektu wskazanego jako [ D+n ]
- DFILW(P) : Przenosi zawartość słowa [S+1, S ] do obiektu wskazanego jako
[ D+n+1, D+n ].
- Gdy [ D+n ] jest poza zakresem korespondującego obszaru obiektu, to brak działania i ustawia się flaga error.
[ D -1 ]
[ D -1 ]
[D]
[D]
[ D+1 ]
[ D+1 ]
Offset = n
[ D+n ]
Offset = n
[S]
[ D+n ]
h6F30
[ D+n+1 ]
h6F30
h091E
[S]
h6F30
[ S+1 ]
h6F30
h091E
FILW(P)
DFILW(P)
179
-
Warunki wykonywania
Warunek Input
FILW, DFILW
Wykonywany
przez scan
Wykonywany
przez scan
FILWP, DFILWP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykład programu
- Program przenosi zawartość słowa M01 do słowa M03+n, gdy P020 jest ON. Offset n zapamiętywany jest w
słowie D0010.
P020
FILWP M03 M01 D0010
M000
M001
h6030
M002
M003
M004
gdy n=3
M005
M006
h6030
M007
M000
M001
h6030
M002
M003
M004
gdy n=4
M005
M006
M007
h6030
180
5.11.8 DIS, DISP
DIS
FUN(194) DIS
Stosowane
Flaga
Dostępne Obiekty
Instrukcje
D
Integ Step
#D er
O
O
O
O
O
O
M
P
K
L
F
T
C
S
O
O
O
O
O
O
D
DIS(P)
Wszystkie CPU
w CPU
(Data dissociation) FUN(195) DISP
O
O
O
O*
O
S
n
D
Zero
(F111)
O
Nastawa operandu
n
S
D
Początek adresu obiektu
przeznaczenia
n
n
Obiekt źródłowy
D
DIS
S
Carry
(F112)
O
7
O
S
Error
(F110)
Liczba elementów do
oddzielenia ( 1 ~ 4 )
DISP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Przenosi n elementów począwszy od bitu 0 obiektu wskazanego jako [ S ] do
4 niższych bitów bloku
wskazanego jako [ D+n-1 ] ~ [ D ].
- 12 bits (bit 4 ~ bit F) bloku wskazanego jako [ D+n-1 ] ~ [ D ] jest zerowanych.
- Gdy n=0, brak działania.
- Gdy n & gt; 4, to brak działania flaga error flag zostaje ustawiona.
Gdy n = 4,
16 ( =44 ) bitów jest efektywnych
F
S
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
F
4 3
0
D
0000 0000 0000
0001
D +1
0000 0000 0000
0010
D +2
0000 0000 0000
0011
D +3
0000 0000 0000
0100
181
-
Warunki wykonywania
Warunek Input
DIS
Wykonywany
przez scan
Wykonywany
przez scan
DISP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykłady programów
-
Program oddziela zawartość 3 niższych elementów słowa P02 do 4 niższych bitów słów D0000 ~ D0003, gdy
P030 jest ON.
P030
DISP P02 D0000 3
F
P02
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
F
4 3
0
D0000
0000 0000 0000
0001
D0001
0000 0000 0000
0010
D0002
0000 0000 0000
0011
182
5.11.9 UNI, UNIP
UNI
FUN(192) UNI
(Data association)
FUN(193) UNIP
Stosowane
Flaga
Dostępne Obiekty
Instrukcje
D
Integ Step
#D er
O
O
O
O
O
O
M
P
K
L
F
T
C
S
UNI(P)
Wszystkie CPU
w CPU
O
O
O
O
O
O
D
O
O
O
O*
O
S
n
D
Zero
(F111)
O
Nastawa operandu
n
S
D
Obiekt przeznaczenia
n
n
Początek adresu obiektu
źródłowego
D
UNI
S
Carry
(F112)
O
7
O
S
Error
(F110)
Liczba elementów do
połączenia (1 ~ 4)
UNIP
* Dostępne tylko wtedy, gdy nie jest używany moduł computer link lub data link
1) Funkcje
- Przenosi najniższe 4 bity bloku wskazanego jako [ S+n-1 ] ~ [ S ] do n młodszych elementów obiektu
wskazanego jako [ D ].
- Wyższe bity (bit 2n ~ bit F) obiektu wskazanego jako [ D ] są zerowane.
- Gdy n=0, brak działania.
- Gdy n & gt; 4, to brak działania i flaga error zostaje ustawiona.
F
4 3
0
S
0000 0000 0000
0001
S +1
0000 0000 0000
0010
S +2
0000 0000 0000
0011
S +3
0000 0000 0000
0100
Gdy n = 4
D
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
183
-
Warunki wykonywania
Warunek Input
UNI
Wykonywany
przez scan
Wykonywany
przez scan
UNIP
Wykonywany tylko raz
Wykonywany tylko raz
2) Przykłady programów
-
Program łączy zawartość 4 niższych bitów słów D0000 ~ D0003 do 3 niższych elementów słowa P02, gdy P030
jest ON.
P030
UNIP D0000 P06 3
F
4 3
0
D0000
0001
D0001
0000 0000 0000
0010
D0002
P06
0000 0000 0000
0000 0000 0000
0011
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
184
5.12 System instructions
5.12.1 DUTY
DUTY
Stosowane
FUN(205) DUTY
(User defined
w CPU
Wszystkie CPU
pulse)
Flaga
Dostępne Obiekty
Instrukcje
M
P
D
K
L
F
T
C
S
D
Integ Step
#D er
Zero
(F111)
Carry
(F112)
O
n1
O
n2
DUTY
Error
(F110)
O
7
Nastawa operandu
D
n1
Liczba scan’ów podczas
których impuls jest ON
n2
DUTY D n1 n2
Styk obiektu F na który
wystawiany impuls
Liczba scan’ów podczas
których impuls jest OFF
1) Funkcje
- Generuje impulsy czasowe (timing clock) wskazane jako [ D ], zdefiniowany przez użytkownika, gdzie timing
pulse jest ON podczas scan’ów wskazanych jako ‘n1’ i OFF podczas scan’ów wskazanych jako ‘n2’.
- Status początkowy - timing pulse OFF.
- Gdy ‘n1’ =0, timing pulse jest zawsze OFF.
- Gdy ‘n1’ & gt; 0 i ‘n2’ =0, to timing pulse jest zawsze ON.
Warunek Input
DUTY
Wykonywany
przez scan
Timing pulse
n1 scan’ów
n2 scan’ów
185
-
Jeżeli warunek input instrukcji DUTY zostanie ustawiony na OFF, to timing pulse nie przejdzie w stan OFF.
Aby spowodować zatrzymanie timing pulse, należy wykonać nową instrukcję DUTY jak pokazano poniżej.
DUTY D
0 1
Scan podczas którego timing pulse jest
OFF
Scan podczas którego timing pulse
jest ON. Upewnij się że ustawiłeś 0.
Obiekt F w którym stopujesz timing
pulse (F100 ~ F107)
2) Przykład programu
- Program generuje timing pulse o 250 scan’ach ON, i 300 scan’ach OFF i wystawia go na styk F100, gdy P030
ustawi się na ON. Gdy P031 ustawi się na ON, to timing pulse zostanie zatrzymany.
P030
DUTY F100 250 300
F100
( P061 )
P031
DUTY F100 0
1
P030
P031
Timing pulse
250 scans
300 scans
186
5.12.2 OUTOFF
OUTOFF
Stosowane
FUN(208) OUTOFF
(Wszystkie
Wszystkie CPU
w CPU
output off)
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
F
T
C
S
D
OUTOFF
Integ Step
#D er
Error
(F110)
Zero
(F111)
Carry
(F112)
1
OUTOFF
1) Funkcje
- Zatrzymuje wystawianie wyników operacji obszaru P na zewnętrzne urządzenia i ustawia flagę OUTOFF
(F113), gdy warunek input jest ON. Jednakże, obiekty P są aktualizowane zgodnie z wynikami operacji.
- Gdy warunek input zostanie wyłączony, CPU restartuje wystawianie wyników operacji obszaru P na zewnętrzne
urządzenia.
- Użyteczny test pracy systemu PLC.
- Warunki wykonywania
Warunek Input
OUTOFF
Wykonywany
przez scan
Wykonywany
przez scan
2) Przykład programu
- Program stopuje wystawianie output do zewnętrznych urządzeń, gdy P020 jest ON.
F093
INCP P05
F092
DECP P06
P020
OUTOFF
187
5.13 Instrukcje skoków - Branch
5.13.1 JMP, JME
JMP
FUN(012) JMP
Stosowane
(Jump)
FUN(013) JME
w CPU
M
JME
Flaga
Dostępne Obiekty
Instrukcje
JMP
Wszystkie CPU
P
K
L
F
T
C
S
D
Integ Step
#D er
n
O
JMP
Zero
(F111)
Carry
(F112)
1
Nastawa operandu
n
JME
Error
(F110)
n
n
K10S1/K10S/K30S/K60S
: 0 ~ 63
K200S/K300S/K1000S
: 0 ~ 127
1) Funkcje
- Gdy instrukcja ‘JMP n’ jest wykonywana przez ustawienie warunku input, to CPU skacze do instrukcji JME,
która ma takie same ‘n’, a instrukcje pomiędzy ‘JMP n’ i ‘JME n’ nie są wykonywane.
- Instrukcja ‘JMP n’ powinna pasować tylko do jednej instrukcji ‘JME n’. Powielanie ‘JME n’ jest niedozwolone.
Natomiast, powielanie instrukcji ‘JMP n’ jest możliwe.
JMP
JMP
JMP
001
JME
001
001
JME
001
JME
001
Błąd
-
001
Nie ma błędu
Instrukcja ‘JMP n’ bez odpowiadającej jej instrukcji ‘JME n’ spowoduje powstanie program error. Jeżeli JME
lub JMP znajduje się wewnątrz pętli (podprogram, FOR ~ NEXT lub procedura interrupt), to powstanie błąd
operacji, gdy instrukcja JMP jest efektywna. (Szczegóły patrz rozdz. 2.7.1 )
188
-
Warunki wykonywania
Warunek Input
JMP
Wykonywany
przez scan
Wykonywany
przez scan
2) Przykład programu
- Program opuszcza operację ring counter pomiędzy ‘JMP 2’ i ‘JME 2’, gdy P020 jest ON.
P020
JMP
02
P030
U CTU
C002
P031
R & lt; s & gt; 00100
C002
( P060 )
JME
02
189
5.13.2 CALL, CALLP, SBRT, RET
FUN(014) CALL
CALL / SBRT
CALLP
(Subroutine)
FUN(015)
FUN(016) SBRT
Stosowane
Wszystkie CPU
w CPU
FUN(004)
RET
Dostępne Obiekty
Flaga
Instrukcje
M
CALL(P)
SBRT
P
K
L
F
T
C
S
D
Integ Step
#D er
n
O
Error
(F110)
Zero
(F111)
Carry
(F112)
1
RET
CALL(P)
Nastawa operandu
n
END
n
n
SBRT
K10S1
: 0 ~ 15
K10S/K30S/K60S
: 0 ~ 63
K200S/K300S/K1000S
: 0 ~ 127
RET
1) Funkcje
- Gdy warunek input jest ON, stopuje sekwencję programu i wykonuje odpowiadający podprogram wskazany
przez wskaźnik ‘n’. Po zakończeniu podprogramu następuje podjęcie wykonywania sekwencji programu w
miejscu następującego po instrukcji ‘CALL n’ kroku(step).
- Wielokrotne zagłębianie instrukcji CALL(P) jest dozwolone do poziomu 64.
- Zakres wskaźnika ‘n’ różni się w zależności od typu CPU. (Patrz rysunek powyżej)
- Jeżeli instrukcja ‘CALL(P) n’ nie posiada odpowiadającej jej instrukcji ‘SBRT’ o tym samym wskaźniku ‘n’, to
wystąpi błąd instrukcji.
- Warunki wykonywania
Warunek Input
CALL
Wykonywany
przez scan
Wykonywany
przez scan
CALLP
Wykonywany tylko raz
190
Wykonywany tylko raz
2) Przykład programu
P020
( P050 )
P021
P021
P02F
P022
( P051 )
CALL
0003 02
END
F092
F010
SBRT
INCP
0003
D0000
MOV D0000 P06
RET
191
5.14 Instrukcje Flag
5.14.1 STC, CLC
STC, CLC
FUN(002) STC
(Set / Reset the
carry flag)
Stosowane
FUN(003) CLC
w CPU
Wszystkie CPU
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
F
T
C
S
D
STC
Integ Step
#D er
Error
(F110)
1
CLC
STC
CLC
1) Funkcje
- STC : Ustawia falgę carry (F112) na ON, gdy warunek input zostanie ustawiony.
- CLC : Resetuje falgę carry (F112) na OFF, gdy warunek input zostanie ustawiony.
- Warunki wykonywania
Warunek Input
STC, CLC
Wykonywany
przez scan
Wykonywany
przez scan
2) Przykład programu
- Program ustawia flagę carry (F112), gdy M0000 jest ON.
M0000
-
STC
Program resetuje flagę carry (F112), gdy M0001 jest ON.
M0001
CLC
192
Zero
(F111)
Carry
(F112)
O
5.15 Instrukcje High speed counter
5.15.1 HSCNT
HSCNT
Stosowane
K10S1 / K10S
w CPU
FUN(210) HSCNT
(Enable high
K30S / K60S
speed counter)
Flaga
Dostępne Obiekty
Instrukcje
M
P
K
L
F
T
C
S
D
Integ Step
#D er
HSCNT
Error
(F110)
Zero
(F111)
Carry
(F112)
1
HSCNT
1) Funkcje
- Umożliwia szybkie liczenie, gdy warunek input jest ON.
- Po otrzymaniu zezwolenia liczenia, licznik pracuje zgodnie z nastawionymi parametrami.
- Gdy warunek input jest OFF, liczenie jest resetowane.
- Instrukcja HSCNT nie może być użyta jednocześnie z instrukcją HSC w tej samej sekwencji programu.
- Specyfikacja szybkiego licznika
Pozycja
Zawartość
Liczba wejść
1 punkt
Faza
1 faza
Szybkość liczenia
8kpps(kHz)
Zakres liczenia
0 ~ hFFFF (16 bits)
Poziom
Dane
Nastawa danych (16 bits)
SET
Bity do ustawienia ON (8 bits)
RESET
Nastawy
Max. 20 level can be set up. ( 0 ~ 19 )
Bity do ustawienia OFF (8 bits)
Wartość bieżąca
F140 ~ F14F (16 bits)
Nastawa
F150 ~ F15F (16 bits)
Obiekt Output
F070 ~ F077 (8 bits)
193
2) Przykład programu
- Program wystawia szybki licznik do słowa P002.
HSCNT
MOV F07 P02
& lt; Parametry ustawione przez KGL-WIN & gt;
a) Gdy warunek input zostaje ustawiony na ON, to wartość bieżąca jest zapamiętywana w F14, a nastawa
kroku 0 jest zapamiętywana w F15.
b) Gdy wartość bieżąca osiągnie nastawę #0, F070 ~ F077 jest ustawiane / resetowane zgodnie z
nastawionym parametrem, a F15 jest odnawiane jako nastawa kroku 1(step 1).
c) Gdy wartość bieżąca osiągnie nastawę ostatniego kroku ( step 5 w tym przykładzie ), F15 jest odnawiany
jako nastawa kroku 0, a wartość bieżąca (F14) jest zerowana.
d) Jeżeli warunek input zostanie zresetowany na OFF, wartość bieżąca i output HSC (F070 ~ F077) jest
zerowana.
194
5.15.2 HSC
HSC
Stosowane
(High speed
K10S1 / K10S
w CPU
FUN(215) HSC
K30S / K60S
counter)
D
Integ Step
#D er
O
O
O
O
O
O
O
O
M
HSC
Flaga
Dostępne Obiekty
Instrukcje
P
K
L
F
T
C
PV
O
O
O
O
O
O
SV
O
O
O
O
O
O
S
Error
(F110)
Zero
(F111)
Carry
(F112)
7/9/11
Nastawa operandu
EN
HSC
PV
U/D
Wartość zadana
SV
PV & lt; & gt;
Wartość nastawy
SV & lt; & gt;
PR
1) Funkcje
- Instrukcja HSC nie może być używana razem z instrukcją HSCNT w tym samym programie. Tylko jeden z nich
może być użyty w sekwencji programu.
- 32-bitty, up / down high speed counter. ( HSCNT : 16-bitów, up-counter )
- Jeżeli wartość bieżąca jest równa lub większa niż SV, to HSC wystawia bit (F070) .
- Wartość bieżąca nie może być zmieniona przez użytkownika.
- Wartość bieżąca jest zapamiętywana w F14 (niższe słowo) i F15 (wyższe słowo).
- Gdy instrukcja HSC jest używana, to nastawy high speed counter są ignorowane.
- Opis operandów
- EN : Styk zezwolenia high speed counter
a) U/D : pracuje jako up counter gdy U/D jest 0, i jako down counter gdy U/D jest 1.
b) PR : Jeżeli input PR ustawi się na ON, to wartość bieżąca jest zmieniana na wartość zadaną (PV).
c) PV : Wartość zadana. Jeżeli PV jest wskazana jako obiekt [ A ], to PV jest zawartością [ A+1, A ].
d) SV : Nastawa. Jeżeli SV jest wskazana jako obiekt [ A ], to SV jest zawartością [ A+1, A ].
195
2) Przykład programu
- M1 : HSC reset, M2 : U/D input (0 = up, 1 = down), M3 : Zmień wartość bieżącą na PV
- Jeżeli wartość bieżąca jest taka sama lub większa niż SV, to bit F070 ustawi się na ON.
M003
M001
M002
M003
MOV 100 D010
EN
HSC
PV D010
U/D
SV 100
PR
196
5.16 Instrukcje RS-485 communication
5.16.1 RECV (K10S1)
RECV
Stosowane
K10S1 / K10S
w CPU
FUN(158) RECV
K30S / K60S
(Receive data)
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
St
O
O
O
O
O
O
D
O
O
O
O
O
S
O
O
O
O
n
RECV
Flaga
Dostępne Obiekty
Instrukcje
O
O
O
O
O
S
O
Error
(F110)
Zero
(F111)
Carry
(F112)
O
9
O
O
Nastawa operandu
Numer stacji slave do odczytu
St
RECV
St
D
S
n
D
Adres początku obiektu stacji
master pod którym zostaną
zapamiętane otrzymane dane
S
Adres początku obiektu stacji
slave pod którym zapamiętane są
dane do wysłania
n
Liczba słów do odczytu
(n : h00 ~ h1F )
1) Funkcje
- Czyta ‘n’ słów z obiektu wskazanego jako [ S ] stacji slave (Numer stacji = ‘st’)
dane w bloku który zaczyna się obiektem wskazanym jako [ D ] stacji master.
- Instrukcja RECV może być użyta tylko ze stacją master (numer stacji = h1F).
- Warunki wykonywania
Warunek Input
RECV
Wykonywany
przez scan
Wykonywany
przez scan
197
i zapamiętuje przeczytane
2) Przykład programu
- Program czyta 5 słów z M010 stacji slave (numer stacji = h1A) i zapamiętuje dane do D0000 ~ D0004 stacji
master, gdy M0000 ustawi sięna ON.
M0000
RECV h1A D0000 M010 h05
Stacja Master
Stacja Slave
D0000
M010
5 słów
5 słów
Stacja No. = h1F
Stacja No. = h1A
198
5.16.2 SEND (K10S1)
SEND
Stosowane
K10S1 / K10S
w CPU
FUN(159) SEND
K30S / K60S
(Send data)
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
St
O
O
O
O
O
O
S
O
O
O
O
O
D
O
O
O
O
n
SEND
Flag
Available Device
Instructions
O
O
O
O
O
S
O
Error
(F110)
Zero
(F111)
Carry
(F112)
O
9
O
O
Operand setting
St
S
S
D
Start address of device of slave
station at which the sent data is
stored
n
St
The start address of device of
master station at which the
source data is stored
D
SEND
Station number of slave station to
which data to be written
Numbers of word to be read
(n : h00 ~ h1F )
n
1) Funkcje
- Wysyła ‘n’ słów z obiektu wskazanego jako [ S ] stacji master i zapamiętuje przeczytane dane w bloku który
zaczyna się obiektem wskazanym jako [ D ] stacji slave (Numer stacji = ‘st’).
- Instrukcja SEND może być użyta tylko ze stacją master (numer stacji = h1F).
- Warunki wykonywania
Warunek Input
SEND
Wykonywany
przez scan
Wykonywany
przez scan
199
2) Przykład programu
- Program wysyła 5 słów z D0010 stacji master i zapamiętuje dane w M0000 ~ M0004 stacji slave (numer stacji =
h0A), gdy M0000 ustawi się na ON.
M0000
SEND h0A D0010 M000 h05
Stacja Master
Stacja Slave
M000
D0010
5 słów
5 słów
Stacja No. = h1F
Stacja No. = h0A
200
5.16.3 MODBUS (K80S)
MODBUS
Stosowane
Flag
Available Device
Instructions
D
Integ Step
#D er
O
O
O
O
O
O
O
O
O
O
M
P
K
L
F
T
C
S1
SEND
K80S
w CPU
(Send data)
O
O
O
O
O
O
S2
O
O
O
O
O
S3
O
O
O
O
S
Error
(F110)
Zero
(F111)
O
7
O
Operand setting
S1
MODBUS
S2
201
Adres komórki zawierającej
wyniki operacji (przesłane dane)
S3
S1 S2 S3
Adres tablicy zaw. nr stacji i,kod
funkcji, adres i liczbę komórek
Adres komórki zaw. status
operacji
Carry
(F112)
Dodatek
A.1 Konfiguracja pamięci
A.1.1Obiekty pamięci bitowej
Bitowy obiekt pamięci jest obszarem pamięci który może być odczytywany / zapisywany z rozdzielczością
jednego bitu. Obszary P, M, L, K, F są obiektami pamięci bitowej. Jednakże, obiekty pamięci bitowej mogą
być używane jako obszary obiektów słowowych.
& lt; Obraz obiektów pamięci bitowej & gt;
Określenie adresu bitu
( 0 ~ F : Hexadecymalny )
Określenie adresu słowa ( Decymalny )
Określenie adresu obiektu ( P, M, L, K, F )
& lt; Struktura pamięci obiektu pamięci bitowej & gt;
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
000
001
002
003
nnn
= P002B
A.1.2 Obiekt pamięci Bit / Word ( timer & counter )
Obszary pamięci timera i countera składają się z 3 części – bit output, słowo wartości bieżącej i słowo
nastawy. Gdy obiekt T lub C jest używany jako operand instrukcji bitowej, to instrukcja ma wpływ na stan bitu
output timera lub countera. Jeżeli obiekt T lub C jest używany jako operand w instrukcji słowowej, to
instrukcja ma wpływ na wartość bieżącą słowa. Nastawa nie może być zmieniona przez użytkownika.
A.1.3 Obiekt pamięci word(słowowej)
Obiekt D jest kontrolowany przez słowo. Aby kontrolować obiekt D bitowo, należy użyć instrukcji specjalnych
takich jak BLD, BAND, BOR, etc. Należy jednak pamiętać, że obiekt D nie może być użyty jako operand
takich instrukcji bitowych jak LOAD, OUT, etc.
F
E
D
C
B
A
9
8
7
6
D0000
D0001
D0002
D0003
Dnnnn
= D0002
202
5
4
3
2
1
0
A.2 Przekaźniki specjalne
A.2.1 K10S1 / K10S / K30S / K60S
1) Obiekt F
Przekaźnik
Nazwa
Opis
F000
F001
F002
F007
F010
F011
Flaga Run
Flaga PGM
Flaga Pause
Mod EPROM
Zawsze ON
Zawsze OFF
F012
1 scan ON
F013
1 scan OFF
Ustaw gdy PLC jest w modzie RUN
Ustaw gdy PLC jest w modzie PGM
Ustaw gdy PLC jest w modzie Pause
Ustaw gdy PLC jest w modzie EPROM run
Używany jako przekaźnik sztuczny lub inicjator przy
pisaniu programów
ON podczas pierwszego scan’u po przejściu modu
PGM→RUN
OFF podczas pierwszego scan’u po przejściu modu
PGM→RUN
F014
Zmienia stan za
każdym scan’em
F020
~
F02F
Informacja o
Communication
Error
F030
Poważny błąd
F031
Lekki błąd
F03A
Flaga RTC data
error
Ustawiany gdy został wykryty error RTC data
F040
~
F045
Kombinacja I/O
error
Ustawiany gdy wkładany / wyjmowany jest moduł I/O
podczas pracy lub niepoprawne połączenie
F050
~
F05F
Kod error
F060
~
F06F
Numer step gdy
powstanie error
F070
~
F077
Rejestr HSC
F080
~
F08F
Model PLC
Powtarza set/reset gdy PLC jest w modzie RUN
Przepełniony - tylko do instrukcji SEND, RECV
Starszy byte: Numer stacji w której nastąpił error
Młodszy byte: error kodu
Kod error – przekroczenie czasu:h20
Brak error:h000
Ustawiany gdy jest wewnętrzny błąd ROM, błąd 24V
Ustawiany gdy jest WDT error, program error, error
kombinacji I/O, brak END/RET error
h0000:Brak error
h0023:Kod error
h0014:I/O error
h0024:Brak END error
h0021:Parametr error
h0025:Brak RET error
Zapamiętywany jest step No.(numer kroku) w którym
wystąpił program error
W przypadku błędu instrukcji branch, zapamiętywany
jest numer kroku przeznaczenia
Obszar szybkiego licznika
K10S:h0031
K60S:h0036
K30S:h0033
K100S:h0035
Starszy byte: No.stacji PLC
Młodszy byte: model PLC
203
Przekaźnik
Nazwa
Opis
F090
F091
F092
F093
F094
F095
F096
Zegar 20msek
Zegar 100ms
Zegar 200ms
Zegar 1sek
Zegar 2sek
Zegar 10sek
Zegar 20sek
Przekaźniki te powtarzają On/Off z ustalonym okresem
i są generowane tylko w modzie RUN .
F097
Zegar 1minuta
F100
~
F107
Zegar zdefiniowany
przez użytkownika
F100:clock0
~
F107:clock7
(zegar7)
F111
1sek
Flaga błędu
arytmetycznego
Flaga Zero
F112
F094
Flaga Carry
F110
F11A
F11C
F11E
F11F
F120
F121
F122
F123
F124
F125
F130
~
F135
1sek
2sek
Przekaźniki powtarzają ON/OFF bazując na czasie
scan. (Stan początkowy = OFF)
DUTY
n1
F10X
n1
n2
n2
Ustawiana gdy wystąpi błąd arytmetyczny podczas
operacji
Ustawiana gdy wynik jest zero
Ustaw gdy ma miejsce Carry lub Borrow jako wynik
operacji
Flaga ON
wysyłania
Flaga ON odbioru
Flaga Odbiór
zakończony
Przekaźniki te pokazują status komunikacji
Gdy używane są instrukcje DIN, DOUT
Flaga błąd
komunikacji
DIN, DOUT:Ustawiona gdy zajdzie błąd ‘czas minął’
SEND, RECV:Ustawiona gdy zajdzie błąd ‘czas
minął’ lub został wykryty komunikat NAK.
& lt;
≤
=
& gt;
≥
≠
Przekaźniki te ustawiane są zgodnie z wynikiem
instrukcji Compare(porównania)
(CMP, CMPP, DCMP, DCMPP)
Status I/O
Każdy przerzutnik pokazuje czy odpowiadający mu
moduł I/O jest włożony czy nie.
F140
~
F14F
Wartość bieżąca
HSC
F150
~
F15F
HSC wartość
zadana
HSCNT : Wartość bieżąca szybkiego licznika (HSC)
jest zapamiętana.
HSC : Młodsze słowo wartości bieżącej szybkiego
licznika (HSC) jest zapamiętane.
HSCNT : Wartość bieżąca szybkiego licznika (HSC)
jest zapamiętana
HSC : Starsze słowo wartości zadanej szybkiego
licznika (HSC) jest zapamiętane .
2) Inne przekaźniki specjalne
Obszar
M310
L12~
L15
D240
Opis
Uwagi
Gdy M310 jest ON,
dane RTC mogą być
zmieniane jako dane
D249~D252
RTC Możliwa zmiana ustawienia przez
użytkownika
Dane RTC
Jednostka
Wejście danych A/D Ch.0
204
Tylko typy
D241
D242
D243
D244
D245
D247
analogowa #1
Wejście danych A/D Ch.1
Wyjście danych A/D
Wejście danych A/D Ch.0
Jednostka
Wejście danych A/D Ch.1
analogowa #2
Wyjście danych A/D
Obszar modu ustawiania High Speed
Counter
K30S-A / K60S-A
Wartość ‘czas minął’ komunikacji RS485
O/S V1.5 lub później
D249~
D252
RTC Możliwa zmiana ustawienia przez
użytkownika
Seria MK-S Ver1.3
lub używany później
gdy punkt M310 jest
takiego samego
formatu jak L12~L15
D253
D254
D255
Czas scan’u bieżącego
Czas scan’u Minimum
Czas scan’u Maximum
D248
205
A.3 Lista instrukcji
Numer
Funkcji
0
1
2
3
4
5
6
7
8
9
CLE
00x
NOP
END
STC
CLC
RET
MPUSH
MLOAD
MPOP
STOP
01x
MCS
MCSCLR
JMP
JME
CALL
CALLP
SBRT
D
DNOT
02x
INC
INCP
03x
ROL
ROLP
04x
RCL
CMPP
05x
CMP
BCDP
06x
BCD
WSFTP
07x
WSFT
08x
MOV
GMOVP
09x
GMOV
BMOVP
10X
BMOV
ADDP
11X
ADD
ADDP
12X
MUL
13X
* LDD=*
DROL
DROLP
ROR
RORP
DRDR
DRDRP
LD & gt; *
LDD & gt; *
DRCL
DRCLP
RCR
RCRP
DRCR
DRCRP
LD & lt; *
LDD & lt; *
DCMP
DCMPPP
TCMP
TCMPP
DTCMP DTCMPP
LD & gt; =*
LDD & gt; =*
DBCD
DBCDP
BIN
BINP
DBIN
DBINP
LDD & lt; =*
LD & lt; =*
BSFT
BSFTP
MULS* MULSP*
DMULS* DMULSP* LD & lt; & gt; *
LDD & lt; & gt; *
DMOV
DMOVP
CMOV
CMOVP
DCMOV
DCMOV
DIVS*
DIVSP*
FOMV
FOMVP
AND=* ANDD=* AND & gt; * ANDD & gt; * AND & lt; * ANDD & lt; *
XCHG
XCHGP
DXCHG DXCHGP AND & gt; =* ANDD & gt; =* ANDD & gt; =* ANDD & gt; =*
DADD
DADDP
SUB
SUBP
DSUB
DSUBP
AND & lt; & gt; * ANDD & lt; & gt; *
DINC
DINCP
DEC
DECP
DDEC
DDECP
LD=
MULP
DMUL
DMULP
DIV
DIVP
DDIV
DDIVP
DDIVS
DDIVSP
ADDB
ADDBP
DADDB
DADDBP
SUBB
SUBBP
DSUBB
DSUBBP
14X
MULB
MULBP
DMULB
DMULBP
DIVB
DIVP
DDIVB
DDIVBP
15X
WAND
WANDP
DWAND
DWAND
WOR
WORP
DWIR
DWORP
RECV
SEND
16X
WXOR
WXORP
DWXOR
DWXOR
WXNR
WXNRP
DWXNR
DWXNR
RCV
17X
BSUM
BSUMP
DBUSM
DBUSMP
SEG
SEGP
ENCO
ENCOP
DECO
18X
BSUM
FILRP
DFILR
DFILRP
FILW
FILWP
DFILW
DFILWP
OR=
19X
ASC
ASCP
UNI
DSI
DIS
20X
IORF
*
IORFP
21X
HSCNT
DIN
22X
BREAK
23X
24X
25X
MOVP
*
WDT
*
DINP
DI
*
WDTP
*
DOUT
*
GET*
GETP* RGET*
RPUT*
NEG*
NEGP* DNEG* DNEGP*
BAND* BANDN* BOR*
BORN*
EI
*
*
BSET
FALS
*
DUTY
FOR*
HSC
OR & gt; =*
IRET*
TDINT*
PUTP*
BOUT*
WRITE* CONN*
DISP
*
DOUTP
*
PUT*
READ*
BRST
* : Dostępny tylko w serii K1000S, K300S, K200S
: Dostępny tylko w serii K10S,K10S1, K30S, K60S
206
OR & gt;
*
NEXT*
ORD & gt; =*
INT*
SR*
STATUS*
ORD & gt;
*
*
OR & lt; *
OUTOFF
*
OR & lt; & gt; *
EI*
BLD*
OR & lt; =
*
SND
DECOP
*
ORD & lt; *
ORD=
.
*
ORD & lt; & gt; *
DI*
BLDN*
ORD & lt; =