ILSLib hinzugefügt
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
FUNCTION_BLOCK "FB_SupervisionRasterSensor"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
stInSenRaster : "UDT_Sensor"; // Das Signal das überwacht wird
|
||||
xInMotorRun : Bool; // Motor dreht sich
|
||||
stInSettings : Struct // Einstellungen
|
||||
xInEnableSupervision : Bool := false; // Überwachung aktiviert
|
||||
tInDelayMotorRun : Time := T#200ms; // Motor Delay
|
||||
tInRasterHigh : Time := T#100ms; // High Signal
|
||||
tInRasterLow : Time := T#100ms; // Low Signal
|
||||
sInConveyorName : String;
|
||||
wInTextListFunctionId : Word;
|
||||
wInTextListMessageId : Word;
|
||||
END_STRUCT;
|
||||
xInErrorQuit : Bool; // Quittieren z.B. Button Reset
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
xOutErrorRasterSensor : Bool; // Fehler ausgeben
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
tOn_RasterHigh {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Überwachungszeit High-Signal
|
||||
tOn_RasterLow {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Überwachungszeit Low-Signal
|
||||
tOnMotorRunningDelay {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Motor Delay Timer
|
||||
xErrorRasterSensor : Bool; // Fehler
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION Überwachung Raster Sensor
|
||||
|
||||
#tOnMotorRunningDelay(IN := #xInMotorRun, // CarouselRun muss delayed benutzt werden, wegen Anfahrzeit vom ETF
|
||||
PT := #stInSettings.tInDelayMotorRun);
|
||||
|
||||
#tOn_RasterHigh(IN := #xInMotorRun AND #tOnMotorRunningDelay.Q AND #stInSenRaster.xDirectSensor,
|
||||
PT := #stInSettings.tInRasterHigh);
|
||||
|
||||
#tOn_RasterLow(IN := #xInMotorRun AND #tOnMotorRunningDelay.Q AND NOT #stInSenRaster.xDirectSensor,
|
||||
PT := #stInSettings.tInRasterLow);
|
||||
|
||||
IF #tOn_RasterHigh.Q OR #tOn_RasterLow.Q THEN // Wenn einer der beiden Timer abläuft, dann Fehler!
|
||||
#xErrorRasterSensor := TRUE;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
REGION Quittieren
|
||||
IF #xErrorRasterSensor AND #stInSettings.xInEnableSupervision AND #xInErrorQuit THEN
|
||||
#xErrorRasterSensor := FALSE;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
REGION Ausgänge
|
||||
#xOutErrorRasterSensor := #xErrorRasterSensor AND #stInSettings.xInEnableSupervision; // Fehler ausgeben, wenn Überwachung aktiviert
|
||||
END_REGION
|
||||
|
||||
(* REGION Monitoring
|
||||
#fbMonitoring.stSettings.nErrorType := 1;
|
||||
#fbMonitoring.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonitoring.stSettings.xSelfQuit := TRUE;
|
||||
#fbMonitoring.stSettings.tDelay := T#1s;
|
||||
#fbMonitoring(sInFctnName := 'Rastersensorueberwachung',
|
||||
sInPrefix := #stInSettings.sInConveyorName,
|
||||
wInTextListId_Function := #stInSettings.wInTextListFunctionId,
|
||||
wInTextListId_Message := #stInSettings.wInTextListMessageId,
|
||||
sInSuffix := #stInSenRaster.sName,
|
||||
InOutMachineState := "DB_MachineGlobal".stStateMain,
|
||||
xInQuitError := "DB_MachineGlobal".stStateMain.xQuitError,
|
||||
xInSignal := NOT #xErrorRasterSensor,
|
||||
sInAlarmMessage := 'Rastersensorueberwachung ausgeloest');
|
||||
END_REGION *)
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
Reference in New Issue
Block a user