59
SPS-Programmierung (Schulungs-Präsentation) Teil 2

SPS-Programmierung (Schulungs-Präsentation) Teil 2

Embed Size (px)

Citation preview

Page 1: SPS-Programmierung (Schulungs-Präsentation) Teil 2

SPS-Programmierung

(Schulungs-Präsentation)

Teil 2

Page 2: SPS-Programmierung (Schulungs-Präsentation) Teil 2

2222Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRON

*In dieser Präsentation werden Funktionen beschrieben, die durch Verwendung der letzen, aktuellen Software CX-Programmerzum Vorschein kommen.

E/A-Adressen CJ28

Funktionsblock44

Skalierung mit FB50

Schrittkette mit SET / RSET 61

IndirekteAdressierung:@ 66

Arrays71

FOR / NEXT72

Schrittkettemit STEP/SNXT 63

BenutzerdefinierteDatenstrukturen 75

Adressbereiche CJ3

Themenübersicht Themenübersicht Themenübersicht Themenübersicht

Page 3: SPS-Programmierung (Schulungs-Präsentation) Teil 2

3333Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONSpeicher in der CPU-BaugruppeSpeicher in der CPU-BaugruppeSpeicher in der CPU-BaugruppeSpeicher in der CPU-Baugruppe

• Anwenderprogr. = UM (user memory)

• Backup (Flash)• SPS-Einstellungen

und Parameter• Datenspeicher (E/A

und DM und EM)• CF-Speicherkarte• FB-Source-Code-

Speicher• CJ2M-FB-Speicher

Page 4: SPS-Programmierung (Schulungs-Präsentation) Teil 2

4444Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONAdressbereiche anzeigenAdressbereiche anzeigenAdressbereiche anzeigenAdressbereiche anzeigen

• Zur Ansicht aller, für die gegebene SPS verfügbaren Speicherbereiche, bitte mit dem Mauszeiger das Speicher-Symbol im Arbeitsbereich (Projektverzeichnisbaum) auswählen und doppelklicken.

Page 5: SPS-Programmierung (Schulungs-Präsentation) Teil 2

5555Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRON

Datenworte, remanent

Ein-/Ausgänge, Arbeitsmerker Timer

Zähler remanent Index-Register

Datenregister Task-Merker

Haftmerker remanent

Arbeitsmerker Erweiterungs- Datenworte, remanent

Systemmerker

Adressbereiche CJAdressbereiche CJAdressbereiche CJAdressbereiche CJ

Page 6: SPS-Programmierung (Schulungs-Präsentation) Teil 2

6666Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONSystemmerker-A-Speicherbereich- CJSystemmerker-A-Speicherbereich- CJSystemmerker-A-Speicherbereich- CJSystemmerker-A-Speicherbereich- CJ

• Merker zur Überwachung und Steuerung des SPS-Betriebs:- Fehlermerker, Zykluszeit-Merker, Echtzeit-Merker ….

• Wort- z.B.’A264’ oder Bitadresse z.B.‘A200.11’

Page 7: SPS-Programmierung (Schulungs-Präsentation) Teil 2

7777Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONHaftmerker H und Arbeitsmerker W - CJHaftmerker H und Arbeitsmerker W - CJHaftmerker H und Arbeitsmerker W - CJHaftmerker H und Arbeitsmerker W - CJ

Haftmerker-Bereich H:- enthält remanente (spannungsausfallsichere) Arbeitsmerker- Wort- z.B.’H511’ oder Bitadresse z.B.‘H511.15’

Arbeitsbereich W:- Wort- z.B.’W511’ oder Bitadresse z.B.‘W511.11’

Page 8: SPS-Programmierung (Schulungs-Präsentation) Teil 2

8888Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONZeitgeber T und Zähler C - CJZeitgeber T und Zähler C - CJZeitgeber T und Zähler C - CJZeitgeber T und Zähler C - CJ

• Zeitgeber-Bereich T:- Timeristwert- z.B. Wort ’T4095’ , “Zeit abgelaufen”-Bitadresse ‘T4095’

