Upload
hamprecht-reichner
View
125
Download
5
Embed Size (px)
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