1 logik-programm(2) befehle in der kontaktplan-programmierung
TRANSCRIPT
![Page 1: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/1.jpg)
1
Logik-Programm(2)
Befehle in der Kontaktplan-Programmierung
![Page 2: 1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062307/55204d8249795902118d5eb4/html5/thumbnails/25.jpg)
25