• Zähler-Bereich C:- Zähleristwert- z.B. Wort ’C4095’ , “Zähler abgelaufen”-Bitadresse ‘C4095’

Page 9: SPS-Programmierung (Schulungs-Präsentation) Teil 2

9999Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONDatenmerker D und Erweiterte Datenmerker EDatenmerker D und Erweiterte Datenmerker EDatenmerker D und Erweiterte Datenmerker EDatenmerker D und Erweiterte Datenmerker E

• Datenmerker-Bereich D für Daten, Parameter, Werte:- nur wortweiser Datenzugriff, z.B. D32767

• Bereich E ist nur bei CJ1G-CPU44, -CPU45, CJ1H-CPU64 und höher vorhanden:

- Bereich E für Daten, Parameter, Werte- nur wortweiser Datenzugriff, z.B. E2_32767 für die Bank E2

Page 10: SPS-Programmierung (Schulungs-Präsentation) Teil 2

10101010Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCIO-Speicherbereich - CJCIO-Speicherbereich - CJCIO-Speicherbereich - CJCIO-Speicherbereich - CJ

• Ein-/Ausgänge, Arbeitsmerker- Wort- z.B.’139’ oder Bitadresse z.B.‘139.11’

Page 11: SPS-Programmierung (Schulungs-Präsentation) Teil 2

11111111Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCIO-Speicherbereich - CJCIO-Speicherbereich - CJCIO-Speicherbereich - CJCIO-Speicherbereich - CJ

DeviceNet

0000-0399ch

1000-1199ch

1500-1999ch

2000-2959ch

3000-3049chE/A-Bereich

frei

Spezial-Baugr.+D20000 bis D29599

CPU-Bus-Baugr.

Data Link

frei1200-1499ch

3100-3131ch

Frei

3200-3599ch

frei

3600-6143ch

0400-0999ch

Page 12: SPS-Programmierung (Schulungs-Präsentation) Teil 2

12121212Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - Adresszuordnung

• 3 Typen von Baugruppen bei der CJ1 .

- Basis - E/A – Baugruppen- Spezial - E/A - Baugruppen- CJ1 - CPUbus - Baugruppen

(Siehe Handbuch W393 Kapitel 8-1)

Page 13: SPS-Programmierung (Schulungs-Präsentation) Teil 2

13131313Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - Adresszuordnung

• Basis - E/A - BaugruppenCIO0000-0319

( W393 )

Page 14: SPS-Programmierung (Schulungs-Präsentation) Teil 2

14141414Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - Adresszuordnung

• Spezial-E/A- BaugruppenCIO2000-2959

(D20000-D29599)

(W393 )

Page 15: SPS-Programmierung (Schulungs-Präsentation) Teil 2

15151515Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - Adresszuordnung

• CJ - CPUbus - BaugruppenCIO1500-1899

(W393 )

Page 16: SPS-Programmierung (Schulungs-Präsentation) Teil 2

16161616Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - Adresszuordnung

• Zuordnungs- Methode

(W393 8-1-2)

Page 17: SPS-Programmierung (Schulungs-Präsentation) Teil 2

17171717Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - AdresszuordnungCJ - E/A - Adresszuordnung

• Zuordnung beiCJ Erweiterungs-Baugruppenträger

(W393 )

Anfangsadresse des Baugruppenträgers wählbar, z.B.:

#1=Adresse 20

#2=Adresse 100

Page 18: SPS-Programmierung (Schulungs-Präsentation) Teil 2

18181818Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONE/A-Tabelle öffnenE/A-Tabelle öffnenE/A-Tabelle öffnenE/A-Tabelle öffnen

• Die CJ kann mit oder ohne registrierte E/A-Tabelle arbeiten- Die E/A-Tabelle stellt die Abbildung der Konfiguratuon im CIO-Bereich dar- Öffnen der E/A-Tabelle mit Doppelklick auf ‘E/A-Tabelle‘ im Projekt

Page 19: SPS-Programmierung (Schulungs-Präsentation) Teil 2

19191919Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRON

Schnelle Zähler-Baugruppe:Steckplatz 02,Anfangsadresse 2050

