Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung."—  Präsentation transkript:

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

2 2 Logik-Programm(2)-Befehle Übersicht: Bit-Befehle Zeitgeber Zähler Vergleiche Daten kopieren Inkrementieren / Dekrementieren Arithmetische Befehle Datentyp umwandeln

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

5 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 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 Zykluszeit Fallende Flanke Zykluszeit

7 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

8 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

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

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

13 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 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 15 Datenvergleichs-Funktionen (“I”) Es gibt zahlreiche Vergleichsfunktionen, die die Daten miteinander vergleichen. EQ (=)Equal gleich NE(<>) Not Equalungleich LT(<) Less Thankleiner LE(<=)Less or Equalkleiner gleich GT(>)Greater Thangrößer GE(>=)Greater or Equalgrößer gleich Wenn die Vergleichsbedingung erfüllt ist, ist der „Strompfad“ bzw. die Ausführungsbedingung „EIN“.

16 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 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 In[ ] AryOut[ ] Size(Größe)= Beispiel:

18 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)=

19 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 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 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 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 Typumwandlungen TO_** z.B.: TO_DINT TO_REAL TO_** z.B.: TO_DINT TO_REAL Andere Typumwandlungen IEC Typumwandlungen

23 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_ BYTE WORD DWORD LWORD USINT UINT UDINT ULINT SINT INT DINT LINT REAL LREAL STRING

24 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 25


Herunterladen ppt "1 Logik-Programm(2) Befehle in der Kontaktplan-Programmierung."

Ähnliche Präsentationen


Google-Anzeigen