Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Befehle in der Kontaktplan-Programmierung

Ähnliche Präsentationen


Präsentation zum Thema: "Befehle in der Kontaktplan-Programmierung"—  Präsentation transkript:

1 Befehle in der Kontaktplan-Programmierung
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

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.

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. Das Netzwerk zum Rücksetzen enthält den gleichen Ausgang aber mit der „Rücksetzen-Befehl“-Option.

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. Steigende Flanke Zykluszeit Fallende Flanke Zykluszeit

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.. Steigende Flanke Fallende Flanke Zykluszeit Zykluszeit

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 Taster Lampe

8 Übungslösung: Impulsrelais-Funktion
Wenn Kontakt Taster mit steigender Flanke und Kontakt Lampe negiert dann Set-Eingang des RS-Flip-Flops der Lampe und Kontakt Lampe dann Reset-Eingang des RS-Flip-Flops der Lampe

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 Sollwert Zeit- 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

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 Sollwert Zeit- 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.

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. Eingang Ausgang Sollwert Zeit- 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.

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. Ausgang Eingang Sollwert Zeit- 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.

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

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.

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“.

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:

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. 1 2 3 In[ ] AryOut[ ] Size(Größe)=3 100 200 300 400 Beispiel: 4 5 6 600 500 700

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. In AryOut[ ] Size (Größe)=3 100 1 2 3 4 5 6

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.

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)

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 = ?!

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. Grundlegende Typumwandlungen IEC Typumwandlungen Andere Typumwandlungen **_TO_** z.B.: INT_TO_DINT INT_TO_REAL TO_** z.B.: TO_DINT TO_REAL TRUNC Round Roundup RealToFormatString LrealToFormatString

23 Grundlegende Datentyp-Umwandlung
Nebenstehend ein Beispiel und die Datentyp-Schlüsselworte mit denen die verschiedenen Wandlungsfunktionen gebildet werden können. BYTE WORD DWORD LWORD USINT UINT UDINT ULINT SINT INT DINT LINT REAL LREAL STRING *** _TO_

24 Beispiel Datentyp-Umwandlung
Werte werden gerundet, wenn die Anzahl der Stellen nicht durch die Gleitkommazahl dargestellt werden kann. [Integer] _TO_ [Real] DINT#10#12345 REAL#10#12345

25


Herunterladen ppt "Befehle in der Kontaktplan-Programmierung"

Ähnliche Präsentationen


Google-Anzeigen