E/A-Tabelle erstellenE/A-Tabelle erstellenE/A-Tabelle erstellenE/A-Tabelle erstellen• CX-Programmer zeigt die Adressenzuweisung der Baugruppen in der

SPS-Konfiguration an, nachdem die E/A-Tabelle in der Program(=Stop)-Betriebsart online erstellt wurde.

Page 20: SPS-Programmierung (Schulungs-Präsentation) Teil 2

20202020Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONAllgemeine Hinweise zum ProgrammierenAllgemeine Hinweise zum ProgrammierenAllgemeine Hinweise zum ProgrammierenAllgemeine Hinweise zum Programmieren

• Konstante: #10 (Hex), oder &10 (Dezimal), aber Adresse: 10• Bit-Adresse: 10.15, H05.12• Wort-Adresse: 10, H05, D1002

Page 21: SPS-Programmierung (Schulungs-Präsentation) Teil 2

21212121Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONFunktionsblock (FB) CP1L/H, CJ, CS1Funktionsblock (FB) CP1L/H, CJ, CS1Funktionsblock (FB) CP1L/H, CJ, CS1Funktionsblock (FB) CP1L/H, CJ, CS1

• FB-Bibliothek mit vielen vorgefertigten FB vorhanden. • Zum Einfügen bitte mit dem Mauszeiger auf „Funktionsblöcke“ im

Arbeitsbereich (Projektverzeichnisbaum) gehen, klicken, mit rechter Maustaste folgendes auswählen:

• Als Beispiel wählen wir den Funktionsblock /_CPU007_MakeClockPulse_BCD10.cxf unter omronlib/PLC/CPU.

Page 22: SPS-Programmierung (Schulungs-Präsentation) Teil 2

22222222Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONNetzwerk mit FB kreieren CP1L/H, CJ, CS1Netzwerk mit FB kreieren CP1L/H, CJ, CS1Netzwerk mit FB kreieren CP1L/H, CJ, CS1Netzwerk mit FB kreieren CP1L/H, CJ, CS1

• Die Taste „F“ drücken (oder über Menü „Einfügen/ Funktionsblock-aufruf“), danach einen Namen eingeben, z.B. „Takt“.

• Die Eingangsparameter mit der Taste „P“ editieren, Adressen D0, D1 . • Die Eingabeposition muss immer mit dem Mauszeiger markiert gewesen

sein. Das Ergebnis sieht dann so aus:

Page 23: SPS-Programmierung (Schulungs-Präsentation) Teil 2

23232323Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONFB - ParameterFB - ParameterFB - ParameterFB - Parameter

• Alle normalen Ein- und Ausgänge, auch wenn es sich um binäre Werte handelt, können nur mit FB-Parametern belegt werden.

• Am EN-Eingang können nur Kontakte angeschlossen werden und

• am ENO-Ausgang können Kontakte, Ausgänge und Befehle angehängt werden.

Page 24: SPS-Programmierung (Schulungs-Präsentation) Teil 2

24242424Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONFB - AufrufbeschränkungenFB - AufrufbeschränkungenFB - AufrufbeschränkungenFB - Aufrufbeschränkungen

• Zusammen mit einem FB (Funktions-Block) können keine anderen Befehle aktiviert werden.

• Sie können aber dahinter gesetzt werden.

Page 25: SPS-Programmierung (Schulungs-Präsentation) Teil 2

25252525Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONNetzwerk mit FB testen CP1L/H, CJ, CS1Netzwerk mit FB testen CP1L/H, CJ, CS1Netzwerk mit FB testen CP1L/H, CJ, CS1Netzwerk mit FB testen CP1L/H, CJ, CS1

• Das fertige Netzwerk kann man entweder online mit der SPS testen, oder mit dem Simulator.

• Die Werte in D0 und D1 zum Testen eingeben. Das Ergebnis sieht dann so aus, der „Blinker“ blinkt im vorgegebenen Takt:

Page 26: SPS-Programmierung (Schulungs-Präsentation) Teil 2

