CPU Status überwachen

Paradox

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

ich möchte gern den Status der CPU überwachen.
Es handelt sich hierbei um eine Vipa 314.
Im Prinzip will ich nur die LED's in der SPS auswerten können.
Sprich wissen ob die CPU komplett hochgelaufen ist, sich im Run - Status befindet, die SF - LED erloschen ist...
Dies möchte ich dann z.B. über einen Merker am TP anzeigen lassen.

Über den OB 100 funktioniert es leider nicht wie ich es gerne hätte.
Dieser setzt mir den Merker nach jedem Neustart, auch wenn die CPU im Stop - Modus bleibt oder einen SF anzeigt...

Ginbt es hierfür einen fertigen Baustein von Siemens oder Vipa?
Programmieren tu ich im Step7 - Manager.

Wäre Dankbar für ne gute Idee!

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mmhh, vielen Dank.

Aber so richtig schlau bin ich darsus noch nicht geworden...
Trotz der Hilfe in Step 7 kann ich nicht draus erkennen was ich wie und wo eintragen muss. :-(

Hättest du vll ein Beispiel für mich???
 
Code:
*
      CALL  "RDSYSST"                   // SFC 51 : lesen des Systemstatus
       REQ       :=TRUE                 
       SZL_ID    :=W#16#19              // alle LED's
       INDEX     :=W#16#0               
       RET_VAL   :=#iRetVal             // Fehlercode
       BUSY      :=#xBusy               
       SZL_HEADER:=#szl_header           
       DR        :=P#DB1.DBX 0.0 BYTE 20

#szl_header ist ein STRUCT mit zwei WORD
Code:
*
LENTHDR:	WORD
N_DR:	WORD

auswertung z.b.:

Code:
*
      L     DB1.DBB    6
      L     1
      ==I   
      SPBN  notn
      //RUN LED an - ob blinkt oder nicht muss noch rausgefunden werden   
notn: NOP   0

übersicht:
Code:
1. Byte + 2. Byte
-- LED Kennung --
W#16#0001: SF (Sammelfehler)
W#16#0002: INTF (interner Fehler)
W#16#0003: EXTF (externer Fehler)
W#16#0004: RUN
W#16#0005: STOP
W#16#0006: FRCE (Forcen)
W#16#0007: CRST (Neustart)
W#16#0008: BAF (Batteriefehler/Überlast, Kurzschluß von Batteriespannung am Bus)
W#16#0009: USR (anwenderdefiniert)
W#16#000A: USR1 (anwenderdefiniert)
W#16#000B: BUS1F (Busfehler Schnittstelle 1)
W#16#000C: BUS2F (Busfehler Schnittstelle 2)
W#16#000D: REDF (Redundanzfehler)
W#16#000E: MSTR (Master)
W#16#000F: RACK0 (Baugruppenträger-Nr. 0)
W#16#0010: RACK1 (Baugruppenträger-Nr. 1)
W#16#0011: RACK2 (Baugruppenträger-Nr. 2)
W#16#0012: IFM1F (Schnittstellenfehler Interface-Modul 1)
W#16#0013: IFM2F (Schnittstellenfehler Interface-Modul 2)

3. Byte
-- LED_on --
Zustand der LED:
0: aus
1: an

4. Byte
-- LED_blinkt --
Blinkzustand der LED:
0: blinkt nicht
1: blinkt normal (2 Hz)
2: blinkt langsam (0,5 Hz)
 
kommt drauf an wie viel Aufwand du treiben möchtest ...

Mein MT-Prof hat auch mal so eine Überwachung mit Photo-Dioden realisiert ... hat auch geklappt! ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein MT-Prof hat auch mal so eine Überwachung mit Photo-Dioden realisiert ... hat auch geklappt! ...

Funktionieren kann das schon,

man könnt auch ne Kamera nehmen :D


"lästern on"

Wenn ein Auto im Bordcomputer irgendwo die Aussen-Temperatur anzeigt und ich nicht weiss wo, dann klebe ich mir immer ein Thermometer an den Auspuff, wegen der Genauigkeit"

"lästern off"
 
Wenn ich ehrlich sein soll ... der Mann hat Ahnung bis zum erbrechen ...

Er wollte uns bloß zeigen das es so auch geht ... OHNE Kammera und dazugehöriger Sorftware! ;-)
 
@ vierlagig

Kann man damit auch die Stop LED anzeigen? Wie geht das?
Wenn Stop ist, wird doch nicht bearbeitet oder verstehe ich das jetzt nicht?
 
@ vierlagig

Kann man damit auch die Stop LED anzeigen? Wie geht das?
Wenn Stop ist, wird doch nicht bearbeitet oder verstehe ich das jetzt nicht?

damit nicht, aber mit libnodave z.b.

Reading SZL lists

The CPUs of the 300 and 400 family provide lists of their internal states and properties. German Siemens terminology calls them SZL (System-ZustandsListen). These lists are what your programming Software reads when showing the diagnostic buffer, the state of run/stop, the amount of memory and much more. LIBNODAVE provides the function:
daveReadSZL(daveConnection * dc, int ID, int index, void * buf);
to read these lists.
ID 0, index 0 retrieves a list of available SZL-IDs on your PLC. I don't know how to find out the available or meaningful indices. In most cases, index 0 is the whole list, while other indices retrieve parts of it.
Use testMPI -z for some examples and testMPI -a for the complete contents of your PLCs SZL-lists (with index 0, so there may exist lists that do not have an index 0).
Refer do Siemens documentation for the meaning of IDs and indices.
 
Zurück
Oben