Step 7 Anzeigetool für Variablen in mehrere CPUs

ChrisBee

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin auf der Suche nach einem Auslesetool bzw. Anzeigetool, welches auf Basis einer vorhandenen Symboltabelle eine frei konfigurierbare Variablentabelle in mehreren CPUs (ca. 10 Stück mit unterschiedlichen IP-Adressen) abfragt und anzeigt.
Die Variablentabelle im SimaticManager kann ja immer nur die Werte aus der projektierten CPU anzeigen.

Gibt es da bereits ein Tool?

Vielen Dank und schönen Gruß,
Christian
 
... du kannst aber mehr als eine CPU in einem Projekt haben - was spräche dagegen, das so zu machen ...?
Nun könntest du mit der Siemens-Standard-Visu (erstmal prinzipiell) auf die Variablen aller CPU's zugreifen (wenn du die entsprechenden Verbindungen angelegt hast) ...

Gruß
Larry
 
Vielen Dank für den Tipp mit Libnodave!
Klappt soweit echt gut. Bekomme alle SPSen angesprochen und die Werte ausgelesen.

Ich habe aber noch 2 Probleme:
  1. Ich kann die Zeiten von Timern nicht auslesen (z.B. T#5sekunden). Da zeigt mir Excel immer 0 an. Das Auslesen von Datumsangaben klappt ohne Probleme.
  2. Beim auslesen von CHAR-Variablen bekomme ich diese in Excel nicht korrekt angezeigt. Nur als 5stellige Zahl. Gibt es da einen Konverter?

Die Exceldatei inkl. Makros werde ich hochladen, wenn die beiden Probleme gelöst sind. Damit weitere Leute das nutzen können.
 
Zuletzt bearbeitet:
Ich habe aber noch 2 Probleme:
  1. Ich kann die Zeiten von Timern nicht auslesen (z.B. T#5sekunden). Da zeigt mir Excel immer 0 an. Das Auslesen von Datumsangaben klappt ohne Probleme.
  2. Beim auslesen von CHAR-Variablen bekomme ich diese in Excel nicht korrekt angezeigt. Nur als 5stellige Zahl. Gibt es da einen Konverter?
:confused: Wie sieht so eine "5stellige Zahl" bei Dir aus? Ein CHAR kann nur einen Wert von 0 bis 255 (oder -128 bis +127) haben. Einen CHAR liest man als Byte mit daveGetU8 oder daveGetS8
Wie soll der CHAR denn dargestellt werden - als das ASCII-Zeichen mit dem Code des Wertes in dem CHAR? Dafür gibt es in VBA die Funktion Chr(x), z.B. liefert Chr(65) das Zeichen "A"

Das Lesen von Timerwerten muß ich mal ausprobieren.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Abfragebeispiel für Zeiten (T#, S5T#) und CHAR in VBA:
Code:
[COLOR="#008000"]' Werte in Zellen ab "D10" in Spalte untereinander ausgeben[/COLOR]
z = 10 [COLOR="#008000"]'Zeile "10"[/COLOR]
s = 4  [COLOR="#008000"]'Spalte "D"[/COLOR]

res = daveReadBytes(dc, daveDB, 123, 0, 7, 0) [COLOR="#008000"]' 7 Bytes DB123.DBB0 - DBB6[/COLOR]

Cells(z, s)     = daveGetS32(dc)     [COLOR="#008000"]' DB123.DBD0 TIME   T#12s345ms  --> 12345 (ms)[/COLOR]
Cells(z + 1, s) = daveGetSeconds(dc) [COLOR="#008000"]' DB123.DBW4 S5TIME S5T#1s720ms --> 1,72  (s)[/COLOR]

value = daveGetU8(dc)                [COLOR="#008000"]' DB123.DBB6 CHAR   B#16#41 = 'A'[/COLOR]
Cells(z + 2, s) = value              [COLOR="#008000"]' Anzeige als Dezimalwert       --> 65[/COLOR]
Cells(z + 3, s) = Chr(value)         [COLOR="#008000"]' Anzeige als Zeichen           --> A[/COLOR]

res = daveReadBytes(dc, daveTimer, 0, 71, 1, 0) [COLOR="#008000"]' T71[/COLOR]
Cells(z + 4, s) = daveGetSeconds(dc) [COLOR="#008000"]' T71 S5T#10s300ms  --> 10,3 (s)[/COLOR]
wird in Excel so angezeigt:
Code:
Zeile                     | Anzeige Excel | Anzeige Step7
--------------------------+---------------+---------------
10    DB123.DBD0 (TIME)   |  12345  (ms)  | T#12s345ms
11    DB123.DBW4 (S5TIME) |  1,72   (s)   | S5T#1s720ms
12    DB123.DBB6 (CHAR)   |  65           | 'A' = B#16#41
13    DB123.DBB6 (CHAR)   |  A            | 'A' = B#16#41
14    T71        (S5TIME) |  10,3   (s)   | S5T#10s300ms

Harald
 
Zurück
Oben