26262626Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONNetzwerk mit FB testen CP1L/H, CJ, CS1Netzwerk mit FB testen CP1L/H, CJ, CS1Netzwerk mit FB testen CP1L/H, CJ, CS1Netzwerk mit FB testen CP1L/H, CJ, CS1

• Die Eingangsparameter D0 und D1 sind als BCD Zahlen einzugeben, mit # vorne:

• Mit dem Mauszeiger auf das SPS-Symbol im Arbeitsbereich (Projektverzeichnisbaum) gehen, klicken, mit rechter Maustaste „Eigenschaften„ auswählen.

• Die SPS-Einstellung „Zeitgeber/Zähler als Binärwert ausführen“ muss für diesen Fall deaktiviert sein, also für BCD-Werte.

Page 27: SPS-Programmierung (Schulungs-Präsentation) Teil 2

27272727Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONFB-Beispiel: SkalierungFB-Beispiel: SkalierungFB-Beispiel: SkalierungFB-Beispiel: Skalierung

• Eine Skalierung stellt eine lineare Konvertierung dar, wie in der Zeichnung rechts abgebildet.

• Dabei lässt sich das Ergebnis E mit der folgenden Formel aus der Quelldaten Q berechnen:

• E:=Bd-((Bd-Ad)/(Bs-As))*(Bs-Q)

Page 28: SPS-Programmierung (Schulungs-Präsentation) Teil 2

28282828Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRON

(E-Ad) / (Q-As) = (Bd-Ad) / (Bs-As)

E:=Ad+((Bd-Ad)/(Bs-As))*(Q-As);

A1:=(Bd-Ad)/(Bs-As);

E:=Ad+A1*(Q-As);

Der FB führt Berechnungen mit REAL-Zahlen aus.

Falls die Ein-/Ausgangsdaten im anderen Format vorliegen, z. B. INT, ist eine Formatumwandlung mit den Funktionen int_to_real und umgekehrt, real_to_int, notwendig.

A1:= int_to_real(Bd-Ad)/int_to_real(Bs-As);

E:=Ad+real_to_int(A1*int_to_real(Q-As));

Inhalt des Skalierungs- FBInhalt des Skalierungs- FBInhalt des Skalierungs- FBInhalt des Skalierungs- FB

Page 29: SPS-Programmierung (Schulungs-Präsentation) Teil 2

29292929Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONBeispiel: Aufruf Skalierungs- FBBeispiel: Aufruf Skalierungs- FBBeispiel: Aufruf Skalierungs- FBBeispiel: Aufruf Skalierungs- FB

• Das fertige Netzwerk sieht dann so aus:

• Hier in der Überwa-chungsbetriebsart dargestellt.

Page 30: SPS-Programmierung (Schulungs-Präsentation) Teil 2

30303030Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜberwachung: Skalierungs- FBÜberwachung: Skalierungs- FBÜberwachung: Skalierungs- FBÜberwachung: Skalierungs- FB

• Durch Klicken auf das Symbol oder Ansicht/FB-Instanz überwachen gelangt man eine Ebene tiefer, wenn der Funktionsblock markiert ist, d.h. man kann den Funktionsblock intern online überwachen. Die aktuellen Werte sieht man dann in der rechten Hälfte.

Page 31: SPS-Programmierung (Schulungs-Präsentation) Teil 2

31313131Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONSchrittkette Schrittkette Schrittkette Schrittkette

• Schrittketten werden bei allen automatischen Abläufen benötigt.

• Sie bestehen aus:- Schritten und- Transitionen.

• Als Beispiel kann die Programmsteuerung einer Waschmaschine dienen:

• Schritte:- Vorwäsche- Hauptwäsche- Spülen

• Tansitionen:- Laufzeiten des Programmreglers

Page 32: SPS-Programmierung (Schulungs-Präsentation) Teil 2

32323232Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONSchrittkette mit SET/RSETSchrittkette mit SET/RSETSchrittkette mit SET/RSETSchrittkette mit SET/RSET

• Die Schrittkette ist in umgekehrter Reihenfolge programmiert.

• Dadurch wird die Bearbeitung eines neuen Schrittes erst im nächsten Zyklus begonnen.

