25
1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

Embed Size (px)

Citation preview

Page 1: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

1

Logik-Programm(2)

Befehle in der Kontaktplan-Programmierung

Page 2: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

2

Logik-Programm(2)-Befehle

Übersicht:

• Bit-Befehle

• Zeitgeber

• Zähler

• Vergleiche

• Daten kopieren

• Inkrementieren / Dekrementieren

• Arithmetische Befehle

• Datentyp umwandeln

Page 3: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

3

RS-Flip-Flop(KEEP)

• Das RS(-Flip-Flop) ist ein Standard-FB und hat die gleiche Funktion wie bei

der CJ der KEEP-Befehl oder eine Selbsthaltung.

• Er braucht einen Instanznamen.

• Der Ausgang Q1 wird durch den Set-Eingang gesetzt und bleibt gesetzt,

auch wenn der Set-Eingang wieder weggeht. Er wird erst wieder

zurückgesetzt, wenn der Reset-Eingang angeht.

Page 4: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

4

SET, RSET-Option

• Die Selbsthaltung kann man auch mit 2 Netzwerken

programmieren.

• Das erste enthält einen Ausgang, bei dem mit rechter Maustaste

die „Setzen-Befehl“-Option ausgewählt wird.

• Die Selbsthaltung kann man auch mit 2 Netzwerken

programmieren.

• Das erste enthält einen Ausgang, bei dem mit rechter Maustaste

die „Setzen-Befehl“-Option ausgewählt wird.

• Das Netzwerk zum Rücksetzen enthält den gleichen Ausgang aber

mit der „Rücksetzen-Befehl“-Option.

• Das Netzwerk zum Rücksetzen enthält den gleichen Ausgang aber

mit der „Rücksetzen-Befehl“-Option.

Page 5: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

5

Flankengesteuerte Ausführung

• Kann als Eigenschaft eines Kontakts

ausgewählt werden.

• Kontakt markieren, rechte Maustaste

und dann z.B. „Ausführung bei

steigender Flanke“ auswählen.

SteigendeFlanke

Zykluszeit

FallendeFlanke

Zykluszeit

Page 6: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

6

Flanken-FBs R_TRIG und F_TRIG

• Außerdem gibt es die Standard FBs

R_TRIG (rising edge) und F_TRIG (falling edge) .

• Als FB brauchen sie einen Instanznamen..

SteigendeFlanke

Zykluszeit

FallendeFlanke

Zykluszeit

Page 7: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

7

Übung: Impulsrelais-Funktion

• Programmieren Sie eine Stromstoß-Schaltung für einen SPS-Ausgang mit symbolischem Namen ‚Lampe‘.

• Mit ‚Taster‘ wird die ‚Lampe‘ abwechselnd ein- und ausgeschaltet.

• Benutzen Sie im Programm ein Eingangs-Kontakt mit Flankenauswertung und den RS-FB.

• Weisen Sie bitte den Symbolen ‚Taster‘ und ‚Lampe‘ jeweils einen Ein- und eine Ausgang des Controllers zu.

Taster K1

Lampe

Controller

K1

Taster

Lampe

Page 8: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

8

Übungslösung: Impulsrelais-Funktion

• Wenn Kontakt Taster mit steigender Flanke

• und Kontakt Lampe negiert

• dann Set-Eingang des RS-Flip-Flops der Lampe

• Wenn Kontakt Taster mit steigender Flanke

• und Kontakt Lampe

• dann Reset-Eingang des RS-Flip-Flops der Lampe

Page 9: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

9

100ms – Zeitgeber: Timer

• Außer den IEC-kompatiblen Timern, die

nachfolgend besprochen werden, gibt es

noch einen Zeitgeber, der kompatibel zur

CJ-Serie ist:

• Timer ist eine Funktion und wird mit „I“

aufgerufen.

Eingang

Ausgang

SollwertZeit-

SollwertZeit-

• Timer ist eine Einschaltverzögerung

• Wenn ‚Eingang‘ EIN, dann läuft der Zeitgeber.

• Wenn die Zeit abgelaufen, dann schaltet der Ausgang auf EIN.

• PT:= Timer Sollwert, z.B. UINT#20 für 20 x 100 ms

