BaseSystemLib hinzugefügt

This commit is contained in:
2026-06-29 16:28:48 +02:00
parent a51a0c6fd1
commit 14a1c5172d
168 changed files with 6797 additions and 0 deletions
@@ -0,0 +1,10 @@
LibraryType:
Guid: a35365d7-dff1-4ac5-9689-8750d7467e8e
Comment:
de-DE: Sensor Interface (Flanken, Stau etc.)
LibraryVersion:
VersionNumber: 2.0.3
Author: e.yueksel
IsDefault: true
Comment:
de-DE: aktualisiert wegen unterlagerter Änderung
@@ -0,0 +1,15 @@
DocumentHash:
- FileName: FB_SensorInput.scl
Hash: AlAVLvJXtSwVO/JfArSvLoOOdNN4MVw9gFmg6QucV+M=
LibraryMetaFileHash: CyRGpaSqwJewa6ic6V5dGHgKYoRJ9vxuiRUgbTHGAhs=
LibraryVersion:
Guid: b1b8d1e1-2be4-46f5-8e3b-08cc20f9ff04
DependsOn:
- TypeName: FB_Monitoring
VersionNumber: 2.0.5
- TypeName: UDT_Sensor
VersionNumber: 2.0.0
- TypeName: UDT_HMI_Sensor
VersionNumber: 2.0.0
- TypeName: UDT_MainState
VersionNumber: 2.0.0
@@ -0,0 +1,183 @@
FUNCTION_BLOCK "FB_SensorInput"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
sInFctName : String[10]; // Sensor Funktion (z.B. Stau)
sInName : String[10]; // Sensor BMK
xInSensor : Bool;
tInDelay : Time := T#150ms;
tInFlicker : Time := T#20ms;
tInJamR : Time := T#3000ms;
tInJamF : Time := T#2000ms;
tInSenFreeShort : Time := T#4000ms;
tInSenFreeLong : Time := T#7000ms;
xInMonitorJam : Bool;
END_VAR
VAR_OUTPUT
xOutFlickerError : Bool;
xOutJam : Bool;
xOutFreeShort : Bool;
xOutFreeLong : Bool;
nOutCntFlicker : Int;
END_VAR
VAR_IN_OUT
stInOutSensor : "UDT_Sensor";
stInOutHMI : "UDT_HMI_Sensor";
stInOutControlUnitCabinet : "UDT_MainState";
END_VAR
VAR
tOnNoSensorChange {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
nCntFlickerPos : Int;
nCntFlickerNeg : Int;
xSensorFlag : Bool;
xSensorDbncdFlag : Bool;
xSensorDbncd { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : Bool;
nActualDay : USInt;
xJam : Bool;
fbMonitoringJam : "FB_Monitoring";
END_VAR
VAR_TEMP
tSensor : Bool;
tDebug : Int;
END_VAR
BEGIN
// ------------------------------------------------
// GLOBAL INFORMATION - do before other FB calls
// ------------------------------------------------
REGION read inputs
#tSensor := (NOT #stInOutHMI.stSensorControl.xControlWithHMI AND #xInSensor) OR
(#stInOutHMI.stSensorControl.xControlWithHMI AND #stInOutHMI.stSensorControl.xSensor);
END_REGION
REGION logic
#stInOutSensor.xDirectSensor := #tSensor;
#stInOutSensor.xDirectEdgePos := #tSensor AND NOT #xSensorFlag AND NOT "FirstScan";
#stInOutSensor.xDirectEdgeNeg := NOT #tSensor AND #xSensorFlag AND NOT "FirstScan";
IF #tSensor AND
((#xSensorFlag = #tSensor AND #tOnNoSensorChange.ET >= #tInDelay) OR "FirstScan") THEN
#xSensorDbncd := TRUE;
ELSIF NOT #tSensor AND
((#xSensorFlag = #tSensor AND #tOnNoSensorChange.ET >= #tInDelay) OR "FirstScan") THEN
#xSensorDbncd := FALSE;
END_IF;
#stInOutSensor.xDbncdEdgePos := #xSensorDbncd AND NOT #xSensorDbncdFlag;
#stInOutSensor.xDbncdEdgeNeg := NOT #xSensorDbncd AND #xSensorDbncdFlag;
END_REGION
REGION detect flickering
#xOutFlickerError := FALSE;
IF #tSensor AND NOT #xSensorFlag AND //ging kurzzeitig auf 0
#tOnNoSensorChange.ET <= #tInFlicker AND
NOT #stInOutHMI.stSensorControl.xControlWithHMI THEN
#xOutFlickerError := TRUE;
#nCntFlickerNeg += 1;
ELSIF
NOT #tSensor AND #xSensorFlag AND // geht kurzzeitig auf 1
#tOnNoSensorChange.ET <= #tInFlicker AND
NOT #stInOutHMI.stSensorControl.xControlWithHMI THEN
#xOutFlickerError := TRUE;
#nCntFlickerPos += 1;
END_IF;
(* // Am Ende des Tages die Zähler zurücksetzten
IF "DB_MachineGlobal".DTL_TimePLC.DAY <> #nActualDay THEN
#nActualDay := "DB_MachineGlobal".DTL_TimePLC.DAY;
#nCntFlickerNeg := 0;
#nCntFlickerPos := 0;
END_IF; *)
END_REGION
REGION timer
#tOnNoSensorChange(IN := (#tSensor = #xSensorFlag),
PT := T#10000S);
END_REGION
REGION flags
#xSensorFlag := #tSensor;
#xSensorDbncdFlag := #xSensorDbncd;
END_REGION
REGION detect jam signal
IF #tSensor AND #tOnNoSensorChange.ET > #tInJamR THEN
#xJam := TRUE;
ELSIF NOT #tSensor AND #tOnNoSensorChange.ET > #tInJamF THEN
#xJam := FALSE;
END_IF;
END_REGION
REGION detect if sensor is false for period of time
IF NOT #tSensor AND #tOnNoSensorChange.ET > #tInSenFreeShort THEN
#xOutFreeShort := TRUE;
ELSE
#xOutFreeShort := FALSE;
END_IF;
IF NOT #tSensor AND #tOnNoSensorChange.ET > #tInSenFreeLong THEN
#xOutFreeLong := TRUE;
ELSE
#xOutFreeLong := FALSE;
END_IF;
END_REGION ;
REGION write outputs
#xOutJam := #xJam;
#stInOutSensor.xDbncdSensor := #xSensorDbncd;
#stInOutSensor.sName := #sInName;
#stInOutSensor.xJam := #xJam;
IF #tOnNoSensorChange.ET >= #tInDelay THEN //
#stInOutSensor.tDirectChangeLast := #tOnNoSensorChange.ET;
ELSE
#stInOutSensor.tDirectChangeLast := T#0s;
END_IF;
#nOutCntFlicker := #nCntFlickerNeg + #nCntFlickerPos;
END_REGION
REGION HMI interface
#stInOutHMI.stSensorStatus.sName := #sInName;
#stInOutHMI.stSensorStatus.xDirectSensor := #tSensor;
#stInOutHMI.stSensorStatus.xDirectEdgePos := #tSensor AND NOT #xSensorFlag AND NOT "FirstScan";
#stInOutHMI.stSensorStatus.xDirectEdgeNeg := NOT #tSensor AND #xSensorFlag AND NOT "FirstScan";
IF #tOnNoSensorChange.ET >= #tInDelay THEN
#stInOutHMI.stSensorStatus.tDirectChangeLast := #tOnNoSensorChange.ET;
ELSE
#stInOutHMI.stSensorStatus.tDirectChangeLast := T#0s;
END_IF;
#stInOutHMI.stSensorStatus.xDbncdSensor := #xSensorDbncd;
#stInOutHMI.stSensorStatus.xDbncdEdgePos := #xSensorDbncd AND NOT #xSensorDbncdFlag;
#stInOutHMI.stSensorStatus.xDbncdEdgeNeg := NOT #xSensorDbncd AND #xSensorDbncdFlag;
#stInOutHMI.stSensorStatus.xJam := #xJam;
END_REGION
REGION monitoring jam
#fbMonitoringJam.stSettings.nErrorType := 1;
#fbMonitoringJam.stSettings.xErrLedIfMachineIsOff := TRUE;
#fbMonitoringJam.stSettings.xSelfQuit := TRUE;
#fbMonitoringJam.stSettings.tDelay := T#1s;
#fbMonitoringJam(sInFctnName := 'Stauueberwachung',
sInPrefix := #sInFctName,
sInAlarmMessage := 'Sensor meldet Stau',
sInSuffix := #sInName,
wInTextListId_Message := 2,
InOutMachineState := #stInOutControlUnitCabinet,
xInSignal := (NOT #xJam) OR NOT #xInMonitorJam);
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,11 @@
LibraryType:
Guid: 7dd56464-1b63-4d64-b2d7-887bdb82e393
LibraryVersion:
VersionNumber: 2.0.0
Author: e.yueksel
IsDefault: true
Comment:
de-DE: |-
HMI Schnittstelle Sensor gesamt
Freigegeben für IBN (EY, 22.04.2025)
@@ -0,0 +1,13 @@
DocumentHash:
- FileName: UDT_HMI_Sensor.xml
Hash: pdpSaxLHHvmtFPis2kxAHCIGbaHxTFdN8tJtZWBViZ0=
LibraryMetaFileHash: pjTVRyZilhDWD1G0TlCpop0/Hr20FaE5CeWAuYTlLsQ=
LibraryVersion:
Guid: b57e71d3-bb28-42e3-98c8-056af10bfdcb
DependsOn:
- TypeName: UDT_Sensor
VersionNumber: 2.0.0
- TypeName: UDT_HMI_Sensor_Config
VersionNumber: 2.0.0
- TypeName: UDT_HMI_Sensor_Control
VersionNumber: 2.0.0
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Types.PlcStruct ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="None">
<Member Name="stSensorStatus" Datatype="&quot;UDT_Sensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stSensorConfig" Datatype="&quot;UDT_HMI_SensorConfig&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stSensorControl" Datatype="&quot;UDT_HMI_SensorCtrl&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>UDT_HMI_Sensor</Name>
<Namespace />
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="3" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Types.PlcStruct>
</Document>
@@ -0,0 +1,11 @@
LibraryType:
Guid: 50f6123e-5cf5-451c-991a-e3b8c4fc53e6
LibraryVersion:
VersionNumber: 2.0.0
Author: e.yueksel
IsDefault: true
Comment:
de-DE: |-
HMI: Sensor Konfiguration
Freigegeben für IBN (EY, 22.04.2025)
@@ -0,0 +1,6 @@
DocumentHash:
- FileName: UDT_HMI_Sensor_Config.xml
Hash: qVtFL7MkmbLJxHZ7EimCYQhPUE1d68oJJe/I6gMX/4A=
LibraryMetaFileHash: mDWR4ZOzDreembK/g+lNYKUCuVdT/bM6lH3CjStr054=
LibraryVersion:
Guid: e4319c82-04b6-4bf6-856a-f001cb82348c
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Types.PlcStruct ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="None">
<Member Name="tDelay" Datatype="Time">
<Comment>
<MultiLanguageText Lang="de-DE">Entprellzeit für Debounced</MultiLanguageText>
</Comment>
</Member>
<Member Name="tFlicker" Datatype="Time">
<Comment>
<MultiLanguageText Lang="de-DE">Zeit die als "Flackern" eingestuft wird</MultiLanguageText>
</Comment>
</Member>
<Member Name="tJamR" Datatype="Time">
<Comment>
<MultiLanguageText Lang="de-DE">Zeit bis Stau steigende Flanke</MultiLanguageText>
</Comment>
</Member>
<Member Name="tJamF" Datatype="Time">
<Comment>
<MultiLanguageText Lang="de-DE">Zeit bis Stau fallende Flanke</MultiLanguageText>
</Comment>
</Member>
<Member Name="tSenFreeShort" Datatype="Time">
<Comment>
<MultiLanguageText Lang="de-DE">Sensor seit Zeit x frei (Zeit 1, kurz)</MultiLanguageText>
</Comment>
</Member>
<Member Name="tSenFreeLong" Datatype="Time">
<Comment>
<MultiLanguageText Lang="de-DE">Sensor seit Ueit x frei (Zeit 2, lang)</MultiLanguageText>
</Comment>
</Member>
</Section>
</Sections></Interface>
<Name>UDT_HMI_Sensor_Config</Name>
<Namespace />
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="3" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Types.PlcStruct>
</Document>
@@ -0,0 +1,11 @@
LibraryType:
Guid: 09d91f68-6a2d-4805-86d6-9574c935a865
LibraryVersion:
VersionNumber: 2.0.0
Author: e.yueksel
IsDefault: true
Comment:
de-DE: |-
HMI: Sensor kontrollieren
Freigegeben für IBN (EY, 22.04.2025)
@@ -0,0 +1,6 @@
DocumentHash:
- FileName: UDT_HMI_Sensor_Control.xml
Hash: bWLPsGarsUcnfdbdiUbARe+Bjt4MWYui0farXKX091w=
LibraryMetaFileHash: 4h5gTdhZdANRu7ObG4Q0GM5Z+gROxsHK6PIhP8+U3KM=
LibraryVersion:
Guid: 0315a473-65a3-42eb-8abe-27c8b0341757
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Types.PlcStruct ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="None">
<Member Name="xControlWithHMI" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Sensor per HMI steuern aktivieren</MultiLanguageText>
</Comment>
</Member>
<Member Name="xSensor" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Sensor HMI</MultiLanguageText>
</Comment>
</Member>
</Section>
</Sections></Interface>
<Name>UDT_HMI_Sensor_Control</Name>
<Namespace />
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="3" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Types.PlcStruct>
</Document>
@@ -0,0 +1,13 @@
LibraryType:
Guid: daf03d56-a8bc-4c33-9e87-b6b4ed277fe3
Comment:
de-DE: 'Anwenderdatentyp für Separator '
LibraryVersion:
VersionNumber: 2.0.0
Author: e.yueksel
IsDefault: true
Comment:
de-DE: |-
Standard Sensor Interface
Freigegeben für IBN (EY, 22.04.2025)
@@ -0,0 +1,6 @@
DocumentHash:
- FileName: UDT_Sensor.xml
Hash: gZqmsqXcGDYJlbUue+QglmkruFD+MU4TdxwktDL+wSM=
LibraryMetaFileHash: fmiqCPUQjv/AmVJlc2IJ0GwWtyG6giYM7RrNeIVaX2Y=
LibraryVersion:
Guid: d053d64c-e366-43e2-bd21-474f5cd34c8f
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Types.PlcStruct ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="None">
<Member Name="sName" Datatype="String[10]">
<Comment>
<MultiLanguageText Lang="de-DE">Sensor BMK</MultiLanguageText>
</Comment>
</Member>
<Member Name="xDirectSensor" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Direktes Signal ohne Verarbeitung</MultiLanguageText>
</Comment>
</Member>
<Member Name="xDirectEdgePos" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Positive Flanke</MultiLanguageText>
</Comment>
</Member>
<Member Name="xDirectEdgeNeg" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Negative Flanke</MultiLanguageText>
</Comment>
</Member>
<Member Name="tDirectChangeLast" Datatype="Time">
<Comment>
<MultiLanguageText Lang="de-DE">Zeit seit letzter Änderung Signalwechsel</MultiLanguageText>
</Comment>
</Member>
<Member Name="xDbncdSensor" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Entprelltes Signal</MultiLanguageText>
</Comment>
</Member>
<Member Name="xDbncdEdgePos" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Entprellte positive Flanke</MultiLanguageText>
</Comment>
</Member>
<Member Name="xDbncdEdgeNeg" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Entprellte negative Flanke</MultiLanguageText>
</Comment>
</Member>
<Member Name="xJam" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Stau Indikator</MultiLanguageText>
</Comment>
</Member>
</Section>
</Sections></Interface>
<Name>UDT_Sensor</Name>
<Namespace />
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="3" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Types.PlcStruct>
</Document>