-> Hier kostenlos registrieren
Hallo Zusammen,
ich möchte den CPU Status mit in ein HMI Projekt integrieren und die CPU LEDs entsprechend visualisieren. Dazu habe ich die SZL mit dem SFC51 ausgelesen, was auch soweit funktioniert.
Leider klappt es nur mit den "SF", "RUN", "STOP" und "BATF" LEDs.
Wie kann ich die restlichen LEDs abfragen, in Hinsicht auf die LED Kennung?
Kann man die Kennung oder die Datensatznummer im Header vorgeben?
Verwendet wird eine CPU315-2DP (alte Bauform)
Visualisierung WinCCflex 2008 als PC RT
Hier die AWL Quelle der Funktion für die o.g. LEDs (Programmcode ist von einem Siemens Beispiel abgewandelt)
----------------------------------------------------------------------------------------------------------
VAR_TEMP
szl_header : STRUCT
lengthdr : WORD ;
n_dr : WORD ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE =Auslesen von SZL-Teillisten über SFC 51
//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)
//
BLD 103;
CALL SFC 51 (
REQ := M 1.1,
SZL_ID := W#16#19,
INDEX := W#16#0,
RET_VAL := DB245.DBW 2,
BUSY := DB245.DBX 1.0,
SZL_HEADER := #szl_header,
DR := P#DB245.DBX20.0 BYTE 20);
NOP 0;
NETWORK
TITLE =
//Datensatzlänge und Datensatznummer ins entsprechende Word ablegen
//
//Status Bytes/Wörter anzeigen
L #szl_header.lengthdr; // Datensatzlänge
T DB245.DBW 10;
L #szl_header.n_dr; // Anzahl Datensätze
T DB245.DBW 12;
L DB245.DBW 20; // DS1 : Kennung LED : SF 0001 h
L DB245.DBB 22; // DS1 : An 1 / Aus 0
L DB245.DBB 23; // DS1 : Blinken der LED : ja/nein
L DB245.DBW 24; // DS2 : Kennung LED : RUN 0004 h
L DB245.DBB 26; // DS2 : An 1 / Aus 0
L DB245.DBB 27; // DS2 : Blinken der LED : ja/nein
L DB245.DBW 28; // DS3 : Kennung LED : STOP 0005 h
L DB245.DBB 30; // DS3 : An 1 / Aus 0
L DB245.DBB 31; // DS3 : Blinken der LED : ja/nein
L DB245.DBW 32; // DS4 : Kennung LED : XXX
L DB245.DBB 34; // DS4 : An 1 / Aus 0
L DB245.DBB 35; // DS4 : Blinken der LED : ja/nein
L DB245.DBW 36; // DS5 : Kennung LED : BATF 0008 h
L DB245.DBB 38; // DS5 : An 1 / Aus 0
L DB245.DBB 39; // DS5 : Blinken der LED : ja/nein
END_FUNCTION
ich möchte den CPU Status mit in ein HMI Projekt integrieren und die CPU LEDs entsprechend visualisieren. Dazu habe ich die SZL mit dem SFC51 ausgelesen, was auch soweit funktioniert.
Leider klappt es nur mit den "SF", "RUN", "STOP" und "BATF" LEDs.
Wie kann ich die restlichen LEDs abfragen, in Hinsicht auf die LED Kennung?
Kann man die Kennung oder die Datensatznummer im Header vorgeben?
Verwendet wird eine CPU315-2DP (alte Bauform)
Visualisierung WinCCflex 2008 als PC RT
Hier die AWL Quelle der Funktion für die o.g. LEDs (Programmcode ist von einem Siemens Beispiel abgewandelt)
----------------------------------------------------------------------------------------------------------
VAR_TEMP
szl_header : STRUCT
lengthdr : WORD ;
n_dr : WORD ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE =Auslesen von SZL-Teillisten über SFC 51
//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)
//
BLD 103;
CALL SFC 51 (
REQ := M 1.1,
SZL_ID := W#16#19,
INDEX := W#16#0,
RET_VAL := DB245.DBW 2,
BUSY := DB245.DBX 1.0,
SZL_HEADER := #szl_header,
DR := P#DB245.DBX20.0 BYTE 20);
NOP 0;
NETWORK
TITLE =
//Datensatzlänge und Datensatznummer ins entsprechende Word ablegen
//
//Status Bytes/Wörter anzeigen
L #szl_header.lengthdr; // Datensatzlänge
T DB245.DBW 10;
L #szl_header.n_dr; // Anzahl Datensätze
T DB245.DBW 12;
L DB245.DBW 20; // DS1 : Kennung LED : SF 0001 h
L DB245.DBB 22; // DS1 : An 1 / Aus 0
L DB245.DBB 23; // DS1 : Blinken der LED : ja/nein
L DB245.DBW 24; // DS2 : Kennung LED : RUN 0004 h
L DB245.DBB 26; // DS2 : An 1 / Aus 0
L DB245.DBB 27; // DS2 : Blinken der LED : ja/nein
L DB245.DBW 28; // DS3 : Kennung LED : STOP 0005 h
L DB245.DBB 30; // DS3 : An 1 / Aus 0
L DB245.DBB 31; // DS3 : Blinken der LED : ja/nein
L DB245.DBW 32; // DS4 : Kennung LED : XXX
L DB245.DBB 34; // DS4 : An 1 / Aus 0
L DB245.DBB 35; // DS4 : Blinken der LED : ja/nein
L DB245.DBW 36; // DS5 : Kennung LED : BATF 0008 h
L DB245.DBB 38; // DS5 : An 1 / Aus 0
L DB245.DBB 39; // DS5 : Blinken der LED : ja/nein
END_FUNCTION