Sie sind auf Seite 1von 58

SPS-Programmierung

fr Einsteiger
1

Alexander Wagner, SDT-TS


August 2000

Themenbersicht
Adressbereiche mit
CX-Progr. anzeigen 4

Bit-Befehle

Adressbereiche
C_SPSen

Zeitgeber

Adressbereiche
CS1

15

Zhler
Vergleich

29

36

47

Daten bertragen
Inkrementieren/
Dekrementieren
BCD-Arithmetik

49

Hinweis: Mausklick auf OMRON fhrt zu diesem Bildschirm zurck.

52

55

56

OMRON-Steuerungen
mit CX-Programmer programmieren

CS1

CQM1H

CPM2A

CPM2C

Adressbereiche
mit CX-Programmer anzeigen

Adressbereiche C__-SPSen

Ein-/Ausgnge,
Arbeitsmerker
Systemmerker
Linkmerker
remanent
Timer, Zhler
CNT-remanent
Datenworte,
remanent

Zustzliche
Systemmerker
Haftmerker
remanent

IR-Speicherbereich C-Serie
Eingnge
Ausgnge

Arbeitsmerker

Ein-/Ausgnge, Arbeitsmerker
Wort- z.B.001 oder Bitadresse z.B.001.12

Arbeitsmerker

SR-Speicherbereich C-Serie
Systemmerker-Bereich SR:
enthlt Sekunden-P_1s, Minutentaktbits P_1min, Immer-Ein-Merker P_On .
Wort- z.B.240 oder Bitadresse z.B.252.02
mit spez. Funktionen nicht belegte Adressen als Arbeitsmerker benutzbar

AR-Speicherbereich C-Serie
zustzlicher Systemmerker-Bereich AR:
Systemmerkerbereich enthlt Merker zur berwachung und Steuerung des SPS-Betriebs:
Fehlermerker, Zykluszeit-Merker, Echtzeit-Merker .
Wort- z.B.AR15 oder Bitadresse z.B.AR12.15

Systemmerker
mit CX-Programmer anzeigen
Globale
Symbole

HR-Speicherbereich C-Serie
Haftmerker-Bereich HR:
enthlt remanente (spannungsausfallsichere) Arbeitsmerker
Wort- z.B.HR15 oder Bitadresse z.B.HR15.15

10

LR-Speicherbereich C-Serie
Schnittstellenbereich LR fr 1:1-SPS-Kommunikation:
enthlt remanente (spannungsausfallsichere) Merker
Wort- z.B.LR15 oder Bitadresse z.B.LR15.05
mit spez. Funktionen nicht belegte Adressen als Arbeitsmerker benutzbar

11

TC-Speicherbereich C-Serie
Zeitgeber/Zhler-Bereich TC:
bei C__-Steuerungen mssen Zeitgeber und Zhler unterschiedliche Nummern
haben, da sie im gleichen Bereich TC liegen, bei CS1 sind gleiche Nr. zulssig
Timeristwert- z.B. Wort TC254, Zeit abgelaufen-Bitadresse TIM254
Zhleristwert- z.B. Wort CNT255, Zhler abgelaufen-Bitadresse CNT255
Zhler-Istwerte sind remanent (spannungsausfallsicher)

12

DM-Speicherbereich C-Serie
Datenmerker-Bereich DM fr Daten, Parameter, Werte:
nur wortweiser Datenzugriff, z.B. DM2047
Schreib/Lese-Bereich (DM0000-),
nur Lese-Bereich (DM6144-DM6599), Daten vom Programm nur lesbar
SPS-Setup -Bereich (DM6600-DM6655) speichert Steuerparameter des SPS-Betrieb
DM sind remanent (spannungsausfallsicher)

13

Erweiterter Datenmerker-Speicherbereich
C-Serie

Der EM-Bereich ist nur bei CQM1H-CPU61, C200HG, C200HX vorhanden:


EM-Bereich fr Daten, Parameter, Werte
nur wortweiser Datenzugriff, z.B. EM6143 fr die Bank EM0
EM sind remanent (spannungsausfallsicher)

14

Adressbereiche CS1
Timer
Zhler
remanent

Systemmerker
Index-Register

Datenregister

Task-Merker

Datenworte,
remanent

Haftmerker