Page 10: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

10

IEC-kompatibler Timer TON

• Alle IEC-kompatiblen Timer sind

Standard-Funktionsblöcke und werden

mit Taste “F“ aufgerufen und benötigen

einen Instanznamen.Eingang

Ausgang

SollwertZeit-

SollwertZeit-

• TON ist eine Einschaltverzögerung

• Wenn ‚Eingang‘ EIN, dann läuft der Zeitgeber.

• Wenn die Zeit abgelaufen, dann schaltet der Ausgang auf EIN.

• PT:= Timer Sollwert, z.B. T#2s für 2 Sekunden.

• ET heißt elapsed Time und zeigt optional die abgelaufene Zeit.

Page 11: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

11

IEC- Timer TOF: Ausschaltverzögerung

• Alle IEC-kompatiblen Timer sind

Standard-Funktionsblöcke und werden

mit Taste “F“ aufgerufen und benötigen

einen Instanznamen.

• TOF ist eine Ausschaltverzögerung

• Wenn ‚Eingang‘ EIN, gewesen ist, und ausgeht,

• dann bleibt ‚Ausgang‘ EIN, bis die Zeit abgelaufen ist..

• PT:= Timer Sollwert, z.B. T#2s für 2 Sekunden.

• ET heißt elapsed Time und zeigt optional die abgelaufene Zeit.

Eingang

Ausgang

SollwertZeit-

SollwertZeit-

Page 12: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

12

IEC- Timer TP: verlängerter Impuls

• Alle IEC-kompatiblen Timer sind

Standard-Funktionsblöcke und werden

mit Taste “F“ aufgerufen und benötigen

einen Instanznamen.

• TP ist ein Monoflop

• Wenn ‚Eingang‘ EIN geht,

• dann geht ‚Ausgang‘ EIN, bis die Zeit abgelaufen ist..

• PT:= Timer Sollwert, z.B. T#2s für 2 Sekunden.

• ET heißt elapsed Time und zeigt optional die abgelaufene Zeit.

Ausgang

Eingang

SollwertZeit-

SollwertZeit-

Page 13: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

13

Akkumulierende Einschaltverzögerung

• Wenn ‚Eingang4‘ EIN ist läuft die Zeit.

• Wenn ‚Eingang4‘ weggeht macht der

Timer nur eine ‚Pause‘.

• Wenn die Zeit abgelaufen ist, wird das

Timerbit gesetzt..

• Das Timer-Fertig-Bit wird erst

mit dem Reseteingang wieder

zurückgesetzt

Page 14: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

14

IEC-kompatible Zähler: CTU, CTD, CTUD

• Alle IEC-kompatiblen Zähler sind

Standard-Funktionsblöcke und werden

mit Taste “F“ aufgerufen und benötigen

einen Instanznamen.

• CTU = Count Up, CTD = Count Down ist kompatibel mit dem CJ-Befehl CNT

• CTUD ist ein Aufwärts- Abwärts-Zähler und ähnlich dem CJ-Befehl CNTR

• Mit der positiven Flanke am Eingang „CU“ zählt der Zähler hoch.

• Mit dem Eingang „Reset“ wird der Zähler auf 0 zurückgesetzt.

• PV = Preset Value ist der Sollwert, bei dem der Ausgang „Q“ angeht.

• CV = Counter Value ist der aktuelle Zählerstand.

Page 15: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

15

Datenvergleichs-Funktionen (“I”)

• Es gibt zahlreiche Vergleichsfunktionen, die die Daten miteinander vergleichen.

• EQ (=) Equal gleich

• NE(<>) Not Equal ungleich

• LT(<) Less Than kleiner

• LE(<=) Less or Equal kleiner gleich

• GT(>) Greater Than größer

• GE(>=) Greater or Equal größer gleich

• Wenn die Vergleichsbedingung erfüllt ist, ist der „Strompfad“ bzw. die

Ausführungsbedingung „EIN“.

Page 16: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

16

Daten kopieren: MOVE

• Die MOVE- Funktion („I“) kopiert die

Werte aus der „In“-Variable in die „Out“-

Variable.

• Während bei der CJ nur ein Wort kopiert

