Befehle in der Kontaktplan-Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

PC-Senioren Ludwigsburg
Ausführen.
Eine dynamische Menge, die diese Operationen unterstützt,
Zusammenfassung der Vorwoche
Strukturierter Text.
Kapselung , toString , equals , Java API
10. Grundlagen imperativer Programmiersprachen
Datentechnik13. Übung THS, 22.November 2006 Testen hochintegrierter Schaltungen Übung 3: SCOAP-Algorithmus (sequentiell) Ralph Weper.
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Referenzen und Zeichenketten
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Dynamisches Array als "verkettete Liste". Ein Vergleich.
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Technische Informatik I (SS 2006) Teil 1: Logik 1b: Schaltnetze.
Rechneraufbau & Rechnerstrukturen, Folie 5.1 © 2006 W. Oberschelp, G. Vossen.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Diskrete Mathematik I Vorlesung Arrays-
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Zusammenfassung Vorwoche
Torsteuerung Entwicklung der Logik.
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
2.2 Definition eines Datenbankschemas (SQL-DDL)
Der Simple As Possible Computer
Wichtige Fachausdrücke in C
© Gabriele Sowada © Gabriele Sowada 2 Zählschleife Beispiel 3 demonstriert die Implementation einer Zählschleife, einer häufig.
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Steuerung externer Komponenten über ein USB-Interface.
OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Basisinformationstechnologie HK-Medien
Grundlagen der Programmierung mit Strukturiertem Text
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Polynome und schnelle Fourier-Transformation
3.3 Speicher Latches SR-Latch 1-bit Speicher S Q Q R Q Q
1 SR-Latch 3.3 Speicher Latches © Béat Hirsbrunner, University of Fribourg, Switzerland, 31. Oktober 2007 S Q Q R Q Q 1-bit Speicher.
3.3 Speicher Latches (1/4) SR-Latch S Q Q R Q Q
© Béat Hirsbrunner, University of Fribourg, Switzerland
Programmierung nach IEC 61131
EASY-Anwendung.
Speichern von Informationen
MODULA-2.
Signalverzögerung Einschalt und Ausschaltverzögerung (Bsp. Steuerung von Waschmaschine, Durchlauferhitzer) Anwendungsbeispiel Netzwerke.
DATEISPEICHER in der S P S
Meldungen über Ethernet mit FINS/UDP
Logik-Programm-Erstellung
Programmieren in C Grundlagen C 2
Seite 1 Technische Informatik II (INF 1211) – Kurzfragenteil (Ohne Unterlagen) Am Prof. W. Adi Zeit: (20 Minuten) Bitte schreiben Sie die Lösung.
Zeichenketten in PASCAL
1 Erstellung von Funktionen und FBs Inklusive der Erstellung einer Library.
Formulare in HTML.
Schutzvermerk nach DIN 34 beachten 16/04/15 Seite 1 A200 XSoft für Umsteiger.
X. Übungsblatt – Aufgabe X In dieser Aufgabe sollen die Eigenschaften ausgesuchter Flipflopschaltungen untersucht werden. Die Verzögerungszeit eines jeden.
Tutorium Software-Engineering SS14 Florian Manghofer.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Konstruktoren.
 Präsentation transkript:

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

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

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.

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.

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

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

Ü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

Ü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

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

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.

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.

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.

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

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.

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

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:

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

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

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.

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)

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

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

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_

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