ErweiterungsDatenworte,
remanent

15

Ein-/Ausgnge,
Arbeitsmerker

Arbeitsmerker

CIO-Speicherbereich CS1
Ein-/Ausgnge, Arbeitsmerker
Wort- z.B.126 oder Bitadresse z.B.126.11

16

E/A-Tabelle ffnen CS1,


C200H_

Bei der CS1 ist es erforderlich, die E/A-Tabelle zu erstellen


E/A-Tabelle stellt die Abbildung der Konfiguration im CIO-Bereich dar
ffnen der E/A-Tabelle mit Doppelklick auf E/A-Tabelle im Projekt

17

E/A-Tabelle erstellen CS1,


C200H_

CX-Programmer zeigt die Adressenzuweisung der Baugruppen in der SPS-Konfiguration an,


nachdem die E/A-Tabelle in der Programm-Stop-Betriebsart online erstellt wurde.

Schnelle Zhler-Baugruppe:
Steckplatz 02,
Anfangsadresse 2050

18

Systemmerker-Speicherbereich
CS1

Systemmerkerbereich A enthlt Merker zur berwachung und Steuerung des SPS-Betriebs:


Fehlermerker, Zykluszeit-Merker, Echtzeit-Merker .
Wort- z.B.A264 oder Bitadresse z.B.A200.11
nur lesbar A000 bis A447, lesbar/schreibbar A448 bis A959

19

Haftmerker-Speicherbereich CS1
Haftmerker-Bereich H:
enthlt remanente (spannungsausfallsichere) Arbeitsmerker
Wort- z.B.H511 oder Bitadresse z.B.H511.15

20

Arbeitsmerker-Speicherbereich
CS1

Arbeitsbereich W:
Wort- z.B.W511 oder Bitadresse z.B.W511.11

21

Zeitgeber-Speicherbereich CS1
Zeitgeber-Bereich T:
empfehlenswert ist, unterschiedliche Nummern unterschiedlichen Zeitgeberarten zu geben
Timeristwert- z.B. Wort T4095 , Zeit abgelaufen-Bitadresse T4095

22

Zhler-Speicherbereich CS1
Zhler-Bereich C:
empfehlenswert ist, unterschiedliche Nummern unterschiedlichen Zhlerarten zu geben
Zhleristwert- z.B. Wort C4095 , Zhler abgelaufen-Bitadresse C4095
Zhler-Istwerte sind remanent (spannungsausfallsicher)

23

Datenmerker-Speicherbereich
CS1

Datenmerker-Bereich D fr Daten, Parameter, Werte:


nur wortweiser Datenzugriff, z.B. D32767
D sind remanent (spannungsausfallsicher)

24

Erweiterter Datenmerker-Speicherbereich
CS1
Bereich EM ist nur bei CS1G-CPU44, -CPU45, CS1H-CPU64 und hher vorhanden:
Bereich EM fr Daten, Parameter, Werte
nur wortweiser Datenzugriff, z.B. E2_32767 fr die Bank E2
EM sind remanent (spannungsausfallsicher)

25

Index-Register-Speicherbereich
CS1

mit IR werden Ein-/Ausgangsworte indirekt adressiert, IR stellt den Zeiger dar


nur wortweiser Datenzugriff, z.B. IR14

26

Datenregister-Speicherbereich
CS1

mit DR werden Ein-/Ausgangsworte indirekt adressiert, DR-stellt den Versatz dar (IR +DR)
nur wortweiser Datenzugriff, z.B. DR15

27

Taskmerker-Speicherbereich CS1
Taskmerker-Bereich TK:
Taskmerker aktivieren/deaktivieren Tasks -Programmteile
Taskmerker benutzen Konstanten #00 bis #31, z.B. TK31

28

Bit instrukcije
Specifinosti kod programiranja
Konstanta: #10, ali je adresa: 10
Bit-Adresa primjer: 10.15, HR05.12
Rije-Adresa: 10, HR05, DM 1002

Sa prefiksom @, u instrukciji, imamo rising edge egzekuciju

29

ffner-/Schliesser-Kontakt und
Ausgang
Ako je ukjluen ulaz 0.00, pali se motor

30

Ako je start ukljueno, stop


iskljjueno, motor ce raditi sve dok se
ne pritisne stop