wurde, gehen bei der NJ alle

Datentypen, sogar Array-Elemente und

Variablen mit benutzerdefinierten

Datentypen (Strukturen)

• z.B. alle Bits in einem Wort setzen:

Page 17: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

17

Daten kopieren: MemCopy

• Diese Funktion ist ähnlich dem CJ-

Befehl XFER.

• Da es bei der NJ aber keine Adressen

mehr gibt, werden hier Array-Inhalte

kopiert. 0123

In[ ]In[ ]

AryOut[ ]AryOut[ ]

Size(Größe)=3

100200300400

0123

200300 100 0

Beispiel:

456

00 0

456

600 500700

Page 18: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

18

Daten vorbesetzen: SetBlock

• Diese Funktion ist ähnlich dem CJ-

Befehl BSET.

• Da es bei der NJ aber keine Adressen

mehr gibt, werden hier Array-Inhalte

vorbesetzt.InIn

AryOut[ ]AryOut[ ]

Size (Größe)=3

100

0123

100100 100 0 00 0

456

Page 19: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

19

Variablen bzw. Arrays initialisieren: Clear

• Wenn man ein ganzes Array löschen will

braucht man nicht die SetBlock-Funktion

benutzen, sondern kann mit Clear alles

schneller löschen.

• Ist ein Initialwert festgelegt, wird die

Variable bei „InOut“ auf den Initialwert

zurückgesetzt, sonst auf Null.

Page 20: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

20

Inkrementieren=Inc, Dekrementieren=Dec

• Diese Funktionen sind gleich den CJ-

Befehlen ++ und --, aber funktionieren

für verschiedene Datentypen.

• Inc addiert 1 zu der Variable

(Inkrementieren)

• Dec subtrahiert 1 von der Variable

(Dekrementieren)

Page 21: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

21

Arithmetik: Add +, Sub -, Mul *, Div /

• Diese Funktionen sind gleich den CJ-Befehlen

+, -,* und / aber funktionieren für verschiedene

Datentypen und + und * mit mehreren

Eingangsvariablen gleichzeitig.

• Add oder + Addieren

• Sub oder - Subtrahieren

• Mul oder * Multiplizieren

• Div oder / Dividieren

• Als Datentyp nicht INT sondern DINT nehmen:

200 * 200 = -25536 ?!

Page 22: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

22

Datentyp umwandeln/konvertieren

• Variablen in der NJ haben einen festen Datentyp. Verarbeitung von Variablen

mit unterschiedlichen Datentypen mit einer Funktion ist meistens nicht

möglich. Die Datenwerte müssen in ihrem Datentyp daher oft gewandelt

werden.

**_TO_**

z.B.:

INT_TO_DINT

INT_TO_REAL

**_TO_**

z.B.:

INT_TO_DINT

INT_TO_REAL

TRUNC

Round

Roundup

RealToFormatString

LrealToFormatString

TRUNC

Round

Roundup

RealToFormatString

LrealToFormatString

Grundlegende TypumwandlungenGrundlegende Typumwandlungen

TO_**

z.B.:

TO_DINT

TO_REAL

TO_**

z.B.:

TO_DINT

TO_REAL

Andere TypumwandlungenAndere Typumwandlungen

IEC6113-3 TypumwandlungenIEC6113-3 Typumwandlungen

Page 23: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

23

Grundlegende Datentyp-Umwandlung

• Nebenstehend ein

Beispiel und die

Datentyp-Schlüsselworte

mit denen die

verschiedenen

Wandlungsfunktionen

gebildet werden können.

BYTEWORDDWORDLWORD

USINTUINTUDINTULINT

SINTINTDINTLINT

REALLREAL

STRING

*** ***_TO_

BYTEWORDDWORDLWORD

USINTUINTUDINTULINT

SINTINTDINTLINT

REALLREAL

STRING

Page 24: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

24

Beispiel Datentyp-Umwandlung

• Werte werden gerundet, wenn die Anzahl der Stellen nicht durch die

Gleitkommazahl dargestellt werden kann.

[Integer] _TO_ [Real]

DINT#10#12345DINT#10#12345 REAL#10#12345REAL#10#12345

Page 25: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung

25