REKLAMA

masterk_instrukcja_programowania.pdf

Jak programować drabinkowo PLC LG K120S w KGL WIN? Szukam wskazówek i opisów

Mam instrukcje do kglwin po polsku i angielsku


Pobierz plik - link do postu

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; =