• Es wird keine Zykluszeit eingespart.

• Es gibt keine Einschränkung in der Benutzung.

Page 33: SPS-Programmierung (Schulungs-Präsentation) Teil 2

33333333Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbung - Schrittkette mit SET/RSETÜbung - Schrittkette mit SET/RSETÜbung - Schrittkette mit SET/RSETÜbung - Schrittkette mit SET/RSET

• Programmieren Sie eine Ampel mit den Schritten:- ROT- ROT/GELB- GRÜN- GELB

• Die Transtionen:- 8 sec bis ROT/GELB kommt- 2 sec bis GRÜN kommt- 5 sec bis GELB kommt- 3 sec bis ROT kommt

- Lampe_rot = 6.00- Lampe_gelb = 6.01- Lampe_grün = 6.02- Timer 1 bis 4- Schrittmerker W0.00 bis W0.03 (automatisch)

Page 34: SPS-Programmierung (Schulungs-Präsentation) Teil 2

34343434Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbungsauflösung Schrittkette mit SET/RSETÜbungsauflösung Schrittkette mit SET/RSETÜbungsauflösung Schrittkette mit SET/RSETÜbungsauflösung Schrittkette mit SET/RSET

Page 35: SPS-Programmierung (Schulungs-Präsentation) Teil 2

35353535Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONSTEP und SNXTSTEP und SNXTSTEP und SNXTSTEP und SNXT

• SNXT(009) setzt den Schrittmerker für den nächsten Schritt• STEP(008)–Befehl mit Schrittmerker zeigt an, dass danach das

entsprechende Schrittprogramm beginnt.• STEP(008) ohne Schrittmerker zeigt das syntaktische Ende des

Schrittkettenprogramms an.

Page 36: SPS-Programmierung (Schulungs-Präsentation) Teil 2

36363636Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONSchrittkette mit STEP/SNXTSchrittkette mit STEP/SNXTSchrittkette mit STEP/SNXTSchrittkette mit STEP/SNXT

Page 37: SPS-Programmierung (Schulungs-Präsentation) Teil 2

37373737Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbung - Schrittkette mit STEP/SNXTÜbung - Schrittkette mit STEP/SNXTÜbung - Schrittkette mit STEP/SNXTÜbung - Schrittkette mit STEP/SNXT

• Programmieren Sie eine Ampel mit den Schritten:- ROT- ROT/GELB- GRÜN- GELB

• Die Transtionen:- 8 sec bis ROT/GELB kommt- 2 sec bis GRÜN kommt- 5 sec bis GELB kommt- 3 sec bis ROT kommt

- Lampe_rot = 6.00- Lampe_gelb = 6.01- Lampe_grün = 6.02- Timer 1 bis 4- Schrittmerker W0.00 bis W0.03 (automatisch)

Page 38: SPS-Programmierung (Schulungs-Präsentation) Teil 2

38383838Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbungsauflösung - Schrittkette STEP/SNXTÜbungsauflösung - Schrittkette STEP/SNXTÜbungsauflösung - Schrittkette STEP/SNXTÜbungsauflösung - Schrittkette STEP/SNXT

Page 39: SPS-Programmierung (Schulungs-Präsentation) Teil 2

39393939Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONIndirekte AdressierungIndirekte AdressierungIndirekte AdressierungIndirekte Adressierung

• Befehle arbeiten normalerweise mit festen Adressen.

• Bei Verwendung von Tabellen (z.B. Rezepturen) müßte für jede Adresse in der Tabelle auch ein Befehl vorhanden sein, der die Adresse in der Tabelle bearbeitet.

• Einfacher ist es alle Tabelleneinträge mit einem Befehl bearbeiten zu können. Dazu benötigt man einen Zeiger, der auf die zu bearbeitende Tabellenadresse zeigt.

• In den Befehl wird dann nicht die feste Adresse, sondern die Adresse des Zeigers eingetragen, mit einem @ davor: @D.

• Die SPS liest dann den Inhalt des Zeigers (hier DM1= 1111) und arbeitet dann mit dem Wert als Adresse, die im Zeiger steht (DM1111) .

