TYPE "UDT_SERVICE_INF_DRV"
VERSION : 0.1
STRUCT
STARTS : DINT ; //Anzahl der Starts
RUN_H : DINT ; //Betriebsstundenzaehler Stunden
RUN_SEC : INT ; //Betriebsstundenzaehler Sekunden
SERVICE_H : INT ; //Betriebsstunden seit letztem Service
SERVICE_SEC : INT ; //Betriebsstunden (Sekuden) seit letztem Service
SERVICE_STARTS : DINT ; //Starts seit letztem Service
LAST_SERVICE_DATE : DATE ; //Datum des letzten Services
USER_ID : INT ; //User-Kennung des Serviceverantwortlichen
USER_NAME : STRING [8 ]; //User-Name
DSP_SERVICE_H : INT ; //Anzeige nächster Service in Stunden
DSP_SERVICE_STARTS : DINT ; //Anzeige nächster Service nach Starts
FLAG_SERVICE : BOOL ; //Flag: Service ist fällig
FLAG_SERVICE_WARN : BOOL ; //Flag: Warnung Service demnächst
RESET : BYTE ; //RESET: (Wartung druchgeführt)
END_STRUCT ;
END_TYPE
TYPE "UDT_SERVICE_CFG_DRV"
AUTHOR : 'S.Maag'
FAMILY : Maagic7
VERSION : 0.1
STRUCT
STD : INT := 1000; //Wartungsintervall Betriebsstunden
STARTS : DINT ; //Wartungsintervall Starts
STD_DSP_MSG : INT := 50; //Wartungsintervall Stunden vorher melden
STARTS_DSP_MSG : INT := 100; //Wartungsintervall Starts vorher melden
STD_AKTIV : BOOL := TRUE; //Wartungsintervall nach Betriebsstunden aktiv
STARTS_AKTIV : BOOL ; //Wartungsintervall nach Starts aktiv
FLAG2 : BOOL ;
FLAG3 : BOOL ;
END_STRUCT ;
END_TYPE
DATA_BLOCK "DB520_SERVICE_DATEN"
TITLE =
VERSION : 0.1
STRUCT
SRVC01 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC02 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC03 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC04 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC05 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC06 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC07 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC08 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC09 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC10 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC11 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC12 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC13 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC14 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC15 : "UDT_SERVICE_INF_DRV"; //Servicedaten
SRVC16 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC17 : "UDT_SERVICE_INF_DRV";
SRVC18 : "UDT_SERVICE_INF_DRV"; //Servicedaten:
SRVC19 : "UDT_SERVICE_INF_DRV";
SRVC20 : "UDT_SERVICE_INF_DRV";
SRVC21 : "UDT_SERVICE_INF_DRV";
SRVC22 : "UDT_SERVICE_INF_DRV";
SRVC23 : "UDT_SERVICE_INF_DRV";
SRVC24 : "UDT_SERVICE_INF_DRV";
END_STRUCT ;
BEGIN
SRVC01.STARTS := L#0;
SRVC01.RUN_H := L#0;
SRVC01.RUN_SEC := 0;
SRVC01.SERVICE_H := 0;
SRVC01.SERVICE_SEC := 0;
SRVC01.SERVICE_STARTS := L#0;
SRVC01.LAST_SERVICE_DATE := D#1990-1-1;
SRVC01.USER_ID := 0;
SRVC01.USER_NAME := '';
SRVC01.DSP_SERVICE_H := 0;
SRVC01.DSP_SERVICE_STARTS := L#0;
SRVC01.FLAG_SERVICE := FALSE;
SRVC01.FLAG_SERVICE_WARN := FALSE;
SRVC01.RESET := B#16#0;
SRVC02.STARTS := L#0;
SRVC02.RUN_H := L#0;
SRVC02.RUN_SEC := 0;
SRVC02.SERVICE_H := 0;
SRVC02.SERVICE_SEC := 0;
SRVC02.SERVICE_STARTS := L#0;
SRVC02.LAST_SERVICE_DATE := D#1990-1-1;
SRVC02.USER_ID := 0;
SRVC02.USER_NAME := '';
SRVC02.DSP_SERVICE_H := 0;
SRVC02.DSP_SERVICE_STARTS := L#0;
SRVC02.FLAG_SERVICE := FALSE;
SRVC02.FLAG_SERVICE_WARN := FALSE;
SRVC02.RESET := B#16#0;
SRVC03.STARTS := L#0;
SRVC03.RUN_H := L#0;
SRVC03.RUN_SEC := 0;
SRVC03.SERVICE_H := 0;
SRVC03.SERVICE_SEC := 0;
SRVC03.SERVICE_STARTS := L#0;
SRVC03.LAST_SERVICE_DATE := D#1990-1-1;
SRVC03.USER_ID := 0;
SRVC03.USER_NAME := '';
SRVC03.DSP_SERVICE_H := 0;
SRVC03.DSP_SERVICE_STARTS := L#0;
SRVC03.FLAG_SERVICE := FALSE;
SRVC03.FLAG_SERVICE_WARN := FALSE;
SRVC03.RESET := B#16#0;
SRVC04.STARTS := L#0;
SRVC04.RUN_H := L#0;
SRVC04.RUN_SEC := 0;
SRVC04.SERVICE_H := 0;
SRVC04.SERVICE_SEC := 0;
SRVC04.SERVICE_STARTS := L#0;
SRVC04.LAST_SERVICE_DATE := D#1990-1-1;
SRVC04.USER_ID := 0;
SRVC04.USER_NAME := '';
SRVC04.DSP_SERVICE_H := 0;
SRVC04.DSP_SERVICE_STARTS := L#0;
SRVC04.FLAG_SERVICE := FALSE;
SRVC04.FLAG_SERVICE_WARN := FALSE;
SRVC04.RESET := B#16#0;
SRVC05.STARTS := L#69;
SRVC05.RUN_H := L#303;
SRVC05.RUN_SEC := 3311;
SRVC05.SERVICE_H := 302;
SRVC05.SERVICE_SEC := 946;
SRVC05.SERVICE_STARTS := L#58;
SRVC05.LAST_SERVICE_DATE := D#2017-11-8;
SRVC05.USER_ID := 0;
SRVC05.USER_NAME := '';
SRVC05.DSP_SERVICE_H := 8298;
SRVC05.DSP_SERVICE_STARTS := L#0;
SRVC05.FLAG_SERVICE := TRUE;
SRVC05.FLAG_SERVICE_WARN := TRUE;
SRVC05.RESET := B#16#0;
SRVC06.STARTS := L#102;
SRVC06.RUN_H := L#291;
SRVC06.RUN_SEC := 2911;
SRVC06.SERVICE_H := 291;
SRVC06.SERVICE_SEC := 2911;
SRVC06.SERVICE_STARTS := L#102;
SRVC06.LAST_SERVICE_DATE := D#1990-1-1;
SRVC06.USER_ID := 0;
SRVC06.USER_NAME := '';
SRVC06.DSP_SERVICE_H := 8309;
SRVC06.DSP_SERVICE_STARTS := L#0;
SRVC06.FLAG_SERVICE := TRUE;
SRVC06.FLAG_SERVICE_WARN := TRUE;
SRVC06.RESET := B#16#0;
SRVC07.STARTS := L#0;
SRVC07.RUN_H := L#0;
SRVC07.RUN_SEC := 0;
SRVC07.SERVICE_H := 0;
SRVC07.SERVICE_SEC := 0;
SRVC07.SERVICE_STARTS := L#0;
SRVC07.LAST_SERVICE_DATE := D#1990-1-1;
SRVC07.USER_ID := 0;
SRVC07.USER_NAME := '';
SRVC07.DSP_SERVICE_H := 8600;
SRVC07.DSP_SERVICE_STARTS := L#0;
SRVC07.FLAG_SERVICE := TRUE;
SRVC07.FLAG_SERVICE_WARN := TRUE;
SRVC07.RESET := B#16#0;
SRVC08.STARTS := L#0;
SRVC08.RUN_H := L#0;
SRVC08.RUN_SEC := 0;
SRVC08.SERVICE_H := 0;
SRVC08.SERVICE_SEC := 0;
SRVC08.SERVICE_STARTS := L#0;
SRVC08.LAST_SERVICE_DATE := D#1990-1-1;
SRVC08.USER_ID := 0;
SRVC08.USER_NAME := '';
SRVC08.DSP_SERVICE_H := 0;
SRVC08.DSP_SERVICE_STARTS := L#0;
SRVC08.FLAG_SERVICE := FALSE;
SRVC08.FLAG_SERVICE_WARN := FALSE;
SRVC08.RESET := B#16#0;
SRVC09.STARTS := L#0;
SRVC09.RUN_H := L#0;
SRVC09.RUN_SEC := 0;
SRVC09.SERVICE_H := 0;
SRVC09.SERVICE_SEC := 0;
SRVC09.SERVICE_STARTS := L#0;
SRVC09.LAST_SERVICE_DATE := D#1990-1-1;
SRVC09.USER_ID := 0;
SRVC09.USER_NAME := '';
SRVC09.DSP_SERVICE_H := 0;
SRVC09.DSP_SERVICE_STARTS := L#0;
SRVC09.FLAG_SERVICE := FALSE;
SRVC09.FLAG_SERVICE_WARN := FALSE;
SRVC09.RESET := B#16#0;
SRVC10.STARTS := L#0;
SRVC10.RUN_H := L#0;
SRVC10.RUN_SEC := 0;
SRVC10.SERVICE_H := 0;
SRVC10.SERVICE_SEC := 0;
SRVC10.SERVICE_STARTS := L#0;
SRVC10.LAST_SERVICE_DATE := D#1990-1-1;
SRVC10.USER_ID := 0;
SRVC10.USER_NAME := '';
SRVC10.DSP_SERVICE_H := 0;
SRVC10.DSP_SERVICE_STARTS := L#0;
SRVC10.FLAG_SERVICE := FALSE;
SRVC10.FLAG_SERVICE_WARN := FALSE;
SRVC10.RESET := B#16#0;
SRVC11.STARTS := L#0;
SRVC11.RUN_H := L#0;
SRVC11.RUN_SEC := 0;
SRVC11.SERVICE_H := 0;
SRVC11.SERVICE_SEC := 0;
SRVC11.SERVICE_STARTS := L#0;
SRVC11.LAST_SERVICE_DATE := D#1990-1-1;
SRVC11.USER_ID := 0;
SRVC11.USER_NAME := '';
SRVC11.DSP_SERVICE_H := 0;
SRVC11.DSP_SERVICE_STARTS := L#0;
SRVC11.FLAG_SERVICE := FALSE;
SRVC11.FLAG_SERVICE_WARN := FALSE;
SRVC11.RESET := B#16#0;
SRVC12.STARTS := L#0;
SRVC12.RUN_H := L#0;
SRVC12.RUN_SEC := 0;
SRVC12.SERVICE_H := 0;
SRVC12.SERVICE_SEC := 0;
SRVC12.SERVICE_STARTS := L#0;
SRVC12.LAST_SERVICE_DATE := D#1990-1-1;
SRVC12.USER_ID := 0;
SRVC12.USER_NAME := '';
SRVC12.DSP_SERVICE_H := 0;
SRVC12.DSP_SERVICE_STARTS := L#0;
SRVC12.FLAG_SERVICE := FALSE;
SRVC12.FLAG_SERVICE_WARN := FALSE;
SRVC12.RESET := B#16#0;
SRVC13.STARTS := L#0;
SRVC13.RUN_H := L#0;
SRVC13.RUN_SEC := 0;
SRVC13.SERVICE_H := 0;
SRVC13.SERVICE_SEC := 0;
SRVC13.SERVICE_STARTS := L#0;
SRVC13.LAST_SERVICE_DATE := D#1990-1-1;
SRVC13.USER_ID := 0;
SRVC13.USER_NAME := '';
SRVC13.DSP_SERVICE_H := 0;
SRVC13.DSP_SERVICE_STARTS := L#0;
SRVC13.FLAG_SERVICE := FALSE;
SRVC13.FLAG_SERVICE_WARN := FALSE;
SRVC13.RESET := B#16#0;
SRVC14.STARTS := L#0;
SRVC14.RUN_H := L#0;
SRVC14.RUN_SEC := 0;
SRVC14.SERVICE_H := 0;
SRVC14.SERVICE_SEC := 0;
SRVC14.SERVICE_STARTS := L#0;
SRVC14.LAST_SERVICE_DATE := D#1990-1-1;
SRVC14.USER_ID := 0;
SRVC14.USER_NAME := '';
SRVC14.DSP_SERVICE_H := 0;
SRVC14.DSP_SERVICE_STARTS := L#0;
SRVC14.FLAG_SERVICE := FALSE;
SRVC14.FLAG_SERVICE_WARN := FALSE;
SRVC14.RESET := B#16#0;
SRVC15.STARTS := L#0;
SRVC15.RUN_H := L#0;
SRVC15.RUN_SEC := 0;
SRVC15.SERVICE_H := 0;
SRVC15.SERVICE_SEC := 0;
SRVC15.SERVICE_STARTS := L#0;
SRVC15.LAST_SERVICE_DATE := D#1990-1-1;
SRVC15.USER_ID := 0;
SRVC15.USER_NAME := '';
SRVC15.DSP_SERVICE_H := 0;
SRVC15.DSP_SERVICE_STARTS := L#0;
SRVC15.FLAG_SERVICE := FALSE;
SRVC15.FLAG_SERVICE_WARN := FALSE;
SRVC15.RESET := B#16#0;
SRVC16.STARTS := L#0;
SRVC16.RUN_H := L#0;
SRVC16.RUN_SEC := 0;
SRVC16.SERVICE_H := 0;
SRVC16.SERVICE_SEC := 0;
SRVC16.SERVICE_STARTS := L#0;
SRVC16.LAST_SERVICE_DATE := D#1990-1-1;
SRVC16.USER_ID := 0;
SRVC16.USER_NAME := '';
SRVC16.DSP_SERVICE_H := 0;
SRVC16.DSP_SERVICE_STARTS := L#0;
SRVC16.FLAG_SERVICE := FALSE;
SRVC16.FLAG_SERVICE_WARN := FALSE;
SRVC16.RESET := B#16#0;
SRVC17.STARTS := L#0;
SRVC17.RUN_H := L#0;
SRVC17.RUN_SEC := 0;
SRVC17.SERVICE_H := 0;
SRVC17.SERVICE_SEC := 0;
SRVC17.SERVICE_STARTS := L#0;
SRVC17.LAST_SERVICE_DATE := D#1990-1-1;
SRVC17.USER_ID := 0;
SRVC17.USER_NAME := '';
SRVC17.DSP_SERVICE_H := 0;
SRVC17.DSP_SERVICE_STARTS := L#0;
SRVC17.FLAG_SERVICE := FALSE;
SRVC17.FLAG_SERVICE_WARN := FALSE;
SRVC17.RESET := B#16#0;
SRVC18.STARTS := L#0;
SRVC18.RUN_H := L#0;
SRVC18.RUN_SEC := 0;
SRVC18.SERVICE_H := 0;
SRVC18.SERVICE_SEC := 0;
SRVC18.SERVICE_STARTS := L#0;
SRVC18.LAST_SERVICE_DATE := D#1990-1-1;
SRVC18.USER_ID := 0;
SRVC18.USER_NAME := '';
SRVC18.DSP_SERVICE_H := 0;
SRVC18.DSP_SERVICE_STARTS := L#0;
SRVC18.FLAG_SERVICE := FALSE;
SRVC18.FLAG_SERVICE_WARN := FALSE;
SRVC18.RESET := B#16#0;
SRVC19.STARTS := L#0;
SRVC19.RUN_H := L#0;
SRVC19.RUN_SEC := 0;
SRVC19.SERVICE_H := 0;
SRVC19.SERVICE_SEC := 0;
SRVC19.SERVICE_STARTS := L#0;
SRVC19.LAST_SERVICE_DATE := D#1990-1-1;
SRVC19.USER_ID := 0;
SRVC19.USER_NAME := '';
SRVC19.DSP_SERVICE_H := 0;
SRVC19.DSP_SERVICE_STARTS := L#0;
SRVC19.FLAG_SERVICE := FALSE;
SRVC19.FLAG_SERVICE_WARN := FALSE;
SRVC19.RESET := B#16#0;
SRVC20.STARTS := L#0;
SRVC20.RUN_H := L#0;
SRVC20.RUN_SEC := 0;
SRVC20.SERVICE_H := 0;
SRVC20.SERVICE_SEC := 0;
SRVC20.SERVICE_STARTS := L#0;
SRVC20.LAST_SERVICE_DATE := D#1990-1-1;
SRVC20.USER_ID := 0;
SRVC20.USER_NAME := '';
SRVC20.DSP_SERVICE_H := 0;
SRVC20.DSP_SERVICE_STARTS := L#0;
SRVC20.FLAG_SERVICE := FALSE;
SRVC20.FLAG_SERVICE_WARN := FALSE;
SRVC20.RESET := B#16#0;
SRVC21.STARTS := L#0;
SRVC21.RUN_H := L#0;
SRVC21.RUN_SEC := 0;
SRVC21.SERVICE_H := 0;
SRVC21.SERVICE_SEC := 0;
SRVC21.SERVICE_STARTS := L#0;
SRVC21.LAST_SERVICE_DATE := D#1990-1-1;
SRVC21.USER_ID := 0;
SRVC21.USER_NAME := '';
SRVC21.DSP_SERVICE_H := 0;
SRVC21.DSP_SERVICE_STARTS := L#0;
SRVC21.FLAG_SERVICE := FALSE;
SRVC21.FLAG_SERVICE_WARN := FALSE;
SRVC21.RESET := B#16#0;
SRVC22.STARTS := L#0;
SRVC22.RUN_H := L#0;
SRVC22.RUN_SEC := 0;
SRVC22.SERVICE_H := 0;
SRVC22.SERVICE_SEC := 0;
SRVC22.SERVICE_STARTS := L#0;
SRVC22.LAST_SERVICE_DATE := D#1990-1-1;
SRVC22.USER_ID := 0;
SRVC22.USER_NAME := '';
SRVC22.DSP_SERVICE_H := 0;
SRVC22.DSP_SERVICE_STARTS := L#0;
SRVC22.FLAG_SERVICE := FALSE;
SRVC22.FLAG_SERVICE_WARN := FALSE;
SRVC22.RESET := B#16#0;
SRVC23.STARTS := L#0;
SRVC23.RUN_H := L#0;
SRVC23.RUN_SEC := 0;
SRVC23.SERVICE_H := 0;
SRVC23.SERVICE_SEC := 0;
SRVC23.SERVICE_STARTS := L#0;
SRVC23.LAST_SERVICE_DATE := D#1990-1-1;
SRVC23.USER_ID := 0;
SRVC23.USER_NAME := '';
SRVC23.DSP_SERVICE_H := 0;
SRVC23.DSP_SERVICE_STARTS := L#0;
SRVC23.FLAG_SERVICE := FALSE;
SRVC23.FLAG_SERVICE_WARN := FALSE;
SRVC23.RESET := B#16#0;
SRVC24.STARTS := L#0;
SRVC24.RUN_H := L#0;
SRVC24.RUN_SEC := 0;
SRVC24.SERVICE_H := 0;
SRVC24.SERVICE_SEC := 0;
SRVC24.SERVICE_STARTS := L#0;
SRVC24.LAST_SERVICE_DATE := D#1990-1-1;
SRVC24.USER_ID := 0;
SRVC24.USER_NAME := '';
SRVC24.DSP_SERVICE_H := 0;
SRVC24.DSP_SERVICE_STARTS := L#0;
SRVC24.FLAG_SERVICE := FALSE;
SRVC24.FLAG_SERVICE_WARN := FALSE;
SRVC24.RESET := B#16#0;
END_DATA_BLOCK
DATA_BLOCK "DB521_SERVICE_CFG"
TITLE =
VERSION : 0.1
STRUCT
CFG_SRVC_PUMPEN : "UDT_SERVICE_CFG_DRV"; //Konfiguration Service: Pumpen
CFG_SRVC_LFT : "UDT_SERVICE_CFG_DRV"; //Konfiguration Service: Lüfter
CFG_SRVC03 : "UDT_SERVICE_CFG_DRV"; //Konfiguration Service:
CFG_SRVC04 : "UDT_SERVICE_CFG_DRV"; //Konfiguration Service:
END_STRUCT ;
BEGIN
CFG_SRVC_PUMPEN.STD := 8600;
CFG_SRVC_PUMPEN.STARTS := L#0;
CFG_SRVC_PUMPEN.STD_DSP_MSG := 50;
CFG_SRVC_PUMPEN.STARTS_DSP_MSG := 100;
CFG_SRVC_PUMPEN.STD_AKTIV := TRUE;
CFG_SRVC_PUMPEN.STARTS_AKTIV := FALSE;
CFG_SRVC_PUMPEN.FLAG2 := FALSE;
CFG_SRVC_PUMPEN.FLAG3 := FALSE;
CFG_SRVC_LFT.STD := 8600;
CFG_SRVC_LFT.STARTS := L#0;
CFG_SRVC_LFT.STD_DSP_MSG := 50;
CFG_SRVC_LFT.STARTS_DSP_MSG := 100;
CFG_SRVC_LFT.STD_AKTIV := TRUE;
CFG_SRVC_LFT.STARTS_AKTIV := FALSE;
CFG_SRVC_LFT.FLAG2 := FALSE;
CFG_SRVC_LFT.FLAG3 := FALSE;
CFG_SRVC03.STD := 1000;
CFG_SRVC03.STARTS := L#0;
CFG_SRVC03.STD_DSP_MSG := 50;
CFG_SRVC03.STARTS_DSP_MSG := 100;
CFG_SRVC03.STD_AKTIV := TRUE;
CFG_SRVC03.STARTS_AKTIV := FALSE;
CFG_SRVC03.FLAG2 := FALSE;
CFG_SRVC03.FLAG3 := FALSE;
CFG_SRVC04.STD := 1000;
CFG_SRVC04.STARTS := L#0;
CFG_SRVC04.STD_DSP_MSG := 50;
CFG_SRVC04.STARTS_DSP_MSG := 100;
CFG_SRVC04.STD_AKTIV := TRUE;
CFG_SRVC04.STARTS_AKTIV := FALSE;
CFG_SRVC04.FLAG2 := FALSE;
CFG_SRVC04.FLAG3 := FALSE;
END_DATA_BLOCK
FUNCTION "m7b_DRIVE_INFO" : VOID
TITLE =Drive Info
//Informationsfunktion für Antriebe:
//
//- Anzahl der Starts
//- Betriebsstunden
//- Service/Wartungsmeldung nach Anzahl der Starts und/oder Betriebsstunden
//- Service Warnmeldung Anzahl Starts oder Betriebstunden vor dem fälligen
// Wartungstermin
//
//Mit Speicherung des Letzten Servicedatums sowie der Userkennung
//des Verantwortlichen
//
//PARAMETER IN:
// SIGNAL: Ansteuersignal des Antriebs (Antrieb Start)
// SERVICE_RESET: Signal Service erledigt, Serviceintervall wird zurückgesetzt
//
// DrvCfg: UDT1001: UDT_SERVICE_CFG_DRV, Struktur mit Service Konfigurationsdaten
//
//PARAMETER IN_OUT:
// DrvInf: UDT1000: UDT_SERVICE_INF, Struktur in der Service- und Betriebsdaten
//
// gespeichert werden.
//
//AUTOR: Stefan Maag
//DATUM: 5/2005
//
//AENDERUNGSVERMERKE:
//--------------------------------------------------------------------------------
//DATUM NAME AENDERUNG
//--------------------------------------------------------------------------------
//02.07.2012 S.Maag Anzeige Rest- Zeit/Starts
// Vorbereitung UserName Service speichern
//--------------------------------------------------------------------------------
//
//HINWEISE:
AUTHOR : 'S.Maag'
VERSION : 0.1
VAR_INPUT
SIGNAL : BOOL ; //Motorsignal
SERVICE_RESET : BOOL ;
DrvCfg : "UDT_SERVICE_CFG_DRV";
END_VAR
VAR_OUTPUT
SERVICE : BOOL ; //Service fällig
SERV_WARN : BOOL ; //Service demnächst fällig
END_VAR
VAR_IN_OUT
DrvInf : "UDT_SERVICE_INF_DRV";
HM : BOOL ; //Hilfsmerker
END_VAR
VAR_TEMP
DatumZeit : DATE_AND_TIME ;
DATUM : DATE ;
RET : INT ;
SERVICE_H : BOOL ;
SERVICE_STARTS : BOOL ;
SERVICE_WARN_H : BOOL ;
SERVICE_WARN_STARTS : BOOL ;
RESET : BOOL ;
tmpH : INT ;
END_VAR
BEGIN
NETWORK
TITLE =Anzahl der Starts zählen
U #SIGNAL;
FP #HM;
SPBN ne2;
L #DrvInf.STARTS; // Starts gesamt
+ L#1;
T #DrvInf.STARTS;
L #DrvInf.SERVICE_STARTS; // Starts seit letzter Wartung
+ L#1;
T #DrvInf.SERVICE_STARTS;
ne2: NOP 0;
NETWORK
TITLE =(Betriebs-) Stunden zählen
U #SIGNAL; // Gerät eingeschaltet
U "TAKT_FLK+1s"; // Takt 1 Sekunde
SPB rcnt;
SPA ne3;
rcnt: L #DrvInf.RUN_SEC; // Speicher für Sekunden
+ 1; // erhöhen
T #DrvInf.RUN_SEC;
L 3600; // prüfen ob 1 Stunde vergangen = 3600 sec.
>=I ;
SPB rh; // wenn ja, Stunden bearbeiten
SPA ne3;
rh: L 0; // neue Stunde: zuerst Sekunden löschen
T #DrvInf.RUN_SEC;
L #DrvInf.RUN_H; // Stundenspeicher erhöhen
+ L#1;
T #DrvInf.RUN_H;
ne3: NOP 0;
NETWORK
TITLE =(Betriebs-) Stunden seit letzter Wartung zählen
U #SIGNAL; // Gerät eingeschaltet
U "TAKT_FLK+1s"; // Takt 1 Sekunde
SPB scnt;
SPA ne4;
scnt: L #DrvInf.SERVICE_SEC; // Speicher für Sekunden
+ 1; // erhöhen
T #DrvInf.SERVICE_SEC;
L 3600; // prüfen ob 1 Stunde vergangen = 3600 sec.
>=I ;
SPB sh; // wenn ja, Stunden bearbeiten
SPA ne4;
sh: L 0; // neue Stunde: zuerst Sekunden löschen
T #DrvInf.SERVICE_SEC;
L #DrvInf.SERVICE_H; // Stundenspeicher erhöhen
+ L#1;
T #DrvInf.SERVICE_H;
ne4: NOP 0;
NETWORK
TITLE =Resetbedingung
//RESET-Button über Service-Info-Struktur
//oder externer Eingang RESET
O( ;
L #DrvInf.RESET;
L 1;
==I ;
) ;
O #SERVICE_RESET;
= #RESET;
NETWORK
TITLE =Service Intervall rücksetzen
UN #RESET;
SPB ne5;
L L#0;
T #DrvInf.SERVICE_H;
T #DrvInf.SERVICE_SEC;
T #DrvInf.SERVICE_STARTS;
CALL "READ_CLK" (// System Datum- und Uhrzeit
RET_VAL := #RET,
CDT := #DatumZeit);
CALL FC 306 (// Datum aus System Datum- Zeit lösen
IN := #DatumZeit,
RET_VAL := #DATUM);
L #DATUM;
T #DrvInf.LAST_SERVICE_DATE; // aktuelles Datum als letztes Servicedatum speichern
L 0; // Reset-Befehl löschen
T #DrvInf.RESET;
ne5: NOP 0;
NETWORK
TITLE =Anzeige Restzeit bis Service
L #DrvCfg.STD;
L #DrvInf.SERVICE_H;
-I ;
SPPZ sav1; // Springe wenn >=0
L 0; // sonst auf 0 begrenzen
sav1: T #DrvInf.DSP_SERVICE_H;
NETWORK
TITLE =Anzeige Reststarts bis Service
L #DrvCfg.STARTS;
L #DrvInf.SERVICE_STARTS;
-D ;
SPPZ sav2; // Springe wenn >=0
L L#0; // sonst auf 0 begrenzen
sav2: T #DrvInf.DSP_SERVICE_STARTS;
NETWORK
TITLE =Betriebsstunden für Service prüfen
//Meldung Service ist jetzt fällig, nach Betriebsstunden
U( ;
L #DrvCfg.STD; // Anzahl der Betriebsstunde für Service
L #DrvInf.SERVICE_H; // Anzahl der Betriebsstunden seit letztem Service
>=I ;
) ;
U #DrvCfg.STD_AKTIV; // Aktivierungsflag für Service nach Betriebsstunden auswerten
= #SERVICE_H;
NETWORK
TITLE =Starts für Service prüfen
//Meldung Service ist jetzt fällig, nach Anzahl starts
U( ;
L #DrvCfg.STARTS; // Anzahl der Starts für Service
L #DrvInf.SERVICE_STARTS; // Anzahl der Starts seit letzem Servie
>=I ;
) ;
U #DrvCfg.STARTS_AKTIV; // Aktivierungsflag für Service nach Starts auswerten
= #SERVICE_STARTS;
NETWORK
TITLE =Ausgang Service
//Meldung Service ist jetzt fällig
O #SERVICE_H;
O #SERVICE_STARTS;
= #SERVICE; // Bausteinausgang Service jetzt fälig
= #DrvInf.FLAG_SERVICE;
NETWORK
TITLE =Betriebsstunden für Service Warnmeldung prüfen
//Warnung bzw- Hinweis, daß Service demnächst fällig ist, nach Betriebsstunden
U( ;
L #DrvCfg.STD;
L #DrvCfg.STD_DSP_MSG;
-I ;
L #DrvInf.SERVICE_H;
>=I ;
) ;
U #DrvCfg.STD_AKTIV; // Aktivierungsflag für Service nach Betriebsstunden auswerten
= #SERVICE_WARN_H;
NETWORK
TITLE =Starts für Service Warnmeldung prüfen
//Warnung bzw- Hinweis, daß Service demnächst fällig ist, nach Betriebsstunden
U( ;
L #DrvCfg.STARTS;
L #DrvCfg.STARTS_DSP_MSG;
-D ;
L #DrvInf.SERVICE_STARTS;
>=D ;
) ;
U #DrvCfg.STARTS_AKTIV; // Aktivierungsflag für Service nach Starts auswerten
= #SERVICE_WARN_STARTS;
NETWORK
TITLE =Ausgang Service demnächst
O #SERVICE_WARN_H;
O #SERVICE_WARN_STARTS;
= #SERV_WARN; // Bausteinausgang Service demnächst fällig
= #DrvInf.FLAG_SERVICE_WARN;
END_FUNCTION