Zeiger für Anfänger

OKL

Level-1
Beiträge
143
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Gemeinde,

bin Anfänger in Step7. Habe mir eine Art Alarmanlage programmiert. Um nun meinen Quelltext zu vereinfachen, würde ich eure Hilfe benötigen.

Hier seht ihr, wie ich derzeitig beim Öffnen einer Tür den Vorgang mittels eines FCs in einen DB abspeichere sowie einen Zähler um eins erhöhe. Beim Schließen schreibe ich nur wieder mittels FC die Daten weg.

Hier der Screenshot:








grafik1.JPG


Hier noch ein Bild vom FC:

grafik2.JPG


Ich möchte gern mit dem gezeigten FC1 mittels Zeiger die Daten in den DB2 schreiben. Tür 1 ist DW0, Tür 2 ist DW2, Tür 3 ist DW4 und so weiter.

Übergeben wird dies am FC als IN-Parameter (soll so werden) Auch ist es mir lieber, wenn ich den FC nur noch einmal aufrufe und die positive Flanke und negative Flanke als Eingang am FC parametriere, um den Kauderwelsch etwas zu verringern. Wie gesagt, Bild 1 zeigt 2 der vielen Türen. Jedes weitere Netzwerk behandelt zwei weitere Türen.

Ich programmiere mit Step 7 erst seit drei Wochen. Bisher hatte ich viel mit Datenbanken und Fertigungsleitsystemen zu tun, aber auch Visualisierungen.

Danke für eure Lösungsideen bezüglich Übergabe Türnummer 1 bis 10 und Verarbeitung im FC1, indem dort anhand der Türnummer im richtigen Datenwort die Zahl um eins erhöht wird.

Dankeschön.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Frage

Hallo,

das habe ich mir schon angeschaut. Ich habe nur damit ein kleines Problem offen:

L 0
SLD 3
LAR1
AUF DB 1
L DBW [AR1,P#0.0] // das zählt für Tür 1, für 2 müsste es P#2.0 sein

Geht so etwas wie P#(übergebene Türnummer - 1 * 2)??

Danach

L 1
+ I
T DBW [AR1,P#0.0]

Danke für weitere Hilfe
 
wenn du mit dbw2 für tür1 anfangen würdest dann könntest es auch so lösen.
Code:
      L    türnr
      SLW 3
      L     2
      *I    
      T     #tdbw
      AUF   DB     2
      T     DBW [#tdbw]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank

Hallo,

vielen Dank für die Lösungen.

Eine Frage zum Beispiel von crash:

Code:
L #türnummer
L  L#1 // bedeutet das - Lade Long Konstante von 1?- habe gerade gelesen, dass L# eine 32 Bit Zahl laden würde und L1 nur 16 Bit. Bei negativen Zahlen wäre das wichtig...
-D      // Minus Double
L L#2  // Lade Long Konstante von 2
*D      // Mal Double
SLD   3
LAR1

Da es sich um Türen von 1 bis derzeit 10 handelt, könnte ich da auch das mit Integer realisieren?

L 1
-I
L2
*I gehen?

Danke, hilft mir wirklich sehr weiter.

Gerhard, danke auch für deinen Hinweis. Habe leider schon die Struktur so angelegt, dass Tür 1 Datenwort 0 ist.

Danke, danke, danke!
 
Zuletzt bearbeitet:
Zurück
Oben