Page 40: SPS-Programmierung (Schulungs-Präsentation) Teil 2

40404040Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONBeispiel: RezepturverwaltungBeispiel: RezepturverwaltungBeispiel: RezepturverwaltungBeispiel: Rezepturverwaltung

Tabelle mit Brot-Rezepten in der SPS: Nr. Wasser Roggen Weizen Temp. Backzeit Name

D100 D101 D102 D103 D104 D105...1090 100 200 100 190 90 Oberländer

D110 D111 D112 D113 D114 D115…1191 80 100 200 200 100 Berliner

D120 D121 D122 D123 D124 D125…D1292 120 300 0 240 120 Eifeler

D130 D131 D132 D133 D134 D135…D1393 90 0 300 180 90 Schweizer

Eingabebild auf dem Bediengerät:

D12

D11

D14

40.00

D0

D10

D13

Page 41: SPS-Programmierung (Schulungs-Präsentation) Teil 2

41414141Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbung: Indirekte AdressierungÜbung: Indirekte AdressierungÜbung: Indirekte AdressierungÜbung: Indirekte Adressierung

• Erweitern Sie Ihr bisheriges Programm mit einer Messwertanzeige .

• Je nach Eingabewert in Adresse 0, - soll in der Anzeige (Adresse 4 und 5) - entweder Messwert 1, 2 , 3 oder- 4 angezeigt werden.

• Die Messwerte sollen zwei Worte belegen, und die Tabelle soll in D20 beginnen.

DatenbereicheZeiger D8

Messw.1 D20, D21Messw.2 D22, D23Messw.3 D24, D25Messw.4 D26, D27

Anzeige 4, 5

Eingabe 0

Page 42: SPS-Programmierung (Schulungs-Präsentation) Teil 2

42424242Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbungsauflösung: Indirekte AdressierungÜbungsauflösung: Indirekte AdressierungÜbungsauflösung: Indirekte AdressierungÜbungsauflösung: Indirekte Adressierung

Page 43: SPS-Programmierung (Schulungs-Präsentation) Teil 2

43434343Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONArraysArraysArraysArrays

• Programme mit indirekter Adressierung sind sehr undurchsichtig.• Einfacher ist es, Symbolische Namen anzulegen und diesen als Array

(Feld) zu definieren.• Schaltfläche „Erweiterte Einstellungen“ klicken.

Page 44: SPS-Programmierung (Schulungs-Präsentation) Teil 2

44444444Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONRezepturverwaltung mit ArraysRezepturverwaltung mit ArraysRezepturverwaltung mit ArraysRezepturverwaltung mit Arrays

• Tabelle mit Brot-Rezepten in der SPS:

Nr. Wasser Roggen Weizen Temp. Backzeit NameD100 Rezept[0] Rezept[1] Rezept[2] Rezept[3] Rezept[4] Rezept[5]...Rezept[9]

0 100 200 100 190 90 OberländerRezept[10] Rezept[11] Rezept[12] Rezept[13] Rezept[14] Rezept[15]…Rezept[19]

1 80 100 200 200 100 BerlinerRezept[20] Rezept[21] Rezept[22] Rezept[23] Rezept[24] Rezept[25]…Rezept[29]

2 120 300 0 240 120 EifelerRezept[30] Rezept[31] Rezept[32] Rezept[33] Rezept[34] Rezept[35]…Rezept[39]

3 90 0 300 180 90 Schweizer

Page 45: SPS-Programmierung (Schulungs-Präsentation) Teil 2

45454545Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONBeispielprogramm: Rezepte mit ArraysBeispielprogramm: Rezepte mit ArraysBeispielprogramm: Rezepte mit ArraysBeispielprogramm: Rezepte mit Arrays

• Das Programm macht das gleiche wie bei der indirekten Adressierung• Array-Element-Zugriff mit eckigen Klammern: Rezept[n]

Page 46: SPS-Programmierung (Schulungs-Präsentation) Teil 2

46464646Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbung: ArraysÜbung: ArraysÜbung: ArraysÜbung: Arrays