KEEP, SET, RSET-Befehle


Selbsthaltung mit KEEP
Wenn Bit Start EIN, dann
Motor auf EIN setzen.
Wenn Bit Stop EIN, dann
Motor auf AUS zurcksetzen.

31

oder mit SET, RSET

DIFU, DIFD-Befehle
DIFU
Rising edgeDIFU za jedan ciklus je ON

Eingang
Dif_U
Zykluszeit

DIFD
Falling edge za jed.....

Eingang
Dif_D
Zykluszeit

32

Daten online berwachen


SPS in die Monitor-Betriebsart umschalten

Programmausfhrung online berwachen

Datenansicht:

Mit rechter Maustaste


ins Datenansichtsfenster klicken und
hinzufgen whlen...
Werte online berwachen:

33

bung: ImpulsrelaisFunktion

Impulsrelais=Stromsto-Schaltung

Taster

SPS

K1

NAPRAVITI PRIMJER

K1

Taster
Lampe

34

Lampe

bungslsung: ImpulsrelaisFunktion

primjer napravljen

Achten Sie auf die richtige Adressenzuweisung im Programm, je nach SPS-Typ.


Z.B.:
CPM2

Taster - 0.00
Lampe- 10.00
CQM1H Taster - 0.00
Lampe- 100.15
CS1
entsprechend dem Aufbau, erstellter E/A-Tabelle. Sehen Sie dazu
die Folie E/A Tabelle erstellen
Benutzen Sie einen Hilfsmerker im DIFU-Befehl,
z.B. DifU_Bit = 224.00 fr CPM2, CQM1H;
W0.00 fr CS1.

35

Zeitgeber
PRIMJER Timer - Einschaltverzgerung.
Der Befehl TIM stellt die Einschaltverzgerung dar.
Wenn Eingang EIN, dann luft der Zeitgeber.
Wenn die Zeit abgelaufen, dann Bit TIM001 EIN.
Eingang
Ausgang
ZeitSollwert

36

ZeitSollwert

Programmbeispiel
Ako je start ON, stof off,
samodranje>motor ukljuen

Ako je motor ukljuen, pokree se tajmer

Kada vrijeme istekne ukljuuje se ventilator

Ako motor radi, ventilator neradi, lampa


blica u intervalima 1sec
Ako motor radi , ventilator radi, lampa
blice u intervalima 0.2sec

37

Umjesto samodravanj koristimo


KEEP

Ako se start pritisne, ukljucuje se motor

Kada motor radi , uklucuje se timer 10sec

Wenn die Zeit abgelaufen,


dann Bit TIM01 EIN und Lfter luft.
Wenn Motor luft und Lfter nicht luft,
dann blinkt der Blinker im 1 Sek-Takt.
Wenn Motor luft und Lfter luft,
dann blinkt der Blinker im 0,2 Sek-Takt.

38

On-Delay po pritisku
Speichernde Einschaltverzgerung.
Wenn Eingang EIN gewesen ist, dann luft die Zeit.
Wenn die Zeit abgelaufen ist, dann wird Ausgang EIN
und bleibt, bis RESET EIN wird.
Eingang
Ausgang
RESET

ZeitSollwert

ZeitSollwert

Im abgebildeten Programmbeispiel werden Symbolen Eingang, ,RESET Adressen


aus dem Eingangsbereich der SPS; dem Ausgang- aus dem Ausgangsbereich
zugewiesen. Der Merker besitzt eine beliebige Hilfsmerker-Adresse.
Der Timer2 ist hier auf 2,5 sek eingestellt.

39

Impuls odreen unesenim


vremen.
Impuls.
Wenn Eingang EIN, dann Ausgang EIN bis
die Zeit abgelaufen ist oder Eingang AUS wird.
Der Timer3 ist in dem Beispiel auf 2 sek eingestellt.

Eingang
Ausgang
ZeitSollwert

40

bung: verlngerter Impuls


(Monoflop)
Verlngerter Impuls (Monoflop, One-Shot).
Wenn Eingang EIN gewesen ist, dann bleibt
Ausgang EIN, bis die Zeit abgelaufen ist.
- Programmieren Sie diese Funktion, indem
Sie das Programm fr Impuls geringfgig ndern.

Eingang
Ausgang

41

