AWL: Boolsche Eingänge mittels Pointer in DB setzen?

K5286

Level-2
Beiträge
28
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!
Ich stehe ein wenig auf dem Schlauch. Ich möchte folgende Anwendung in AWL projektieren:

Ich möchte die Eingänge E0.0 - E7.7 lesen und bei High Zustand die gleichen Variablen (ARRAY 0-200 of bool) in einem DB setzen. Generell nichts schweres mit einem Pointer die Bytes laden und transferieren.
Mein Problem liegt aber darin das ich nur "Setzen" möchte und das Rücksetzen von einem anderen Netzwerkteilnehmer erfolgen soll.
Hat jemand eine Idee?

Momentan glaube ich, es geht nur, in dem ich die Eingänge einzeln mittels Pointer aufrufe und dann im DB setze. Ich habe nur total vercheckt wie der Aufruf in AWL geschrieben werden muss. (z.B "U E[AR1,p#0.0] ?)

Vielen Dank für die Hilfe!

CPU: 315-2 DP
Software: Siemens Step 7 V5.5 SP2
 
Mein Problem liegt aber darin das ich nur "Setzen" möchte und das Rücksetzen von einem anderen Netzwerkteilnehmer erfolgen soll.
Hat jemand eine Idee?
Nur Setzen wäre eine ODER-Verknüpfung der Eingänge mit dem vorhandenen Inhalt des DB.
Wenn im DB auch alles hintereinander weg ist, kannst Du das mit 2 DWORD (E0.0 - E3.7 und E4.0 bis E7.7) erledigen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich stehe wirklich auf'm schlauch, dass verstehe ich nicht recht.

Mein Hauptproblem liegt darin, dass ich leider nicht mehr weiss, wie ich AWL boolsche Adressen (quasi mit zwei "Pointern", einer fürs byte, einer fürs Bit) ansprechen kann. Arbeite eigentlich nur mit SCL, da ist das einfacher... Ich weiss noch, dass es mit AR1 und nem Pointer geht, aber das war es dann auch


Bzgl der Oderverknüpfung, wie soll das gehe bei einem DWord? Bei Bits ist das klar....
... :oops:
 
Hallo,
wenn du eigentlich nur mit SCL arbeitest ... warum machst du das denn jetzt nicht auch damit ?

Bezüglich der Oder-Verknüpfung :
Code:
L ED10
L DB10.DBD10
OD
T DB10.DBD10

... oder mit Pointern ...
Gruß
Larry
 
Danke...

Habe nun vollgendes geschrieben, leider kommt im DB nichts an.


L P#0.0 //set slope to 0
T MD 200

anf: L EB [MD 200]
AUF "DB41_Fail_log_system"
L DBB [MD 200]
OD
L DBB [MD 200]
L MD 200 // add 1 to slope
L P#1.0
+D
T MD 200
L MD 200 // if slope > 7 than quit slope
L P#7.0
>D
SPB ende
SPA anf
ende: BE
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
L     P#0.0                       //set slope to 0
      T     MD   200

anf:  L     ED [MD 200]
      AUF   "DB41_Fail_log_system"
      L     DBD [MD 200]            // doppelW
      OD    
      L     DBD [MD 200]
      L     MD   200                    // add 4 to slope (dword)
      L     P#4.0
      +D    
      T     MD   200
      L     MD   200                    // if slope > 7 than quit slope
      L     P#7.0
      >D    
      SPB   ende
      SPA   anf
ende: BE
 
Zurück
Oben