• Ändern Sie Ihr bisheriges Programm mit der Messwertanzeige durch die Definition eines Arrays .

• Je nach Eingabewert in Adresse 0, - soll in der Anzeige (Adresse 4 und 5) - entweder Messwert 1, 2 , 3 oder- 4 angezeigt werden.

• Die Messwerte sollen zwei Worte belegen, und die Tabelle soll in D20 beginnen.

DatenbereicheZeiger D4

Messw.1 D20, D21Messw.2 D22, D23Messw.3 D24, D25Messw.4 D26, D27

Anzeige 4, 5

Eingabe 0

Page 47: SPS-Programmierung (Schulungs-Präsentation) Teil 2

47474747Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbungsauflösung: ArraysÜbungsauflösung: ArraysÜbungsauflösung: ArraysÜbungsauflösung: Arrays

• Könnte natürlich auch mit MOVL gelöst werden.

Page 48: SPS-Programmierung (Schulungs-Präsentation) Teil 2

48484848Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONFOR- NEXT- SchleifeFOR- NEXT- SchleifeFOR- NEXT- SchleifeFOR- NEXT- Schleife

• Die Befehle zwischen FOR(512) und NEXT(513) werden N Mal ausgeführt. (z.B. N=3)

• Wenn N auf 0 gesetzt ist, werden die Befehle) als NOP(000)-Befehle verarbeitet.

• Schleifen können zur Verarbeitung von Datentabellen verwendet werden.

• FOR-NEXT-Schleifen können in bis zu 15 Ebenen verschachtelt werden.

Page 49: SPS-Programmierung (Schulungs-Präsentation) Teil 2

49494949Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONBenutzerdefinierte DatenstrukturenBenutzerdefinierte DatenstrukturenBenutzerdefinierte DatenstrukturenBenutzerdefinierte Datenstrukturen

• Noch transparenter wird es, wenn man jedem Rezept-Element den richtigen Namen geben kann.

• Geht nur mit CJ2.• Im Verzeichnisbaum gibt es: Datentypen• Um einen neuen Datentyp zu definieren: „Rechte Maustaste“

„Einsetzen“ „Strukt..“ wählen

Page 50: SPS-Programmierung (Schulungs-Präsentation) Teil 2

50505050Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONBenutzerdefinierte DatenstrukturenBenutzerdefinierte DatenstrukturenBenutzerdefinierte DatenstrukturenBenutzerdefinierte Datenstrukturen

• Um einen neuen Datentyp zu definieren: „Rechte Maustaste“ „Einsetzen“ „Strukt..“ wählen

Page 51: SPS-Programmierung (Schulungs-Präsentation) Teil 2

51515151Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONRezepturverwaltung mit DatenstrukturenRezepturverwaltung mit DatenstrukturenRezepturverwaltung mit DatenstrukturenRezepturverwaltung mit Datenstrukturen

• Tabelle mit Brot-Rezepten in der SPS:

Nr. Wasser Roggen Weizen Temp. Backzeit NameD100 Rezept[0] Rezept[1] Rezept[2] Rezept[3] Rezept[4] Rezept[5]...Rezept[9]

0 100 200 100 190 90 OberländerRezept[10] Rezept[11] Rezept[12] Rezept[13] Rezept[14] Rezept[15]…Rezept[19]

1 80 100 200 200 100 BerlinerRezept[20] Rezept[21] Rezept[22] Rezept[23] Rezept[24] Rezept[25]…Rezept[29]

2 120 300 0 240 120 EifelerRezept[30] Rezept[31] Rezept[32] Rezept[33] Rezept[34] Rezept[35]…Rezept[39]

3 90 0 300 180 90 Schweizer

Page 52: SPS-Programmierung (Schulungs-Präsentation) Teil 2

52525252Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONBeispielprogramm: Rezepte mit StrukturenBeispielprogramm: Rezepte mit StrukturenBeispielprogramm: Rezepte mit StrukturenBeispielprogramm: Rezepte mit Strukturen

• Das Programm macht das gleiche wie bei der Array-Adressierung• Struktur-Array-Element-Zugriff mit eckigen Klammern: Rezept[n].Wasser