ZeitSollwert

ZeitSollwert

Moe i na ovaj nain, ako je ulaz pulsni, npr.


DIFU

Verlngerter Impuls (Monoflop, One-Shot).


Die Funktion ist hier auf 2 sek eingestellt.

42

Off delay
Ausschaltverzgerung.
Wenn Eingang EIN gewesen ist, dann bleibt
Ausgang EIN, bis die Zeit abgelaufen ist.
Die Ausschaltverzgerung betrgt hier 2 sek.

Eingang
Ausgang
ZeitSollwert

43

ZeitSollwert

bung: Impulsgenerator
Impulsgenerator.
Die Pulsausgabe erfolgt solange der Eingang EIN ist.
Programmieren Sie die Impulsausgabe mit 2 Timern,
die die hier dargestellten Puls-Pause-Parameter hat.

Eingang
Ausgang
1,5 s 1,0 s
TIM006 TIM007
(Einstellwerte)

44

Twin timer
Impulsgenerator.
Die Pulsausgabe erfolgt solange der Eingang EIN ist.
Eingang
Ausgang
1,5 s 1,0 s
TIM006 TIM007
(Einstellwerte)

45

broja
Zhl-Eing.
RESET-Eing.

Zhler CNT
Einstellwert als Konstante #09999 oder Adresse.
Mit RESET wird der Zhler aktiviert, indem
der Einstellwert aufs Istwert-Wort CNT__
geschrieben wird. Istwert ist remanent.

Beispiel:
Zhleingang - 0.00, RESET-0.06,
CNT003, Einstellwert DM238

46

Broja naprijed/nazad
II
DI
R

Aufwrts-/Abwrts-Zhler CNTR
Einstellwert als Konstante #09999 oder Adresse.
Der CNTR-Istwert wird durch II inkrementiert,
durch DI dekrementiert. Istwert ist remanent.
R stellt den CNTR-Istwert auf 0000 ein.
CNTR ist ein Ringzhler, z.B. bei Einstellwert #3617:
Aufwrts(II) 3616, 3617, 0000, 0001
Abwrts(DI) 0001, 0000, 3617, 3616 ...

47

Usporedba, moe i >,<,= ili


skupa
Vergleich CMP, @CMP
Nach CMP-Ausfhrung wird einer der folgenden
Systemmerker gesetzt:
P_GT, wenn Vergleichsdaten 1 > Vergleichsdaten 2
P_EQ, wenn Vergleichsdaten 1 = Vergleichsdaten 2
P_LT, wenn Vergleichsdaten 1 < Vergleichsdaten 2.
@

48

@CMP -flankengetriggerte Form, wie DIFU + CMP.


@CMP wird bei steigender Flanke der Vorbedingung
einmal ausgefhrt; CMP-jeden Zyklus, wenn die Vorbedingung EIN ist.

Parking garaa
Program a parking garage for 3 parking spaces.
If a car comes to the entrance, on the one Lichtschranke_Einfahrt 'ON, the
, Schranke_Einfahrt 'is opened. If the car has passed through the entrance, is the
'Light barrier,''Einfahrt_vorbei ON, which, Schranke_Einfahrt' closes.
If a car anfhrt to the car park exit, turn those Lichtschranke_Ausfahrt 'ON
and, Schranke_Ausfahrt opens' itself. When the car at the light barrier, Ausfahrt_vorbei '
passes, does the, Schranke_Ausfahrt '.
The states are free and busy with traffic signals, red 'and' green 'is displayed in, red' is
those Schranke_Einfahrt 'not to.
Use in the KEEP program, CNTR, CMP commands.
Sample assignment for CPM2:
Inputs: 000.05 fotoelija ulaza '
000.06 - light barrier, driveway/ulaz past/proao
000.07 fotoelia izlaz
000.08 - light barrier, exit past '
Outputs: 010.00 -, Green 'free-parking
010.01 - Red '- all the parking spaces occupied
010.05 barijera ulaza'
010.07 barijera izlaza'

49

bungslsung: Parkhaus
German to English translation
English
Spanish
Arabic
Sample assignment for CPM1A, CPM2:
Inputs: 000.05 - photocell driveway '
000.06 - light barrier, driveway past
000.07 - Photocell exit '
000.08 - light barrier, exit past '
Outputs: 010.00 - Green 'parking free
010.01 - Red 'parking spaces occupied
010.05 - entry barrier '
010.07 - exit barrier '
Where the number is still free parking can be read?
Monitor the program sequence.

