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

Preview:

Citation preview

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

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

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.

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

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’

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’

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’

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

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’

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

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)

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 )

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 )

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 )

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)

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

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

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.

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

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.

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:

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.

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.

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:

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.

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)

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

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.

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.

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

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.

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)

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

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.

36363636Adressbereiche CJAdressbereiche CJ FunktionsblöckeFunktionsblöcke SchrittkettenSchrittketten TabellenTabellen

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

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)

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

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

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

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

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

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.

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

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]

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

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.

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.

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

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

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

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

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

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.

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

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

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

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.

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

Recommended