Page 53: SPS-Programmierung (Schulungs-Präsentation) Teil 2

53535353Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbung: Benutzerdefinierte DatenstrukturenÜbung: Benutzerdefinierte DatenstrukturenÜbung: Benutzerdefinierte DatenstrukturenÜbung: Benutzerdefinierte Datenstrukturen

• Ändern Sie Ihr bisheriges Programm mit der Messwertanzeige durch die Definition eines Arrays .

• Je nach Eingabewert in Adresse 0, - soll in der Anzeige (Adresse 4 und 5) - entweder Messwert 1, 2 , 3 oder- 4 angezeigt werden.

• Die Messwerte sollen zwei Worte belegen, und die Tabelle soll in D20 beginnen.

DatenbereicheZeiger D4

Messw.1 D20, D21Messw.2 D22, D23Messw.3 D24, D25Messw.4 D26, D27

Anzeige 4, 5

Eingabe 0

Page 54: SPS-Programmierung (Schulungs-Präsentation) Teil 2

54545454Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONÜbungsauflösung: DatenstrukturenÜbungsauflösung: DatenstrukturenÜbungsauflösung: DatenstrukturenÜbungsauflösung: Datenstrukturen

• Könnte natürlich auch mit MOVL gelöst werden.

Page 55: SPS-Programmierung (Schulungs-Präsentation) Teil 2

55555555Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONStructures „hands on“Structures „hands on“Structures „hands on“Structures „hands on“

• Benutzerdefinierten Datentyp anlegen

• Elemente des Datentyps festlegen

• Variable mit dem Datentyp anlegen

• Struktur als Arrayvariable

• Auf Elemente der Struktur zugreifen

Page 56: SPS-Programmierung (Schulungs-Präsentation) Teil 2

56565656Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONBenutzerdefinierten Datentyp anlegenBenutzerdefinierten Datentyp anlegenBenutzerdefinierten Datentyp anlegenBenutzerdefinierten Datentyp anlegen

• Neue SPS: CJ2M-CPU33• Im Verzeichnisbaum gibt es etwas Neues: Datentypen• Sieht aus wie die Symboltabelle• Um einen neuen Datentyp zu definieren: „Rechte Maustaste“

„Einsetzen“ „Strukt..“ wählen

Page 57: SPS-Programmierung (Schulungs-Präsentation) Teil 2

57575757Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONElemente des Datentyps festlegenElemente des Datentyps festlegenElemente des Datentyps festlegenElemente des Datentyps festlegen

• Eben angelegten Datentyp „Rezept“ markieren: „Rechte Maustaste“ „Einsetzen“ „Mitglied..“ wählen

• RezeptID, INT• Backzeit, WORD• Temperatur, REAL• Oberhitze, BOOL

Page 58: SPS-Programmierung (Schulungs-Präsentation) Teil 2

58585858Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONVariable mit dem Datentyp anlegenVariable mit dem Datentyp anlegenVariable mit dem Datentyp anlegenVariable mit dem Datentyp anlegen

• In der Symboltabelle: Symbol einfügen: Ofenrezept• Als Datentyp kann jetzt die Struktur „Rezept“ ausgewählt werden.

Page 59: SPS-Programmierung (Schulungs-Präsentation) Teil 2

59595959Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

OMRONStruktur als ArrayvariableStruktur als ArrayvariableStruktur als ArrayvariableStruktur als Arrayvariable

• Symbol einfügen Backwarenrezept, Erweiterte Einstellungen: Array anklicken, Größe 30 angeben.•Speicherzuordnung:

Backwarenrezept[0].RezeptID D100

Backwarenrezept[0].Backzeit D101

Backwarenrezept[0].Temperatur D102/103

Backwarenrezept[0].Oberhitze D104.00

Backwarenrezept[1].RezeptID D105

Backwarenrezept[1].Backzeit D106

Backwarenrezept[1].Temperatur D107/108

Backwarenrezept[1].Oberhitze D109.00

…u.s.w.

Bis: Backwarenrezept[30].Oberhitze D249.00