50

Data transfer
MOV(21)

Data transfer MOV, MOV @


MOV transmits the source word (or constant) to the address that goal. '
MOV @ edge-form, as DIFU + MOV.
@ MOV is at the leading edge of the prerequisite
executed;
MOV each cycle when the condition is ON.

51

Daten bertragen
MOV(21)

Daten bertragen mit @MOV, z.B. in der CPM2:


@ MOV bertrgt hier einmalig den Wert #FFFF auf das
Ausgangswort 10, nachdem der Eingang Einstellung mit
Adresse 0.00 auf EIN gesetzt wurde.
(Alle LEDs fr 10CH auf der CPM2 leuchten).
Geben Sie im Programm anstatt #FFFF auch andere
Werte ein. ndern Sie das Programm am schnellsten,
indem Sie Netzwerke online editieren im CXProgrammer einstellen (Vorsicht in der Praxis!).

52

Daten bertragen
MOV(21)

Daten bertragen mit MOV, z.B. in der CQM1H:


MOV bertrgt hier das Eingangswort 1 auf das
Ausgangswort 100, wenn der Eingang Kopieren mit
Adresse 0.01 auf EIN gesetzt wird.
(Kontrollieren Sie die Anzeigen fr CH001 und CH100
auf der SPS; Anmerkung: CH=Wort).
Man kann den Merker Kopieren durch den P_OnSystemmerker fr die stndige Datenbertragung
ersetzen.

53

increment/decrementINC(38)/DEC(39)

BCD-Inkrementieren INC(38), @ INC(38)


BCD-Dekrementieren DEC(39), @ DEC(39)
@INC/@ DEC -flankengetriggerte Form, wie DIFU + INC/ DEC .
@INC/@ DEC wird bei steigender Flanke der Vorbedingung
ausgefhrt;
INC/DEC -jeden Zyklus, wenn die Vorbedingung EIN ist.

54

Zbrajanje, oduzimanje
Addition ADD(30), Subtraktion SUB(31)
ADD(30)/@ADD(30)
zwei BCD-Werte (Konstante,Wort) und berlaufmerker
P_CY werden addiert.
Beim berlauf, wenn Ergebnis >9999, wird P_CY gesetzt.
Wenn Ergebnis 0, wird Gleich-Merker P_EQ gesetzt.

SUB(31)/@SUB(31):
vom Operand 1 wird Operand 2 und berlaufmerker P_CY
abgezogen. Ergebnis wird in die Adresse Ergebnis
geschrieben.
Wenn Ergebnis negativ, wird P_CY gesetzt.
Wenn Ergebnis 0, wird Gleich-Merker P_EQ gesetzt.

55

Mnoenje MUL(32), Dijeljenje


DIV(33)
MUL(32)/@MUL(32):
Operand 1 und Operand 2 werden multipliziert. Das Ergebnis
belegt zwei Worte.
Wenn bertrag, wird P_CY gesetzt.
Wenn Ergebnis 0, wird Gleich-Merker P_EQ gesetzt.

DIV(33)/@DIV(33):
Operand 1 wird durch Operand 2 geteilt. Das Ergebnis belegt
zwei Worte: 3.Operand-Quotient, nchstes Wort beinhaltet
Rest der Division.
Wenn bertrag, wird P_CY gesetzt.
Wenn Ergebnis 0, wird Gleich-Merker P_EQ gesetzt.

56

Kalkulator
Example of a constant (condition-P_On flag) adding two BCD values,
DM100 and DM101, DM102, with results in the right.
For a correct calculation must be set before the ADD command, the
overflow flag P_CY with CLC command to 0.
Write a "calculator" program in which to set the input "+", "-", "x", "/"
corresponding operations are performed with two DM. Observe the
result.

57

Solution: calculator
Test the programmed functions by typing in DM100 and DM101 values
and initiate the calcu-lations with appropriate inputs.

[/]

Results of the MUL and DIV command executions are here in DM102
and DM103.
Watch e.g. In the Data View window:

[+]

[-]

[x]

[/]

58