Mehrere Datenbausteine automatisch löschen

tommylik

Level-2
Beiträge
115
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle,

Ich bin der Tom und neu hier bei Euch.

Ich habe einen FC angefangen zu programmieren mit dem man mehrere Datenbausteine löschen könnte.

Meine Kenntnisse in AWL, sind leider zur Fertigstellung nicht ausreichend genug.
Das soll einerseits bedeuten das ich den Fehler nicht sehe warum der FC nicht richtig funktioniert
und zweitens ist es eine Bitte an Euch mir vielleicht zu helfen.

Hier die Deklaration:

a9am-2-jpg-rc.html



Hier die Anweisungen:



Wenn man sich das ganze online anschaut sieht man das der erste Datenbaustein aufgerufen wird, aber mehr passiert nicht.

Oder muß ich das mit einem FB machen und einem DB dazu mit statischen Adressen.

Alle Datenbausteine sind 192 Bit groß. Habe ich vielleicht den SFC21 falsch Parametriert?

Für Eure Hilfe wäre ich echt sehr dankbar.


Mfg Tom




 
Deine #blink Flanke wird nur bei ersten Durchlauf ausgewertet.

Die Namensgebung ist aber seltsam, warum denn "blink"?

Weiterhin solltes du dir überlegen am "FILL" Baustein etwas anderes als LW0 zu schreiben. In deinem Fall stört das zwar nicht direkt, aber damit werden deine Bits in den Lokaldaten überschrieben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Tom,

ein Problem ist auch das Netzwerk 4 da dies immer ausgeführt wird und in einem Zyklus alle Nummern einfach hochgezählt werden ohne das Blink da ist.

Gruss Daniel
 
Deine #blink Flanke wird nur bei ersten Durchlauf ausgewertet.

Die Namensgebung ist aber seltsam, warum denn "blink"?

Weiterhin solltes du dir überlegen am "FILL" Baustein etwas anderes als LW0 zu schreiben. In deinem Fall stört das zwar nicht direkt, aber damit werden deine Bits in den Lokaldaten überschrieben.
Hallo,

Danke erstmal für deine Antwort.

Ist also der blink dafür verantwortlich?
Da habe ich am Baustein (FC) ein Taktmerkerbit 1Hz dran parametriert.

Ich dachte da ich den SFC21 im FC aufrufe wäre das die ideale Lösung.
Wie ich schon sagte keine Praxis in AWL. Wäre da ein Merkerwort besser?

Vielen Dank noch mal für deine Hilfe.


Mfg Tom
 
Hallo Tom,

Code:
      U     #blink
      FP    #hm1
      =     #ZTAKT

      UN    #ZTAKT
      BEB   

      L     #DBNr
      T     #temp
m000: AUF   DB [#temp]

      L     0
      T     DBB    0

      CALL  "FILL"
       BVAL   :=DBB0
       RET_VAL:=#RetVal
       BLK    :=P#DBX 1.0 BYTE 23

      L     #Anzahl
      L     #DBNr
      +I    
      T     #max_Seite
      L     #temp
      L     1
      +I    
      T     #temp
      L     #max_Seite
      <=I   
      SPB   m000
Wenn es unbedingt über den Taktmerker sein muss.

Gruss Daniel
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist also der blink dafür verantwortlich?
Da habe ich am Baustein (FC) ein Taktmerkerbit 1Hz dran parametriert.
Ja, wenn der FC aufgerufen wird ist nur beim ersten Durchlauf die pos. Flanke da. Da muss du dir etwas anderes überlegen.

Ich dachte da ich den SFC21 im FC aufrufe wäre das die ideale Lösung.
Wie ich schon sagte keine Praxis in AWL. Wäre da ein Merkerwort besser?
Meinst du das LW0?
Lege dir im Temp-Bereich ein Symbol mit dem Datentyp den der Ausgang RET_VAL erwartet an, und schreibe diese an den Ausgang.
Soweit es geht sollte alles symbolisch programmiert werden.
 
Hallo Tom,

ein Problem ist auch das Netzwerk 4 da dies immer ausgeführt wird und in einem Zyklus alle Nummern einfach hochgezählt werden ohne das Blink da ist.

Gruss Daniel
Hallo,

Auch dir vielen Dank für deine Hilfe.


Werde mal ein dauferhaftes Signal nehmen um Die Datenbausteine wieder zu löschen.

Wollte es mit einem Taktmerkerbit machen damit der Baustein einfach nebenbei mit läuft. Die Datenbausteine erfassen unterschiedliche Signale die sich ständig ändern.

Der Typ im Datenbaustein ist Bool und es besteht halt die Möglichkeit das auf irgeneiner Adresse mal ein Signal auf True geht und so bleibt.

Ich werde mal sehe was ich da machen kann.


Vielen Dank noch mal.


Mfg Tom
 
Zurück
Oben