zweiter Baustein hinzugefügt

This commit is contained in:
2026-06-22 17:15:46 +02:00
parent c85c525c25
commit 6a6d981178
485 changed files with 339121 additions and 0 deletions
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="nAlarmNoOffsetGlobal" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
<Member Name="nAlarmNoStep" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nAlarmPrioGlobal" Datatype="USInt">
<StartValue>15</StartValue>
</Member>
<Member Name="xAlarmReOrg" Datatype="Bool" />
<Member Name="xAlarmReOrgNextStep" Datatype="Bool" />
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_AlarmGlobal</Name>
<Namespace />
<Number>15</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="arTroState" Datatype="Array[0..&quot;cNoMainTros&quot;] of Int">
<Comment>
<MultiLanguageText Lang="de-DE">TRO Status merken (z.B. nach ReInit)</MultiLanguageText>
</Comment>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_GLOB_TroState</Name>
<Namespace />
<Number>30</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="nMachineMode" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Eingang um Simulationslevel festzulegen. Kann verwendet werden, um Eingangssignale zu simulieren</MultiLanguageText>
</Comment>
</Member>
<Member Name="nLogicCycle" Datatype="UInt" />
<Member Name="nPrevCycle" Datatype="DInt" />
<Member Name="rCycle" Datatype="Real">
<Comment>
<MultiLanguageText Lang="de-DE">Zykluszeit zum Tracen</MultiLanguageText>
</Comment>
</Member>
<Member Name="Machine-Name" Datatype="String[20]">
<Comment>
<MultiLanguageText Lang="de-DE">Name of the Machine</MultiLanguageText>
</Comment>
<StartValue>'GOH ILS LEVEL2'</StartValue>
</Member>
<Member Name="FL-Name" Datatype="String[20]">
<Comment>
<MultiLanguageText Lang="de-DE">Name of Production Line</MultiLanguageText>
</Comment>
</Member>
<Member Name="Factory" Datatype="String[20]">
<Comment>
<MultiLanguageText Lang="de-DE">Place of the Factory</MultiLanguageText>
</Comment>
<StartValue>'H&amp;M'</StartValue>
</Member>
<Member Name="Cold_Restart" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">(Cold restart scan 1 of OB 1)</MultiLanguageText>
</Comment>
</Member>
<Member Name="VKE0" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Always FALSE</MultiLanguageText>
</Comment>
<StartValue>false</StartValue>
</Member>
<Member Name="VKE1" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Always TRUE</MultiLanguageText>
</Comment>
<StartValue>true</StartValue>
</Member>
<Member Name="HourCounter" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Betriebsstundenzähler für Automatikbetrieb</MultiLanguageText>
</Comment>
</Member>
<Member Name="xIBN" Datatype="Bool">
<Comment>
<MultiLanguageText Lang="de-DE">Inbetriebnahme aktiv</MultiLanguageText>
</Comment>
</Member>
<Member Name="DTL_TimePLC" Datatype="DTL" Version="1.0" />
<Member Name="SMCCard" Datatype="Struct">
<Member Name="Size" Datatype="UDInt" />
<Member Name="AcutalInUse" Datatype="UDInt" />
<Member Name="Livespan" Datatype="UDInt" />
</Member>
<Member Name="stStateMainOF1" Datatype="&quot;UDT_MainState&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStateMainOF2" Datatype="&quot;UDT_MainState&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStateMainOF3" Datatype="&quot;UDT_MainState&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStateMainOF4" Datatype="&quot;UDT_MainState&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="sPLCTimeAsString" Datatype="String" />
<Member Name="nLogLevel" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Global LogLevel</MultiLanguageText>
</Comment>
<StartValue ConstantName="&quot;E_LogLevel.DEBUG&quot;" />
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_MachineGlobal</Name>
<Namespace />
<Number>14</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,269 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="nJamCount" Datatype="Int" />
<Member Name="nStorageCount" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nEmptyCarrierCount" Datatype="UInt">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nDummyCount" Datatype="UInt">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="arJamStatisticsStandard" Datatype="Array[0..&quot;cNoStatistikJam&quot;] of &quot;CarrierStatisticsStandard&quot;">
<Comment>
<MultiLanguageText Lang="de-DE">Standard Jam Statistiken </MultiLanguageText>
</Comment>
</Member>
<Member Name="arJamStatisticsAdvanced" Datatype="Array[0..&quot;cNoStatistikJam&quot;] of &quot;CarrierStatisticsStorage&quot;">
<Comment>
<MultiLanguageText Lang="de-DE">Fortgeschrittene/Spezielle Jam Statistiken</MultiLanguageText>
</Comment>
</Member>
<Member Name="stStorageBlockData" Datatype="Struct">
<Member Name="Block111" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block112" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block113" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block114" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block121" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block122" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block123" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block124" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block131" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block132" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block133" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Block134" Datatype="&quot;UDT_StorageBlockData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Member>
<Member Name="//////////////////////////////////////////////////" Datatype="Bool" />
<Member Name="stStorageStatistics111" Datatype="&quot;CarrierStatisticsStore&quot;" />
<Member Name="stStorageStatistics112" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics113" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics114" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics121" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics122" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics123" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics124" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics131" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics132" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics133" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stStorageStatistics134" Datatype="&quot;CarrierStatisticsStore&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="nStorageCount111" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount112" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount113" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount114" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount121" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount122" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount123" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount124" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount131" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount132" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount133" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
<Member Name="nStorageCount134" Datatype="Int">
<Comment>
<MultiLanguageText Lang="de-DE">Gesamt</MultiLanguageText>
</Comment>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_Statistics</Name>
<Namespace />
<Number>65</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="Sensors" Datatype="Array[0..&quot;cNoSensors&quot;] of &quot;UDT_Sensor&quot;" />
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_Inputs</Name>
<Namespace />
<Number>17</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<InstanceOfName>FB_CallSensors</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input" />
<Section Name="Output" />
<Section Name="InOut">
<Member Name="stInOutControlUnitCabinet" Datatype="&quot;UDT_MainState&quot;" />
</Section>
<Section Name="Static">
<Member Name="fbSensorInput" Datatype="Array[0..&quot;cNoSensors&quot;] of &quot;FB_SensorInput&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>fbCallSensors_DB</Name>
<Namespace />
<Number>19</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,300 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<AutoNumber>false</AutoNumber>
<InstanceOfName>FB_PreMain</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input" />
<Section Name="Output" />
<Section Name="InOut">
<Member Name="stInOutControlUnitCabinetOF1" Datatype="&quot;UDT_MainState&quot;" />
<Member Name="stInOutControlUnitCabinetOF2" Datatype="&quot;UDT_MainState&quot;" />
<Member Name="stInOutControlUnitCabinetOF3" Datatype="&quot;UDT_MainState&quot;" />
<Member Name="stInOutControlUnitCabinetOF4" Datatype="&quot;UDT_MainState&quot;" />
</Section>
<Section Name="Static">
<Member Name="xAllMainContactorsOk" Datatype="Bool">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xAllReadyToStartOF1" Datatype="Bool" />
<Member Name="xAllReadyToStartOF2" Datatype="Bool" />
<Member Name="xAllReadyToStartOF3" Datatype="Bool" />
<Member Name="xAllReadyToStartOF4" Datatype="Bool" />
<Member Name="xQuitNec" Datatype="Bool" />
<Member Name="fbStateMainOF1" Datatype="&quot;FB_StateMain&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbStateMainOF2" Datatype="&quot;FB_StateMain&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbStateMainOF3" Datatype="&quot;FB_StateMain&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbStateMainOF4" Datatype="&quot;FB_StateMain&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuse24VUH02" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuse24VUC021" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuseMotorAndBrakeUC021" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuse24VUC022" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuseMotorAndBrakeUC022" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuse24VUC023" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuseMotorAndBrakeUC023" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuseCircuitBrakerUH02" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMotorProtectionUH02" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMotorProtectionUC021" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMotorProtectionUC022" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMotorProtectionUC023" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPhaseFailure" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuse400VUC021" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuse400VUC022" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFuse400VUC023" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPressureUH02" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPressureUC021" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPressureUC022" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPressureUC023" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMainContactorsUH02" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonSafetyContactorsUH02toUH03" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonSafetyContactorsUH02toUH05" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMainContactorsUC021" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonSafetyContactorsUC021Extern" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMainContactorsUC022" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonSafetyContactorsUC022Extern" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonMainContactorsUC023" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonSafetyContactorsUC023Extern" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonFAS" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonCommFortnaWCS" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonCommFortnaWES_ASRS" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonEstopExternUC021" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonEstopExternUC022" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonEstopExternUC023" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonEstopExternUH03" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonEstopExternUH05" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="arESTOPAck" Datatype="Array[0..30] of &quot;FB_ESTOPhandling&quot;" />
<Member Name="xReInit" Datatype="Bool" />
<Member Name="fTrigReIntTime" Datatype="F_TRIG" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="tOfReIntTime" Datatype="TOF_TIME" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>fbPreMain_DB</Name>
<Namespace />
<Number>26</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,701 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<InstanceOfName>FB_Main</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input" />
<Section Name="Output" />
<Section Name="InOut">
<Member Name="stInOutControlUnitCabinetOF1" Datatype="&quot;UDT_MainState&quot;" />
<Member Name="stInOutControlUnitCabinetOF2" Datatype="&quot;UDT_MainState&quot;" />
<Member Name="stInOutControlUnitCabinetOF3" Datatype="&quot;UDT_MainState&quot;" />
<Member Name="stInOutControlUnitCabinetOF4" Datatype="&quot;UDT_MainState&quot;" />
</Section>
<Section Name="Static">
<Member Name="fbSortConv1101" Datatype="&quot;FB_Conveyor_Sort&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbSortConv1102" Datatype="&quot;FB_Conveyor_Sort&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbSortConv1201" Datatype="&quot;FB_Conveyor_Sort&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbSortConv1202" Datatype="&quot;FB_Conveyor_Sort&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbSortConv1303" Datatype="&quot;FB_Conveyor_Sort&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbSortConv1304" Datatype="&quot;FB_Conveyor_Sort&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbCarousel1110" Datatype="&quot;FB_Conveyor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbExitConv1103" Datatype="&quot;FB_Conveyor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbExitConv1104" Datatype="&quot;FB_Conveyor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbExitConv1203" Datatype="&quot;FB_Conveyor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbExitConv1204" Datatype="&quot;FB_Conveyor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbExitConv1301" Datatype="&quot;FB_Conveyor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbExitConv1302" Datatype="&quot;FB_Conveyor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1101_1" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1101_2" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1102_1" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1102_2" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1201_1" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1201_2" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1202_1" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1202_2" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1303_1" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1303_2" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1304_1" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPinControl1304_2" Datatype="&quot;FB_SupervisionRasterSensor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1101_1" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1101_2" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1102_1" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1102_2" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1201_1" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1201_2" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1202_1" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1202_2" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1303_1" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1303_2" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1304_1" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbMonPinControl1304_2" Datatype="&quot;FB_Monitoring&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderMonitor1101" Datatype="&quot;FB_EncoderMonitor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderMonitor1102" Datatype="&quot;FB_EncoderMonitor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderMonitor1201" Datatype="&quot;FB_EncoderMonitor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderMonitor1202" Datatype="&quot;FB_EncoderMonitor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderMonitor1303" Datatype="&quot;FB_EncoderMonitor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderMonitor1304" Datatype="&quot;FB_EncoderMonitor&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderGF2200" Datatype="&quot;FB_EncoderTR&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderGF2201" Datatype="&quot;FB_EncoderTR&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderGF2202" Datatype="&quot;FB_EncoderTR&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderGF2203" Datatype="&quot;FB_EncoderTR&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderGF2204" Datatype="&quot;FB_EncoderTR&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbEncoderGF2205" Datatype="&quot;FB_EncoderTR&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="arCognexInterface" Datatype="Array[1..&quot;cNoScanner&quot;] of &quot;stCognexInterface&quot;" Remanence="Retain" />
<Member Name="stCognexInterfaceDummy" Datatype="&quot;stCognexInterface&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO200" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO201" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;" />
<Member Name="TRO202" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;" />
<Member Name="TRO203" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;" />
<Member Name="TRO204" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO205" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO206" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO207" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO208" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO209" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO210" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO211" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO212" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO213" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO214" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO215" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO216" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO217" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO218" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO219" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO220" Datatype="&quot;FB_ILS_MTRO_Vario&quot;" />
<Member Name="TRO221" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO222" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO223" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO224" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO225" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO226" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO227" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO228" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO229" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO230" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO231" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO232" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO233" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO234" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO235" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO236" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO237" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;" />
<Member Name="TRO238" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO239" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO240" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO241" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO242" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO243" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO244" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO245" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO246" Datatype="&quot;FB_ILS_MTRO_1Sep1Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO247" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO248" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO249" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO250" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO251" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO252" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO253" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO254" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO255" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO256" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO257" Datatype="&quot;FB_ILS_MTRO_PinStore_Auto&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO258" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO259" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO260" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO261" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO262" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO263" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO264" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO265" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO266" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO267" Datatype="&quot;FB_ILS_MTRO_1Sep2Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO268" Datatype="&quot;FB_ILS_MTRO_1Sep2Swi&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO269" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO270" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO271" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO272" Datatype="&quot;FB_ILS_MTRO_Vario&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO273" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO274" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="TRO275" Datatype="&quot;FB_ILS_MTRO_1Sep&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xReInit" Datatype="Bool" />
<Member Name="rTrigReInit" Datatype="R_TRIG" Version="1.0" />
<Member Name="tOnHeartbeat" Datatype="TON_TIME" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xSendHB" Datatype="Bool" />
<Member Name="fTrig_TRO271_TRO306" Datatype="F_TRIG" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fTrig_TRO273_TRO307" Datatype="F_TRIG" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>fbMain_DB</Name>
<Namespace />
<Number>59</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<InstanceOfName>FB_PriorityManagement</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input" />
<Section Name="Output" />
<Section Name="InOut" />
<Section Name="Static">
<Member Name="fbPrioTRO213_TRO202_4" Datatype="&quot;Fb_PriorityManagerV2&quot;" />
<Member Name="fbPrioTRO216_TRO202_3" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO210_TRO211in" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO219_TRO214in" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO203_TRO211out" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO204_TRO206" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO205_TRO214out" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO236_TRO222_3" Datatype="&quot;Fb_PriorityManagerV2&quot;" />
<Member Name="fbPrioTRO233_TRO222_4" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO230_TRO231in" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO239_TRO234in" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO223_TRO231out" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO224_TRO226" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO225_TRO234out" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO253_TRO242_3" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO256_TRO242_4" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO250_TRO251in" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO259_TRO254in" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO243_TRO251out" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO244_TRO246" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO245_TRO254out" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO269_TRO261" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO274_TRO263" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="fbPrioTRO265_TRO266" Datatype="&quot;Fb_PriorityManagerV2&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>DB_PriorityManagement</Name>
<Namespace />
<Number>61</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
@@ -0,0 +1,170 @@
FUNCTION_BLOCK "FB_OffsetCorrection"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
xInStart : Bool;
xInCarousel : Bool;
stInSettings : Struct
nJamCount : Int;
tWaitForEmpty : Time := T#10s;
END_STRUCT;
END_VAR
VAR_OUTPUT
xOutTrigger : Bool;
xOutActive : Bool;
END_VAR
VAR_IN_OUT
stInOutSepDataAct : "UDT_HMI_Separator"; // Wo Fehler entdeckt wurde
stInOutJamDataAct : "UDT_HMI_JamData"; // Wo Fehler entdeckt wurde
stInOutSepDataSource1 : "UDT_HMI_Separator"; // Wo zuvor Carrier herkamen 1
stInOutJamDataSource1 : "UDT_HMI_JamData"; // Wo zuvor Carrier herkamen 1
stInOutSepDataSource2 : "UDT_HMI_Separator"; // Wo zuvor Carrier herkamen 2
stInOutJamDataSource2 : "UDT_HMI_JamData"; // Wo zuvor Carrier herkamen 2
END_VAR
VAR RETAIN
xJamEntryLockedAct : Bool; // Merken dass hier gesperrt wurde um mit Jam Status abzugleichen
xJamExitLockedSource1 : Bool; // Merken dass hier gesperrt wurde um mit Jam Status abzugleichen
xJamExitLockedSource2 : Bool; // Merken dass hier gesperrt wurde um mit Jam Status abzugleichen
xSepOverrideSource1 : Bool; // Merken dass hier Override gestartet wurde um mit Sep Status abzugleichen
xSepOverrideSource2 : Bool; // Merken dass hier Override gestartet wurde um mit Sep Status abzugleichen
END_VAR
VAR
nState : Int;
fbStateManager { S7_SetPoint := 'False'} : "FB_StateManager";
sStateText : String;
END_VAR
VAR CONSTANT
c0000_StepOff : Int := 0;
c0100_StepUndefined : Int := 100;
c1000_StepIdle : Int := 1000;
c1500_StepStart : Int := 1500;
c2000_StepWaitForEmpty : Int := 2000;
c5000_StepCheckState : Int := 5000;
c6000_StepOverrideSource : Int := 6000;
END_VAR
BEGIN
REGION Schrittkette
CASE #nState OF
#c0000_StepOff:
REGION 0000: Off
// akt. Zustand
#sStateText := 'OFF';
#xOutActive := FALSE;
// SCHRITT 0 WIRD GEBRAUCHT!
//STATE MANAGER KÜMMERT SICH UM TRANSITION!
END_REGION
#c0100_StepUndefined:
REGION 0100: Undefined
// akt. Zustand
#sStateText := 'Undefined';
#xOutActive := FALSE;
#nState := #c1000_StepIdle;
END_REGION
#c1000_StepIdle:
REGION 1000: Idle
// akt. Zustand
#sStateText := 'Idle';
#xOutActive := FALSE;
IF #xInStart THEN
#nState := #c1500_StepStart;
END_IF;
END_REGION
#c1500_StepStart:
REGION 1500: Start
// akt. Zustand
#sStateText := 'Start';
#xOutActive := TRUE;
#stInOutJamDataAct.stStatus.bByte.%X2 := TRUE; //Jam Act Entry sperren
#xJamEntryLockedAct := TRUE;
IF #fbStateManager.tOutTimeInStep > T#2000ms AND #xInCarousel THEN
#nState := #c2000_StepWaitForEmpty;
END_IF;
END_REGION
#c2000_StepWaitForEmpty:
REGION 2000: Wait for Empty
// akt. Zustand
#sStateText := 'Wait for empty';
#xOutActive := TRUE;
IF #stInOutJamDataAct.stStatus.bByte.%X0 OR //Jam Act leer
(NOT #stInOutSepDataAct.InSensor.xDbncdSensor AND #stInOutSepDataAct.InSensor.tDirectChangeLast > #stInSettings.tWaitForEmpty) THEN
#nState := #c5000_StepCheckState;
END_IF;
END_REGION
#c5000_StepCheckState:
REGION 5000: Check Jam State
// akt. Zustand
#sStateText := 'Check Jam State';
#xOutActive := TRUE;
IF #stInOutJamDataAct.stStatus.bByte.%X0 AND //Jam Act leer
NOT #stInOutSepDataAct.InSensor.xDbncdSensor THEN
#stInOutJamDataAct.stStatus.bByte.%X2 := FALSE; //Jam Act Entry freigeben
#nState := #c1000_StepIdle;
ELSIF NOT #stInOutJamDataAct.stStatus.bByte.%X0 AND //Jam Act NOT leer
NOT #stInOutSepDataAct.InSensor.xDbncdSensor THEN
//aslkalksfjhaskfjaölkjflöaksg
#nState := #c6000_StepOverrideSource;
END_IF;
END_REGION
#c6000_StepOverrideSource:
REGION 6000: Override Source
// akt. Zustand
#sStateText := 'Override Source';
#xOutActive := TRUE;
END_REGION
END_CASE;
END_REGION
REGION Tracen der Sources
//STRO Sep nState = 140 bedeutet das gebucht wird für einen Zyklus
IF #stInOutSepDataSource1.stStatus.nState = 140 THEN
// Statement section IF
;
END_IF;
// #stInOutSepDataSource1.stStatus.nState = 140 // wenn das passiert, dann diese Source merken in Ringpuffer. Wenn JamAct einen rauslässt, den entsprechenden Eintrag löschen und rest nachrücken
// hier weiter
END_REGION
REGION State Manager
#fbStateManager.stInSettings.nStartState := #c0100_StepUndefined;
#fbStateManager.stInSettings.nStartStateTestMode := #c0000_StepOff;
#fbStateManager.stInSettings.xActUnivTOn := TRUE;
#fbStateManager.stInSettings.xRestartAtStartState := FALSE;
#fbStateManager(xInFunctionEnabled := TRUE,
// xInReset := (* #stInMfr.xCancel OR *)#xInCancel,
// xInRunUnivTOn := #tmpActUnivTon,
// xInTestMode := #xInTestMode,
nInOutState := #nState);
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,359 @@
FUNCTION_BLOCK "FB_PriorityManagement"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR
fbPrioTRO213_TRO202_4 { S7_SetPoint := 'False'} : "Fb_PriorityManagerV2";
fbPrioTRO216_TRO202_3 : "Fb_PriorityManagerV2";
fbPrioTRO210_TRO211in : "Fb_PriorityManagerV2";
fbPrioTRO219_TRO214in : "Fb_PriorityManagerV2";
fbPrioTRO203_TRO211out : "Fb_PriorityManagerV2";
fbPrioTRO204_TRO206 : "Fb_PriorityManagerV2";
fbPrioTRO205_TRO214out : "Fb_PriorityManagerV2";
fbPrioTRO236_TRO222_3 { S7_SetPoint := 'False'} : "Fb_PriorityManagerV2";
fbPrioTRO233_TRO222_4 : "Fb_PriorityManagerV2";
fbPrioTRO230_TRO231in : "Fb_PriorityManagerV2";
fbPrioTRO239_TRO234in : "Fb_PriorityManagerV2";
fbPrioTRO223_TRO231out : "Fb_PriorityManagerV2";
fbPrioTRO224_TRO226 : "Fb_PriorityManagerV2";
fbPrioTRO225_TRO234out : "Fb_PriorityManagerV2";
fbPrioTRO253_TRO242_3 : "Fb_PriorityManagerV2";
fbPrioTRO256_TRO242_4 : "Fb_PriorityManagerV2";
fbPrioTRO250_TRO251in : "Fb_PriorityManagerV2";
fbPrioTRO259_TRO254in : "Fb_PriorityManagerV2";
fbPrioTRO243_TRO251out : "Fb_PriorityManagerV2";
fbPrioTRO244_TRO246 : "Fb_PriorityManagerV2";
fbPrioTRO245_TRO254out : "Fb_PriorityManagerV2";
fbPrioTRO269_TRO261 : "Fb_PriorityManagerV2";
fbPrioTRO274_TRO263 : "Fb_PriorityManagerV2";
fbPrioTRO265_TRO266 : "Fb_PriorityManagerV2";
END_VAR
VAR_TEMP
tmpInterruptParam : "udt_InterruptParameter";
END_VAR
BEGIN
REGION Kreuzung TRO202_4/TRO213
#fbPrioTRO213_TRO202_4(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO213.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO202_4.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO213.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO202_4.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO213_TRO202_4,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO202_3/TRO216
#fbPrioTRO216_TRO202_3(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO202_3.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO216.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO202_3.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO216.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO216_TRO202_3,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO210/TRO211in
#fbPrioTRO210_TRO211in(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO210.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO211_In.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO210.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO211_In.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO210_TRO211in,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO219/TRO214in
#fbPrioTRO219_TRO214in(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager."udt_TRO219".TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO214_In.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO219.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO214_In.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO219_TRO214in,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO203/TRO211out
#fbPrioTRO203_TRO211out(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO203.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO211_Out.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO203.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO211_Out.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO203_TRO211out,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO204/TRO206
#fbPrioTRO204_TRO206(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO204.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO206.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO204.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO206.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO204_TRO206,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO205/TRO214out
#fbPrioTRO205_TRO214out(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO205.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO214_Out.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO205.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO214_Out.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO205_TRO214out,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION ///////
END_REGION
REGION Kreuzung TRO222_4/TRO233
#fbPrioTRO233_TRO222_4(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO233.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO222_4.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO233.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO222_4.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO233_TRO222_4,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO222_3/TRO236
#fbPrioTRO236_TRO222_3(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO222_3.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO236.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO222_3.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO236.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO236_TRO222_3,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO230/TRO231in
#fbPrioTRO230_TRO231in(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO230.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO231_In.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO230.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO231_In.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO230_TRO231in,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO239/TRO234in
#fbPrioTRO239_TRO234in(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO239.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO234_In.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO239.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO234_In.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO239_TRO234in,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO223/TRO231out
#fbPrioTRO223_TRO231out(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO223.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO231_Out.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO223.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO231_Out.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO223_TRO231out,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO224/TRO226
#fbPrioTRO224_TRO226(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO226.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO224.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO226.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO224.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO224_TRO226,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO225/TRO234out
#fbPrioTRO225_TRO234out(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO225.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO234_Out.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO225.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO234_Out.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO225_TRO234out,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION //////////
END_REGION
REGION Kreuzung TRO242_4/TRO256
#fbPrioTRO256_TRO242_4(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO256.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO242_4.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO256.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO242_4.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO256_TRO242_4,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO242_3/TRO253
#fbPrioTRO253_TRO242_3(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO242_3.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO253.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO242_3.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO253.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO253_TRO242_3,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO250/TRO251in
#fbPrioTRO250_TRO251in(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO250.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO251_In.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO250.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO251_In.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO250_TRO251in,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO259/TRO254in
#fbPrioTRO259_TRO254in(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO259.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO254_In.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO259.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO254_In.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO259_TRO254in,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO243/TRO251out
#fbPrioTRO243_TRO251out(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO243.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO251_Out.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO243.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO251_Out.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO243_TRO251out,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO244/TRO246
#fbPrioTRO244_TRO246(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO244.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO246.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO244.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO246.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO244_TRO246,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO245/TRO254out
#fbPrioTRO245_TRO254out(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO245.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO254_Out.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO245.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO254_Out.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO245_TRO254out,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION ////////
END_REGION
REGION Kreuzung TRO269/TRO261
#fbPrioTRO269_TRO261(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO261.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO269.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO261.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO269.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO269_TRO261,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO274/TRO263
#fbPrioTRO274_TRO263(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO263.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO274.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO263.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO274.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO274_TRO263,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
REGION Kreuzung TRO265/TRO266
#fbPrioTRO265_TRO266(xInQuit := "cTodoFalse",
tIn_ReleaseTime1 := T#20s,
tIn_ReleaseTime2 := T#20s,
xInClearJam := FALSE,
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO265.TroOut,
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO266.TroOut,
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO265.TroIn,
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO266.TroIn,
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO265_TRO266,
udt_InterruptParameter := #tmpInterruptParam);
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,443 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<InstanceOfName>FB_StorageManagementCall</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input" />
<Section Name="Output" />
<Section Name="InOut" />
<Section Name="Static">
<Member Name="Lfb_StoreBLk1" Datatype="&quot;FB_LV1BlockStorageManagement&quot;" />
<Member Name="Lfb_StoreBLk2" Datatype="&quot;FB_LV1BlockStorageManagement&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Lfb_StoreBLk3" Datatype="&quot;FB_LV1BlockStorageManagement&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="Lfb_StorageRemoval" Datatype="&quot;Fb_StockRemovalManagementLvl1&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stIn_JamDataBlock1" Datatype="Struct">
<Member Name="stIn_JamData1101" Datatype="Struct">
<Member Name="udt_JamData1101_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1101_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1102" Datatype="Struct">
<Member Name="udt_JamData1102_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1102_2" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1102_3" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1103" Datatype="Struct">
<Member Name="udt_JamData1103_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1103_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1104" Datatype="Struct">
<Member Name="udt_JamData1104_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1104_2" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1104_3" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1105" Datatype="Struct">
<Member Name="udt_JamData1105_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1105_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1106" Datatype="Struct">
<Member Name="udt_JamData1106_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1106_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1107" Datatype="Struct">
<Member Name="udt_JamData1107_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1107_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1108" Datatype="Struct">
<Member Name="udt_JamData1108_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1108_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1109" Datatype="Struct">
<Member Name="udt_JamData1109_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1109_2" Datatype="&quot;stJamData&quot;" />
</Member>
</Member>
<Member Name="stIn_JamDataBlock2" Datatype="Struct">
<Member Name="stIn_JamData1201" Datatype="Struct">
<Member Name="udt_JamData1201_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1201_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1202" Datatype="Struct">
<Member Name="udt_JamData1202_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1202_2" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1202_3" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1203" Datatype="Struct">
<Member Name="udt_JamData1203_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1203_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1204" Datatype="Struct">
<Member Name="udt_JamData1204_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1204_2" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1204_3" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1205" Datatype="Struct">
<Member Name="udt_JamData1205_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1205_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1206" Datatype="Struct">
<Member Name="udt_JamData1206_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1206_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1207" Datatype="Struct">
<Member Name="udt_JamData1207_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1207_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1208" Datatype="Struct">
<Member Name="udt_JamData1208_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1208_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1209" Datatype="Struct">
<Member Name="udt_JamData1209_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1209_2" Datatype="&quot;stJamData&quot;" />
</Member>
</Member>
<Member Name="stIn_JamDataBlock3" Datatype="Struct">
<Member Name="stIn_JamData1301" Datatype="Struct">
<Member Name="udt_JamData1301_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1301_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1302" Datatype="Struct">
<Member Name="udt_JamData1302_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1302_2" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1302_3" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1303" Datatype="Struct">
<Member Name="udt_JamData1303_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1303_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1304" Datatype="Struct">
<Member Name="udt_JamData1304_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1304_2" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1304_3" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1305" Datatype="Struct">
<Member Name="udt_JamData1305_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1305_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1306" Datatype="Struct">
<Member Name="udt_JamData1306_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1306_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1307" Datatype="Struct">
<Member Name="udt_JamData1307_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1307_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1308" Datatype="Struct">
<Member Name="udt_JamData1308_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1308_2" Datatype="&quot;stJamData&quot;" />
</Member>
<Member Name="stIn_JamData1309" Datatype="Struct">
<Member Name="udt_JamData1309_1" Datatype="&quot;stJamData&quot;" />
<Member Name="udt_JamData1309_2" Datatype="&quot;stJamData&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrierBlock1" Datatype="Struct">
<Member Name="stIn_JamCarrier1101" Datatype="Struct">
<Member Name="udt_JamCarrier1101_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1101_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1101_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1101_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1102" Datatype="Struct">
<Member Name="udt_JamCarrier1102_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1102_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1102_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1102_2&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1102_3" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1102_3&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1103" Datatype="Struct">
<Member Name="udt_JamCarrier1103_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1103_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1103_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1103_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1104" Datatype="Struct">
<Member Name="udt_JamCarrier1104_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1104_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1104_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1104_2&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1104_3" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1104_3&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1105" Datatype="Struct">
<Member Name="udt_JamCarrier1105_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1105_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1105_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1105_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1106" Datatype="Struct">
<Member Name="udt_JamCarrier1106_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1106_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1106_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1106_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1107" Datatype="Struct">
<Member Name="udt_JamCarrier1107_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1107_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1107_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1107_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1108" Datatype="Struct">
<Member Name="udt_JamCarrier1108_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1108_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1108_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1108_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1109" Datatype="Struct">
<Member Name="udt_JamCarrier1109_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1109_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1109_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1109_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
</Member>
<Member Name="stIn_JamCarrierBlock2" Datatype="Struct">
<Member Name="stIn_JamCarrier1201" Datatype="Struct">
<Member Name="udt_JamCarrier1201_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1201_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1201_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1201_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1202" Datatype="Struct">
<Member Name="udt_JamCarrier1202_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1202_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1202_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1202_2&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1202_3" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1202_3&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1203" Datatype="Struct">
<Member Name="udt_JamCarrier1203_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1203_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1203_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1203_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1204" Datatype="Struct">
<Member Name="udt_JamCarrier1204_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1204_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1204_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1204_2&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1204_3" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1204_3&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1205" Datatype="Struct">
<Member Name="udt_JamCarrier1205_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1205_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1205_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1205_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1206" Datatype="Struct">
<Member Name="udt_JamCarrier1206_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1206_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1206_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1206_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1207" Datatype="Struct">
<Member Name="udt_JamCarrier1207_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1207_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1207_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1207_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1208" Datatype="Struct">
<Member Name="udt_JamCarrier1208_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1208_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1208_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1208_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1209" Datatype="Struct">
<Member Name="udt_JamCarrier1209_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1209_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1209_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1209_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
</Member>
<Member Name="stIn_JamCarrierBlock3" Datatype="Struct">
<Member Name="stIn_JamCarrier1301" Datatype="Struct">
<Member Name="udt_JamCarrier1301_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1301_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1301_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1301_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1302" Datatype="Struct">
<Member Name="udt_JamCarrier1302_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1302_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1302_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1302_2&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1302_3" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1302_3&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1303" Datatype="Struct">
<Member Name="udt_JamCarrier1303_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1303_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1303_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1303_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1304" Datatype="Struct">
<Member Name="udt_JamCarrier1304_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1304_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1304_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1304_2&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1304_3" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1304_3&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1305" Datatype="Struct">
<Member Name="udt_JamCarrier1305_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1305_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1305_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1305_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1306" Datatype="Struct">
<Member Name="udt_JamCarrier1306_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1306_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1306_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1306_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1307" Datatype="Struct">
<Member Name="udt_JamCarrier1307_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1307_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1307_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1307_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1308" Datatype="Struct">
<Member Name="udt_JamCarrier1308_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1308_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1308_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1308_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
<Member Name="stIn_JamCarrier1309" Datatype="Struct">
<Member Name="udt_JamCarrier1309_1" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1309_1&quot;] of &quot;stCarrier&quot;" />
</Member>
<Member Name="udt_JamCarrier1309_2" Datatype="Struct">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1309_2&quot;] of &quot;stCarrier&quot;" />
</Member>
</Member>
</Member>
</Section>
</Sections></Interface>
<Name>FB_StorageManagementCall_DB</Name>
<Namespace />
<Number>82</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,344 @@
FUNCTION "FC_Direction" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
nInSwitchNo : USInt;
END_VAR
VAR_OUTPUT
nOutDirection : USInt;
END_VAR
VAR_IN_OUT
InOutCarrier : "stCarrier";
END_VAR
VAR_TEMP
xDestB1 : Bool; // Ziel allgemein Block1
xDest111 : Bool; // Ziel befindet sich in erstem Viertel von B1
xDest112 : Bool; // Ziel befindet sich in zweitem Viertel von B1
xDest113 : Bool; // Ziel befindet sich in dritten Viertel von B1
xDest114 : Bool; // Ziel befindet sich in letztem Viertel von B1
xDestB2 : Bool; // Ziel allgemein Block2
xDest121 : Bool; // Ziel befindet sich in erstem Viertel von B2
xDest122 : Bool; // Ziel befindet sich in zweitem Viertel von B2
xDest123 : Bool; // Ziel befindet sich in dritten Viertel von B2
xDest124 : Bool; // Ziel befindet sich in letztem Viertel von B2
xDestB3 : Bool; // Ziel allgemein Block3
xDest131 : Bool; // Ziel befindet sich in erstem Viertel von B3
xDest132 : Bool; // Ziel befindet sich in zweitem Viertel von B3
xDest133 : Bool; // Ziel befindet sich in dritten Viertel von B3
xDest134 : Bool; // Ziel befindet sich in letztem Viertel von B3
END_VAR
BEGIN
// TODO: Konstanten für Destinations verwenden
REGION Lager Aufteilung
IF #InOutCarrier.nDestination >= 11100 AND #InOutCarrier.nDestination <= 11119 THEN
#xDestB1 := TRUE;
#xDest111 := TRUE;
ELSIF #InOutCarrier.nDestination >= 11200 AND #InOutCarrier.nDestination <= 11217 THEN
#xDestB1 := TRUE;
#xDest112 := TRUE;
ELSIF #InOutCarrier.nDestination >= 11300 AND #InOutCarrier.nDestination <= 11321 THEN
#xDestB1 := TRUE;
#xDest113 := TRUE;
ELSIF #InOutCarrier.nDestination >= 11400 AND #InOutCarrier.nDestination <= 11413 THEN
#xDestB1 := TRUE;
#xDest114 := TRUE;
////////////////////////////
ELSIF #InOutCarrier.nDestination >= 12100 AND #InOutCarrier.nDestination <= 12119 THEN
#xDestB2 := TRUE;
#xDest121 := TRUE;
ELSIF #InOutCarrier.nDestination >= 12200 AND #InOutCarrier.nDestination <= 12217 THEN
#xDestB2 := TRUE;
#xDest122 := TRUE;
ELSIF #InOutCarrier.nDestination >= 12300 AND #InOutCarrier.nDestination <= 12321 THEN
#xDestB2 := TRUE;
#xDest123 := TRUE;
ELSIF #InOutCarrier.nDestination >= 12400 AND #InOutCarrier.nDestination <= 12413 THEN
#xDestB2 := TRUE;
#xDest124 := TRUE;
////////////////////////////
ELSIF #InOutCarrier.nDestination >= 13100 AND #InOutCarrier.nDestination <= 13119 THEN
#xDestB3 := TRUE;
#xDest131 := TRUE;
ELSIF #InOutCarrier.nDestination >= 13200 AND #InOutCarrier.nDestination <= 13217 THEN
#xDestB3 := TRUE;
#xDest132 := TRUE;
ELSIF #InOutCarrier.nDestination >= 13300 AND #InOutCarrier.nDestination <= 13321 THEN
#xDestB3 := TRUE;
#xDest133 := TRUE;
ELSIF #InOutCarrier.nDestination >= 13400 AND #InOutCarrier.nDestination <= 13415 THEN
#xDestB3 := TRUE;
#xDest134 := TRUE;
END_IF;
END_REGION
REGION Vergabe Direction
CASE #nInSwitchNo OF
"cSwi202.1":
REGION Switch 202.1 ***Pinbänder Block1***
IF #xDest111 OR #xDest112 THEN
//RECHTS ABBIEGEN
#nOutDirection := 2;
ELSIF #xDest113 OR #xDest114 THEN
//LINKS ABBIEGEN
#nOutDirection := 1;
ELSE
#nOutDirection := 0; // undefined, todo
END_IF;
END_REGION
"cSwi203.1":
REGION Switch 203.1
IF #xDest112 OR
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 2; // GERADE/RECHTS ABBIEGEN, Block verlassen
ELSIF #xDest111
THEN
#nOutDirection := 1; //LINKS ABBIEGEN, im Block bleiben
ELSE
#nOutDirection := 0;
END_IF;
END_REGION
"cSwi204.1":
REGION Switch 204.1
IF #InOutCarrier.nDestination = 11043 OR
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 2;
//GERADE/RECHTS ABBIEGEN, Block verlassen zu Ausfahrt
ELSIF #xDest111 OR #xDest112 THEN //#xDestB1
#nOutDirection := 1;
//LINKS ABBIEGEN, im Block bleiben
ELSE
#nOutDirection := 0; // undefined, todo
END_IF;
END_REGION
"cSwi205.1":
REGION Switch 205.1
IF #xDest114 THEN
#nOutDirection := 2;
; //RECHTS ABBIEGEN, im Block bleiben
ELSIF #xDest113 OR
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 1; //GERADE/LINKS ABBIEGEN
ELSE
#nOutDirection := 2; //undefined, todo
END_IF;
END_REGION
"cSwi206.1":
REGION Switch 206.1
IF #xDest113 OR #xDest114 THEN //#xDestB1
#nOutDirection := 2; //RECHTS ABBIEGEN, im Block bleiben
ELSIF
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 1; //GERADE/LINKS ABBIEGEN, Block verlassen zu Ausfahrt
ELSE
#nOutDirection := 2; //undefined, todo
END_IF;
END_REGION
"cSwi222.1":
REGION Switch 222.1 ***Pinbänder Block2***
IF #xDest121 OR #xDest122 THEN
//RECHTS ABBIEGEN
#nOutDirection := 2;
ELSIF #xDest123 OR #xDest124 THEN
//LINKS ABBIEGEN
#nOutDirection := 1;
ELSE
#nOutDirection := 0; // undefined, todo
END_IF;
END_REGION
"cSwi223.1":
REGION Switch 223.1
IF #xDest122 OR
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 2; // GERADE/RECHTS ABBIEGEN, Block verlassen
ELSIF #xDest121
THEN
#nOutDirection := 1; //LINKS ABBIEGEN, im Block bleiben
ELSE
#nOutDirection := 1;
END_IF;
END_REGION
"cSwi224.1":
REGION Switch 224.1
IF #InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 2;
;//GERADE/RECHTS ABBIEGEN, Block verlassen zu Ausfahrt
ELSIF #xDest121 OR #xDest122 THEN //#xDestB1
#nOutDirection := 1;
;//LINKS ABBIEGEN, im Block bleiben
ELSE
#nOutDirection := 1; // undefined, todo
END_IF;
END_REGION
"cSwi225.1":
REGION Switch 225.1
IF #xDest124 THEN
#nOutDirection := 2;
; //RECHTS ABBIEGEN, im Block bleiben
ELSIF #xDest113 OR
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 1; //GERADE/LINKS ABBIEGEN
ELSE
#nOutDirection := 2; //undefined, todo
END_IF;
END_REGION
"cSwi226.1":
REGION Switch 226.1
IF #xDest123 OR #xDest124 THEN //#xDestB1
#nOutDirection := 2; //RECHTS ABBIEGEN, im Block bleiben
ELSIF #InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 1; //GERADE/LINKS ABBIEGEN, Block verlassen zu Ausfahrt
ELSE
#nOutDirection := 2; //undefined, todo
END_IF;
END_REGION
"cSwi242.1":
REGION Switch 242.1 ***Pinbänder Block3***
IF #xDest131 OR #xDest132 THEN
//LINKS ABBIEGEN
#nOutDirection := 1;
ELSIF #xDest133 OR #xDest134 THEN
//RECHTS ABBIEGEN
#nOutDirection := 2;
ELSE
#nOutDirection := 0; // undefined, todo
END_IF;
END_REGION
"cSwi243.1":
REGION Switch 243.1
IF #xDest132 OR
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 1; //GERADE/LINKS ABBIEGEN, Block verlassen
ELSIF #xDest131
THEN
#nOutDirection := 2; //RECHTS ABBIEGEN, im Block bleiben
ELSE
#nOutDirection := 2;
END_IF;
END_REGION
"cSwi244.1":
REGION Switch 244.1
IF #InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 1; //GERADE/LINKS ABBIEGEN, Block verlassen zu Ausfahrt
ELSIF #xDest131 OR #xDest132 THEN //#xDestB1
#nOutDirection := 2; //RECHTS ABBIEGEN, im Block bleiben
ELSE
#nOutDirection := 2; // undefined, todo
END_IF;
END_REGION
"cSwi245.1":
REGION Switch 245.1
IF #xDest134 THEN
#nOutDirection := 1; //LINKS ABBIEGEN, im Block bleiben
ELSIF #xDest133 OR
#InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 2; //GERADE/RECHTS ABBIEGEN
ELSE
#nOutDirection := 1; //undefined, todo
END_IF;
END_REGION
"cSwi246.1":
REGION Switch 246.1
IF #xDest133 OR #xDest134 THEN
#nOutDirection := 1; //LINKS ABBIEGEN, im Block bleiben
ELSIF #InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty" OR
#InOutCarrier.nDestination = "cDestF2HLoaded" OR
#InOutCarrier.nDestination = "cDestF2HEmpty"
THEN
#nOutDirection := 2; //GERADE/RECHTS ABBIEGEN, Block verlassen zu Ausfahrt
ELSE
#nOutDirection := 1; //undefined, todo
END_IF;
END_REGION
"cSwi267.1":
REGION Switch 267.1
IF #InOutCarrier.nDestination = "cDestF2HLoaded" THEN
#nOutDirection := 1;
ELSIF #InOutCarrier.nDestination = "cDestF2HEmpty" THEN
#nOutDirection := 2;
ELSIF #InOutCarrier.nDestination = "cDestAMRLoaded" OR
#InOutCarrier.nDestination = "cDestInboundEmpty"
THEN
#nOutDirection := 3;
ELSE
#nOutDirection := 3;
END_IF;
END_REGION
"cSwi268.1":
REGION Switch 268.1
IF #InOutCarrier.nDestination = "cDestInboundEmpty" THEN
#nOutDirection := 1;
ELSIF (#InOutCarrier.nDestination = "cDestAMRLoaded") THEN
#nOutDirection := 2;
ELSE
#nOutDirection := 3;
END_IF;
END_REGION
ELSE
;
END_CASE;
END_REGION
END_FUNCTION
@@ -0,0 +1,220 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="str_StorageManagement" Datatype="Struct">
<Member Name="udt_Lvl1Release" Datatype="&quot;udt_Lv1StorageRelease&quot;" />
<Member Name="udt_HandshakeMESStorage" Datatype="&quot;udt_HandshakeMessageFromMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Member>
<Member Name="Str_StorageRemoval" Datatype="Struct">
<Member Name="udt_HandshakeMESStorage" Datatype="&quot;udt_HandshakeMessageFromMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="arrudt_StorageRemovalHandshakeTROsLvl1" Datatype="Array[1..12] of &quot;UDT_MFR_StoreTRO&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None" />
</Sections>
<Subelement Path="1">
<Comment>
<MultiLanguageText Lang="de-DE">Block 211</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="2">
<Comment>
<MultiLanguageText Lang="de-DE">Block 212</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="3">
<Comment>
<MultiLanguageText Lang="de-DE">Block 213</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="4">
<Comment>
<MultiLanguageText Lang="de-DE">Block 214</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="5">
<Comment>
<MultiLanguageText Lang="de-DE">Block 221</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="6">
<Comment>
<MultiLanguageText Lang="de-DE">Block 222</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="7">
<Comment>
<MultiLanguageText Lang="de-DE">Block 223</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="8">
<Comment>
<MultiLanguageText Lang="de-DE">Block 224</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="9">
<Comment>
<MultiLanguageText Lang="de-DE">Block 231</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="10">
<Comment>
<MultiLanguageText Lang="de-DE">Block 232</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="11">
<Comment>
<MultiLanguageText Lang="de-DE">Block 233</MultiLanguageText>
</Comment>
</Subelement>
<Subelement Path="12">
<Comment>
<MultiLanguageText Lang="de-DE">Block 234</MultiLanguageText>
</Comment>
</Subelement>
</Member>
<Member Name="strMES" Datatype="Struct">
<Member Name="udt_InOutMessageToMesBlk111" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk112" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk113" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk114" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk121" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk122" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk123" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk124" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk131" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk132" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk133" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="udt_InOutMessageToMesBlk134" Datatype="&quot;udt_HandshakeMessageToMES&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Member>
<Member Name="str_TelegramMES" Datatype="Struct">
<Member Name="udtIn_DataMES" Datatype="&quot;UDT_Telegram_CReqM&quot;" />
</Member>
<Member Name="udt_StorageBlockSequencerData" Datatype="&quot;udt_StorageSite&quot;" />
<Member Name="udt_CarrierNeeded" Datatype="&quot;udt_CarrierNeeded&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_HandshakeStorage</Name>
<Namespace />
<Number>64</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,657 @@
FUNCTION_BLOCK "FB_LV1BlockStorageManagement"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
stIn_JamDataBlock : Struct
stIn_JamData01 : Struct
udt_JamData01_1 : "stJamData";
udt_JamData01_2 : "stJamData";
END_STRUCT;
stIn_JamData02 : Struct
udt_JamData02_1 : "stJamData";
udt_JamData02_2 : "stJamData";
udt_JamData02_3 : "stJamData";
END_STRUCT;
stIn_JamData03 : Struct
udt_JamData03_1 : "stJamData";
udt_JamData03_2 : "stJamData";
END_STRUCT;
stIn_JamData04 : Struct
udt_JamData04_1 : "stJamData";
udt_JamData04_2 : "stJamData";
udt_JamData04_3 : "stJamData";
END_STRUCT;
stIn_JamData05 : Struct
udt_JamData05_1 : "stJamData";
udt_JamData05_2 : "stJamData";
END_STRUCT;
stIn_JamData06 : Struct
udt_JamData06_1 : "stJamData";
udt_JamData06_2 : "stJamData";
END_STRUCT;
stIn_JamData07 : Struct
udt_JamData07_1 : "stJamData";
udt_JamData07_2 : "stJamData";
END_STRUCT;
stIn_JamData08 : Struct
udt_JamData08_1 : "stJamData";
udt_JamData08_2 : "stJamData";
END_STRUCT;
stIn_JamData09 : Struct
udt_JamData09_1 : "stJamData";
udt_JamData09_2 : "stJamData";
END_STRUCT;
END_STRUCT;
nIn_StorageMode : USInt; // 0 = uneven; 1= even
xInQuit : Bool;
wsIn_ObjectName : WString[50];
nInBlockDestination1 : Int;
nInBlockDestination2 : Int;
nInBlockDestination3 : Int;
nInBlockDestination4 : Int;
END_VAR
VAR_OUTPUT
xOut_StorageRelease : Bool;
END_VAR
VAR_IN_OUT
xError : Bool;
nErrorID : USInt;
xInOut_CapacityConfigChanged : Bool;
arrudt_Storage1n1 : Array[1.."cNoLines"] of "stStorageLine";
udt_Storage1n1BlockData : "UDT_StorageBlockData";
arrudt_Storage1n2 : Array[1.."cNoLines"] of "stStorageLine";
udt_Storage1n2BlockData : "UDT_StorageBlockData";
arrudt_Storage1n3 : Array[1.."cNoLines"] of "stStorageLine";
udt_Storage1n3BlockData : "UDT_StorageBlockData";
arrudt_Storage1n4 : Array[1.."cNoLines"] of "stStorageLine";
udt_Storage1n4BlockData : "UDT_StorageBlockData";
udtInOut_CarrierAtScanner : "stCarrier";
END_VAR
VAR
st_AreaDisabledLevel1 { S7_SetPoint := 'False'} : "udt_AreaDisabledLv1";
nTempCalculateStorageCapacity : USInt;
str_CapacityStorageBlock { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : Struct
nCapacityStorage001 { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : UInt;
nCapacityStorage002 { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : UInt;
nCapacityStorage003 { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : UInt;
nCapacityStorage004 { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : UInt;
END_STRUCT;
n_Block11IDX : USInt;
n_CarrierTyp : USInt;
stTROCarrier : Struct
st_Data { S7_SetPoint := 'False'} : "stCarrier";
str_Type { S7_SetPoint := 'True'} : String;
END_STRUCT;
stTROCarrierLast : Struct
st_Data { S7_SetPoint := 'False'} : "stCarrier";
str_Type { S7_SetPoint := 'True'} : String;
END_STRUCT;
stTROCarrierClear : Struct
st_Data { S7_SetPoint := 'False'} : "stCarrier";
str_Type { S7_SetPoint := 'True'} : String;
END_STRUCT;
xDestinationGranted : Bool;
PrgAlarm_Failmessage {InstructionName := 'Program_Alarm'; LibVersion := '1.0'; S7_SetPoint := 'False'} : Program_Alarm;
wsErrorMessage1 : WString[50];
wsErrorMessage2 : WString[50];
wsErrorMessage3 : WString[50];
END_VAR
VAR_TEMP
nTempMinBefuellungBlock : USInt;
nTempLinieIDX : USInt;
nTempRetVal : Int;
tTempLocalTime {InstructionName := 'DTL'; LibVersion := '1.0'} : DTL;
stTemp_ErrorString1 : WString[50];
n_TempSell : Int;
END_VAR
VAR CONSTANT
cAreaEmpty : Byte := 16#1;
cAreaOK : Byte;
"~~~~~~~~~~~CarrierType~~~~~~~~~~~~~" : Byte;
c000_undefinert : USInt;
c001_CarrierKurz : USInt := 1;
c002_CarrierLang : USInt := 2;
c003_CarrierLeer : USInt := 3;
"~~~~~~~~~~~StorageMode~~~~~~~~~~~~~" : USInt;
c000_uneven : USInt;
c001_even : USInt := 1;
"~~~~~~~~~~~ErrorID~~~~~~~~~~~~~" : USInt;
c000_KeinFehler : USInt;
c010_CarrierDatenFehlerhaft : USInt := 10;
c020_KeinZielVerfuegbar : USInt := 20;
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_LV1BlockStorageManagement
Comment/Function: manages storage in to the individual storage Blocks on Level 1
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-05-08 | - | | Header added on 08.05.2025
*)
END_REGION
REGION Local Time
// read local time for timestamp ------------------------------------------
#nTempRetVal := RD_LOC_T(#tTempLocalTime);
END_REGION
REGION calculate max storage size of Block x
// Lagergröße der Blöcke berechnen
IF "FirstScan" OR #xInOut_CapacityConfigChanged
THEN
FOR #nTempCalculateStorageCapacity := 1 TO 22 DO
IF #nTempCalculateStorageCapacity >= 1 AND #nTempCalculateStorageCapacity <= 21
THEN
IF #nTempCalculateStorageCapacity = 1
THEN
#str_CapacityStorageBlock.nCapacityStorage001 := 0;
#str_CapacityStorageBlock.nCapacityStorage002 := 0;
#str_CapacityStorageBlock.nCapacityStorage003 := 0;
#str_CapacityStorageBlock.nCapacityStorage004 := 0;
END_IF;
IF NOT #arrudt_Storage1n1[#nTempCalculateStorageCapacity].stData.Status.bByte.%X2
THEN
#str_CapacityStorageBlock.nCapacityStorage001 := #str_CapacityStorageBlock.nCapacityStorage001 + #arrudt_Storage1n1[#nTempCalculateStorageCapacity].stData.Config.nCapacitySet;
END_IF;
IF NOT #arrudt_Storage1n2[#nTempCalculateStorageCapacity].stData.Status.bByte.%X2
THEN
#str_CapacityStorageBlock.nCapacityStorage002 := #str_CapacityStorageBlock.nCapacityStorage002 + #arrudt_Storage1n2[#nTempCalculateStorageCapacity].stData.Config.nCapacitySet;
END_IF;
IF NOT #arrudt_Storage1n3[#nTempCalculateStorageCapacity].stData.Status.bByte.%X2
THEN
#str_CapacityStorageBlock.nCapacityStorage003 := #str_CapacityStorageBlock.nCapacityStorage003 + #arrudt_Storage1n3[#nTempCalculateStorageCapacity].stData.Config.nCapacitySet;
END_IF;
IF NOT #arrudt_Storage1n4[#nTempCalculateStorageCapacity].stData.Status.bByte.%X2
THEN
#str_CapacityStorageBlock.nCapacityStorage004 := #str_CapacityStorageBlock.nCapacityStorage004 + #arrudt_Storage1n4[#nTempCalculateStorageCapacity].stData.Config.nCapacitySet;
END_IF;
END_IF;
END_FOR;
#xInOut_CapacityConfigChanged := False;
END_IF;
END_REGION
REGION Error/ Jam Group Areas
REGION Block 1
#st_AreaDisabledLevel1.str_Block.xSection01disabled := #stIn_JamDataBlock.stIn_JamData01.udt_JamData01_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData01.udt_JamData01_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData01.udt_JamData01_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData01.udt_JamData01_2.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xSection02disabled := #stIn_JamDataBlock.stIn_JamData02.udt_JamData02_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData02.udt_JamData02_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData02.udt_JamData02_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData02.udt_JamData02_2.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData02.udt_JamData02_3.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData02.udt_JamData02_3.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xSection03disabled := #stIn_JamDataBlock.stIn_JamData03.udt_JamData03_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData03.udt_JamData03_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData03.udt_JamData03_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData03.udt_JamData03_2.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xSection04disabled := #stIn_JamDataBlock.stIn_JamData04.udt_JamData04_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData04.udt_JamData04_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData04.udt_JamData04_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData04.udt_JamData04_2.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData04.udt_JamData04_3.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData04.udt_JamData04_3.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xSection05disabled := #stIn_JamDataBlock.stIn_JamData05.udt_JamData05_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData05.udt_JamData05_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData05.udt_JamData05_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData05.udt_JamData05_2.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xSection06disabled := #stIn_JamDataBlock.stIn_JamData06.udt_JamData06_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData06.udt_JamData06_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData06.udt_JamData06_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData06.udt_JamData06_2.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xSection07disabled := #stIn_JamDataBlock.stIn_JamData07.udt_JamData07_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData07.udt_JamData07_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData07.udt_JamData07_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData07.udt_JamData07_2.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xSection08disabled := #stIn_JamDataBlock.stIn_JamData08.udt_JamData08_1.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData08.udt_JamData08_1.Status.bByte <> #cAreaEmpty
AND #stIn_JamDataBlock.stIn_JamData08.udt_JamData08_2.Status.bByte <> #cAreaOK
AND #stIn_JamDataBlock.stIn_JamData08.udt_JamData08_2.Status.bByte <> #cAreaEmpty;
#st_AreaDisabledLevel1.str_Block.xBlockdisabled := #st_AreaDisabledLevel1.str_Block.xSection01disabled
OR #st_AreaDisabledLevel1.str_Block.xSection02disabled;
#xOut_StorageRelease := NOT #st_AreaDisabledLevel1.str_Block.xBlockdisabled;
END_REGION
END_REGION
REGION Carrier prüfen
IF #udtInOut_CarrierAtScanner.nBarcode > 10000
// AND #udtInOut_CarrierAtScanner.nDestination = 0
// AND #udtInOut_CarrierAtScanner.bStatus.%X3
AND NOT #udtInOut_CarrierAtScanner.bStatus.%X1 //Wenn Loaded nicht gesetzt nehmen wir einfach an das der Carrier leer ist...
THEN
#n_CarrierTyp := #c003_CarrierLeer; //leer
ELSIF #udtInOut_CarrierAtScanner.nBarcode > 10000
// AND #udtInOut_CarrierAtScanner.nDestination = 0
AND #udtInOut_CarrierAtScanner.bStatus.%X3
AND #udtInOut_CarrierAtScanner.bStatus.%X1
THEN
#n_CarrierTyp := #c001_CarrierKurz; ///kurz und beladen
ELSE
// #udtInOut_CarrierAtScanner.nBarcode > 10000
// AND #udtInOut_CarrierAtScanner.nDestination = 0
// AND NOT #udtInOut_CarrierAtScanner.bStatus.%X3
// AND NOT #udtInOut_CarrierAtScanner.bStatus.%X1
// THEN
#n_CarrierTyp := #c000_undefinert; // kein Carrier oder undefiniert
END_IF;
END_REGION
REGION Find Destination
IF NOT #xDestinationGranted
THEN
CASE #n_CarrierTyp OF
#c000_undefinert:
#xError := True;
#nErrorID := #c010_CarrierDatenFehlerhaft;
#c001_CarrierKurz:
CASE #nIn_StorageMode OF
#c000_uneven:
REGION Uneven
//Blöcken werden ungleich gefüllt
FOR #n_Block11IDX := 1 TO 21 DO
IF #n_Block11IDX >= 1 AND #n_Block11IDX <= 21
THEN
IF NOT #st_AreaDisabledLevel1.str_Block.xSection01disabled AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n1BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage001
AND NOT #arrudt_Storage1n1[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination1;//11100;
// #udt_Storage1n1BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection02disabled AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n2BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage002
AND NOT #arrudt_Storage1n2[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination1;//11200;
// #udt_Storage1n2BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection03disabled AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n3BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage003
AND NOT #arrudt_Storage1n3[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination1;//11300;
// #udt_Storage1n3BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection04disabled AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n4BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage004
AND NOT #arrudt_Storage1n4[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination1;//11400;
// #udt_Storage1n4BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
END_IF;
END_IF;
IF #n_Block11IDX = 21 AND #stTROCarrier.st_Data.nDestination = 0
THEN
#xError := True;
#nErrorID := #c020_KeinZielVerfuegbar;
END_IF;
END_FOR;
END_REGION
#c001_even:
REGION Even
//Minimale Befüllung in der Linie ermitteln
#nTempMinBefuellungBlock := #arrudt_Storage1n1[1].stData.Status.nCount;
FOR #nTempLinieIDX := 2 TO 12 DO
IF #arrudt_Storage1n1[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n1[#nTempLinieIDX].stData.Status.nCount;
END_IF;
IF #arrudt_Storage1n2[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n2[#nTempLinieIDX].stData.Status.nCount;
END_IF;
IF #arrudt_Storage1n3[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n3[#nTempLinieIDX].stData.Status.nCount;
END_IF;
IF #arrudt_Storage1n4[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n4[#nTempLinieIDX].stData.Status.nCount;
END_IF;
END_FOR;
FOR #n_Block11IDX := 1 TO 21 DO
IF #n_Block11IDX >= 1 AND #n_Block11IDX <= 21
THEN
IF NOT #st_AreaDisabledLevel1.str_Block.xSection01disabled AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n1BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage001
AND NOT #arrudt_Storage1n1[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11100;
// #udt_Storage1n1BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection02disabled AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n2BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage002
AND NOT #arrudt_Storage1n2[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11200;
// #udt_Storage1n2BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection03disabled AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n3BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage003
AND NOT #arrudt_Storage1n3[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11300;
// #udt_Storage1n3BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection04disabled AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n4BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage004
AND NOT #arrudt_Storage1n4[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11400;
// #udt_Storage1n4BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
END_IF;
END_IF;
IF #n_Block11IDX = 21 AND #stTROCarrier.st_Data.nDestination = 0
THEN
#xError := True;
#nErrorID := #c020_KeinZielVerfuegbar;
END_IF;
END_FOR;
END_REGION
END_CASE;
#c003_CarrierLeer:
CASE #nIn_StorageMode OF
#c000_uneven:
REGION Uneven
//Blöcken werden ungleich gefüllt
FOR #n_Block11IDX := 1 TO 21 DO
IF #n_Block11IDX >= 1 AND #n_Block11IDX <= 21
THEN
IF NOT #st_AreaDisabledLevel1.str_Block.xSection01disabled AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n1BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage001
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination1;
// #udt_Storage1n1BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection02disabled AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n2BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage002
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination2;
// #udt_Storage1n2BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF (* NOT #st_AreaDisabledLevel1.str_Block.xSection03disabled AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n3BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage003 *)
//AND
#arrudt_Storage1n3[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination3;
// #udt_Storage1n3BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection04disabled AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacitySet
AND #udt_Storage1n4BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage004
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := #nInBlockDestination4;
// #udt_Storage1n4BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
END_IF;
END_IF;
IF #n_Block11IDX = 21 AND #stTROCarrier.st_Data.nDestination = 0
THEN
#xError := True;
#nErrorID := #c020_KeinZielVerfuegbar;
END_IF;
END_FOR;
END_REGION
#c001_even:
REGION Even
//Minimale Befüllung in der Linie ermitteln
#nTempMinBefuellungBlock := #arrudt_Storage1n1[1].stData.Status.nCount;
FOR #nTempLinieIDX := 2 TO 12 DO
IF #arrudt_Storage1n1[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n1[#nTempLinieIDX].stData.Status.nCount;
END_IF;
IF #arrudt_Storage1n2[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n2[#nTempLinieIDX].stData.Status.nCount;
END_IF;
IF #arrudt_Storage1n3[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n3[#nTempLinieIDX].stData.Status.nCount;
END_IF;
IF #arrudt_Storage1n4[#nTempLinieIDX].stData.Status.nCount < #nTempMinBefuellungBlock THEN
#nTempMinBefuellungBlock := #arrudt_Storage1n4[#nTempLinieIDX].stData.Status.nCount;
END_IF;
END_FOR;
FOR #n_Block11IDX := 1 TO 21 DO
IF #n_Block11IDX >= 1 AND #n_Block11IDX <= 21
THEN
IF NOT #st_AreaDisabledLevel1.str_Block.xSection01disabled AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n1[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n1BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage001
AND #arrudt_Storage1n1[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11100;
// #udt_Storage1n1BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection02disabled AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n2[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n2BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage002
AND #arrudt_Storage1n2[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11200;
// #udt_Storage1n2BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection03disabled AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n3[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n3[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n3BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage003
AND #arrudt_Storage1n3[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11300;
// #udt_Storage1n3BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
ELSIF NOT #st_AreaDisabledLevel1.str_Block.xSection04disabled AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacityMax
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount < #arrudt_Storage1n4[#n_Block11IDX].stData.Config.nCapacitySet
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Status.nCount = #nTempMinBefuellungBlock
AND #udt_Storage1n4BlockData.nCountTotal < #str_CapacityStorageBlock.nCapacityStorage004
AND #arrudt_Storage1n4[#n_Block11IDX].stData.Config.bByte.%X3
AND NOT #xDestinationGranted
THEN
#stTROCarrier.st_Data.nDestination := 11400;
// #udt_Storage1n4BlockData.nCountReserved += 1;
#xDestinationGranted := True;
EXIT;
END_IF;
IF #n_Block11IDX = 21 AND #stTROCarrier.st_Data.nDestination = 0
THEN
#xError := True;
#nErrorID := #c020_KeinZielVerfuegbar;
END_IF;
END_IF;
END_FOR;
END_REGION
END_CASE;
END_CASE;
END_IF;
END_REGION
REGION Error
//Quit setzt Error Word zurück
IF #xInQuit
THEN
#xError := False;
END_IF;
IF #xError AND #nErrorID = #c010_CarrierDatenFehlerhaft
THEN
#wsErrorMessage1 := WString#'Carrier';
#wsErrorMessage2 := DINT_TO_WSTRING(#udtInOut_CarrierAtScanner.nBarcode);
// #wsErrorMessage3 := WSTRING#'Daten nicht eindeutig';
ELSIF #xError AND #nErrorID = #c020_KeinZielVerfuegbar
THEN
#wsErrorMessage1 := WString#'Carrier';
#wsErrorMessage2 := DINT_TO_WSTRING(#udtInOut_CarrierAtScanner.nBarcode);
//#wsErrorMessage3 := WSTRING#'kein Ziel verfuegbar';
ELSIF #xError AND #nErrorID = #c000_KeinFehler
THEN
#wsErrorMessage1 := WString#'';
#wsErrorMessage2 := WString#'';
#wsErrorMessage3 := WSTRING#'';
END_IF;
#PrgAlarm_Failmessage(SIG := FALSE, //xError,
TIMESTAMP := #tTempLocalTime,
SD_1 := #wsIn_ObjectName,
SD_2 := #wsErrorMessage1,
SD_3 := #wsErrorMessage2,
SD_4 := #nErrorID);
END_REGION
REGION Output Mapping
IF #xDestinationGranted
THEN
#udtInOut_CarrierAtScanner.nDestination := #stTROCarrier.st_Data.nDestination;
END_IF;
END_REGION
REGION Reset
IF #udtInOut_CarrierAtScanner.nBarcode = 0 OR (#stTROCarrierLast.st_Data.nBarcode <> #udtInOut_CarrierAtScanner.nBarcode)
THEN
#xDestinationGranted := False;
#stTROCarrier.st_Data.nDestination := 0;
#udtInOut_CarrierAtScanner.nDestination := 0;
END_IF;
END_REGION
#stTROCarrierLast.st_Data.nBarcode := #udtInOut_CarrierAtScanner.nBarcode;
END_FUNCTION_BLOCK
@@ -0,0 +1,108 @@
FUNCTION_BLOCK "FB_LineEmptyAnalyze"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
arLineBlk { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : Array[1.."cNoLines"] of "stStorageLine"; // Daten pro Linie
END_VAR
VAR_OUTPUT
str_OutState : Struct
n_LineMAX : USInt;
arr_OrderLines : Array[1..21] of USInt;
arr_StorageLvl : Array[1..21] of USInt;
END_STRUCT;
END_VAR
VAR
udt_Blk { S7_SetPoint := 'False'} : "udt_LineStoreAnalyse";
END_VAR
VAR_TEMP
str_TempBlk : Struct
tmpValue : Int;
tmpIDX : Int;
arr_StorageLvl : Array[1..21] of USInt;
arr_Indizes : Array[1..21] of USInt;
END_STRUCT;
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_LineEmptyAnalyze
Comment/Function: Analyze Empty Line level
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-08-26 | - | | Header added on 26.08.2025
*)
END_REGION
// Füllgrad der Linien auswerten
FOR #udt_Blk.str_Static.n_StorageLvlIdx := 1 TO "cNoLines"(* 19 *) DO
#udt_Blk.str_Static.n_loaded := 0; // Zähler zurücksetzen
FOR #udt_Blk.str_Static.n_HelpIDX := 1 TO "cNoPositions"(* 108 *) DO
IF #arLineBlk[#udt_Blk.str_Static.n_StorageLvlIdx].arCarrier[#udt_Blk.str_Static.n_HelpIDX].nBarcode <> 0
AND NOT #arLineBlk[#udt_Blk.str_Static.n_StorageLvlIdx].arCarrier[#udt_Blk.str_Static.n_HelpIDX].bStatus.%X1 // Wenn Barcode ungleich 0, ist die Position belegt
THEN
#udt_Blk.str_Static.n_loaded += 1; // Zähler erhöhen
END_IF;
END_FOR;
#udt_Blk.str_State.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] := #udt_Blk.str_Static.n_loaded; // Ergebnis in Output schreiben
#str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] := #udt_Blk.str_Static.n_loaded; // Für Sortierung merken
#str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_StorageLvlIdx] := #udt_Blk.str_Static.n_StorageLvlIdx; // Ursprünglichen Index merken
END_FOR;
// Sortieren nach Füllgrad (absteigend)
FOR #udt_Blk.str_Static.n_StorageLvlIdx := 1 TO "cNoLines"(* 18 *) DO
FOR #udt_Blk.str_Static.n_HelpIDX := #udt_Blk.str_Static.n_StorageLvlIdx + 1 TO "cNoLines"(* 19 *) DO
IF #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] < #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_HelpIDX]
// Wenn aktueller Füllgrad kleiner als nächster, dann tauschen
THEN
//Füllgrad tauschen
#str_TempBlk.tmpValue := #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx];
#str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] := #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_HelpIDX];
#str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_HelpIDX] := #str_TempBlk.tmpValue;
//Indizes mitziehen
#str_TempBlk.tmpIDX := #str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_StorageLvlIdx];
#str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_StorageLvlIdx] := #str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_HelpIDX];
#str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_HelpIDX] := #str_TempBlk.tmpIDX;
END_IF;
END_FOR;
;
END_FOR;
//Ergebnis zuweisen
#udt_Blk.str_State.arr_OrderLines := #str_TempBlk.arr_Indizes; // Sortierte Indizes in den Output schreiben
#udt_Blk.str_State.n_LineMAX := #str_TempBlk.arr_Indizes[1]; // Index der Linie mit dem höchsten Füllgrad (an erster Stelle)
//Output Mapping
#str_OutState := #udt_Blk.str_State;
END_FUNCTION_BLOCK
@@ -0,0 +1,107 @@
FUNCTION_BLOCK "FB_LineLvlAnalyze"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
arLineBlk { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : Array[1.."cNoLines"] of "stStorageLine"; // Daten pro Linie
END_VAR
VAR_OUTPUT
str_OutState : Struct
n_LineMAX : USInt;
arr_OrderLines : Array[1.."cNoLines"] of USInt;
arr_StorageLvl : Array[1.."cNoLines"] of USInt;
END_STRUCT;
END_VAR
VAR
udt_Blk { S7_SetPoint := 'False'} : "udt_LineStoreAnalyse";
END_VAR
VAR_TEMP
str_TempBlk : Struct
tmpValue : Int;
tmpIDX : Int;
arr_StorageLvl : Array[1.."cNoLines"] of USInt;
arr_Indizes : Array[1.."cNoLines"] of USInt;
END_STRUCT;
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_LineLvlAnalyze
Comment/Function: Analyze storage level
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-08-26 | - | | Header added on 26.08.2025
*)
END_REGION
// Füllgrad der Linien auswerten
FOR #udt_Blk.str_Static.n_StorageLvlIdx := 1 TO "cNoLines"(* 19 *) DO
#udt_Blk.str_Static.n_loaded := 0; // Zähler zurücksetzen
FOR #udt_Blk.str_Static.n_HelpIDX := 1 TO "cNoPositions"(* 108 *) DO
IF #arLineBlk[#udt_Blk.str_Static.n_StorageLvlIdx].arCarrier[#udt_Blk.str_Static.n_HelpIDX].nBarcode <> 0 // Wenn Barcode ungleich 0, ist die Position belegt
THEN
#udt_Blk.str_Static.n_loaded += 1; // Zähler erhöhen
END_IF;
END_FOR;
#udt_Blk.str_State.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] := #udt_Blk.str_Static.n_loaded; // Ergebnis in Output schreiben
#str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] := #udt_Blk.str_Static.n_loaded; // Für Sortierung merken
#str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_StorageLvlIdx] := #udt_Blk.str_Static.n_StorageLvlIdx; // Ursprünglichen Index merken
END_FOR;
// Sortieren nach Füllgrad (absteigend)
FOR #udt_Blk.str_Static.n_StorageLvlIdx := 1 TO "cNoLines"(* 18 *) DO
FOR #udt_Blk.str_Static.n_HelpIDX := #udt_Blk.str_Static.n_StorageLvlIdx + 1 TO "cNoLines"(* 19 *) DO
IF #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] < #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_HelpIDX]
// Wenn aktueller Füllgrad kleiner als nächster, dann tauschen
THEN
//Füllgrad tauschen
#str_TempBlk.tmpValue := #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx];
#str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_StorageLvlIdx] := #str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_HelpIDX];
#str_TempBlk.arr_StorageLvl[#udt_Blk.str_Static.n_HelpIDX] := #str_TempBlk.tmpValue;
//Indizes mitziehen
#str_TempBlk.tmpIDX := #str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_StorageLvlIdx];
#str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_StorageLvlIdx] := #str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_HelpIDX];
#str_TempBlk.arr_Indizes[#udt_Blk.str_Static.n_HelpIDX] := #str_TempBlk.tmpIDX;
END_IF;
END_FOR;
;
END_FOR;
//Ergebnis zuweisen
#udt_Blk.str_State.arr_OrderLines := #str_TempBlk.arr_Indizes; // Sortierte Indizes in den Output schreiben
#udt_Blk.str_State.n_LineMAX := #str_TempBlk.arr_Indizes[1]; // Index der Linie mit dem höchsten Füllgrad (an erster Stelle)
//Output Mapping
#str_OutState := #udt_Blk.str_State;
END_FUNCTION_BLOCK
@@ -0,0 +1,196 @@
FUNCTION_BLOCK "FB_Lvl1AdditionalRouting"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
udt_IN_MES : "UDT_Payload_CReqM";
x_CarrierLoaded : Bool;
xF2HEmptyCarrierNeeded : Bool;
xAMREmptyCarrierNeeded : Bool;
END_VAR
VAR_IN_OUT
arCarrier : Array[*] of "stCarrier";
END_VAR
VAR
nSequence : Int;
nBarcodeSave : DInt;
END_VAR
VAR_TEMP
nTempUpperBound : DInt;
nTempLowerBound : DInt;
END_VAR
VAR CONSTANT
c000Wait : Int := 0;
c002SaveBarcode : Int := 2;
c010AnalyzeCarrier : Int := 10;
c020SetDestination : Int := 20;
c030WaitCarrierGone : Int := 30;
c120AnalyzeEmptyNeeded : Int := 120;
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_Lvl1AdditionalRouting
Comment/Function: Desitnation for Carrier in lvl 1
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-10-16 | - | | Header added on 16.10.2025
*)
END_REGION
REGION
//Scan Result von UH05 erforderlich
END_REGION
REGION Check Array Size
#nTempLowerBound := LOWER_BOUND(ARR := #arCarrier, DIM := 1);
#nTempUpperBound := UPPER_BOUND(ARR := #arCarrier, DIM := 1);
END_REGION
REGION Sequence
CASE #nSequence OF
#c000Wait:
//Action
//Transition
IF #arCarrier[#nTempLowerBound].nBarcode >0
AND #arCarrier[#nTempLowerBound].nBarcode <> #nBarcodeSave
THEN
#nSequence := #c002SaveBarcode;
END_IF;
#c002SaveBarcode:
//Action
#nBarcodeSave := #arCarrier[#nTempLowerBound].nBarcode;
//Transition
#nSequence := #c010AnalyzeCarrier;
#c010AnalyzeCarrier:
//Action
IF #x_CarrierLoaded AND #arCarrier[#nTempLowerBound].bStatus.%X0
THEN
#arCarrier[#nTempLowerBound].bStatus.%X1 := True;
END_IF;
//Transition
IF #arCarrier[#nTempLowerBound].bStatus.%X1
THEN
#nSequence := #c020SetDestination;
ELSIF NOT #arCarrier[#nTempLowerBound].bStatus.%X1
THEN
#nSequence := #c120AnalyzeEmptyNeeded;
ELSIF NOT #arCarrier[#nTempLowerBound].bStatus.%X0
THEN
#nSequence := #c000Wait;
END_IF;
//Wenn Loaded -> Destination von MES
//Wenn nicht Loaded -> Prüfen über Schnittstelle ob F2H oder AMR Carrier braucht
//Wenn nicht Ziel Jam1110_1
//
#c020SetDestination:
//Action
IF #arCarrier[#nTempLowerBound].nBarcode = #udt_IN_MES.nBarcode
THEN
#arCarrier[#nTempLowerBound].nDestination := DINT_TO_INT( #udt_IN_MES.nDestination);
END_IF;
//Transition
IF #arCarrier[#nTempLowerBound].nDestination > 0
THEN
#nSequence := #c030WaitCarrierGone;
ELSIF NOT #arCarrier[#nTempLowerBound].bStatus.%X0
THEN
#nSequence := #c000Wait;
END_IF;
#c030WaitCarrierGone:
//Action
//Transition
IF NOT #arCarrier[#nTempLowerBound].bStatus.%X0
OR #arCarrier[#nTempLowerBound].nBarcode <> #nBarcodeSave
THEN
#nSequence := #c000Wait;
END_IF;
#c120AnalyzeEmptyNeeded:
//Action
IF #xAMREmptyCarrierNeeded THEN
#arCarrier[#nTempLowerBound].bStatus.%X8 := True;
ELSIF #xF2HEmptyCarrierNeeded THEN
#arCarrier[#nTempLowerBound].bStatus.%X9 := True;
END_IF;
//Transition
IF #arCarrier[#nTempLowerBound].bStatus.%X8 OR
#arCarrier[#nTempLowerBound].bStatus.%X9
THEN
#nSequence := #c030WaitCarrierGone;
ELSIF NOT #arCarrier[#nTempLowerBound].bStatus.%X0
OR #arCarrier[#nTempLowerBound].nBarcode <> #nBarcodeSave
THEN
#nSequence := #c000Wait;
END_IF;
END_CASE;
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,374 @@
FUNCTION_BLOCK "FB_RearrangeSequencer"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
x_In_Reset : Bool;
n_In_BlockID : Int;
END_VAR
VAR_IN_OUT
udt_InOutStorageSite : "udt_StorageSite";
END_VAR
VAR
arrint_PairA : Array[1..4] of Int;
arrint_PairB : Array[1..4] of Int;
xFoundPair : Bool;
xFoundSingle : Bool;
nNextPair : Int;
nNextSingle : Int;
nStartPair : Int;
nCheckPair : Int;
nPairIdx : Int;
nStartSingle : Int;
nCheckSingle : Int;
nSingleIdx : Int;
arrGlobalIndexOfBlockPos : Array[0..4] of Int;
nBlockPosIdx : Int;
nGlobalStorageIdx : Int;
END_VAR
VAR_TEMP
nPairLoopIndex : Int;
nStartPairIndex : Int;
nCheckPairIndex : Int;
nSingleLoopIndex : Int;
nStartSingleIndex : Int;
nCheckSingleIndex : Int;
ActivePosA : Int; // aktuelle aktive Position A im Block (14)
ActivePosB : Int; // aktuelle aktive Position B im Block (14)
GlobalIndexA : Int; // globaler Index des aktiven Lagers A (112)
GlobalIndexB : Int; // globaler Index des aktiven Lagers B (112)
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_rearrangeSequencer
Comment/Function: Manage the rearrange releases
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-11-10 | - | | Header added on 10.11.2025
*)
END_REGION
REGION Allowed Combinations
// erlaubte Paare in Block-Positionen
// Pair A [1, 2, 2, 1]
#arrint_PairA[1] := 1;
#arrint_PairA[2] := 2;
#arrint_PairA[3] := 2;
#arrint_PairA[4] := 1;
// Pair B [3, 4, 3, 4]
#arrint_PairB[1] := 3;
#arrint_PairB[2] := 4;
#arrint_PairB[3] := 3;
#arrint_PairB[4] := 4;
END_REGION
REGION Block Mapping
// Block 1: Lager 1..4 → Pos 1..4
#udt_InOutStorageSite.arrudt_Storage[1].udt_RearrangeStorageCtrl.nBlockID := 1;
#udt_InOutStorageSite.arrudt_Storage[1].udt_RearrangeStorageCtrl.nPosInBlock := 1;
#udt_InOutStorageSite.arrudt_Storage[2].udt_RearrangeStorageCtrl.nBlockID := 1;
#udt_InOutStorageSite.arrudt_Storage[2].udt_RearrangeStorageCtrl.nPosInBlock := 2;
#udt_InOutStorageSite.arrudt_Storage[3].udt_RearrangeStorageCtrl.nBlockID := 1;
#udt_InOutStorageSite.arrudt_Storage[3].udt_RearrangeStorageCtrl.nPosInBlock := 3;
#udt_InOutStorageSite.arrudt_Storage[4].udt_RearrangeStorageCtrl.nBlockID := 1;
#udt_InOutStorageSite.arrudt_Storage[4].udt_RearrangeStorageCtrl.nPosInBlock := 4;
// Block 2: Lager 5..8 → Pos 1..4
#udt_InOutStorageSite.arrudt_Storage[5].udt_RearrangeStorageCtrl.nBlockID := 2;
#udt_InOutStorageSite.arrudt_Storage[5].udt_RearrangeStorageCtrl.nPosInBlock := 1;
#udt_InOutStorageSite.arrudt_Storage[6].udt_RearrangeStorageCtrl.nBlockID := 2;
#udt_InOutStorageSite.arrudt_Storage[6].udt_RearrangeStorageCtrl.nPosInBlock := 2;
#udt_InOutStorageSite.arrudt_Storage[7].udt_RearrangeStorageCtrl.nBlockID := 2;
#udt_InOutStorageSite.arrudt_Storage[7].udt_RearrangeStorageCtrl.nPosInBlock := 3;
#udt_InOutStorageSite.arrudt_Storage[8].udt_RearrangeStorageCtrl.nBlockID := 2;
#udt_InOutStorageSite.arrudt_Storage[8].udt_RearrangeStorageCtrl.nPosInBlock := 4;
// Block 3: Lager 9..12 → Pos 1..4
#udt_InOutStorageSite.arrudt_Storage[9].udt_RearrangeStorageCtrl.nBlockID := 3;
#udt_InOutStorageSite.arrudt_Storage[9].udt_RearrangeStorageCtrl.nPosInBlock := 1;
#udt_InOutStorageSite.arrudt_Storage[10].udt_RearrangeStorageCtrl.nBlockID := 3;
#udt_InOutStorageSite.arrudt_Storage[10].udt_RearrangeStorageCtrl.nPosInBlock := 2;
#udt_InOutStorageSite.arrudt_Storage[11].udt_RearrangeStorageCtrl.nBlockID := 3;
#udt_InOutStorageSite.arrudt_Storage[11].udt_RearrangeStorageCtrl.nPosInBlock := 3;
#udt_InOutStorageSite.arrudt_Storage[12].udt_RearrangeStorageCtrl.nBlockID := 3;
#udt_InOutStorageSite.arrudt_Storage[12].udt_RearrangeStorageCtrl.nPosInBlock := 4;
END_REGION
REGION Logik
// ---- Reset ----
IF #x_In_Reset THEN
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne := 0;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo := 0;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.xIsPair := FALSE;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nLastPairSelected := 0;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nLastSingle := 0;
// Grants im Block zurücksetzen
FOR #nGlobalStorageIdx := 1 TO 12 DO
IF #udt_InOutStorageSite.arrudt_Storage[#nGlobalStorageIdx].udt_RearrangeStorageCtrl.nBlockID = #n_In_BlockID THEN
#udt_InOutStorageSite.arrudt_Storage[#nGlobalStorageIdx].udt_RearrangeStorageState.xRearrangeGrant := FALSE;
#udt_InOutStorageSite.arrudt_Storage[#nGlobalStorageIdx].udt_RearrangeStorageState.xIsInPair := FALSE;
END_IF;
END_FOR;
ELSE
// ---- Mapping: finde globale Lager-Indices für Pos 1..4 dieses Blocks ----
FOR #nBlockPosIdx := 1 TO 4 DO
#arrGlobalIndexOfBlockPos[#nBlockPosIdx] := 0;
FOR #nGlobalStorageIdx := 1 TO 12 DO
IF (#udt_InOutStorageSite.arrudt_Storage[#nGlobalStorageIdx].udt_RearrangeStorageCtrl.nBlockID = #n_In_BlockID)
AND (#udt_InOutStorageSite.arrudt_Storage[#nGlobalStorageIdx].udt_RearrangeStorageCtrl.nPosInBlock = #nBlockPosIdx) THEN
#arrGlobalIndexOfBlockPos[#nBlockPosIdx] := #nGlobalStorageIdx;
EXIT;
END_IF;
END_FOR;
END_FOR;
// ---- Kandidatensuche: Paar (beide UML-Req und ggf. Block-Ready) ----
#xFoundPair := FALSE;
#nNextPair := 0;
//Startindex bestimmen
#nStartPair := #udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nLastPairSelected + 1;
IF #nStartPair > 4 THEN
#nStartPair := 1;
END_IF;
#nCheckPair := #nStartPair;
// Schleife über alle 4 möglichen Paar-Kombinationen (1,3), (2,4), (2,3), (1,4)
FOR #nPairLoopIndex := 1 TO 4 DO
// Prüfen, ob beide Positionen im Block gültig belegt sind
IF (#arrGlobalIndexOfBlockPos[#arrint_PairA[#nCheckPair]] <> 0) AND (#arrGlobalIndexOfBlockPos[#arrint_PairB[#nCheckPair]] <> 0)
THEN
// Beide Lager aktiviert und haben Umlageranforderung?
IF #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#arrint_PairA[#nCheckPair]]].udt_RearrangeStorageCtrl.xEnableReaarrange
AND #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#arrint_PairB[#nCheckPair]]].udt_RearrangeStorageCtrl.xEnableReaarrange
AND #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#arrint_PairA[#nCheckPair]]].udt_RearrangeStorageCtrl.xRearrangeRequest
AND #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#arrint_PairB[#nCheckPair]]].udt_RearrangeStorageCtrl.xRearrangeRequest
AND (NOT #udt_InOutStorageSite.arrudt_Storage[ #arrGlobalIndexOfBlockPos[ #arrint_PairA[#nCheckPair] ] ].udt_RearrangeStorageState.xRemoveGrant) AND
(NOT #udt_InOutStorageSite.arrudt_Storage[ #arrGlobalIndexOfBlockPos[ #arrint_PairB[#nCheckPair] ] ].udt_RearrangeStorageState.xRemoveGrant) AND
(NOT #udt_InOutStorageSite.arrudt_Storage[ #arrGlobalIndexOfBlockPos[ #arrint_PairA[#nCheckPair] ] ].udt_RearrangeStorageState.xRemoveBusy) AND
(NOT #udt_InOutStorageSite.arrudt_Storage[ #arrGlobalIndexOfBlockPos[ #arrint_PairB[#nCheckPair] ] ].udt_RearrangeStorageState.xRemoveBusy)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#arrint_PairA[#nCheckPair]]].udt_RearrangeStorageState.xEmptyBusy)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#arrint_PairB[#nCheckPair]]].udt_RearrangeStorageState.xEmptyBusy)
THEN
// optional: Block muss für Umlagern bereit sein
IF (#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupCtrl.xReadyRearrange) THEN
#nNextPair := #nCheckPair;
#xFoundPair := TRUE;
EXIT;
END_IF;
END_IF;
END_IF;
#nCheckPair := #nCheckPair + 1;
IF #nCheckPair > 4 THEN
#nCheckPair := 1;
END_IF;
END_FOR;
// ---- Kandidatensuche: Single (falls kein Paar) ----
#xFoundSingle := FALSE;
#nNextSingle := 0;
IF NOT #xFoundPair THEN
#nStartSingle := #udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nLastSingle + 1;
IF #nStartSingle > 4 THEN
#nStartSingle := 1;
END_IF;
#nCheckSingle := #nStartSingle;
FOR #nSingleIdx := 1 TO 4 DO
IF (#arrGlobalIndexOfBlockPos[#nCheckSingle] <> 0)
AND #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#nCheckSingle]].udt_RearrangeStorageCtrl.xEnableReaarrange
AND #udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#nCheckSingle]].udt_RearrangeStorageCtrl.xRearrangeRequest
AND #udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupCtrl.xReadyRearrange AND
// Interlocks: keine parallele Auslager-Aktivität/Grant
(NOT #udt_InOutStorageSite.arrudt_Storage[ #arrGlobalIndexOfBlockPos[#nCheckSingle] ].udt_RearrangeStorageState.xRemoveGrant) AND
(NOT #udt_InOutStorageSite.arrudt_Storage[ #arrGlobalIndexOfBlockPos[#nCheckSingle] ].udt_RearrangeStorageState.xRemoveBusy)
THEN
#nNextSingle := #nCheckSingle;
#xFoundSingle := TRUE;
EXIT;
END_IF;
#nCheckSingle := #nCheckSingle + 1;
IF #nCheckSingle > 4 THEN
#nCheckSingle := 1;
END_IF;
END_FOR;
END_IF;
// ---- Zustand aktualisieren ----
// aktiv laufende Grants auf diesen Block bezogen pflegen
// (Mitglieder dürfen unabhängig fertig werden)
//
// A)
// Wenn nichts aktiv: starten (Paar vor Single)
IF (#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne = 0)
AND (#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo = 0) THEN
// alle Grants dieses Blocks resetten
FOR #nBlockPosIdx := 1 TO 4 DO
IF #arrGlobalIndexOfBlockPos[#nBlockPosIdx] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#nBlockPosIdx]].udt_RearrangeStorageState.xRearrangeGrant := FALSE;
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#nBlockPosIdx]].udt_RearrangeStorageState.xIsInPair := FALSE;
END_IF;
END_FOR;
// Paar gefunden
IF #xFoundPair THEN
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne := #arrint_PairA[#nNextPair];
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo := #arrint_PairB[#nNextPair];
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.xIsPair := TRUE;
// Grants setzen
IF #arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne]].udt_RearrangeStorageState.xRearrangeGrant := TRUE;
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne]].udt_RearrangeStorageState.xIsInPair := TRUE;
END_IF;
IF #arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo]].udt_RearrangeStorageState.xRearrangeGrant := TRUE;
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo]].udt_RearrangeStorageState.xIsInPair := TRUE;
END_IF;
//Single gefunden
ELSIF #xFoundSingle THEN
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne := #nNextSingle;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo := 0;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.xIsPair := FALSE;
IF #arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne]].udt_RearrangeStorageState.xRearrangeGrant := TRUE;
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne]].udt_RearrangeStorageState.xIsInPair := FALSE;
END_IF;
END_IF;
// B)
// Wenn aktiv: Fortschritt überwachen, Mitglieder ggf. freigeben
ELSE
// aktive globale Indizes ermitteln
#ActivePosA := #udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne;
#ActivePosB := #udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo;
#GlobalIndexA := 0;
#GlobalIndexB := 0;
IF (#ActivePosA >= 1) AND (#ActivePosA <= 4) THEN
#GlobalIndexA := #arrGlobalIndexOfBlockPos[#ActivePosA];
END_IF;
IF (#ActivePosB >= 1) AND (#ActivePosB <= 4) THEN
#GlobalIndexB := #arrGlobalIndexOfBlockPos[#ActivePosB];
END_IF;
// Mitglied A fertig?
IF (#GlobalIndexA <> 0) THEN //nur reingehen wenn <> 0
IF #udt_InOutStorageSite.arrudt_Storage[#GlobalIndexA].udt_RearrangeStorageState.xRearrangeGrant
AND (#udt_InOutStorageSite.arrudt_Storage[#GlobalIndexA].udt_RearrangeStorageState.xRearrange_Done
OR (NOT #udt_InOutStorageSite.arrudt_Storage[#GlobalIndexA].udt_RearrangeStorageCtrl.xRearrangeRequest)
OR (NOT #udt_InOutStorageSite.arrudt_Storage[#GlobalIndexA].udt_RearrangeStorageCtrl.xEnableReaarrange))
THEN
#udt_InOutStorageSite.arrudt_Storage[#GlobalIndexA].udt_RearrangeStorageState.xRearrangeGrant := FALSE;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne := 0;
END_IF;
END_IF;
// Mitglied B fertig?
IF (#GlobalIndexB <> 0) THEN //nur reingehen wenn <> 0
IF #udt_InOutStorageSite.arrudt_Storage[#GlobalIndexB].udt_RearrangeStorageState.xRearrangeGrant
AND (#udt_InOutStorageSite.arrudt_Storage[#GlobalIndexB].udt_RearrangeStorageState.xRearrange_Done
OR (NOT #udt_InOutStorageSite.arrudt_Storage[#GlobalIndexB].udt_RearrangeStorageCtrl.xRearrangeRequest)
OR (NOT #udt_InOutStorageSite.arrudt_Storage[#GlobalIndexB].udt_RearrangeStorageCtrl.xEnableReaarrange))
THEN
#udt_InOutStorageSite.arrudt_Storage[#GlobalIndexB].udt_RearrangeStorageState.xRearrangeGrant := FALSE;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo := 0;
END_IF;
END_IF;
// wenn beide 0 -> Abschluss & Nachfolge (Paar vor Single)
IF (#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne = 0) AND (#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo = 0) THEN
// Fairnessmarker setzen
IF #xFoundPair THEN
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nLastPairSelected := #nNextPair;
ELSIF #xFoundSingle THEN
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nLastSingle := #nNextSingle;
END_IF;
// direkt Nachfolge starten
FOR #nBlockPosIdx := 1 TO 4 DO
IF #arrGlobalIndexOfBlockPos[#nBlockPosIdx] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#nBlockPosIdx]].udt_RearrangeStorageState.xIsInPair := FALSE;
END_IF;
END_FOR;
IF #xFoundPair THEN
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne := #arrint_PairA[#nNextPair];
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo := #arrint_PairB[#nNextPair];
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.xIsPair := TRUE;
IF #arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne]].udt_RearrangeStorageState.xRearrangeGrant := TRUE;
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne]].udt_RearrangeStorageState.xIsInPair := TRUE;
END_IF;
IF #arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo]].udt_RearrangeStorageState.xRearrangeGrant := TRUE;
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo]].udt_RearrangeStorageState.xIsInPair := TRUE;
END_IF;
ELSIF #xFoundSingle THEN
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne := #nNextSingle;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiveTwo := 0;
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.xIsPair := FALSE;
IF #arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne] <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#arrGlobalIndexOfBlockPos[#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.nActiceOne]].udt_RearrangeStorageState.xRearrangeGrant := TRUE;
END_IF;
ELSE
#udt_InOutStorageSite.arrudt_BlockGroup[#n_In_BlockID].udt_BlockGroupState.xIsPair := FALSE;
END_IF;
END_IF;
END_IF;
END_IF;
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,96 @@
FUNCTION_BLOCK "FB_RearrangeStartCoordination"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
xInReset : Bool;
xInRearrangeStartDelay : Time;
END_VAR
VAR_IN_OUT
udt_InOutStorageSite : "udt_StorageSite";
END_VAR
VAR
arrbMarkLatch : Array[1..12] of Bool;
arrtonUmlStart {InstructionName := 'TON_TIME'; LibVersion := '1.0'; S7_SetPoint := 'False'} : Array[1..12] of TON_TIME;
nLagerIndex { S7_SetPoint := 'True'} : Int;
nblkId : Int;
END_VAR
BEGIN
// -------- Reset ----------
IF #xInReset THEN
FOR #nLagerIndex := 1 TO 12 DO
#arrbMarkLatch[#nLagerIndex] := FALSE;
#arrtonUmlStart[#nLagerIndex](IN := FALSE,
PT := #xInRearrangeStartDelay);
#udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageCtrl.xMarkPulse := FALSE;
// keine Requests offen lassen ??
// #udt_InOutStorageSite.arrudt_Storage[nLagerIndex].udt_RearrangeStorageCtrl.xRearrangeRequest := FALSE;
END_FOR;
END_IF;
// -------- Hauptlogik pro Lager ----------
FOR #nLagerIndex := 1 TO 12 DO
// erstes Mark-Telegramm "fangen"
IF #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageCtrl.xMarkPulse AND (NOT #arrbMarkLatch[#nLagerIndex]) THEN
// Nur starten, wenn Lager gerade nichts anderes tut
IF (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRearrangeBusy)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRearrangeGrant)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRemoveBusy)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRemoveGrant)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xEmptyBusy) THEN
#arrbMarkLatch[#nLagerIndex] := TRUE; // Zeitfenster scharf schalten
END_IF;
END_IF;
// MarkPulse verbrauchen (1-Zyklus-Impuls)
#udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageCtrl.xMarkPulse := FALSE;
//TON läuft, solange Latch aktiv
#arrtonUmlStart[#nLagerIndex](IN := #arrbMarkLatch[#nLagerIndex],
PT := #xInRearrangeStartDelay);
// Wenn Wartezeit abgelaufen: Umlagern anfordern (UmlReq setzen)
IF #arrtonUmlStart[#nLagerIndex].Q THEN
#nblkId := #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageCtrl.nBlockID;
IF (#nblkId >= 1) AND (#nblkId <= 3) AND #udt_InOutStorageSite.arrudt_BlockGroup[#nblkId].udt_BlockGroupCtrl.xReadyRearrange THEN
// Interlocks (keine Kollision mit Aus-/Empty)
IF (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRemoveBusy)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRemoveGrant)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xEmptyBusy) THEN
#udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageCtrl.xRearrangeRequest := TRUE; // bleibt TRUE bis angenommen
END_IF;
END_IF;
END_IF;
// Wenn Unterlogik angenommen hat (Uml_Busy=TRUE), Fenster schließen
IF #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRearrangeBusy THEN
#arrbMarkLatch[#nLagerIndex] := FALSE; // TON fällt ab
// Request kann (muss nicht) zurückgenommen werden ich empfehle:
#udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageCtrl.xRearrangeRequest := FALSE;
END_IF;
// Sicherheit: Nach Done definitiv Latch/Req aus
// IF #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xRearrange_Done THEN
// #arrbMarkLatch[#nLagerIndex] := FALSE;
// #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageCtrl.xRearrangeRequest := FALSE;
// END_IF;
END_FOR;
END_FUNCTION_BLOCK
@@ -0,0 +1,964 @@
FUNCTION_BLOCK "FB_StockRemovalBLKModul"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
n_InBlkID : UInt;
x_InStartBlk : Bool;
x_InQuit : Bool;
n_JamCapacityAMR : UInt;
n_JamCapacityAMRCriticalAmount : UInt;
n_JamCapacityF2H : UInt;
n_JamCapacityF2HCriticalAmount : UInt;
n_JamCapacityEmpty : UInt;
n_JamCapacityEmptyCriticalAmount : UInt;
sIn_ObjectName : String[50];
END_VAR
VAR_IN_OUT
arrudt_Line : Array[1.."cNoLines"] of "stStorageLine";
arrJamCarrier : Array[*] of "stCarrier";
str_InOut_FillingChart : Struct
n_BLK : Int;
udt_LineLvlBlk : "udt_LineLvl";
END_STRUCT;
str_InOut_EmptyChart : Struct
n_BLK : Int;
udt_LineLvlBlk : "udt_LineLvl";
END_STRUCT;
x_Error : Bool;
n_ErrorID : Int;
n_ErrorBLKID : Int;
udt_InOutMFRTRO : "UDT_MFR_StoreTRO";
udt_HMI : "udt_LinienSortierungHMI";
udt_INOUT_Handshake : "udt_StockRemovalBlkHandshake";
udt_INOUT_HandshakeEmpty : "udt_StockRemovalBlkHandshake";
udt_InOutHandshakeMessageToMes : "udt_HandshakeMessageToMES";
END_VAR
VAR
n_NextLine { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : USInt;
n_RearrangeSequence : UInt;
n_CollectLineIDXSave : UInt;
n_filledLineCounter : UInt;
tonr_StartRemoval {InstructionName := 'TONR_TIME'; LibVersion := '1.0'; S7_SetPoint := 'False'} : TONR_TIME;
nMaxFilledLine : USInt;
nMaxFilledLineSAve : USInt;
n_filledLineCounter_1 : USInt;
n_rearrangeLineCounter : USInt;
n_CollectLineIDX : USInt;
n_GetCarrierAmountIDX : Int;
n_GetCarrierAmount : USInt;
n_CheckCarrierOnListIDX : Int;
n_StockRemovalSequence : UInt;
n_SearchSortedBlkIDXSave : UInt;
n_SearchSortedLineIDXSave : UInt;
n_SearchSortedBlkIDX : USInt;
n_SearchSortedLineIDX : USInt;
n_DestiantionIDX : Int;
str_CurrentTask : String[50];
PrgAlarm_Failmessage {InstructionName := 'Program_Alarm'; LibVersion := '1.0'; S7_SetPoint := 'False'} : Program_Alarm;
wsErrorMessage : WString[50];
n_CurrentDonorLine : Int; // n_CurrentDonorLine
n_CurrentDonorCount : Int; // Anzahl Carrier in dieser Donorlinie
n_CurrentDonorType : Int; // 1=EmptyCarrier, 2=LoadedCarrier
n_CurrentTakerLine : Int; // Aktuelle Takerlinie
n_CurrentTakerFree : Int; // Freie Slots in der Takerlinie
n_SelectedDonorPos : Int; // Position des Carriers in der Donorlinie
n_SelectedTakerPos : Int; // Freier Slot in der Takerlinie
n_RearrangedCounter : Int; // Anzahl bereits verschobener Carrier
n_RemainingDonor : Int; // Restanzahl Carrier in Donorlinie
n_MaxEmptyLine : Int;
lfb_MessageToMES { S7_SetPoint := 'False'} : "FB_UpdateMessage";
str_MessageUpdate : Struct
str_Ctrl : Struct
x_SendMessage : Bool;
arrstr_MessageData : Array[1.."cNoPositions"] of Struct
n_MessageType : USInt;
n_PartID : DInt;
END_STRUCT;
END_STRUCT;
str_State : Struct
x_Ready : Bool;
x_Busy : Bool;
x_Done : Bool;
END_STRUCT;
END_STRUCT;
udt_Handshake_intern { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'; S7_SetPoint := 'False'} : "udt_StockRemovalBlkHandshake";
END_VAR
VAR_TEMP
nTempRetVal : Int;
tTempLocalTime {InstructionName := 'DTL'; LibVersion := '1.0'} : DTL;
nTempCntEmpty : Int; // empty counter
nTempCntLoaded : Int; // loaded counter
nTempCntFree : Int; // free counter
t_Typ : Int;
t_donorMetric : Int;
idxLineAnalyze : Int; // Linienindex bei Analyse (Typbestimmung)
idxLineSearchTaker : Int; // Linienindex bei Suche nach Taker
idxCarrierAnalyze : Int; // Carrierindex beim Analysieren einer Linie
idxCarrierSearchTaker : Int; // Carrierindex bei Analyse einer Taker-Linie
idxCarrierDonorFind : Int; // Carrierindex beim Finden der Quellposition (Donor)
idxCarrierTakerFind : Int; // Carrierindex beim Finden der Zielposition (Taker)
idxCarrierDonorCheck : Int; // Carrierindex beim Prüfen der Donor-Linie nach Umlagerung
nTempUpperBound : DInt;
nTempLowBound : DInt;
END_VAR
VAR CONSTANT
"~~~~~~~~MessageType~~~~~~" : Bool;
c01_PartFound : USInt := 1;
c02_PartNotFound : USInt := 2;
"~~~~~~~~RearrangeSequence~~~~~" : Bool;
c0000_Wait : UInt;
c0005_WaitForTimer : UInt := 5;
c0010_SearchLine : UInt := 10;
c0020_CalculateAmount : UInt := 20;
c0030_StartRearrange : UInt := 30;
c0040_CheckCarrier : UInt := 40;
c0045_SendMessage : UInt;
c0050_ResetTRO : UInt := 50;
c0060_CheckMoreLines : UInt := 60;
c0070_StartStockRemove : UInt := 70;
c0075_WaitStockRemovalDone : UInt := 75;
c0080_ResetRemoval : UInt := 80;
c0090_SetDone : UInt := 90;
c0900_Error : UInt := 900;
c0100_SearchLineAdvanced : UInt := 100;
c0110_SearchTakerLine : UInt := 110;
c0120_SelectCarrierFromDonor : UInt := 120;
c0130_FindFreeTakerPos : UInt := 130;
c0140_MoveCarrier : UInt := 140;
c0143_WaitTRODone : UInt := 143;
c0145_ResetTRO : UInt := 145;
c0150_CheckDonorEmpty : UInt := 150;
c0160_Done : UInt := 160;
c0170_NoTakerFound : UInt := 170;
c0175_NoCarrierFound : UInt := 175;
"~~~~~ErrorID~~~~~" : Int;
c0010_NoLineFound : Int := 10;
"~~~~~StockRemovalSequence~~~~~" : Int;
c0020_CheckCapacity : UInt := 20;
c0025_SetDestination : UInt := 25;
c0030_SetTRO : UInt := 30;
c0040_WaitTRODone : UInt := 40;
c0100_SetDestinationEmpty : UInt := 100;
c0110_SetTRO : UInt := 110;
c0120_WaitTRODone : UInt := 120;
c0130_ResetTRO : UInt := 130;
"~~~~~~Destination~~~~~" : UInt;
c001_AMR : Int := 1;
c002_F2H : Int := 2;
c003_EmptyCarrier : Int := 3;
"~~~~~~~CarrierStatusbit~~~~~~~~~~~~~~~~~" : Int;
cCarrLoaded : Word := 16#0002;
"~~~~~~~LinienTypen~~~~~~~~~" : Word;
cLineFree : Int;
cLineEmpty : Int := 1;
cLineLoaded : Int := 2;
cLineMixed : Int := 3;
cLckFull : Byte := 16#04; // %X2 Full Carrier
cLckEmpty : Byte := 16#08; // %X3 EmptyCarrier
cLckMixed : Byte := 16#10; // %X4 MixedCarrier
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_StockRemovalBLKModul
Comment/Function: manages stock removal for a single block
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-07-28 | - | | Header added on 28.07.2025
*)
END_REGION
REGION LocalTime
// read local time for timestamp ------------------------------------------
#nTempRetVal := RD_LOC_T(#tTempLocalTime);
END_REGION
REGION Times
#tonr_StartRemoval(IN:=#n_RearrangeSequence = #c0005_WaitForTimer,
PT:=#udt_HMI.udt_BlockRemovalModul.str_Ctrl.t_StartDelayTime);
END_REGION
REGION Check Array
#nTempUpperBound := UPPER_BOUND(ARR := #arrJamCarrier, DIM := 1);
#nTempLowBound := LOWER_BOUND(ARR := #arrJamCarrier, DIM := 1);
END_REGION
//gibt Rückmeldung das er startet über den Handshake, alle anderen werden gesperrt.
//Alle sperren und per Fpr Schleife den Rückmeldenden starten
//
REGION Umlagern
// Carrier beim Umlagern mit Ziel versehen
CASE #n_RearrangeSequence OF
#c0000_Wait:
REGION c0000_Wait
///Action
#x_Error := FALSE;
#n_ErrorID := 0;
#n_ErrorBLKID := 0;
#udt_INOUT_Handshake.str_State.b_Busy := False;
#n_CollectLineIDXSave := 1; //Rücksetzen des gespeicherten Index
#n_filledLineCounter := 1;
#str_CurrentTask := 'Bereit zum Einlagern';
//Transition
IF #udt_INOUT_Handshake.str_Ctrl.b_Start OR (#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_StartRearrange
AND NOT #udt_INOUT_Handshake.str_Ctrl.b_Start
AND NOT #udt_INOUT_HandshakeEmpty.str_Ctrl.b_Start)
OR #udt_INOUT_HandshakeEmpty.str_Ctrl.b_Start
THEN
#n_RearrangeSequence := #c0005_WaitForTimer;
END_IF;
END_REGION
#c0005_WaitForTimer:
REGION c0005_WaitForTimer
//Action
#udt_INOUT_Handshake.str_State.b_Busy := True;
//Transition
IF #tonr_StartRemoval.Q AND NOT #udt_INOUT_HandshakeEmpty.str_Ctrl.b_Start
THEN
#n_RearrangeSequence := #c0010_SearchLine;
ELSIF #udt_INOUT_HandshakeEmpty.str_Ctrl.b_Start
THEN
;
ELSIF #udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_Cancel
THEN
#n_RearrangeSequence := #c0000_Wait;
END_IF;
END_REGION
#c0010_SearchLine:
REGION c0010_SearchLine
//Action
#nMaxFilledLineSAve := #str_InOut_FillingChart.udt_LineLvlBlk.arr_OrderLines[#n_filledLineCounter];
#str_CurrentTask := 'Leere Linie zum Umsortieren wird gesucht';
FOR #n_CollectLineIDX := 2 TO 21 DO
IF #arrudt_Line[#n_CollectLineIDX].stData.Status.nCount = 0
THEN
#arrudt_Line[#n_CollectLineIDX].stData.Status.bByte.%X5 := True; // zum Sortieren reserviert
#n_CollectLineIDXSave := #n_CollectLineIDX;
EXIT;
END_IF;
END_FOR;
//Transition
IF #arrudt_Line[#n_CollectLineIDXSave].stData.Status.bByte.%X5
THEN
#n_RearrangeSequence := #c0020_CalculateAmount;
ELSIF NOT #arrudt_Line[#n_CollectLineIDXSave].stData.Status.bByte.%X5
THEN
#n_RearrangeSequence := #c0100_SearchLineAdvanced;
END_IF;
END_REGION
#c0020_CalculateAmount:
REGION c0020_CalculateAmount
//Action
FOR #n_GetCarrierAmountIDX := 1 TO "cNoPositions" DO
IF #arrudt_Line[#nMaxFilledLineSAve].arCarrier[#n_GetCarrierAmountIDX].bStatus.%X5
THEN
IF #arrudt_Line[#nMaxFilledLineSAve].arCarrier[#n_GetCarrierAmountIDX].bStatus.%X8 AND #n_JamCapacityAMR > #n_JamCapacityAMRCriticalAmount
THEN
#arrudt_Line[#nMaxFilledLineSAve].arCarrier[#n_GetCarrierAmountIDX].nDestination := UINT_TO_INT(#n_InBlkID * 100 + #n_CollectLineIDXSave);
ELSIF #arrudt_Line[#nMaxFilledLineSAve].arCarrier[#n_GetCarrierAmountIDX].bStatus.%X9 AND #n_JamCapacityF2H > #n_JamCapacityF2HCriticalAmount
THEN
#arrudt_Line[#nMaxFilledLineSAve].arCarrier[#n_GetCarrierAmountIDX].nDestination := UINT_TO_INT(#n_InBlkID * 100 + #n_CollectLineIDXSave);
ELSE
#arrudt_Line[#nMaxFilledLineSAve].arCarrier[#n_GetCarrierAmountIDX].nDestination := UINT_TO_INT(#n_InBlkID * 100 + #nMaxFilledLineSAve);
END_IF;
#n_GetCarrierAmount := #n_GetCarrierAmountIDX;
END_IF;
END_FOR;
//Transition
#n_RearrangeSequence := #c0030_StartRearrange;
END_REGION
#c0030_StartRearrange:
REGION c0030_StartRearrange
//Action
#udt_InOutMFRTRO.UDT_Ctrl.nAmount := #n_GetCarrierAmount;
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 1;
#udt_InOutMFRTRO.UDT_Ctrl.xStart := True;
#str_CurrentTask := 'Umsortieren gestartet';
//Transition
#n_RearrangeSequence := #c0040_CheckCarrier;
END_REGION
#c0040_CheckCarrier:
REGION c0040_CheckCarrier
//Action
//Handshake erforderlich, sonst mehrfach Zählung
FOR #n_CheckCarrierOnListIDX := #nTempLowBound TO #nTempUpperBound DO //"cNoPositions"
IF #udt_InOutMFRTRO.UDT_Scan.nBarcode = #arrJamCarrier[#n_CheckCarrierOnListIDX].nBarcode
AND #arrJamCarrier[#n_CheckCarrierOnListIDX].bStatus.%X5
THEN
#n_rearrangeLineCounter += 1;
#str_MessageUpdate.str_Ctrl.arrstr_MessageData[#n_CheckCarrierOnListIDX].n_MessageType := #c01_PartFound;
#str_MessageUpdate.str_Ctrl.arrstr_MessageData[#n_CheckCarrierOnListIDX].n_PartID := #arrJamCarrier[#n_CheckCarrierOnListIDX].nBarcode;
;
END_IF;
END_FOR;
//Transition
IF #udt_InOutMFRTRO.UDT_State.xReady OR #udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_Cancel
THEN
#n_RearrangeSequence := #c0050_ResetTRO;
END_IF;
END_REGION
#c0050_ResetTRO:
REGION c0050_ResetTRO
//Action
#udt_InOutMFRTRO.UDT_Ctrl.xStart := FALSE;
#udt_InOutMFRTRO.UDT_Ctrl.nAmount := 0;
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 0;
#n_filledLineCounter += 1;
IF #n_filledLineCounter > 21
THEN
#n_filledLineCounter := 21;
END_IF;
//Transition
#n_RearrangeSequence := #c0060_CheckMoreLines;
END_REGION
#c0060_CheckMoreLines:
REGION c0060_CheckMoreLines
//Actions
#n_NextLine := #str_InOut_FillingChart.udt_LineLvlBlk.arr_OrderLines[#n_filledLineCounter];
IF #n_NextLine = 0
THEN
#n_NextLine := 1;
END_IF;
//Transitions
IF #str_InOut_FillingChart.udt_LineLvlBlk.arr_StorageLvl[#n_NextLine] > 0
AND #arrudt_Line[#n_CollectLineIDX].stData.Config.nCapacitySet - #n_rearrangeLineCounter > #str_InOut_FillingChart.udt_LineLvlBlk.arr_StorageLvl[#n_NextLine]
// Absicherung Linie in die umsortiert wird nicht voll
THEN
#n_RearrangeSequence := #c0020_CalculateAmount;
ELSE
#arrudt_Line[#n_CollectLineIDXSave].stData.Status.bByte.%X5 := False;
#arrudt_Line[#n_CollectLineIDXSave].stData.Status.bByte.%X6 := TRUE; // Sortieren abgeschlossen
#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_StartRearrange := False;
#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_Cancel := False;
#str_CurrentTask := 'Umsortieren beendet';
#n_RearrangeSequence := #c0070_StartStockRemove;
END_IF;
END_REGION
#c0070_StartStockRemove:
//Action
#udt_Handshake_intern.str_Ctrl.b_RemoveRelease := True;
//Transition
IF #udt_Handshake_intern.str_State.b_Busy
THEN
#n_RearrangeSequence := #c0075_WaitStockRemovalDone;
END_IF;
#c0075_WaitStockRemovalDone:
//Action
//Transition
IF #udt_Handshake_intern.str_State.b_Done
THEN
#n_RearrangeSequence := #c0080_ResetRemoval;
END_IF;
#c0080_ResetRemoval:
//Action
#udt_Handshake_intern.str_Ctrl.b_RemoveRelease := False;
//Transition
IF #str_InOut_FillingChart.udt_LineLvlBlk.arr_StorageLvl[#n_NextLine] > 0
OR #str_InOut_FillingChart.udt_LineLvlBlk.arr_StorageLvl[#n_NextLine + 1] > 0
THEN
#n_RearrangeSequence := #c0020_CalculateAmount;
ELSE
#n_RearrangeSequence := #c0090_SetDone;
END_IF;
#c0090_SetDone:
//Action
#udt_INOUT_Handshake.str_State.b_Busy := False;
#udt_INOUT_Handshake.str_State.b_Done := True;
//Transition
IF NOT #udt_INOUT_Handshake.str_Ctrl.b_Start
THEN
#n_RearrangeSequence := #c0000_Wait;
END_IF;
#c0100_SearchLineAdvanced:
REGION c0100_SearchLineAdvanced
//Donorlinie suchen (am wenigsten befüllt, sortenrein)
//Action
#n_CurrentDonorLine := 0;
#n_CurrentDonorCount := 32767; // "unendlich"
#n_CurrentDonorType := 0; // 1=EmptyCarrier, 2=LoadedCarrier
FOR #idxLineAnalyze := 1 TO "cNoLines" DO
#nTempCntLoaded := 0;
#nTempCntEmpty := 0;
FOR #idxCarrierAnalyze := 1 TO "cNoPositions" DO
IF #arrudt_Line[#idxLineAnalyze].arCarrier[#idxCarrierAnalyze].nBarcode > 0 THEN
IF #arrudt_Line[#idxLineAnalyze].arCarrier[#idxCarrierAnalyze].bStatus.%X1 THEN
#nTempCntLoaded += 1;
ELSE
#nTempCntEmpty += 1;
END_IF;
END_IF;
END_FOR;
// Linie ist sortenrein LOADED
IF (#nTempCntLoaded > 0) AND (#nTempCntEmpty = 0) THEN
IF #nTempCntLoaded < #n_CurrentDonorCount THEN
#n_CurrentDonorLine := #idxLineAnalyze;
#n_CurrentDonorCount := #nTempCntLoaded;
#n_CurrentDonorType := 2;
END_IF;
END_IF;
// Linie ist sortenrein EMPTY
IF (#nTempCntEmpty > 0) AND (#nTempCntLoaded = 0) THEN
IF #nTempCntEmpty < #n_CurrentDonorCount THEN
#n_CurrentDonorLine := #idxLineAnalyze;
#n_CurrentDonorCount := #nTempCntEmpty;
#n_CurrentDonorType := 1;
END_IF;
END_IF;
END_FOR;
// Transition
IF #n_CurrentDonorLine > 0 THEN
#n_RearrangeSequence := #c0110_SearchTakerLine;
ELSE
#n_RearrangeSequence := #c0170_NoTakerFound; // Fehlerbehandlung
END_IF;
END_REGION
#c0110_SearchTakerLine:
REGION c0110_SearchTakerLine
//Takerlinie suchen (kompatibel + freie Slots)
//Action
#n_CurrentTakerLine := 0;
#n_CurrentTakerFree := -1;
FOR #idxLineSearchTaker := 1 TO "cNoLines" DO
IF #idxLineSearchTaker = #n_CurrentDonorLine THEN
CONTINUE;
END_IF;
#nTempCntLoaded := 0;
#nTempCntEmpty := 0;
#nTempCntFree := 0;
FOR #idxCarrierSearchTaker := 1 TO "cNoPositions" DO
IF #arrudt_Line[#idxLineSearchTaker].arCarrier[#idxCarrierSearchTaker].nBarcode = 0 THEN
#nTempCntFree := #nTempCntFree + 1;
ELSIF #arrudt_Line[#idxLineSearchTaker].arCarrier[#idxCarrierSearchTaker].bStatus.%X1 THEN
#nTempCntLoaded := #nTempCntLoaded + 1;
ELSE
#nTempCntEmpty := #nTempCntEmpty + 1;
END_IF;
END_FOR;
// Linie ist sortenrein LOADED
IF (#nTempCntLoaded > 0) AND (#nTempCntEmpty = 0) THEN
IF (#n_CurrentDonorType = 2) AND (#nTempCntFree > 0) AND (#nTempCntFree > #n_CurrentTakerFree) THEN
#n_CurrentTakerLine := #idxLineSearchTaker;
#n_CurrentTakerFree := #nTempCntFree;
END_IF;
END_IF;
// Linie ist sortenrein EMPTY
IF (#nTempCntEmpty > 0) AND (#nTempCntLoaded = 0) THEN
IF (#n_CurrentDonorType = 1) AND (#nTempCntFree > 0) AND (#nTempCntFree > #n_CurrentTakerFree) THEN
#n_CurrentTakerLine := #idxLineSearchTaker;
#n_CurrentTakerFree := #nTempCntFree;
END_IF;
END_IF;
// Linie ist FREE
IF (#nTempCntLoaded = 0) AND (#nTempCntEmpty = 0) THEN
IF (#nTempCntFree > 0) AND (#nTempCntFree > #n_CurrentTakerFree) THEN
#n_CurrentTakerLine := #idxLineSearchTaker;
#n_CurrentTakerFree := #nTempCntFree;
END_IF;
END_IF;
END_FOR;
// Transition
IF #n_CurrentTakerLine > 0 THEN
#n_RearrangeSequence := #c0120_SelectCarrierFromDonor;
ELSE
#n_RearrangeSequence := #c0170_NoTakerFound;
END_IF;
END_REGION
#c0120_SelectCarrierFromDonor:
REGION c0120_SelectCarrierFromDonor
//Carrier im Donor finden (letzte belegte Position)
//Action
#n_SelectedDonorPos := 0;
FOR #idxCarrierDonorFind := 1 TO "cNoPositions" DO
IF #arrudt_Line[#n_CurrentDonorLine].arCarrier[#idxCarrierDonorFind].nBarcode > 0 THEN
IF (#n_CurrentDonorType = 2) AND (#arrudt_Line[#n_CurrentDonorLine].arCarrier[#idxCarrierDonorFind].bStatus.%X1) THEN
#n_SelectedDonorPos := #idxCarrierDonorFind;
EXIT;
ELSIF (#n_CurrentDonorType = 1) AND (NOT #arrudt_Line[#n_CurrentDonorLine].arCarrier[#idxCarrierDonorFind].bStatus.%X1) THEN
#n_SelectedDonorPos := #idxCarrierDonorFind;
EXIT;
END_IF;
END_IF;
END_FOR;
// Transition
IF #n_SelectedDonorPos > 0 THEN
#n_RearrangeSequence := #c0130_FindFreeTakerPos;
ELSE
#n_RearrangeSequence := #c0175_NoCarrierFound;
END_IF;
END_REGION
#c0130_FindFreeTakerPos:
REGION c0130_FindFreeTakerPos
//Erste freie Position im Taker suchen
//Action
#n_SelectedTakerPos := 0;
FOR #idxCarrierTakerFind := 1 TO "cNoPositions" DO
IF #arrudt_Line[#n_CurrentTakerLine].arCarrier[#idxCarrierTakerFind].nBarcode = 0 THEN
#n_SelectedTakerPos := #idxCarrierTakerFind;
EXIT;
END_IF;
END_FOR;
// Transition
IF #n_SelectedTakerPos > 0 THEN
#n_RearrangeSequence := #c0140_MoveCarrier;
ELSE
#n_RearrangeSequence := #c0170_NoTakerFound;
END_IF;
END_REGION
#c0140_MoveCarrier:
REGION c0140_MoveCarrier
//Carrier von Donor nach Taker verschieben
// Action
#udt_InOutMFRTRO.UDT_Ctrl.nAmount := 1;
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 1;
#udt_InOutMFRTRO.UDT_Ctrl.xStart := True;
#str_CurrentTask := 'Linie frei machen gestartet';
// Transition
#n_RearrangeSequence := #c0150_CheckDonorEmpty;
END_REGION
#c0143_WaitTRODone:
REGION c0143_WaitTRODone
// Warten bis verschieben beendet
//Action
//Transition
IF #udt_InOutMFRTRO.UDT_State.xReady
THEN
#n_RearrangeSequence := #c0145_ResetTRO;
END_IF;
END_REGION
#c0145_ResetTRO:
REGION c0145_ResetTRO
//TRO zuruecksetzen
//Action
#udt_InOutMFRTRO.UDT_Ctrl.nAmount := 1;
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 1;
#udt_InOutMFRTRO.UDT_Ctrl.xStart := True;
// Donor-Slot leeren
#arrudt_Line[#n_CurrentDonorLine].arCarrier[#n_SelectedDonorPos].nBarcode := 0;
#arrudt_Line[#n_CurrentDonorLine].arCarrier[#n_SelectedDonorPos].nDestination := 0;
#arrudt_Line[#n_CurrentDonorLine].arCarrier[#n_SelectedDonorPos].bStatus := 0;
#n_RearrangedCounter := #n_RearrangedCounter + 1;
//Transition
#n_RearrangeSequence := #c0150_CheckDonorEmpty;
END_REGION
#c0150_CheckDonorEmpty:
REGION c0150_CheckDonorEmpty
//Prüfen ob Donorlinie jetzt leer ist
#n_RemainingDonor := 0;
FOR #idxCarrierDonorCheck := 1 TO "cNoPositions" DO
IF #arrudt_Line[#n_CurrentDonorLine].arCarrier[#idxCarrierDonorCheck].nBarcode > 0 THEN
#n_RemainingDonor := #n_RemainingDonor + 1;
END_IF;
END_FOR;
// Transition
IF #n_RemainingDonor = 0 THEN
#n_RearrangeSequence := #c0160_Done;
ELSE
#n_RearrangeSequence := #c0110_SearchTakerLine; // weitermachen
END_IF;
END_REGION
#c0160_Done:
REGION c0160_Done
// Fertig
#str_CurrentTask := 'Linie frei machen abgeschlossen';
#n_RearrangeSequence := #c0010_SearchLine;
#n_NextLine := 1;
END_REGION
// --------------------------------------------------------
// Fehlerpfade
// --------------------------------------------------------
#c0170_NoTakerFound:
REGION c0170_NoTakerFound
//Action
#x_Error := TRUE;
#n_ErrorID := 1001;
#str_CurrentTask := 'Kein Taker gefunden';
//Transition
#n_RearrangeSequence := #c0900_Error;
END_REGION
#c0175_NoCarrierFound:
REGION c0175_NoCarrierFound
//Action
#x_Error := TRUE;
#n_ErrorID := 1002;
#str_CurrentTask := 'Kein Carrier im Donor gefunden';
//Transition
#n_RearrangeSequence := #c0900_Error;
END_REGION
#c0900_Error:
REGION c0900_Error
//Actions
//Transitions
IF #x_InQuit
THEN
#n_RearrangeSequence := #c0000_Wait;
END_IF;
END_REGION
END_CASE;
END_REGION
REGION HMI
#udt_HMI.udt_Common.n_ErrorBLKID := #n_ErrorBLKID;
#udt_HMI.udt_Common.n_ErrorID := #n_ErrorID;
#udt_HMI.udt_Common.x_Error := #x_Error;
#udt_HMI.udt_BlockRemovalModul.str_State.x_FreigabeBtnRearrenge := NOT #udt_INOUT_Handshake.str_Ctrl.b_Start AND NOT #udt_INOUT_HandshakeEmpty.str_Ctrl.b_Start;
#udt_HMI.udt_BlockRemovalModul.str_State.x_FreigabeBtnRemoval := NOT #udt_Handshake_intern.str_State.b_Busy;
END_REGION
REGION Auslagern
CASE #n_StockRemovalSequence OF
#c0000_Wait:
//Action
#n_SearchSortedBlkIDXSave := 1;
#n_SearchSortedLineIDXSave := 1;
#udt_Handshake_intern.str_State.b_Busy := FALSE;
//Transition
IF #udt_Handshake_intern.str_Ctrl.b_RemoveRelease AND NOT #udt_INOUT_HandshakeEmpty.str_Ctrl.b_RemoveRelease
OR (#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_StartRemoval AND #udt_HMI.udt_BlockRemovalModul.str_Ctrl.n_RemovalLine > 0)
THEN
#n_StockRemovalSequence := #c0010_SearchLine;
ELSIF #udt_INOUT_HandshakeEmpty.str_Ctrl.b_RemoveRelease
THEN
#n_MaxEmptyLine := #str_InOut_EmptyChart.udt_LineLvlBlk.n_LineMAX;
#n_StockRemovalSequence := #c0100_SetDestinationEmpty;
END_IF;
#c0010_SearchLine:
//Action
#n_SearchSortedBlkIDXSave := 1;
#n_SearchSortedLineIDXSave := 1;
#udt_Handshake_intern.str_State.b_Busy := True;
#udt_Handshake_intern.str_State.b_Done := False;
FOR #n_SearchSortedBlkIDX := 1 TO 12 DO
FOR #n_SearchSortedLineIDX := 1 TO 21 DO
IF #arrudt_Line[#n_SearchSortedLineIDX].stData.Status.bByte.%X6
THEN
#n_SearchSortedBlkIDXSave := #n_SearchSortedBlkIDX;
#n_SearchSortedLineIDXSave := #n_SearchSortedLineIDX;
EXIT;
END_IF;
END_FOR;
END_FOR;
//Transition
IF #arrudt_Line[#n_SearchSortedLineIDXSave].stData.Status.bByte.%X6
OR (#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_StartRemoval AND #udt_HMI.udt_BlockRemovalModul.str_Ctrl.n_RemovalLine >0
AND NOT #udt_Handshake_intern.str_Ctrl.b_RemoveRelease
AND NOT #udt_INOUT_HandshakeEmpty.str_Ctrl.b_RemoveRelease
AND NOT #udt_INOUT_Handshake.str_State.b_Busy )
THEN
#n_StockRemovalSequence := #c0020_CheckCapacity;
END_IF;
#c0020_CheckCapacity:
//Action
#str_CurrentTask := 'Auslagern wird vorbereitet';
IF #udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_StartRemoval
AND NOT #udt_Handshake_intern.str_Ctrl.b_RemoveRelease
AND NOT #udt_INOUT_HandshakeEmpty.str_Ctrl.b_RemoveRelease
AND NOT #udt_INOUT_Handshake.str_State.b_Busy
THEN
IF #udt_HMI.udt_BlockRemovalModul.str_Ctrl.n_RemovalLine > 0 AND #udt_HMI.udt_BlockRemovalModul.str_Ctrl.n_RemovalLine < 22
THEN
#n_SearchSortedLineIDXSave := #udt_HMI.udt_BlockRemovalModul.str_Ctrl.n_RemovalLine;
END_IF;
END_IF;
//Transition
//IF Capacity JAms > Line Count Then
#n_StockRemovalSequence := #c0025_SetDestination;
#c0025_SetDestination:
//Action
FOR #n_DestiantionIDX := 1 TO "cNoPositions" DO
IF #arrudt_Line[#n_SearchSortedLineIDXSave].arCarrier[#n_DestiantionIDX].nBarcode > 0
THEN
IF #arrudt_Line[#n_SearchSortedLineIDXSave].arCarrier[#n_DestiantionIDX].bStatus.%X8
THEN
#arrudt_Line[#n_SearchSortedLineIDXSave].arCarrier[#n_DestiantionIDX].nDestination := #c001_AMR;
ELSIF #arrudt_Line[#n_SearchSortedLineIDXSave].arCarrier[#n_DestiantionIDX].bStatus.%X9
THEN
#arrudt_Line[#n_SearchSortedLineIDXSave].arCarrier[#n_DestiantionIDX].nDestination := #c002_F2H;
END_IF;
END_IF;
END_FOR;
//Transition
#n_StockRemovalSequence := #c0030_SetTRO;
#c0030_SetTRO:
//Action
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 3;
#udt_InOutMFRTRO.UDT_Ctrl.nLine := #n_SearchSortedLineIDXSave;
#udt_InOutMFRTRO.UDT_Ctrl.xStart := True;
#str_CurrentTask := 'Auslagern wurde gestartet';
//Transition
IF #udt_InOutMFRTRO.UDT_State.xBusy
THEN
#n_StockRemovalSequence := #c0040_WaitTRODone;
END_IF;
#c0040_WaitTRODone:
//Action
//
#str_CurrentTask := 'Auslagern wurde gestartet';
//Transition
IF #udt_InOutMFRTRO.UDT_State.xReady OR #udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_Cancel
THEN
#n_StockRemovalSequence := #c0050_ResetTRO;
END_IF;
#c0050_ResetTRO:
//Action
#udt_InOutMFRTRO.UDT_Ctrl.xStart := False;
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 0;
#arrudt_Line[#n_SearchSortedLineIDXSave].stData.Status.bByte.%X6 := False;
#str_CurrentTask := 'Auslagern beendet';
#udt_HMI.udt_BlockRemovalModul.str_Ctrl.n_RemovalLine := 0;
#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_Cancel := False;
#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_StartRearrange := False;
#udt_HMI.udt_BlockRemovalModul.str_Ctrl.x_StartRemoval := False;
#udt_Handshake_intern.str_State.b_Done := True;
//Transiton
IF NOT #udt_Handshake_intern.str_Ctrl.b_RemoveRelease
THEN
#n_StockRemovalSequence := #c0000_Wait;
END_IF;
#c0100_SetDestinationEmpty:
//Action
#udt_INOUT_HandshakeEmpty.str_State.b_Busy := True;
#udt_INOUT_HandshakeEmpty.str_State.b_Done := False;
FOR #n_DestiantionIDX := 1 TO "cNoPositions" DO
IF #n_MaxEmptyLine >= 1 AND #n_MaxEmptyLine <= 21
THEN
IF #arrudt_Line[#n_MaxEmptyLine].arCarrier[#n_DestiantionIDX].nBarcode > 0
THEN
IF NOT #arrudt_Line[#n_MaxEmptyLine].arCarrier[#n_DestiantionIDX].bStatus.%X1
THEN
#arrudt_Line[#n_MaxEmptyLine].arCarrier[#n_DestiantionIDX].nDestination := #c003_EmptyCarrier;
ELSE
#arrudt_Line[#n_MaxEmptyLine].arCarrier[#n_DestiantionIDX].nDestination := UINT_TO_INT(#n_InBlkID * 100 + #n_MaxEmptyLine);
END_IF;
END_IF;
END_IF;
END_FOR;
//Transition
#n_StockRemovalSequence := #c0110_SetTRO;
#c0110_SetTRO:
//Action
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 3;
#udt_InOutMFRTRO.UDT_Ctrl.nLine := #n_MaxEmptyLine;
#udt_InOutMFRTRO.UDT_Ctrl.xStart := True;
#str_CurrentTask := 'Auslagern wurde gestartet';
//Transition
IF #udt_InOutMFRTRO.UDT_State.xBusy
THEN
#n_StockRemovalSequence := #c0120_WaitTRODone;
END_IF;
#c0120_WaitTRODone:
//Action
//
//Transition
IF #udt_InOutMFRTRO.UDT_State.xReady
THEN
#n_StockRemovalSequence := #c0120_WaitTRODone;
END_IF;
#c0130_ResetTRO:
//Action
#udt_InOutMFRTRO.UDT_Ctrl.xStart := FALSE;
#udt_InOutMFRTRO.UDT_Ctrl.nMode := 0;
#udt_InOutMFRTRO.UDT_Ctrl.nLine := 0;
#udt_INOUT_HandshakeEmpty.str_State.b_Busy := False;
#udt_INOUT_HandshakeEmpty.str_State.b_Done := True;
#str_CurrentTask := 'Auslagern wurde beendet';
//Transition
IF NOT #udt_INOUT_HandshakeEmpty.str_Ctrl.b_Start
THEN
#n_StockRemovalSequence := #c0000_Wait;
END_IF;
END_CASE;
END_REGION
REGION Errors
//Quit setzt Error Word zurück
IF #x_InQuit
THEN
#x_Error := False;
END_IF;
IF #x_Error AND #n_ErrorID = #c0010_NoLineFound
THEN
#wsErrorMessage := WSTRING#'Keine Linie zum Sortieren gefunden';
END_IF;
#PrgAlarm_Failmessage(SIG := #x_Error,
TIMESTAMP := #tTempLocalTime,
SD_1 := #sIn_ObjectName,
SD_2 := #wsErrorMessage);
END_REGION
REGION Send Message To MES
#lfb_MessageToMES(x_InSendMessage:=#str_MessageUpdate.str_Ctrl.x_SendMessage,
arrstr_InOutMessageData:=#str_MessageUpdate.str_Ctrl.arrstr_MessageData,
x_OutReady=>#str_MessageUpdate.str_State.x_Ready,
x_OutBusy=>#str_MessageUpdate.str_State.x_Busy,
x_OutDone=>#str_MessageUpdate.str_State.x_Done,
udt_InOutHandshakeMES:=#udt_InOutHandshakeMessageToMes);
END_REGION
REGION HMI Mapping
//#udt_HMI.str_TRO.udt_MFR_TRO := #udt_InOutMFRTRO;
#udt_HMI.udt_Common.string_CurrentTask := #str_CurrentTask;
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,206 @@
FUNCTION_BLOCK "FB_StockRemovalSequencerUDT"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
xReset : Bool;
nMaxEmptyBLK : Int;
nMaxEmptyLine : Int;
udt_In_CarrierNeeded : "udt_CarrierNeeded";
END_VAR
VAR_IN_OUT
udt_InOutStorageSite : "udt_StorageSite";
END_VAR
VAR
xCandidateFound : Bool;
nNextGlobalIndex : Int; // 1..12
nStartSearchIndex : Int; // Round-Robin Start
nCheckSearchIndex : Int; // aktuell geprüfter Index
nSearchLoopIndex : Int; // Schleifenvariable 1..12
nCandidateBlockId : Int; // 1..3
nCandLager : Int;
nCandLine : Int;
nBlkID : Int;
nPendingLagerIndex : Int;
nLagerIndex : Int;
END_VAR
VAR_TEMP
nResetIdx : Int;
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_StockRemovalSequencerUDT
Comment/Function: Manage the stock remove releases
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-11-10 | - | | Header added on 10.11.2025
*)
END_REGION
IF #xReset THEN
#udt_InOutStorageSite.nRemove_LastServed := 0;
#udt_InOutStorageSite.nRemove_ActiveIDX := 0;
#udt_InOutStorageSite.nRemove_Busy := FALSE;
FOR #nSearchLoopIndex := 1 TO 12 DO
#udt_InOutStorageSite.arrudt_Storage[#nSearchLoopIndex].udt_RearrangeStorageState.xRemoveGrant := FALSE;
END_FOR;
ELSE
// ---------------- Kandidatensuche (nur wenn nicht aktiv) ----------------
#xCandidateFound := FALSE;
#nNextGlobalIndex := 0;
#nStartSearchIndex := #udt_InOutStorageSite.nRemove_LastServed + 1;
IF #nStartSearchIndex > 12 THEN
#nStartSearchIndex := 1;
END_IF;
#nCheckSearchIndex := #nStartSearchIndex;
FOR #nSearchLoopIndex := 1 TO 12 DO
#nCandidateBlockId := #udt_InOutStorageSite.arrudt_Storage[#nCheckSearchIndex].udt_RearrangeStorageCtrl.nBlockID;
IF (#udt_InOutStorageSite.arrudt_Storage[#nCheckSearchIndex].udt_RearrangeStorageCtrl.xEnableRemove) AND
(#udt_InOutStorageSite.arrudt_Storage[#nCheckSearchIndex].udt_RearrangeStorageCtrl.xRemoveRequest) AND
(#udt_InOutStorageSite.arrudt_Storage[#nCheckSearchIndex].udt_RearrangeStorageState.xRearrange_Done) AND // erst nach Umlagerung sinnvoll
(NOT #udt_InOutStorageSite.arrudt_Storage[#nCheckSearchIndex].udt_RearrangeStorageState.xRearrangeBusy) AND
(NOT #udt_InOutStorageSite.arrudt_Storage[#nCheckSearchIndex].udt_RearrangeStorageState.xRearrangeGrant) AND
(#nCandidateBlockId >= 1) AND (#nCandidateBlockId <= 3) AND
(#udt_InOutStorageSite.arrudt_BlockGroup[#nCandidateBlockId].udt_BlockGroupCtrl.xReadyRemove)
THEN
#nNextGlobalIndex := #nCheckSearchIndex;
#xCandidateFound := TRUE;
EXIT;
END_IF;
#nCheckSearchIndex := #nCheckSearchIndex + 1;
IF #nCheckSearchIndex > 12 THEN
#nCheckSearchIndex := 1;
END_IF;
END_FOR;
// ---------------- Ablauf: global exakt ein Lager ----------------
IF NOT #udt_InOutStorageSite.nRemove_Busy THEN
// Alles zurücksetzen
FOR #nSearchLoopIndex := 1 TO 12 DO
#udt_InOutStorageSite.arrudt_Storage[#nSearchLoopIndex].udt_RearrangeStorageState.xRemoveGrant := FALSE;
END_FOR;
#udt_InOutStorageSite.nRemove_ActiveIDX := 0;
// Starten, wenn Kandidat da
IF #xCandidateFound THEN
#udt_InOutStorageSite.nRemove_ActiveIDX := #nNextGlobalIndex;
#udt_InOutStorageSite.arrudt_Storage[#udt_InOutStorageSite.nRemove_ActiveIDX].udt_RearrangeStorageState.xRemoveGrant := TRUE;
#udt_InOutStorageSite.nRemove_Busy := TRUE;
END_IF;
ELSE
// aktiver Auftrag überwachen
IF (#udt_InOutStorageSite.arrudt_Storage[#udt_InOutStorageSite.nRemove_ActiveIDX].udt_RearrangeStorageState.xRemoveDone) OR
(NOT #udt_InOutStorageSite.arrudt_Storage[#udt_InOutStorageSite.nRemove_ActiveIDX].udt_RearrangeStorageCtrl.xRemoveRequest) OR
(NOT #udt_InOutStorageSite.arrudt_Storage[#udt_InOutStorageSite.nRemove_ActiveIDX].udt_RearrangeStorageCtrl.xEnableRemove) THEN
// Abschluss
#udt_InOutStorageSite.arrudt_Storage[#udt_InOutStorageSite.nRemove_ActiveIDX].udt_RearrangeStorageState.xRemoveGrant := FALSE;
#udt_InOutStorageSite.nRemove_LastServed := #udt_InOutStorageSite.nRemove_ActiveIDX;
#udt_InOutStorageSite.nRemove_ActiveIDX := 0;
#udt_InOutStorageSite.nRemove_Busy := FALSE;
// Optional: sofort Folgekandidat starten
IF #xCandidateFound THEN
#udt_InOutStorageSite.nRemove_ActiveIDX := #nNextGlobalIndex;
#udt_InOutStorageSite.arrudt_Storage[#udt_InOutStorageSite.nRemove_ActiveIDX].udt_RearrangeStorageState.xRemoveGrant := TRUE;
#udt_InOutStorageSite.nRemove_Busy := TRUE;
END_IF;
ELSE
// Exklusivität absichern
FOR #nSearchLoopIndex := 1 TO 12 DO
#udt_InOutStorageSite.arrudt_Storage[#nSearchLoopIndex].udt_RearrangeStorageState.xRemoveGrant :=
(#nSearchLoopIndex = #udt_InOutStorageSite.nRemove_ActiveIDX);
END_FOR;
END_IF;
END_IF;
END_IF;
REGION Empty Carrier
// Prüfen, ob ein Lager noch im Handover-Fenster hängt:
// (= Snapshot gesetzt aber Empty_Busy noch FALSE)
#nPendingLagerIndex := 0;
FOR #nLagerIndex := 1 TO 12 DO
IF #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xEmptySelLineValid
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nLagerIndex].udt_RearrangeStorageState.xEmptyBusy) THEN
#nPendingLagerIndex := #nLagerIndex;
EXIT;
END_IF;
END_FOR;
// Falls Pending existiert: NICHT umschalten, denselben Request weiter behaupten
IF #nPendingLagerIndex <> 0 THEN
#udt_InOutStorageSite.arrudt_Storage[#nPendingLagerIndex].udt_RearrangeStorageCtrl.xEmptyReq := TRUE; // bis Busy kommt
ELSE
//Sonst neuen Kandidaten auswerten und SNAPSHOT+Request setzen
#nCandLager := #nMaxEmptyBLK; // 1..12
#nCandLine := #nMaxEmptyLine; // 1..21
IF (#nCandLager >= 1) AND (#nCandLager <= 12) THEN
// lokale Interlocks + Ready des Blocks
#nBlkID := #udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageCtrl.nBlockID;
IF #udt_InOutStorageSite.arrudt_BlockGroup[#nBlkID].udt_BlockGroupCtrl.xReadyRemove
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.xRearrangeBusy)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.xRearrangeGrant)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.xRemoveBusy)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.xRemoveGrant)
AND (NOT #udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.xEmptyBusy)
AND (#udt_In_CarrierNeeded.xF2HEmptyNeeded OR #udt_In_CarrierNeeded.xInboundEmptyNeeded)
//AND Inbound braucht Leere Carrier
//AND F2H braucht Leere Carrier
THEN
// SNAPSHOT zusammen mit der Anfrage
IF NOT #udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.xEmptySelLineValid THEN
#udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.nEmptySelLine :=INT_TO_USINT(#nCandLine);
#udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageState.xEmptySelLineValid := TRUE;
END_IF;
// Anfrage für leere Auslagerung (Start entsteht in der Unterlogik-Bridge)
#udt_InOutStorageSite.arrudt_Storage[#nCandLager].udt_RearrangeStorageCtrl.xEmptyReq := TRUE;
END_IF;
END_IF;
END_IF;
// Request automatisch zurücknehmen, sobald der Job losläuft
FOR #nResetIdx := 1 TO 12 DO
IF #udt_InOutStorageSite.arrudt_Storage[#nResetIdx].udt_RearrangeStorageState.xEmptyBusy THEN
#udt_InOutStorageSite.arrudt_Storage[#nResetIdx].udt_RearrangeStorageCtrl.xEmptyReq := FALSE;
END_IF;
END_FOR;
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,917 @@
FUNCTION_BLOCK "FB_StorageManagementCall"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR
Lfb_StoreBLk1 { S7_SetPoint := 'False'} : "FB_LV1BlockStorageManagement";
Lfb_StoreBLk2 : "FB_LV1BlockStorageManagement";
Lfb_StoreBLk3 : "FB_LV1BlockStorageManagement";
Lfb_StorageRemoval : "Fb_StockRemovalManagementLvl1";
stIn_JamDataBlock1 : Struct
stIn_JamData1101 : Struct
udt_JamData1101_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1101_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1102 : Struct
udt_JamData1102_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1102_2 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1102_3 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1103 : Struct
udt_JamData1103_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1103_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1104 : Struct
udt_JamData1104_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1104_2 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1104_3 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1105 : Struct
udt_JamData1105_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1105_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1106 : Struct
udt_JamData1106_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1106_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1107 : Struct
udt_JamData1107_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1107_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1108 : Struct
udt_JamData1108_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1108_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1109 : Struct
udt_JamData1109_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1109_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
END_STRUCT;
stIn_JamDataBlock2 : Struct
stIn_JamData1201 : Struct
udt_JamData1201_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1201_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1202 : Struct
udt_JamData1202_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1202_2 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1202_3 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1203 : Struct
udt_JamData1203_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1203_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1204 : Struct
udt_JamData1204_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1204_2 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1204_3 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1205 : Struct
udt_JamData1205_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1205_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1206 : Struct
udt_JamData1206_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1206_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1207 : Struct
udt_JamData1207_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1207_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1208 : Struct
udt_JamData1208_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1208_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1209 : Struct
udt_JamData1209_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1209_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
END_STRUCT;
stIn_JamDataBlock3 : Struct
stIn_JamData1301 : Struct
udt_JamData1301_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1301_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1302 : Struct
udt_JamData1302_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1302_2 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1302_3 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1303 : Struct
udt_JamData1303_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1303_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1304 : Struct
udt_JamData1304_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1304_2 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1304_3 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1305 : Struct
udt_JamData1305_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1305_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1306 : Struct
udt_JamData1306_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1306_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1307 : Struct
udt_JamData1307_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1307_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1308 : Struct
udt_JamData1308_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1308_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
stIn_JamData1309 : Struct
udt_JamData1309_1 { S7_SetPoint := 'False'} : "stJamData";
udt_JamData1309_2 { S7_SetPoint := 'False'} : "stJamData";
END_STRUCT;
END_STRUCT;
stIn_JamCarrierBlock1 : Struct
stIn_JamCarrier1101 : Struct
udt_JamCarrier1101_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1101_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1101_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1101_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1102 : Struct
udt_JamCarrier1102_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1102_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1102_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1102_2"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1102_3 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1102_3"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1103 : Struct
udt_JamCarrier1103_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1103_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1103_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1103_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1104 : Struct
udt_JamCarrier1104_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1104_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1104_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1104_2"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1104_3 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1104_3"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1105 : Struct
udt_JamCarrier1105_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1105_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1105_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1105_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1106 : Struct
udt_JamCarrier1106_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1106_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1106_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1106_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1107 : Struct
udt_JamCarrier1107_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1107_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1107_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1107_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1108 : Struct
udt_JamCarrier1108_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1108_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1108_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1108_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1109 : Struct
udt_JamCarrier1109_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1109_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1109_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1109_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
END_STRUCT;
stIn_JamCarrierBlock2 : Struct
stIn_JamCarrier1201 : Struct
udt_JamCarrier1201_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1201_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1201_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1201_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1202 : Struct
udt_JamCarrier1202_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1202_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1202_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1202_2"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1202_3 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1202_3"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1203 : Struct
udt_JamCarrier1203_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1203_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1203_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1203_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1204 : Struct
udt_JamCarrier1204_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1204_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1204_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1204_2"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1204_3 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1204_3"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1205 : Struct
udt_JamCarrier1205_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1205_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1205_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1205_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1206 : Struct
udt_JamCarrier1206_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1206_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1206_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1206_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1207 : Struct
udt_JamCarrier1207_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1207_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1207_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1207_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1208 : Struct
udt_JamCarrier1208_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1208_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1208_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1208_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1209 : Struct
udt_JamCarrier1209_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1209_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1209_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1209_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
END_STRUCT;
stIn_JamCarrierBlock3 : Struct
stIn_JamCarrier1301 : Struct
udt_JamCarrier1301_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1301_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1301_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1301_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1302 : Struct
udt_JamCarrier1302_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1302_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1302_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1302_2"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1302_3 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1302_3"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1303 : Struct
udt_JamCarrier1303_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1303_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1303_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1303_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1304 : Struct
udt_JamCarrier1304_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1304_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1304_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1304_2"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1304_3 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1304_3"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1305 : Struct
udt_JamCarrier1305_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1305_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1305_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1305_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1306 : Struct
udt_JamCarrier1306_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1306_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1306_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1306_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1307 : Struct
udt_JamCarrier1307_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1307_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1307_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1307_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1308 : Struct
udt_JamCarrier1308_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1308_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1308_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1308_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
stIn_JamCarrier1309 : Struct
udt_JamCarrier1309_1 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1309_1"] of "stCarrier";
END_STRUCT;
udt_JamCarrier1309_2 : Struct
arCarrier { S7_SetPoint := 'False'} : Array[1.."cJam1309_2"] of "stCarrier";
END_STRUCT;
END_STRUCT;
END_STRUCT;
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_StorageManagementCall
Comment/Function: Call all Storage Management FBs
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-07-10 | - | | Header added on 10.07.2025
*)
END_REGION
REGION Storage Management / Store
REGION Mapping
REGION Block 1
// 1101
#stIn_JamDataBlock1.stIn_JamData1101.udt_JamData1101_1.Config := "DB_JamArea1101".stJam1101_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1101.udt_JamData1101_1.Status := "DB_JamArea1101".stJam1101_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1101.udt_JamData1101_2.Config := "DB_JamArea1101".stJam1101_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1101.udt_JamData1101_2.Status := "DB_JamArea1101".stJam1101_2.stData.Status;
//2102
#stIn_JamDataBlock1.stIn_JamData1102.udt_JamData1102_1.Config := "DB_JamArea1102".stJam1102_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1102.udt_JamData1102_1.Status := "DB_JamArea1102".stJam1102_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1102.udt_JamData1102_2.Config := "DB_JamArea1102".stJam1102_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1102.udt_JamData1102_2.Status := "DB_JamArea1102".stJam1102_2.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1102.udt_JamData1102_3.Config := "DB_JamArea1102".stJam1102_3.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1102.udt_JamData1102_3.Status := "DB_JamArea1102".stJam1102_3.stData.Status;
//1103
#stIn_JamDataBlock1.stIn_JamData1103.udt_JamData1103_1.Config := "DB_JamArea1103".stJam1103_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1103.udt_JamData1103_1.Status := "DB_JamArea1103".stJam1103_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1103.udt_JamData1103_2.Config := "DB_JamArea1103".stJam1103_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1103.udt_JamData1103_2.Status := "DB_JamArea1103".stJam1103_2.stData.Status;
//1104
#stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_1.Config := "DB_JamArea1104".stJam1104_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_1.Status := "DB_JamArea1104".stJam1104_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_2.Config := "DB_JamArea1104".stJam1104_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_2.Status := "DB_JamArea1104".stJam1104_2.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_3.Config := "DB_JamArea1104".stJam1104_3.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_3.Status := "DB_JamArea1104".stJam1104_3.stData.Status;
// #stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_4.Config := "DB_JamArea1104".stJam1104_4.stData.Config;
// #stIn_JamDataBlock1.stIn_JamData1104.udt_JamData1104_4.Status := "DB_JamArea1104".stJam1104_4.stData.Status;
//1105
#stIn_JamDataBlock1.stIn_JamData1105.udt_JamData1105_1.Config := "DB_JamArea1105".stJam1105_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1105.udt_JamData1105_1.Status := "DB_JamArea1105".stJam1105_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1105.udt_JamData1105_2.Config := "DB_JamArea1105".stJam1105_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1105.udt_JamData1105_2.Status := "DB_JamArea1105".stJam1105_2.stData.Status;
//1106
#stIn_JamDataBlock1.stIn_JamData1106.udt_JamData1106_1.Config := "DB_JamArea1106".stJam1106_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1106.udt_JamData1106_1.Status := "DB_JamArea1106".stJam1106_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1106.udt_JamData1106_2.Config := "DB_JamArea1106".stJam1106_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1106.udt_JamData1106_2.Status := "DB_JamArea1106".stJam1106_2.stData.Status;
//1107
#stIn_JamDataBlock1.stIn_JamData1107.udt_JamData1107_1.Config := "DB_JamArea1107".stJam1107_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1107.udt_JamData1107_1.Status := "DB_JamArea1107".stJam1107_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1107.udt_JamData1107_2.Config := "DB_JamArea1107".stJam1107_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1107.udt_JamData1107_2.Status := "DB_JamArea1107".stJam1107_2.stData.Status;
//1108
#stIn_JamDataBlock1.stIn_JamData1108.udt_JamData1108_1.Config := "DB_JamArea1108".stJam1108_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1108.udt_JamData1108_1.Status := "DB_JamArea1108".stJam1108_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1108.udt_JamData1108_2.Config := "DB_JamArea1108".stJam1108_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1108.udt_JamData1108_2.Status := "DB_JamArea1108".stJam1108_2.stData.Status;
//1109
#stIn_JamDataBlock1.stIn_JamData1109.udt_JamData1109_1.Config := "DB_JamArea1109".stJam1109_1.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1109.udt_JamData1109_1.Status := "DB_JamArea1109".stJam1109_1.stData.Status;
#stIn_JamDataBlock1.stIn_JamData1109.udt_JamData1109_2.Config := "DB_JamArea1109".stJam1109_2.stData.Config;
#stIn_JamDataBlock1.stIn_JamData1109.udt_JamData1109_2.Status := "DB_JamArea1109".stJam1109_2.stData.Status;
END_REGION
REGION Block 2
// 1201
#stIn_JamDataBlock2.stIn_JamData1201.udt_JamData1201_1.Config := "DB_JamArea1201".stJam1201_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1201.udt_JamData1201_1.Status := "DB_JamArea1201".stJam1201_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1201.udt_JamData1201_2.Config := "DB_JamArea1201".stJam1201_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1201.udt_JamData1201_2.Status := "DB_JamArea1201".stJam1201_2.stData.Status;
//1202
#stIn_JamDataBlock2.stIn_JamData1202.udt_JamData1202_1.Config := "DB_JamArea1202".stJam1202_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1202.udt_JamData1202_1.Status := "DB_JamArea1202".stJam1202_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1202.udt_JamData1202_2.Config := "DB_JamArea1202".stJam1202_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1202.udt_JamData1202_2.Status := "DB_JamArea1202".stJam1202_2.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1202.udt_JamData1202_3.Config := "DB_JamArea1202".stJam1202_3.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1202.udt_JamData1202_3.Status := "DB_JamArea1202".stJam1202_3.stData.Status;
//1203
#stIn_JamDataBlock2.stIn_JamData1203.udt_JamData1203_1.Config := "DB_JamArea1203".stJam1203_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1203.udt_JamData1203_1.Status := "DB_JamArea1203".stJam1203_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1203.udt_JamData1203_2.Config := "DB_JamArea1203".stJam1203_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1203.udt_JamData1203_2.Status := "DB_JamArea1203".stJam1203_2.stData.Status;
//1204
#stIn_JamDataBlock2.stIn_JamData1204.udt_JamData1204_1.Config := "DB_JamArea1204".stJam1204_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1204.udt_JamData1204_1.Status := "DB_JamArea1204".stJam1204_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1204.udt_JamData1204_2.Config := "DB_JamArea1204".stJam1204_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1204.udt_JamData1204_2.Status := "DB_JamArea1204".stJam1204_2.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1204.udt_JamData1204_3.Config := "DB_JamArea1204".stJam1204_3.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1204.udt_JamData1204_3.Status := "DB_JamArea1204".stJam1204_3.stData.Status;
//1205
#stIn_JamDataBlock2.stIn_JamData1205.udt_JamData1205_1.Config := "DB_JamArea1205".stJam1205_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1205.udt_JamData1205_1.Status := "DB_JamArea1205".stJam1205_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1205.udt_JamData1205_2.Config := "DB_JamArea1205".stJam1205_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1205.udt_JamData1205_2.Status := "DB_JamArea1205".stJam1205_2.stData.Status;
//1206
#stIn_JamDataBlock2.stIn_JamData1206.udt_JamData1206_1.Config := "DB_JamArea1206".stJam1206_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1206.udt_JamData1206_1.Status := "DB_JamArea1206".stJam1206_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1206.udt_JamData1206_2.Config := "DB_JamArea1206".stJam1206_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1206.udt_JamData1206_2.Status := "DB_JamArea1206".stJam1206_2.stData.Status;
//1207
#stIn_JamDataBlock2.stIn_JamData1207.udt_JamData1207_1.Config := "DB_JamArea1207".stJam1207_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1207.udt_JamData1207_1.Status := "DB_JamArea1207".stJam1207_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1207.udt_JamData1207_2.Config := "DB_JamArea1207".stJam1207_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1207.udt_JamData1207_2.Status := "DB_JamArea1207".stJam1207_2.stData.Status;
//1208
#stIn_JamDataBlock2.stIn_JamData1208.udt_JamData1208_1.Config := "DB_JamArea1208".stJam1208_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1208.udt_JamData1208_1.Status := "DB_JamArea1208".stJam1208_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1208.udt_JamData1208_2.Config := "DB_JamArea1208".stJam1208_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1208.udt_JamData1208_2.Status := "DB_JamArea1208".stJam1208_2.stData.Status;
//1209
#stIn_JamDataBlock2.stIn_JamData1209.udt_JamData1209_1.Config := "DB_JamArea1209".stJam1209_1.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1209.udt_JamData1209_1.Status := "DB_JamArea1209".stJam1209_1.stData.Status;
#stIn_JamDataBlock2.stIn_JamData1209.udt_JamData1209_2.Config := "DB_JamArea1209".stJam1209_2.stData.Config;
#stIn_JamDataBlock2.stIn_JamData1209.udt_JamData1209_2.Status := "DB_JamArea1209".stJam1209_2.stData.Status;
END_REGION
REGION Block 3
// 1301
#stIn_JamDataBlock3.stIn_JamData1301.udt_JamData1301_1.Config := "DB_JamArea1301".stJam1301_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1301.udt_JamData1301_1.Status := "DB_JamArea1301".stJam1301_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1301.udt_JamData1301_2.Config := "DB_JamArea1301".stJam1301_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1301.udt_JamData1301_2.Status := "DB_JamArea1301".stJam1301_2.stData.Status;
//1302
#stIn_JamDataBlock3.stIn_JamData1302.udt_JamData1302_1.Config := "DB_JamArea1302".stJam1302_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1302.udt_JamData1302_1.Status := "DB_JamArea1302".stJam1302_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1302.udt_JamData1302_2.Config := "DB_JamArea1302".stJam1302_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1302.udt_JamData1302_2.Status := "DB_JamArea1302".stJam1302_2.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1302.udt_JamData1302_3.Config := "DB_JamArea1302".stJam1302_3.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1302.udt_JamData1302_3.Status := "DB_JamArea1302".stJam1302_3.stData.Status;
//1303
#stIn_JamDataBlock3.stIn_JamData1303.udt_JamData1303_1.Config := "DB_JamArea1303".stJam1303_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1303.udt_JamData1303_1.Status := "DB_JamArea1303".stJam1303_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1303.udt_JamData1303_2.Config := "DB_JamArea1303".stJam1303_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1303.udt_JamData1303_2.Status := "DB_JamArea1303".stJam1303_2.stData.Status;
//1304
#stIn_JamDataBlock3.stIn_JamData1304.udt_JamData1304_1.Config := "DB_JamArea1304".stJam1304_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1304.udt_JamData1304_1.Status := "DB_JamArea1304".stJam1304_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1304.udt_JamData1304_2.Config := "DB_JamArea1304".stJam1304_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1304.udt_JamData1304_2.Status := "DB_JamArea1304".stJam1304_2.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1304.udt_JamData1304_3.Config := "DB_JamArea1304".stJam1304_3.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1304.udt_JamData1304_3.Status := "DB_JamArea1304".stJam1304_3.stData.Status;
//1305
#stIn_JamDataBlock3.stIn_JamData1305.udt_JamData1305_1.Config := "DB_JamArea1305".stJam1305_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1305.udt_JamData1305_1.Status := "DB_JamArea1305".stJam1305_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1305.udt_JamData1305_2.Config := "DB_JamArea1305".stJam1305_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1305.udt_JamData1305_2.Status := "DB_JamArea1305".stJam1305_2.stData.Status;
//1306
#stIn_JamDataBlock3.stIn_JamData1306.udt_JamData1306_1.Config := "DB_JamArea1306".stJam1306_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1306.udt_JamData1306_1.Status := "DB_JamArea1306".stJam1306_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1306.udt_JamData1306_2.Config := "DB_JamArea1306".stJam1306_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1306.udt_JamData1306_2.Status := "DB_JamArea1306".stJam1306_2.stData.Status;
//1307
#stIn_JamDataBlock3.stIn_JamData1307.udt_JamData1307_1.Config := "DB_JamArea1307".stJam1307_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1307.udt_JamData1307_1.Status := "DB_JamArea1307".stJam1307_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1307.udt_JamData1307_2.Config := "DB_JamArea1307".stJam1307_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1307.udt_JamData1307_2.Status := "DB_JamArea1307".stJam1307_2.stData.Status;
//1308
#stIn_JamDataBlock3.stIn_JamData1308.udt_JamData1308_1.Config := "DB_JamArea1308".stJam1308_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1308.udt_JamData1308_1.Status := "DB_JamArea1308".stJam1308_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1308.udt_JamData1308_2.Config := "DB_JamArea1308".stJam1308_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1308.udt_JamData1308_2.Status := "DB_JamArea1308".stJam1308_2.stData.Status;
//1309
#stIn_JamDataBlock3.stIn_JamData1309.udt_JamData1309_1.Config := "DB_JamArea1309".stJam1309_1.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1309.udt_JamData1309_1.Status := "DB_JamArea1309".stJam1309_1.stData.Status;
#stIn_JamDataBlock3.stIn_JamData1309.udt_JamData1309_2.Config := "DB_JamArea1309".stJam1309_2.stData.Config;
#stIn_JamDataBlock3.stIn_JamData1309.udt_JamData1309_2.Status := "DB_JamArea1309".stJam1309_2.stData.Status;
END_REGION
END_REGION
REGION Call
#Lfb_StoreBLk1(nInBlockDestination1 := "cDest11100",
nInBlockDestination2 := "cDest11200",
nInBlockDestination3 := "cDest11300",
nInBlockDestination4 := "cDest11400",
stIn_JamDataBlock := #stIn_JamDataBlock1,
wsIn_ObjectName := WSTRING#'Storage Management Level1 Block1',
xOut_StorageRelease => "DB_HandshakeStorage".str_StorageManagement.udt_Lvl1Release.b_StorageReleaseBlock1xx,
arrudt_Storage1n1 := "DB_Storage1.1.1".arLine,
udt_Storage1n1BlockData := "DB_Storage1.1.1".stStorageBlockData,
arrudt_Storage1n2 := "DB_Storage1.1.2".arLine,
udt_Storage1n2BlockData := "DB_Storage1.1.2".stStorageBlockData,
arrudt_Storage1n3 := "DB_Storage1.1.3".arLine,
udt_Storage1n3BlockData := "DB_Storage1.1.3".stStorageBlockData,
arrudt_Storage1n4 := "DB_Storage1.1.4".arLine,
udt_Storage1n4BlockData := "DB_Storage1.1.4".stStorageBlockData,
udtInOut_CarrierAtScanner := "DB_JamArea1102".stJam1102_1.arCarrier[1]);
#Lfb_StoreBLk2(nInBlockDestination1 := "cDest12100",
nInBlockDestination2 := "cDest12200",
nInBlockDestination3 := "cDest12300",
nInBlockDestination4 := "cDest12400",
wsIn_ObjectName:=WSTRING#'Storage Management Level1 Block2',
xOut_StorageRelease=>"DB_HandshakeStorage".str_StorageManagement.udt_Lvl1Release.b_StorageReleaseBlock2xx,
arrudt_Storage1n1:="DB_Storage1.2.1".arLine,
udt_Storage1n1BlockData:="DB_Storage1.2.1".stStorageBlockData,
arrudt_Storage1n2:="DB_Storage1.2.2".arLine,
udt_Storage1n2BlockData:="DB_Storage1.2.2".stStorageBlockData,
arrudt_Storage1n3:="DB_Storage1.2.3".arLine,
udt_Storage1n3BlockData:="DB_Storage1.2.3".stStorageBlockData,
arrudt_Storage1n4:="DB_Storage1.2.4".arLine,
udt_Storage1n4BlockData:="DB_Storage1.2.4".stStorageBlockData,
udtInOut_CarrierAtScanner:="DB_JamArea1202".stJam1202_1.arCarrier[1]);
#Lfb_StoreBLk3(nInBlockDestination1 := "cDest13100",
nInBlockDestination2 := "cDest13200",
nInBlockDestination3 := "cDest13300",
nInBlockDestination4 := "cDest13400",
wsIn_ObjectName:=WSTRING#'Storage Management Level1 Block3',
xOut_StorageRelease=>"DB_HandshakeStorage".str_StorageManagement.udt_Lvl1Release.b_StorageReleaseBlock3xx,
arrudt_Storage1n1:="DB_Storage1.3.1".arLine,
udt_Storage1n1BlockData:="DB_Storage1.3.1".stStorageBlockData,
arrudt_Storage1n2:="DB_Storage1.3.2".arLine,
udt_Storage1n2BlockData:="DB_Storage1.3.2".stStorageBlockData,
arrudt_Storage1n3:="DB_Storage1.3.3".arLine,
udt_Storage1n3BlockData:="DB_Storage1.3.3".stStorageBlockData,
arrudt_Storage1n4:="DB_Storage1.3.4".arLine,
udt_Storage1n4BlockData:="DB_Storage1.3.4".stStorageBlockData,
udtInOut_CarrierAtScanner:="DB_JamArea1304".stJam1304_1.arCarrier[1]);
END_REGION
END_REGION
REGION Storage Removal
REGION Mapping
REGION Block 1
////1101
#stIn_JamCarrierBlock1.stIn_JamCarrier1101.udt_JamCarrier1101_1.arCarrier := "DB_JamArea1101".stJam1101_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1101.udt_JamCarrier1101_2.arCarrier := "DB_JamArea1101".stJam1101_2.arCarrier;
////1102
#stIn_JamCarrierBlock1.stIn_JamCarrier1102.udt_JamCarrier1102_1.arCarrier := "DB_JamArea1102".stJam1102_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1102.udt_JamCarrier1102_2.arCarrier := "DB_JamArea1102".stJam1102_2.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1102.udt_JamCarrier1102_3.arCarrier := "DB_JamArea1102".stJam1102_3.arCarrier;
////1103
#stIn_JamCarrierBlock1.stIn_JamCarrier1103.udt_JamCarrier1103_1.arCarrier := "DB_JamArea1103".stJam1103_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1103.udt_JamCarrier1103_2.arCarrier := "DB_JamArea1103".stJam1103_2.arCarrier;
////1104
#stIn_JamCarrierBlock1.stIn_JamCarrier1104.udt_JamCarrier1104_1.arCarrier := "DB_JamArea1104".stJam1104_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1104.udt_JamCarrier1104_2.arCarrier := "DB_JamArea1104".stJam1104_2.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1104.udt_JamCarrier1104_3.arCarrier := "DB_JamArea1104".stJam1104_3.arCarrier;
////1105
#stIn_JamCarrierBlock1.stIn_JamCarrier1105.udt_JamCarrier1105_1.arCarrier := "DB_JamArea1105".stJam1105_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1105.udt_JamCarrier1105_2.arCarrier := "DB_JamArea1105".stJam1105_2.arCarrier;
////1106
#stIn_JamCarrierBlock1.stIn_JamCarrier1106.udt_JamCarrier1106_1.arCarrier := "DB_JamArea1106".stJam1106_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1106.udt_JamCarrier1106_2.arCarrier := "DB_JamArea1106".stJam1106_2.arCarrier;
////1107
#stIn_JamCarrierBlock1.stIn_JamCarrier1107.udt_JamCarrier1107_1.arCarrier := "DB_JamArea1107".stJam1107_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1107.udt_JamCarrier1107_2.arCarrier := "DB_JamArea1107".stJam1107_2.arCarrier;
////1108
#stIn_JamCarrierBlock1.stIn_JamCarrier1108.udt_JamCarrier1108_1.arCarrier := "DB_JamArea1108".stJam1108_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1108.udt_JamCarrier1108_2.arCarrier := "DB_JamArea1108".stJam1108_2.arCarrier;
////1109
#stIn_JamCarrierBlock1.stIn_JamCarrier1109.udt_JamCarrier1109_1.arCarrier := "DB_JamArea1109".stJam1109_1.arCarrier;
#stIn_JamCarrierBlock1.stIn_JamCarrier1109.udt_JamCarrier1109_2.arCarrier := "DB_JamArea1109".stJam1109_2.arCarrier;
END_REGION
REGION Block 2
////1201
#stIn_JamCarrierBlock2.stIn_JamCarrier1201.udt_JamCarrier1201_1.arCarrier := "DB_JamArea1201".stJam1201_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1201.udt_JamCarrier1201_2.arCarrier := "DB_JamArea1201".stJam1201_2.arCarrier;
////1202
#stIn_JamCarrierBlock2.stIn_JamCarrier1202.udt_JamCarrier1202_1.arCarrier := "DB_JamArea1202".stJam1202_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1202.udt_JamCarrier1202_2.arCarrier := "DB_JamArea1202".stJam1202_2.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1202.udt_JamCarrier1202_3.arCarrier := "DB_JamArea1202".stJam1202_3.arCarrier;
////1203
#stIn_JamCarrierBlock2.stIn_JamCarrier1203.udt_JamCarrier1203_1.arCarrier := "DB_JamArea1203".stJam1203_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1203.udt_JamCarrier1203_2.arCarrier := "DB_JamArea1203".stJam1203_2.arCarrier;
////1204
#stIn_JamCarrierBlock2.stIn_JamCarrier1204.udt_JamCarrier1204_1.arCarrier := "DB_JamArea1204".stJam1204_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1204.udt_JamCarrier1204_2.arCarrier := "DB_JamArea1204".stJam1204_2.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1204.udt_JamCarrier1204_3.arCarrier := "DB_JamArea1204".stJam1204_3.arCarrier;
////1205
#stIn_JamCarrierBlock2.stIn_JamCarrier1205.udt_JamCarrier1205_1.arCarrier := "DB_JamArea1205".stJam1205_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1205.udt_JamCarrier1205_2.arCarrier := "DB_JamArea1205".stJam1205_2.arCarrier;
////1206
#stIn_JamCarrierBlock2.stIn_JamCarrier1206.udt_JamCarrier1206_1.arCarrier := "DB_JamArea1206".stJam1206_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1206.udt_JamCarrier1206_2.arCarrier := "DB_JamArea1206".stJam1206_2.arCarrier;
////1207
#stIn_JamCarrierBlock2.stIn_JamCarrier1207.udt_JamCarrier1207_1.arCarrier := "DB_JamArea1207".stJam1207_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1207.udt_JamCarrier1207_2.arCarrier := "DB_JamArea1207".stJam1207_2.arCarrier;
////1208
#stIn_JamCarrierBlock2.stIn_JamCarrier1208.udt_JamCarrier1208_1.arCarrier := "DB_JamArea1208".stJam1208_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1208.udt_JamCarrier1208_2.arCarrier := "DB_JamArea1208".stJam1208_2.arCarrier;
////1209
#stIn_JamCarrierBlock2.stIn_JamCarrier1209.udt_JamCarrier1209_1.arCarrier := "DB_JamArea1209".stJam1209_1.arCarrier;
#stIn_JamCarrierBlock2.stIn_JamCarrier1209.udt_JamCarrier1209_2.arCarrier := "DB_JamArea1209".stJam1209_2.arCarrier;
END_REGION
REGION Block 3
////1301
#stIn_JamCarrierBlock3.stIn_JamCarrier1301.udt_JamCarrier1301_1.arCarrier := "DB_JamArea1301".stJam1301_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1301.udt_JamCarrier1301_2.arCarrier := "DB_JamArea1301".stJam1301_2.arCarrier;
////1302
#stIn_JamCarrierBlock3.stIn_JamCarrier1302.udt_JamCarrier1302_1.arCarrier := "DB_JamArea1302".stJam1302_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1302.udt_JamCarrier1302_2.arCarrier := "DB_JamArea1302".stJam1302_2.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1302.udt_JamCarrier1302_3.arCarrier := "DB_JamArea1302".stJam1302_3.arCarrier;
////1303
#stIn_JamCarrierBlock3.stIn_JamCarrier1303.udt_JamCarrier1303_1.arCarrier := "DB_JamArea1303".stJam1303_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1303.udt_JamCarrier1303_2.arCarrier := "DB_JamArea1303".stJam1303_2.arCarrier;
////1304
#stIn_JamCarrierBlock3.stIn_JamCarrier1304.udt_JamCarrier1304_1.arCarrier := "DB_JamArea1304".stJam1304_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1304.udt_JamCarrier1304_2.arCarrier := "DB_JamArea1304".stJam1304_2.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1304.udt_JamCarrier1304_3.arCarrier := "DB_JamArea1304".stJam1304_3.arCarrier;
////1305
#stIn_JamCarrierBlock3.stIn_JamCarrier1305.udt_JamCarrier1305_1.arCarrier := "DB_JamArea1305".stJam1305_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1305.udt_JamCarrier1305_2.arCarrier := "DB_JamArea1305".stJam1305_2.arCarrier;
////1306
#stIn_JamCarrierBlock3.stIn_JamCarrier1306.udt_JamCarrier1306_1.arCarrier := "DB_JamArea1306".stJam1306_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1306.udt_JamCarrier1306_2.arCarrier := "DB_JamArea1306".stJam1306_2.arCarrier;
////1307
#stIn_JamCarrierBlock3.stIn_JamCarrier1307.udt_JamCarrier1307_1.arCarrier := "DB_JamArea1307".stJam1307_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1307.udt_JamCarrier1307_2.arCarrier := "DB_JamArea1307".stJam1307_2.arCarrier;
////1308
#stIn_JamCarrierBlock3.stIn_JamCarrier1308.udt_JamCarrier1308_1.arCarrier := "DB_JamArea1308".stJam1308_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1308.udt_JamCarrier1308_2.arCarrier := "DB_JamArea1308".stJam1308_2.arCarrier;
////1309
#stIn_JamCarrierBlock3.stIn_JamCarrier1309.udt_JamCarrier1309_1.arCarrier := "DB_JamArea1309".stJam1309_1.arCarrier;
#stIn_JamCarrierBlock3.stIn_JamCarrier1309.udt_JamCarrier1309_2.arCarrier := "DB_JamArea1309".stJam1309_2.arCarrier;
END_REGION
END_REGION
REGION Call
#Lfb_StorageRemoval(
udt_IN_MES:="DB_HandshakeStorage".Str_StorageRemoval.str_TelegramMES.udtIn_DataMES.stPayload,
n_JamCapacityAMRCriticalAmount := 90,
n_JamCapacityF2HCriticalAmount:=90,
t_IN_RemovalWaitTime := T#600s,
stStorage111BlockData:="DB_Storage1.1.1".stStorageBlockData,
stStorage112BlockData:="DB_Storage1.1.2".stStorageBlockData,
stStorage113BlockData:="DB_Storage1.1.3".stStorageBlockData,
stStorage114BlockData:="DB_Storage1.1.4".stStorageBlockData,
stStorage121BlockData:="DB_Storage1.2.1".stStorageBlockData,
stStorage122BlockData:="DB_Storage1.2.2".stStorageBlockData,
stStorage123BlockData:="DB_Storage1.2.3".stStorageBlockData,
stStorage124BlockData:="DB_Storage1.2.4".stStorageBlockData,
stStorage131BlockData:="DB_Storage1.3.1".stStorageBlockData,
stStorage132BlockData:="DB_Storage1.3.2".stStorageBlockData,
stStorage133BlockData:="DB_Storage1.3.3".stStorageBlockData,
stStorage134BlockData:="DB_Storage1.3.4".stStorageBlockData,
arrudt_InOut_MESPart := "DB_Prozessdaten".strStorageRemoval.arrudt_BufferTelegram,
arLineBlk111 := "DB_Storage1.1.1".arLine,
arLineBlk112 := "DB_Storage1.1.2".arLine,
arLineBlk113 := "DB_Storage1.1.3".arLine,
arLineBlk114 := "DB_Storage1.1.4".arLine,
arLineBlk121 := "DB_Storage1.2.1".arLine,
arLineBlk122 := "DB_Storage1.2.2".arLine,
arLineBlk123 := "DB_Storage1.2.3".arLine,
arLineBlk124 := "DB_Storage1.2.4".arLine,
arLineBlk131 := "DB_Storage1.3.1".arLine,
arLineBlk132 := "DB_Storage1.3.2".arLine,
arLineBlk133 := "DB_Storage1.3.3".arLine,
arLineBlk134 := "DB_Storage1.3.4".arLine,
udt_InOut_HandshakeDataMES := "DB_HandshakeStorage".Str_StorageRemoval.udt_HandshakeMESStorage,
arrudt_InOutMFRTRO := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1,
arrstr_InOut_FillingChart := "DB_Prozessdaten".strStorageRemoval.arrstr_InOut_FillingChart,
arrstr_InOut_EmptyChart := "DB_Prozessdaten".strStorageRemoval.arrstr_InOut_EmptyChart,
arrudt_HMILines := "DB_Interface_HMI".stAuslagern.arLineSorted,//"DB_Prozessdaten".stAuslagernTEMP.arLineSorted,
udt_InOutMessageToMesBlk111 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk111,
udt_InOutMessageToMesBlk112 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk112,
udt_InOutMessageToMesBlk113 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk113,
udt_InOutMessageToMesBlk114 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk114,
udt_InOutMessageToMesBlk121 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk121,
udt_InOutMessageToMesBlk122 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk122,
udt_InOutMessageToMesBlk123 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk123,
udt_InOutMessageToMesBlk124 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk124,
udt_InOutMessageToMesBlk131 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk131,
udt_InOutMessageToMesBlk132 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk132,
udt_InOutMessageToMesBlk133 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk133,
udt_InOutMessageToMesBlk134 := "DB_HandshakeStorage".Str_StorageRemoval.strMES.udt_InOutMessageToMesBlk134,
stIn_JamCarrierBlock1:=#stIn_JamCarrierBlock1,
stIn_JamCarrierBlock2:=#stIn_JamCarrierBlock2,
stIn_JamCarrierBlock3:=#stIn_JamCarrierBlock3,
udt_InOutStorageBlockSequencerData:="DB_HandshakeStorage".Str_StorageRemoval.udt_StorageBlockSequencerData
);
END_REGION
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,165 @@
FUNCTION_BLOCK "FB_UpdateMessage"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
x_InSendMessage : Bool;
END_VAR
VAR_OUTPUT
x_OutReady : Bool;
x_OutBusy : Bool;
x_OutDone : Bool;
END_VAR
VAR_IN_OUT
udt_InOutHandshakeMES : "udt_HandshakeMessageToMES";
arrstr_InOutMessageData : Array[1.."cNoPositions"] of Struct
n_MessageType : USInt; // 0:= ungueltig; 1:= gefunden: 2:= nicht gefunden
n_PartID : DInt;
END_STRUCT;
END_VAR
VAR
n_Sequence : UInt;
xError : Bool;
n_tempSearchIdxsave : Int;
END_VAR
VAR_TEMP
n_tempSearchIdx : Int;
END_VAR
VAR CONSTANT
c01_PartGefunden : UInt := 1;
c02_PartNichtGefunden : UInt := 2;
c000_CheckNoError : UInt := 0;
c010_WaitForStart : UInt := 10;
c020_SetNewMessage : UInt := 20;
c030_SendMessage : UInt := 30;
c040_ResetMessageData : UInt := 40;
END_VAR
BEGIN
REGION Info
(* Company: Schönenberger Systeme GmbH / (C) Copyright (2022). All rights reserved.
-----------------------------------------------------------------------------------------
Title: FB_UpdateMessage
Comment/Function: Send Message to MES
Library/Family: -
Author: department: "Automatisierung" ; person in charge / contact: C.Nottelmann (Automated Intelligence)
Target System: CPU 1518F-4 PN/DP
Engineering: TIA Portal V20
Restrictions: -
Requirements: -
-----------------------------------------------------------------------------------------
Change log table:
Version | Date | Signature (Safety) | Expert in charge | Changes applied
------------|------------|--------------------|------------------|-----------------------
001.000.000 | 2025-08-26 | - | | Header added on 26.08.2025
*)
END_REGION
CASE #n_Sequence OF
#c000_CheckNoError:
//Action
//Transition
IF NOT #udt_InOutHandshakeMES.str_State.b_Error
THEN
#n_Sequence := #c010_WaitForStart;
END_IF;
#c010_WaitForStart:
//Action
#x_OutDone := False;
#x_OutReady := True;
//Transition
FOR #n_tempSearchIdx := 1 TO "cNoPositions" DO
IF #x_InSendMessage AND #arrstr_InOutMessageData[#n_tempSearchIdx].n_PartID > 0 AND #arrstr_InOutMessageData[#n_tempSearchIdx].#n_MessageType > 0
THEN
#n_tempSearchIdxsave := #n_tempSearchIdx;
#n_Sequence := #c020_SetNewMessage;
END_IF;
EXIT;
END_FOR;
#c020_SetNewMessage:
//Action
#udt_InOutHandshakeMES.str_Ctrl.b_NewMessage := True;
#x_OutReady := False;
#x_OutBusy := True;
//Transition
IF #udt_InOutHandshakeMES.str_State.b_Ready
THEN
#n_Sequence := #c030_SendMessage;
END_IF;
#c030_SendMessage:
//Action
IF #arrstr_InOutMessageData[#n_tempSearchIdxsave].#n_MessageType = #c01_PartGefunden
THEN
#udt_InOutHandshakeMES.str_Ctrl.udt_MessageData.nReasonCode := #c01_PartGefunden;
ELSIF #arrstr_InOutMessageData[#n_tempSearchIdxsave].#n_MessageType = #c02_PartNichtGefunden
THEN
#udt_InOutHandshakeMES.str_Ctrl.udt_MessageData.nReasonCode := #c02_PartNichtGefunden;
ELSE
;
END_IF;
#udt_InOutHandshakeMES.str_Ctrl.udt_MessageData.nBarcode := #arrstr_InOutMessageData[#n_tempSearchIdxsave].#n_PartID;
//Transtition
IF #udt_InOutHandshakeMES.str_State.b_MessageReceived
THEN
#n_Sequence := #c040_ResetMessageData;
END_IF;
#c040_ResetMessageData:
//Action
#x_OutBusy := False;
#x_OutDone := True;
#arrstr_InOutMessageData[#n_tempSearchIdxsave].#n_MessageType := 0;
#arrstr_InOutMessageData[#n_tempSearchIdxsave].n_PartID := 0;
#udt_InOutHandshakeMES.str_Ctrl.udt_MessageData.nReasonCode := 0;
#udt_InOutHandshakeMES.str_Ctrl.udt_MessageData.nBarcode:= 0;
#udt_InOutHandshakeMES.str_Ctrl.b_NewMessage := False;
#n_tempSearchIdxsave := 1;
//Transition
IF NOT #udt_InOutHandshakeMES.str_State.b_MessageReceived
THEN
#n_Sequence := #c000_CheckNoError;
END_IF;
END_CASE;
END_FUNCTION_BLOCK
@@ -0,0 +1,2 @@
TypeGuid: a394caf2-9e35-454c-b109-30b66c22bddd
VersionGuid: 9a9ac382-d0ec-462d-9753-478a90c82276
@@ -0,0 +1,25 @@
FUNCTION "FC_Int2String" : String
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
nInNumber : Int;
END_VAR
VAR_TEMP
sTmp : String;
END_VAR
BEGIN
// Funktion wandelt Int zu String. Im Gegensatz zu "Int_To_String" wird das "+" entfernt. Bei negativen Zahlen bleibt das "-" erhalten.
// Autor: Christian Forkl
// 28.07.2021
#sTmp := INT_TO_STRING(#nInNumber);
IF #nInNumber >= 0 THEN
#FC_Int2String := RIGHT(IN := #sTmp, L := (LEN(#sTmp) - 1));
ELSE
#FC_Int2String := #sTmp;
END_IF;
END_FUNCTION
@@ -0,0 +1,203 @@
FUNCTION "FC_Jam" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_OUTPUT
stOutCarrierStatsStandard : "CarrierStatisticsStandard";
stOutCarrierStatsAdv : "CarrierStatisticsStorage";
END_VAR
VAR_IN_OUT
arInOutJamCarrier : Array[*] of "stCarrier";
stInOutData : "stJamData";
END_VAR
VAR_TEMP
nIdx : Int;
nArrayMax : Int;
END_VAR
VAR CONSTANT
cForecast : USInt := 110;
cRetrieveSeqSeat : USInt := 1;
cRetrieveSeqRest : USInt := 2;
cRetrieveExpress : USInt := 3;
cDummy : USInt := 1;
END_VAR
BEGIN
//Prüft Einstellwert
IF (#stInOutData.Config.nCapacitySet > #stInOutData.Config.nCapacityMax) OR (#stInOutData.Config.nCapacitySet <= 0) THEN
#stInOutData.Config.nCapacitySet := #stInOutData.Config.nCapacityMax;
END_IF;
//Init
#stOutCarrierStatsStandard.nEmptyCarrier := 0;
#stOutCarrierStatsStandard.nLoadedCarrier := 0;
#stOutCarrierStatsStandard.nDummyCarrier := 0;
#stOutCarrierStatsAdv.nDest111 := 0;
#stOutCarrierStatsAdv.nDest112 := 0;
#stOutCarrierStatsAdv.nDest113 := 0;
#stOutCarrierStatsAdv.nDest114 := 0;
#stOutCarrierStatsAdv.nDest121 := 0;
#stOutCarrierStatsAdv.nDest122 := 0;
#stOutCarrierStatsAdv.nDest123 := 0;
#stOutCarrierStatsAdv.nDest124 := 0;
#stOutCarrierStatsAdv.nDest131 := 0;
#stOutCarrierStatsAdv.nDest132 := 0;
#stOutCarrierStatsAdv.nDest133 := 0;
#stOutCarrierStatsAdv.nDest134 := 0;
//Ermittelt den Status/Füllstand des Staubereichs
#nArrayMax := DINT_TO_INT(UPPER_BOUND(ARR := #arInOutJamCarrier, DIM := 1));
IF NOT #arInOutJamCarrier[1].bStatus.%X0 THEN //Wenn 1. Teil leer, dann muss Schleife nicht ausgeführt werden
#stInOutData.Status.nCount := 0;
#stInOutData.Status.bByte.%X0 := TRUE;
//Jam ist leer
#stOutCarrierStatsStandard.nEmptyCarrier := 0;
#stOutCarrierStatsStandard.nLoadedCarrier := 0;
#stOutCarrierStatsStandard.nDummyCarrier := 0;
#stOutCarrierStatsAdv.nDest111 := 0;
#stOutCarrierStatsAdv.nDest112 := 0;
#stOutCarrierStatsAdv.nDest113 := 0;
#stOutCarrierStatsAdv.nDest114 := 0;
#stOutCarrierStatsAdv.nDest121 := 0;
#stOutCarrierStatsAdv.nDest122 := 0;
#stOutCarrierStatsAdv.nDest123 := 0;
#stOutCarrierStatsAdv.nDest124 := 0;
#stOutCarrierStatsAdv.nDest131 := 0;
#stOutCarrierStatsAdv.nDest132 := 0;
#stOutCarrierStatsAdv.nDest133 := 0;
#stOutCarrierStatsAdv.nDest134 := 0;
#stOutCarrierStatsAdv.nDestAMRLoaded := 0;
#stOutCarrierStatsAdv.nDestF2HLoaded := 0;
#stOutCarrierStatsAdv.nDestF2HEmpty := 0;
#stOutCarrierStatsAdv.nDestInboundEmpty := 0;
#stOutCarrierStatsAdv.nDest11x := 0;
#stOutCarrierStatsAdv.nDest12x := 0;
#stOutCarrierStatsAdv.nDest13x := 0;
//****Für Statistics muss dies auskommentiert werden
// ELSIF #arInOutJamCarrier[#nArrayMax].xOnline THEN //Wenn letztes Teil belegt, dann muss Schleife nicht ausgeführt werden
// #stInOutData.Status.nCount := #nArrayMax;
// #stInOutData.Status.xEmpty := FALSE;
//*****
ELSE
FOR #nIdx := 1 TO #nArrayMax DO
//Statistics - nur wenn etwas vorhanden, ansonsten nicht machen
IF #arInOutJamCarrier[#nIdx].nBarcode <> 0 THEN
//Statistics Standard
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND NOT #arInOutJamCarrier[#nIdx].bStatus.%X1 AND #arInOutJamCarrier[#nIdx].nBarcode <> #cDummy THEN
#stOutCarrierStatsStandard.nEmptyCarrier += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].bStatus.%X1 AND #arInOutJamCarrier[#nIdx].nBarcode <> #cDummy THEN
#stOutCarrierStatsStandard.nLoadedCarrier += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nBarcode = #cDummy THEN
#stOutCarrierStatsStandard.nDummyCarrier += 1;
END_IF;
// Statistics Advanced (Bereichsbezogen)
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest11100" THEN
#stOutCarrierStatsAdv.nDest111 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest11200" THEN
#stOutCarrierStatsAdv.nDest112 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest11300" THEN
#stOutCarrierStatsAdv.nDest113 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest11400" THEN
#stOutCarrierStatsAdv.nDest114 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest12100" THEN
#stOutCarrierStatsAdv.nDest121 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest12200" THEN
#stOutCarrierStatsAdv.nDest122 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest12300" THEN
#stOutCarrierStatsAdv.nDest123 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest12400" THEN
#stOutCarrierStatsAdv.nDest124 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest13100" THEN
#stOutCarrierStatsAdv.nDest131 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest13200" THEN
#stOutCarrierStatsAdv.nDest132 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest13300" THEN
#stOutCarrierStatsAdv.nDest133 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDest13400" THEN
#stOutCarrierStatsAdv.nDest134 += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestAMRLoaded" THEN
#stOutCarrierStatsAdv.nDestAMRLoaded += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestF2HLoaded" THEN
#stOutCarrierStatsAdv.nDestF2HLoaded += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestF2HEmpty" THEN
#stOutCarrierStatsAdv.nDestF2HEmpty += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestInboundEmpty" THEN
#stOutCarrierStatsAdv.nDestInboundEmpty += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestLvl1B1" THEN
#stOutCarrierStatsAdv.nDest11x += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestLvl1B2" THEN
#stOutCarrierStatsAdv.nDest12x += 1;
END_IF;
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestLvl1B3" THEN
#stOutCarrierStatsAdv.nDest13x += 1;
END_IF;
END_IF;
IF #arInOutJamCarrier[#nIdx].nBarcode = 0 THEN //Zählt nicht die Teile sondern merkt sich die Positionen wo ein Teil vorhanden ist (minus 1)
#stInOutData.Status.nCount := INT_TO_UINT(#nIdx - 1);
#stInOutData.Status.bByte.%X0 := FALSE;
EXIT;
//****Für Statistics würde dies benötigt werden
ELSIF #nIdx = #nArrayMax THEN
#stInOutData.Status.nCount := INT_TO_UINT(#nArrayMax);
#stInOutData.Status.bByte.%X0 := FALSE;
EXIT;
//******
END_IF;
END_FOR;
END_IF;
END_FUNCTION
@@ -0,0 +1,137 @@
FUNCTION "FC_StorageLines" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
nInDest : Int; // allgemeine Destination für diese Section
END_VAR
VAR_OUTPUT
nOutStorageLevel : Int; // Gesamt-Füllstand
stOutCarrStats : "CarrierStatisticsStore";
END_VAR
VAR_IN_OUT
arInOutStorage : Array[*] of "stStorageLine";
END_VAR
VAR_TEMP
nIdx1 : Int;
nIdx2 : Int;
nArrayMax : Int;
nDestMin : Int; // Ziele kleiner gehören raus
nDestMax : Int; // Ziele größer gehören raus
END_VAR
VAR CONSTANT
cDummy : USInt := 1;
END_VAR
BEGIN
//Durchsucht die Lagerlinien um den Status/Füllstand zu ermitteln und gibt dabei Statistikwerte aus
#stOutCarrStats.nEmptyCarrier := 0;
#stOutCarrStats.nDummy := 0;
#stOutCarrStats.stRdyToLeave.nCount := 0;
REGION Arraygrenze ermitteln
#nArrayMax := DINT_TO_USINT(UPPER_BOUND(ARR := #arInOutStorage, DIM := 1)); // get array size
#nDestMin := #nInDest;
#nDestMax := #nInDest + #nArrayMax;
END_REGION
REGION Lager durchsuchen
FOR #nIdx1 := 1 TO #nArrayMax DO
//Prüft Einstellwert
IF (#arInOutStorage[#nIdx1].stData.Config.nCapacitySet > #arInOutStorage[#nIdx1].stData.Config.nCapacityMax) OR (#arInOutStorage[#nIdx1].stData.Config.nCapacitySet < 0) THEN //"kleiner gleich" zu "kleiner" gemacht, Embi
#arInOutStorage[#nIdx1].stData.Config.nCapacitySet := #arInOutStorage[#nIdx1].stData.Config.nCapacityMax;
END_IF;
FOR #nIdx2 := 1 TO "cNoPositions" DO
IF #nIdx2 = "cNoPositions" THEN
REGION Linienende erreicht
IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> 0 THEN //Zählt nicht die Teile sondern merkt sich die Positionen wo ein Teil vorhanden ist
#arInOutStorage[#nIdx1].stData.Status.nCount := #nIdx2;
#arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := FALSE;
REGION Werte für Statistik ermitteln
IF NOT #arInOutStorage[#nIdx1].arCarrier[#nIdx2].bStatus.%X1 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> #cDummy THEN
#stOutCarrStats.nEmptyCarrier += 1;
END_IF;
IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = #cDummy THEN
#stOutCarrStats.nDummy += 1;
END_IF;
IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination < #nDestMin OR #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination > #nDestMax THEN
#stOutCarrStats.stRdyToLeave.nCount += 1;
#stOutCarrStats.stRdyToLeave.nLine := #nIdx1;
#stOutCarrStats.stRdyToLeave.nPos := #nIdx2;
END_IF;
END_REGION
EXIT;
ELSIF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = 0 THEN //Verlässt Schleife nach letztem gefundenen Teil um nicht die Schleife für leere Plätze auszuführen
REGION Leer
#arInOutStorage[#nIdx1].stData.Status.nCount := 0;
#arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := TRUE;
EXIT;
END_REGION
END_IF;
END_REGION
ELSIF #nIdx2 < "cNoPositions" THEN
IF (#arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> 0 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2 + 1].nBarcode = 0) THEN //Zählt nicht die Teile sondern merkt sich die Positionen wo ein Teil vorhanden ist
REGION Letzter Carrier erreicht
#arInOutStorage[#nIdx1].stData.Status.nCount := #nIdx2;
#arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := FALSE;
REGION Werte für Statistik ermitteln
IF NOT #arInOutStorage[#nIdx1].arCarrier[#nIdx2].bStatus.%X1 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> #cDummy THEN
#stOutCarrStats.nEmptyCarrier += 1;
END_IF;
IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = #cDummy THEN
#stOutCarrStats.nDummy += 1;
END_IF;
IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination < #nDestMin OR #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination > #nDestMax THEN
#stOutCarrStats.stRdyToLeave.nCount += 1;
#stOutCarrStats.stRdyToLeave.nLine := #nIdx1;
#stOutCarrStats.stRdyToLeave.nPos := #nIdx2;
END_IF;
END_REGION
EXIT;
END_REGION
ELSIF (#arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = 0) THEN //Verlässt Schleife nach letztem gefundenen Teil um nicht die Schleife für leere Plätze auszuführen
REGION Leer
#arInOutStorage[#nIdx1].stData.Status.nCount := 0;
#arInOutStorage[#nIdx1].stData.Status.bByte.%X0 := TRUE;
EXIT;
END_REGION
END_IF;
ELSE
REGION Suchlauf
REGION Werte für Statistik ermitteln
IF NOT #arInOutStorage[#nIdx1].arCarrier[#nIdx2].bStatus.%X1 AND #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode <> #cDummy THEN
#stOutCarrStats.nEmptyCarrier += 1;
END_IF;
IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nBarcode = #cDummy THEN
#stOutCarrStats.nDummy += 1;
END_IF;
IF #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination < #nDestMin OR #arInOutStorage[#nIdx1].arCarrier[#nIdx2].nDestination > #nDestMax THEN
#stOutCarrStats.stRdyToLeave.nCount += 1;
#stOutCarrStats.stRdyToLeave.nLine := #nIdx1;
#stOutCarrStats.stRdyToLeave.nPos := #nIdx2;
END_IF;
END_REGION
END_REGION
END_IF;
END_FOR;
END_FOR;
END_REGION
REGION Gesamtfüllstand
//Zählt die einzelnen Füllstände zusammen
#nIdx2 := 0;
FOR #nIdx1 := 1 TO #nArrayMax DO
#nIdx2 := #nIdx2 + #arInOutStorage[#nIdx1].stData.Status.nCount
;
END_FOR;
#nOutStorageLevel := #nIdx2;
END_REGION
END_FUNCTION
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1101_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1101_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1101_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1101_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1101</Name>
<Namespace />
<Number>22</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1102_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1102_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1102_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1102_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1102_3" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1102_3&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1102</Name>
<Namespace />
<Number>33</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1103_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1103_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1103_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1103_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1103</Name>
<Namespace />
<Number>25</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1104_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1104_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1104_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1104_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1104_3" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1104_3&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1104</Name>
<Namespace />
<Number>23</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1105_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1105_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1105_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1105_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1105</Name>
<Namespace />
<Number>62</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1106_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1106_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1106_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1106_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1106</Name>
<Namespace />
<Number>56</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1107_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1107_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1107_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1107_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1107</Name>
<Namespace />
<Number>60</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1108_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1108_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1108_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1108_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1108</Name>
<Namespace />
<Number>29</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1109_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1109_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>15</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>15</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1109_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1109_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1109</Name>
<Namespace />
<Number>16</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1201_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1201_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1201_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1201_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1201</Name>
<Namespace />
<Number>34</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1202_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1202_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1202_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1202_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>4</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>4</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1202_3" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1202_3&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1202</Name>
<Namespace />
<Number>52</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1203_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1203_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1203_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1203_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1203</Name>
<Namespace />
<Number>36</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1204_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1204_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1204_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1204_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1204_3" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1204_3&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1204</Name>
<Namespace />
<Number>67</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1205_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1205_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1205_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1205_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1205</Name>
<Namespace />
<Number>38</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1206_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1206_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1206_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1206_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1206</Name>
<Namespace />
<Number>68</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1207_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1207_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1207_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1207_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1207</Name>
<Namespace />
<Number>66</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1208_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1208_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1208_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1208_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>60</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1208</Name>
<Namespace />
<Number>45</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1209_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1209_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1209_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1209_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1209</Name>
<Namespace />
<Number>31</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1301_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1301_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1301_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1301_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1301</Name>
<Namespace />
<Number>46</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1302_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1302_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1302_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1302_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1302_3" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1302_3&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1302</Name>
<Namespace />
<Number>53</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1303_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1303_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1303_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1303_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1303</Name>
<Namespace />
<Number>49</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1304_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1304_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1304_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1304_2&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>2</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1304_3" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1304_3&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>10</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1304</Name>
<Namespace />
<Number>50</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1305_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1305_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1305_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1305_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1305</Name>
<Namespace />
<Number>51</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1306_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1306_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1306_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1306_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1306</Name>
<Namespace />
<Number>27</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1307_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1307_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1307_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1307_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1307</Name>
<Namespace />
<Number>43</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1308_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1308_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1308_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1308_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_JamArea1308</Name>
<Namespace />
<Number>48</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1309_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1309_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1309_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1309_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>42</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>42</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1309</Name>
<Namespace />
<Number>35</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<AutoNumber>false</AutoNumber>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stHyperJam" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cHyperJam&quot;] of &quot;stCarrier&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_HyperJam</Name>
<Namespace />
<Number>44</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,208 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1110_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1110_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1110_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1110_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1110_3" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1110_3&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>40</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>40</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1110_4" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1110_4&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>5</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1110_5" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1110_5&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>20</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>20</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1110_6" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1110_6&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>50</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1110</Name>
<Namespace />
<Number>39</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1401_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1401_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>12</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>12</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1401_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1401_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1401</Name>
<Namespace />
<Number>41</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1501_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1501_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>12</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>12</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1501_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1501_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1501</Name>
<Namespace />
<Number>42</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1601_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1601_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>12</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>12</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1601_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1601_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>30</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1601</Name>
<Namespace />
<Number>37</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam1801_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1801_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>4</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>4</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam1801_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam1801_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>70</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>70</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea1801</Name>
<Namespace />
<Number>79</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stJam4701_1" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam4701_1&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>4</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>4</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
<Member Name="stJam4701_2" Datatype="Struct" Remanence="Retain">
<Member Name="arCarrier" Datatype="Array[1..&quot;cJam4701_2&quot;] of &quot;stCarrier&quot;" />
<Member Name="stData" Datatype="&quot;stJamData&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stJamConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacityMax" Datatype="UInt">
<StartValue>70</StartValue>
</Member>
<Member Name="nCapacitySet" Datatype="UInt">
<StartValue>70</StartValue>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_JamArea4701</Name>
<Namespace />
<Number>78</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,559 @@
FUNCTION "FC_Call_Jams" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_TEMP
nIdx : Int;
END_VAR
BEGIN
REGION HyperJam
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikHyperJam"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikHyperJam"],
arInOutJamCarrier := "DB_HyperJam".stHyperJam.arCarrier,
stInOutData := "DB_HyperJam".stHyperJam.stData);
END_REGION
REGION Jam1101
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1101_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1101_1"],
arInOutJamCarrier := "DB_JamArea1101".stJam1101_1.arCarrier,
stInOutData := "DB_JamArea1101".stJam1101_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1101_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1101_2"],
arInOutJamCarrier := "DB_JamArea1101".stJam1101_2.arCarrier,
stInOutData := "DB_JamArea1101".stJam1101_2.stData);
END_REGION
REGION Jam1102
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1102_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1102_1"],
arInOutJamCarrier := "DB_JamArea1102".stJam1102_1.arCarrier,
stInOutData := "DB_JamArea1102".stJam1102_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1102_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1102_2"],
arInOutJamCarrier := "DB_JamArea1102".stJam1102_2.arCarrier,
stInOutData := "DB_JamArea1102".stJam1102_2.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1102_3"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1102_3"],
arInOutJamCarrier := "DB_JamArea1102".stJam1102_3.arCarrier,
stInOutData := "DB_JamArea1102".stJam1102_3.stData);
END_REGION
REGION Jam1103
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1103_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1103_1"],
arInOutJamCarrier := "DB_JamArea1103".stJam1103_1.arCarrier,
stInOutData := "DB_JamArea1103".stJam1103_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1103_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1103_2"],
arInOutJamCarrier := "DB_JamArea1103".stJam1103_2.arCarrier,
stInOutData := "DB_JamArea1103".stJam1103_2.stData);
END_REGION
REGION Jam1104
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1104_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1104_1"],
arInOutJamCarrier := "DB_JamArea1104".stJam1104_1.arCarrier,
stInOutData := "DB_JamArea1104".stJam1104_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1104_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1104_2"],
arInOutJamCarrier := "DB_JamArea1104".stJam1104_2.arCarrier,
stInOutData := "DB_JamArea1104".stJam1104_2.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1104_3"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1104_3"],
arInOutJamCarrier := "DB_JamArea1104".stJam1104_3.arCarrier,
stInOutData := "DB_JamArea1104".stJam1104_3.stData);
END_REGION
REGION Jam1105
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1105_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1105_1"],
arInOutJamCarrier := "DB_JamArea1105".stJam1105_1.arCarrier,
stInOutData := "DB_JamArea1105".stJam1105_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1105_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1105_2"],
arInOutJamCarrier := "DB_JamArea1105".stJam1105_2.arCarrier,
stInOutData := "DB_JamArea1105".stJam1105_2.stData);
END_REGION
REGION Jam1106
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1106_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1106_1"],
arInOutJamCarrier := "DB_JamArea1106".stJam1106_1.arCarrier,
stInOutData := "DB_JamArea1106".stJam1106_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1106_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1106_2"],
arInOutJamCarrier := "DB_JamArea1106".stJam1106_2.arCarrier,
stInOutData := "DB_JamArea1106".stJam1106_2.stData);
END_REGION
REGION Jam1107
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1107_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1107_1"],
arInOutJamCarrier := "DB_JamArea1107".stJam1107_1.arCarrier,
stInOutData := "DB_JamArea1107".stJam1107_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1107_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1107_2"],
arInOutJamCarrier := "DB_JamArea1107".stJam1107_2.arCarrier,
stInOutData := "DB_JamArea1107".stJam1107_2.stData);
END_REGION
REGION Jam1108
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1108_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1108_1"],
arInOutJamCarrier := "DB_JamArea1108".stJam1108_1.arCarrier,
stInOutData := "DB_JamArea1108".stJam1108_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1108_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1108_2"],
arInOutJamCarrier := "DB_JamArea1108".stJam1108_2.arCarrier,
stInOutData := "DB_JamArea1108".stJam1108_2.stData);
END_REGION
REGION Jam1109
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1109_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1109_1"],
arInOutJamCarrier := "DB_JamArea1109".stJam1109_1.arCarrier,
stInOutData := "DB_JamArea1109".stJam1109_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1109_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1109_2"],
arInOutJamCarrier := "DB_JamArea1109".stJam1109_2.arCarrier,
stInOutData := "DB_JamArea1109".stJam1109_2.stData);
END_REGION
REGION Jam1110
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1110_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1110_1"],
arInOutJamCarrier := "DB_JamArea1110".stJam1110_1.arCarrier,
stInOutData := "DB_JamArea1110".stJam1110_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1110_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1110_2"],
arInOutJamCarrier := "DB_JamArea1110".stJam1110_2.arCarrier,
stInOutData := "DB_JamArea1110".stJam1110_2.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1110_3"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1110_3"],
arInOutJamCarrier := "DB_JamArea1110".stJam1110_3.arCarrier,
stInOutData := "DB_JamArea1110".stJam1110_3.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1110_4"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1110_4"],
arInOutJamCarrier := "DB_JamArea1110".stJam1110_4.arCarrier,
stInOutData := "DB_JamArea1110".stJam1110_4.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1110_5"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1110_5"],
arInOutJamCarrier := "DB_JamArea1110".stJam1110_5.arCarrier,
stInOutData := "DB_JamArea1110".stJam1110_5.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1110_6"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1110_6"],
arInOutJamCarrier := "DB_JamArea1110".stJam1110_6.arCarrier,
stInOutData := "DB_JamArea1110".stJam1110_6.stData);
END_REGION
REGION Jam1201
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1201_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1201_1"],
arInOutJamCarrier := "DB_JamArea1201".stJam1201_1.arCarrier,
stInOutData := "DB_JamArea1201".stJam1201_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1201_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1201_2"],
arInOutJamCarrier := "DB_JamArea1201".stJam1201_2.arCarrier,
stInOutData := "DB_JamArea1201".stJam1201_2.stData);
END_REGION
REGION Jam1202
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1202_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1202_1"],
arInOutJamCarrier := "DB_JamArea1202".stJam1202_1.arCarrier,
stInOutData := "DB_JamArea1202".stJam1202_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1202_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1202_2"],
arInOutJamCarrier := "DB_JamArea1202".stJam1202_2.arCarrier,
stInOutData := "DB_JamArea1202".stJam1202_2.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1202_3"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1202_3"],
arInOutJamCarrier := "DB_JamArea1202".stJam1202_3.arCarrier,
stInOutData := "DB_JamArea1202".stJam1202_3.stData);
END_REGION
REGION Jam1203
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1203_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1203_1"],
arInOutJamCarrier := "DB_JamArea1203".stJam1203_1.arCarrier,
stInOutData := "DB_JamArea1203".stJam1203_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1203_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1203_2"],
arInOutJamCarrier := "DB_JamArea1203".stJam1203_2.arCarrier,
stInOutData := "DB_JamArea1203".stJam1203_2.stData);
END_REGION
REGION Jam1204
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1204_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1204_1"],
arInOutJamCarrier := "DB_JamArea1204".stJam1204_1.arCarrier,
stInOutData := "DB_JamArea1204".stJam1204_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1204_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1204_2"],
arInOutJamCarrier := "DB_JamArea1204".stJam1204_2.arCarrier,
stInOutData := "DB_JamArea1204".stJam1204_2.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1204_3"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1204_3"],
arInOutJamCarrier := "DB_JamArea1204".stJam1204_3.arCarrier,
stInOutData := "DB_JamArea1204".stJam1204_3.stData);
END_REGION
REGION Jam1205
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1205_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1205_1"],
arInOutJamCarrier := "DB_JamArea1205".stJam1205_1.arCarrier,
stInOutData := "DB_JamArea1205".stJam1205_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1205_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1205_2"],
arInOutJamCarrier := "DB_JamArea1205".stJam1205_2.arCarrier,
stInOutData := "DB_JamArea1205".stJam1205_2.stData);
END_REGION
REGION Jam1206
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1206_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1206_1"],
arInOutJamCarrier := "DB_JamArea1206".stJam1206_1.arCarrier,
stInOutData := "DB_JamArea1206".stJam1206_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1206_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1206_2"],
arInOutJamCarrier := "DB_JamArea1206".stJam1206_2.arCarrier,
stInOutData := "DB_JamArea1206".stJam1206_2.stData);
END_REGION
REGION Jam1207
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1207_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1207_1"],
arInOutJamCarrier := "DB_JamArea1207".stJam1207_1.arCarrier,
stInOutData := "DB_JamArea1207".stJam1207_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1207_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1207_2"],
arInOutJamCarrier := "DB_JamArea1207".stJam1207_2.arCarrier,
stInOutData := "DB_JamArea1207".stJam1207_2.stData);
END_REGION
REGION Jam1208
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1208_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1208_1"],
arInOutJamCarrier := "DB_JamArea1208".stJam1208_1.arCarrier,
stInOutData := "DB_JamArea1208".stJam1208_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1208_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1208_2"],
arInOutJamCarrier := "DB_JamArea1208".stJam1208_2.arCarrier,
stInOutData := "DB_JamArea1208".stJam1208_2.stData);
END_REGION
REGION Jam1209
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1209_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1209_1"],
arInOutJamCarrier := "DB_JamArea1209".stJam1209_1.arCarrier,
stInOutData := "DB_JamArea1209".stJam1209_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1209_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1209_2"],
arInOutJamCarrier := "DB_JamArea1209".stJam1209_2.arCarrier,
stInOutData := "DB_JamArea1209".stJam1209_2.stData);
END_REGION
REGION Jam1301
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1301_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1301_1"],
arInOutJamCarrier := "DB_JamArea1301".stJam1301_1.arCarrier,
stInOutData := "DB_JamArea1301".stJam1301_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1301_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1301_2"],
arInOutJamCarrier := "DB_JamArea1301".stJam1301_2.arCarrier,
stInOutData := "DB_JamArea1301".stJam1301_2.stData);
END_REGION
REGION Jam1302
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1302_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1302_1"],
arInOutJamCarrier := "DB_JamArea1302".stJam1302_1.arCarrier,
stInOutData := "DB_JamArea1302".stJam1302_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1302_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1302_2"],
arInOutJamCarrier := "DB_JamArea1302".stJam1302_2.arCarrier,
stInOutData := "DB_JamArea1302".stJam1302_2.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1302_3"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1302_3"],
arInOutJamCarrier := "DB_JamArea1302".stJam1302_3.arCarrier,
stInOutData := "DB_JamArea1302".stJam1302_3.stData);
END_REGION
REGION Jam1303
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1303_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1303_1"],
arInOutJamCarrier := "DB_JamArea1303".stJam1303_1.arCarrier,
stInOutData := "DB_JamArea1303".stJam1303_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1303_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1303_2"],
arInOutJamCarrier := "DB_JamArea1303".stJam1303_2.arCarrier,
stInOutData := "DB_JamArea1303".stJam1303_2.stData);
END_REGION
REGION Jam1304
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1304_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1304_1"],
arInOutJamCarrier := "DB_JamArea1304".stJam1304_1.arCarrier,
stInOutData := "DB_JamArea1304".stJam1304_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1304_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1304_2"],
arInOutJamCarrier := "DB_JamArea1304".stJam1304_2.arCarrier,
stInOutData := "DB_JamArea1304".stJam1304_2.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1304_3"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1304_3"],
arInOutJamCarrier := "DB_JamArea1304".stJam1304_3.arCarrier,
stInOutData := "DB_JamArea1304".stJam1304_3.stData);
END_REGION
REGION Jam1305
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1305_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1305_1"],
arInOutJamCarrier := "DB_JamArea1305".stJam1305_1.arCarrier,
stInOutData := "DB_JamArea1305".stJam1305_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1305_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1305_2"],
arInOutJamCarrier := "DB_JamArea1305".stJam1305_2.arCarrier,
stInOutData := "DB_JamArea1305".stJam1305_2.stData);
END_REGION
REGION Jam1306
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1306_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1306_1"],
arInOutJamCarrier := "DB_JamArea1306".stJam1306_1.arCarrier,
stInOutData := "DB_JamArea1306".stJam1306_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1306_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1306_2"],
arInOutJamCarrier := "DB_JamArea1306".stJam1306_2.arCarrier,
stInOutData := "DB_JamArea1306".stJam1306_2.stData);
END_REGION
REGION Jam1307
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1307_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1307_1"],
arInOutJamCarrier := "DB_JamArea1307".stJam1307_1.arCarrier,
stInOutData := "DB_JamArea1307".stJam1307_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1307_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1307_2"],
arInOutJamCarrier := "DB_JamArea1307".stJam1307_2.arCarrier,
stInOutData := "DB_JamArea1307".stJam1307_2.stData);
END_REGION
REGION Jam1308
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1308_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1308_1"],
arInOutJamCarrier := "DB_JamArea1308".stJam1308_1.arCarrier,
stInOutData := "DB_JamArea1308".stJam1308_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1308_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1308_2"],
arInOutJamCarrier := "DB_JamArea1308".stJam1308_2.arCarrier,
stInOutData := "DB_JamArea1308".stJam1308_2.stData);
END_REGION
REGION Jam1309
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1309_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1309_1"],
arInOutJamCarrier := "DB_JamArea1309".stJam1309_1.arCarrier,
stInOutData := "DB_JamArea1309".stJam1309_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1309_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1309_2"],
arInOutJamCarrier := "DB_JamArea1309".stJam1309_2.arCarrier,
stInOutData := "DB_JamArea1309".stJam1309_2.stData);
END_REGION
REGION Jam1401
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1401_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1401_1"],
arInOutJamCarrier := "DB_JamArea1401".stJam1401_1.arCarrier,
stInOutData := "DB_JamArea1401".stJam1401_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1401_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1401_2"],
arInOutJamCarrier := "DB_JamArea1401".stJam1401_2.arCarrier,
stInOutData := "DB_JamArea1401".stJam1401_2.stData);
END_REGION
REGION Jam1501
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1501_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1501_1"],
arInOutJamCarrier := "DB_JamArea1501".stJam1501_1.arCarrier,
stInOutData := "DB_JamArea1501".stJam1501_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1501_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1501_2"],
arInOutJamCarrier := "DB_JamArea1501".stJam1501_2.arCarrier,
stInOutData := "DB_JamArea1501".stJam1501_2.stData);
END_REGION
REGION Jam1601
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1601_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1601_1"],
arInOutJamCarrier := "DB_JamArea1601".stJam1601_1.arCarrier,
stInOutData := "DB_JamArea1601".stJam1601_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1601_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1601_2"],
arInOutJamCarrier := "DB_JamArea1601".stJam1601_2.arCarrier,
stInOutData := "DB_JamArea1601".stJam1601_2.stData);
END_REGION
REGION Jam1801
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1801_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1801_1"],
arInOutJamCarrier := "DB_JamArea1801".stJam1801_1.arCarrier,
stInOutData := "DB_JamArea1801".stJam1801_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam1801_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam1801_2"],
arInOutJamCarrier := "DB_JamArea1801".stJam1801_2.arCarrier,
stInOutData := "DB_JamArea1801".stJam1801_2.stData);
END_REGION
REGION Jam4701
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4701_1"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4701_1"],
arInOutJamCarrier := "DB_JamArea4701".stJam4701_1.arCarrier,
stInOutData := "DB_JamArea4701".stJam4701_1.stData);
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4701_2"],
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4701_2"],
arInOutJamCarrier := "DB_JamArea4701".stJam4701_2.arCarrier,
stInOutData := "DB_JamArea4701".stJam4701_2.stData);
END_REGION
REGION Auswertung
REGION Storageblöcke Reservierungen tracken
"DB_Statistics".stStorageBlockData.Block111.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block112.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block113.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block114.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block121.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block122.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block123.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block124.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block131.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block132.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block133.nCountReserved := 0;
"DB_Statistics".stStorageBlockData.Block134.nCountReserved := 0;
FOR #nIdx := 0 TO "cNoStatistikJam" DO
"DB_Statistics".stStorageBlockData.Block111.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest111;
"DB_Statistics".stStorageBlockData.Block112.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest112;
"DB_Statistics".stStorageBlockData.Block113.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest113;
"DB_Statistics".stStorageBlockData.Block114.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest114;
"DB_Statistics".stStorageBlockData.Block121.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest121;
"DB_Statistics".stStorageBlockData.Block122.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest122;
"DB_Statistics".stStorageBlockData.Block123.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest123;
"DB_Statistics".stStorageBlockData.Block124.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest124;
"DB_Statistics".stStorageBlockData.Block131.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest131;
"DB_Statistics".stStorageBlockData.Block132.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest132;
"DB_Statistics".stStorageBlockData.Block133.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest133;
"DB_Statistics".stStorageBlockData.Block134.nCountReserved += "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDest134;
END_FOR;
END_REGION ;
END_REGION
REGION Übergabe
REGION Real
"DB_Storage1.1.1".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount111;
"DB_Storage1.1.2".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount112;
"DB_Storage1.1.3".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount113;
"DB_Storage1.1.4".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount114;
"DB_Storage1.2.1".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount121;
"DB_Storage1.2.2".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount122;
"DB_Storage1.2.3".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount123;
"DB_Storage1.2.4".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount124;
"DB_Storage1.3.1".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount131;
"DB_Storage1.3.2".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount132;
"DB_Storage1.3.3".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount133;
"DB_Storage1.3.4".stStorageBlockData.nCountReal := "DB_Statistics".nStorageCount134;
END_REGION
REGION Reserved
"DB_Storage1.1.1".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block111.nCountReserved;
"DB_Storage1.1.2".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block112.nCountReserved;
"DB_Storage1.1.3".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block113.nCountReserved;
"DB_Storage1.1.4".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block114.nCountReserved;
"DB_Storage1.2.1".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block121.nCountReserved;
"DB_Storage1.2.2".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block122.nCountReserved;
"DB_Storage1.2.3".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block123.nCountReserved;
"DB_Storage1.2.4".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block124.nCountReserved;
"DB_Storage1.3.1".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block131.nCountReserved;
"DB_Storage1.3.2".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block132.nCountReserved;
"DB_Storage1.3.3".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block133.nCountReserved;
"DB_Storage1.3.4".stStorageBlockData.nCountReserved := "DB_Statistics".stStorageBlockData.Block134.nCountReserved;
END_REGION
REGION Total
"DB_Storage1.1.1".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block111.nCountTotal := "DB_Statistics".nStorageCount111 + "DB_Statistics".stStorageBlockData.Block111.nCountReserved;
"DB_Storage1.1.2".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block112.nCountTotal := "DB_Statistics".nStorageCount112 + "DB_Statistics".stStorageBlockData.Block112.nCountReserved;
"DB_Storage1.1.3".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block113.nCountTotal := "DB_Statistics".nStorageCount113 + "DB_Statistics".stStorageBlockData.Block113.nCountReserved;
"DB_Storage1.1.4".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block114.nCountTotal := "DB_Statistics".nStorageCount114 + "DB_Statistics".stStorageBlockData.Block114.nCountReserved;
"DB_Storage1.2.1".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block121.nCountTotal := "DB_Statistics".nStorageCount121 + "DB_Statistics".stStorageBlockData.Block121.nCountReserved;
"DB_Storage1.2.2".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block122.nCountTotal := "DB_Statistics".nStorageCount122 + "DB_Statistics".stStorageBlockData.Block122.nCountReserved;
"DB_Storage1.2.3".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block123.nCountTotal := "DB_Statistics".nStorageCount123 + "DB_Statistics".stStorageBlockData.Block123.nCountReserved;
"DB_Storage1.2.4".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block124.nCountTotal := "DB_Statistics".nStorageCount124 + "DB_Statistics".stStorageBlockData.Block124.nCountReserved;
"DB_Storage1.3.1".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block131.nCountTotal := "DB_Statistics".nStorageCount131 + "DB_Statistics".stStorageBlockData.Block131.nCountReserved;
"DB_Storage1.3.2".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block132.nCountTotal := "DB_Statistics".nStorageCount132 + "DB_Statistics".stStorageBlockData.Block132.nCountReserved;
"DB_Storage1.3.3".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block133.nCountTotal := "DB_Statistics".nStorageCount133 + "DB_Statistics".stStorageBlockData.Block133.nCountReserved;
"DB_Storage1.3.4".stStorageBlockData.nCountTotal := "DB_Statistics".stStorageBlockData.Block134.nCountTotal := "DB_Statistics".nStorageCount134 + "DB_Statistics".stStorageBlockData.Block134.nCountReserved;
END_REGION
END_REGION
REGION HMI-todo
//TODO
;
END_REGION
END_FUNCTION
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="20">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="21">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.1.1</Name>
<Namespace />
<Number>2</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.1.2</Name>
<Namespace />
<Number>10</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="20">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="21">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.1.3</Name>
<Namespace />
<Number>9</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.1.4</Name>
<Namespace />
<Number>8</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="20">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="21">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.2.1</Name>
<Namespace />
<Number>7</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="20">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="21">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.2.2</Name>
<Namespace />
<Number>6</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="20">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="21">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.2.3</Name>
<Namespace />
<Number>5</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.2.4</Name>
<Namespace />
<Number>4</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="20">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="21">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.3.1</Name>
<Namespace />
<Number>3</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.3.2</Name>
<Namespace />
<Number>13</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="20">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="21">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.3.3</Name>
<Namespace />
<Number>11</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="stStorageBlockData" Datatype="&quot;UDT_StorageBlockData&quot;" Remanence="Retain">
<Comment>
<MultiLanguageText Lang="de-DE">Blockdaten</MultiLanguageText>
</Comment>
</Member>
<Member Name="arLine" Datatype="Array[1..&quot;cNoLines&quot;] of &quot;stStorageLine&quot;" Remanence="Retain">
<Sections>
<Section Name="None">
<Member Name="stData" Datatype="&quot;stStorageData&quot;">
<Sections>
<Section Name="None">
<Member Name="Config" Datatype="&quot;stStorageConfig&quot;">
<Sections>
<Section Name="None">
<Member Name="nCapacitySet" Datatype="Int">
<Subelement Path="1">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="2">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="3">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="4">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="5">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="6">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="7">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="8">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="9">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="10">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="11">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="12">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="13">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="14">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="15">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="16">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="17">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="18">
<StartValue>107</StartValue>
</Subelement>
<Subelement Path="19">
<StartValue>107</StartValue>
</Subelement>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>0</MemoryReserve>
<Name>DB_Storage1.3.4</Name>
<Namespace />
<Number>12</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,59 @@
FUNCTION "FC_Call_StorageLines" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
BEGIN
//Call Storage Line Status, Fill Level, Statistics
REGION aktuell
"FC_StorageLines"(nInDest := "cDest11100",
nOutStorageLevel => "DB_Statistics".nStorageCount111,
stOutCarrStats => "DB_Statistics".stStorageStatistics111,
arInOutStorage := "DB_Storage1.1.1".arLine);
"FC_StorageLines"(nInDest := "cDest11200",
nOutStorageLevel => "DB_Statistics".nStorageCount112,
stOutCarrStats => "DB_Statistics".stStorageStatistics112,
arInOutStorage := "DB_Storage1.1.2".arLine);
"FC_StorageLines"(nInDest := "cDest11300",
nOutStorageLevel => "DB_Statistics".nStorageCount113,
stOutCarrStats => "DB_Statistics".stStorageStatistics113,
arInOutStorage := "DB_Storage1.1.3".arLine);
"FC_StorageLines"(nInDest := "cDest11400",
nOutStorageLevel => "DB_Statistics".nStorageCount114,
stOutCarrStats => "DB_Statistics".stStorageStatistics114,
arInOutStorage := "DB_Storage1.1.4".arLine);
"FC_StorageLines"(nInDest := "cDest12100",
nOutStorageLevel => "DB_Statistics".nStorageCount121,
stOutCarrStats => "DB_Statistics".stStorageStatistics121,
arInOutStorage := "DB_Storage1.2.1".arLine);
"FC_StorageLines"(nInDest := "cDest12200",
nOutStorageLevel => "DB_Statistics".nStorageCount122,
stOutCarrStats => "DB_Statistics".stStorageStatistics122,
arInOutStorage := "DB_Storage1.2.2".arLine);
"FC_StorageLines"(nInDest := "cDest12300",
nOutStorageLevel => "DB_Statistics".nStorageCount123,
stOutCarrStats => "DB_Statistics".stStorageStatistics123,
arInOutStorage := "DB_Storage1.2.3".arLine);
"FC_StorageLines"(nInDest := "cDest12400",
nOutStorageLevel => "DB_Statistics".nStorageCount124,
stOutCarrStats => "DB_Statistics".stStorageStatistics124,
arInOutStorage := "DB_Storage1.2.4".arLine);
"FC_StorageLines"(nInDest := "cDest13100",
nOutStorageLevel => "DB_Statistics".nStorageCount131,
stOutCarrStats => "DB_Statistics".stStorageStatistics131,
arInOutStorage := "DB_Storage1.3.1".arLine);
"FC_StorageLines"(nInDest := "cDest13200",
nOutStorageLevel => "DB_Statistics".nStorageCount132,
stOutCarrStats => "DB_Statistics".stStorageStatistics132,
arInOutStorage := "DB_Storage1.3.2".arLine);
"FC_StorageLines"(nInDest := "cDest13300",
nOutStorageLevel => "DB_Statistics".nStorageCount133,
stOutCarrStats => "DB_Statistics".stStorageStatistics133,
arInOutStorage := "DB_Storage1.3.3".arLine);
"FC_StorageLines"(nInDest := "cDest13400",
nOutStorageLevel => "DB_Statistics".nStorageCount134,
stOutCarrStats => "DB_Statistics".stStorageStatistics134,
arInOutStorage := "DB_Storage1.3.4".arLine);
END_REGION
END_FUNCTION
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="BUFFER" Datatype="Array[1..100] of &quot;UDT_TelegramData_Send&quot;">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_Buffer_CommunicationWCSBL</Name>
<Namespace />
<Number>47</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="BUFFER" Datatype="Array[1..100] of &quot;UDT_TelegramData_Send&quot;">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_Buffer_CommunicationWES_ASRS</Name>
<Namespace />
<Number>76</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.GlobalDB ID="0">
<AttributeList>
<AutoNumber>false</AutoNumber>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Static">
<Member Name="nSeqNumWCSBL" Datatype="LInt" Remanence="Retain" />
<Member Name="nSeqNumWESASRS" Datatype="LInt" />
</Section>
</Sections></Interface>
<MemoryLayout>Optimized</MemoryLayout>
<MemoryReserve>100</MemoryReserve>
<Name>DB_CommunicationParameters</Name>
<Namespace />
<Number>90</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.GlobalDB>
</Document>
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<HeaderAuthor>Siemens_Industry_Support</HeaderAuthor>
<HeaderFamily>LGF</HeaderFamily>
<HeaderName>LGF_FIFO</HeaderName>
<InstanceOfName>LGF_FIFO</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input">
<Member Name="enqueue" Datatype="Bool" />
<Member Name="dequeue" Datatype="Bool" />
<Member Name="reset" Datatype="Bool" />
<Member Name="clear" Datatype="Bool" />
<Member Name="initialItem" Datatype="Variant" />
<Member Name="maxElementCount" Datatype="UInt" />
</Section>
<Section Name="Output">
<Member Name="error" Datatype="Bool">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="status" Datatype="Word">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="subFunctionStatus" Datatype="Word">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="elementCount" Datatype="USInt" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="isEmpty" Datatype="Bool" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="isFull" Datatype="Bool" Remanence="Retain" />
<Member Name="oldestElement" Datatype="Int" />
<Member Name="enqueueDone" Datatype="Bool" />
<Member Name="dequeueDone" Datatype="Bool" />
</Section>
<Section Name="InOut">
<Member Name="itemIn" Datatype="Variant" />
<Member Name="buffer" Datatype="Variant" />
<Member Name="itemOut" Datatype="Variant" />
</Section>
<Section Name="Static">
<Member Name="statEdgesMem" Datatype="Struct" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
<Member Name="enqueue" Datatype="Bool" />
<Member Name="dequeue" Datatype="Bool" />
<Member Name="clear" Datatype="Bool" />
</Member>
<Member Name="statFirstItemIndex" Datatype="Int" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="statNextEmptyItemIndex" Datatype="Int" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="statElementCount" Datatype="DInt" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>DB_LGF_FIFO_CommWCSBL</Name>
<Namespace />
<Number>54</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<HeaderAuthor>Siemens_Industry_Support</HeaderAuthor>
<HeaderFamily>LGF</HeaderFamily>
<HeaderName>LGF_FIFO</HeaderName>
<InstanceOfName>LGF_FIFO</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input">
<Member Name="enqueue" Datatype="Bool" />
<Member Name="dequeue" Datatype="Bool" />
<Member Name="reset" Datatype="Bool" />
<Member Name="clear" Datatype="Bool" />
<Member Name="initialItem" Datatype="Variant" />
<Member Name="maxElementCount" Datatype="UInt" />
</Section>
<Section Name="Output">
<Member Name="error" Datatype="Bool">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="status" Datatype="Word">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="subFunctionStatus" Datatype="Word">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="elementCount" Datatype="USInt" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="isEmpty" Datatype="Bool" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="isFull" Datatype="Bool" Remanence="Retain" />
<Member Name="oldestElement" Datatype="Int" />
<Member Name="enqueueDone" Datatype="Bool" />
<Member Name="dequeueDone" Datatype="Bool" />
</Section>
<Section Name="InOut">
<Member Name="itemIn" Datatype="Variant" />
<Member Name="buffer" Datatype="Variant" />
<Member Name="itemOut" Datatype="Variant" />
</Section>
<Section Name="Static">
<Member Name="statEdgesMem" Datatype="Struct" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
<Member Name="enqueue" Datatype="Bool" />
<Member Name="dequeue" Datatype="Bool" />
<Member Name="clear" Datatype="Bool" />
</Member>
<Member Name="statFirstItemIndex" Datatype="Int" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="statNextEmptyItemIndex" Datatype="Int" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="statElementCount" Datatype="DInt" Remanence="Retain">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalVisible" SystemDefined="true">false</BooleanAttribute>
<BooleanAttribute Name="ExternalWritable" SystemDefined="true">false</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>DB_LGF_FIFO_CommWES_ASRS</Name>
<Namespace />
<Number>74</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
@@ -0,0 +1,230 @@
FUNCTION_BLOCK "FB_CommunicationWCSBL"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_IN_OUT
fbInOutSendFIFO : "LGF_FIFO";
arFifoSendBuffer : Array[1..100] of "UDT_TelegramData_Send";
END_VAR
VAR
fbTeleHandler : "FB_TCP_LCOM_TeleHandler";
xReset : Bool;
xSendTele : Bool;
stTelegramToSend : "UDT_TelegramData_Send";
nState : Int;
xRetVal : Bool;
stNewTelegram { S7_SetPoint := 'False'} : "UDT_TelegramData";
stTeleGOHDRespM : "UDT_Telegram_GOHDRespM";
arPayloadHelp : Array[0..200] of Byte;
cnt : UInt;
LStream_JsonDeserializer_Instance : "LStream_JsonDeserializer";
typeElement : Array[0..10] of "LStream_typeElement";
xDone : Bool;
rTrigConnectionActive {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
xSendHeartbeat : Bool;
tOnHeartbeat {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
END_VAR
VAR_TEMP
xStart : Bool;
test : "UDT_TelegramData_Send";
empty : "UDT_TelegramData_Send";
xSuccess : Bool;
stLogTelegram : "UDT_TelegramData_Send";
i : Int;
END_VAR
BEGIN
REGION Info
// Kommunikation zu Fortna WCSBL
// Telegramme:
// Senden:
// GOHDReqM (Zielanfrage) | Von Schönenberger -> Fortna WCSBL
// GOHDUM (Update) | Von Schönenberger -> Fortna WCSBL
// Empfangen:
// GOHDRespM (Antwort auf Zielanfrage) | Von Fortna WCSBL -> Schönenberger
END_REGION
//172.22.160.23:30650
REGION Call TeleHandler
// hardware identifier of the local interface, PLC tags--Default tag table--System constant default value: PROFINET_interface_1 = 64
#fbTeleHandler.stInTcpTypeConfig.connection.interfaceID := "Local~PN-Interface_Customer";
//unique connection identifier (W#16#0001...W#16#0FFF)
#fbTeleHandler.stInTcpTypeConfig.connection.connectionID := 20;
//used protocol: 1=TCP protocol, 2=LCom protocol
#fbTeleHandler.stInTcpTypeConfig.connection.comService := "LCOM_TCP_CONNECTION";
//FALSE: passive (server), TRUE: active connection establishment (client)
#fbTeleHandler.stInTcpTypeConfig.connection.isClient := TRUE;
//TRUE: accept requests from all partners, FALSE: only specified partner is allowed in case of server
#fbTeleHandler.stInTcpTypeConfig.connection.acceptUnknownPartner := TRUE;
//local port number (possible values: 1...49151; caution: some may be reserved for internal use; recommended values: 2000...5000)
#fbTeleHandler.stInTcpTypeConfig.connection.localPort := 30650;
//partner port number, use only in case of client or specified partner (possible values: 1...49151; recommended values: 2000...5000)
#fbTeleHandler.stInTcpTypeConfig.connection.partnerPort := 30650;
//partner IP address xxx.xxx.xxx.xxx = [1].[2].[3].[4], use only in case of client or specified partner
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[1] := 172;
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[2] := 22;
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[3] := 160;
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[4] := 23;
#fbTeleHandler.stInTcpTypeConfig.connection.connectType := "LCOM_CON_TYPE_IPV4";
// Telegramdefinition
#fbTeleHandler.stInTelegramDefinition.sStartMarker := '$02';
#fbTeleHandler.stInTelegramDefinition.sEndMarker := '$03';
#fbTeleHandler.stInTelegramDefinition.sStartMarkerSend := '$02';
#fbTeleHandler.stInTelegramDefinition.sEndMarkerSend := '$03';
#fbTeleHandler.stInTelegramDefinition.bSeparatorByte := '$1D'; //',';
#fbTeleHandler.stInTelegramDefinition.nLength := 0;
#fbTeleHandler.stInTelegramDefinition.nTelegramIDDataField := 0;
#fbTeleHandler.stInTelegramDefinition.xTelegramIDIsNumber := FALSE;
#fbTeleHandler(xInReset := #xReset,
xInOutSendTele := #xSendTele,
stInTelegramSend := #stTelegramToSend,
fbInOutSendFIFO := #fbInOutSendFIFO,
arFifoSendBuffer := #arFifoSendBuffer);
END_REGION
REGION Send Heartbeat
IF #fbTeleHandler.xOutConnectionActive THEN
#xSendHeartbeat := TRUE;
IF #tOnHeartbeat.Q THEN
#xSendHeartbeat := FALSE;
"FC_Send_HB"(sInPLCID := "cPLCID",
nInPartnerType:= 1,
FIFO := "DB_LGF_FIFO_CommWCSBL",
BUFFER := "DB_Buffer_CommunicationWCSBL".BUFFER,
nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWCSBL);
END_IF;
ELSE
#xSendHeartbeat := FALSE;
END_IF;
#tOnHeartbeat(IN := #xSendHeartbeat,
PT := t#15s);
END_REGION
REGION Empfangen
CASE #nState OF
0: // Waiting
// "DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := FALSE;
//New Telegram
IF #fbTeleHandler.xOutTelegramAvailable THEN
#fbTeleHandler.xInGetFirst := TRUE;
#nState := 100;
END_IF;
100: // Get new Telegram
#stNewTelegram := #fbTeleHandler.stOutNewTelegram;
#fbTeleHandler.xInGetFirst := FALSE;
#stLogTelegram.nDataCount := #stNewTelegram.nDataCount;
FOR #i := 1 TO 15 DO
#stLogTelegram.arDataString[#i] := #stNewTelegram.arDataString[#i];
END_FOR;
REGION LOG
IF "FB_CommunicationLogger_DB".fbTeleHandler.xOutConnectionActive THEN
"FC_FIFO_Append"(DataIn := #stLogTelegram,
InitialItem := #empty,
MaxNo := 100,
Success => #xSuccess,
fifoBuffer := "DB_LGF_FIFO_CommLogger",
buffer := "DB_Buffer_CommunicationLogger".BUFFER);
END_IF;
END_REGION
#nState := 200;
200: //Analyze Telegram
#stTeleGOHDRespM.stHeader.sPlcId := #stNewTelegram.arDataString[1];
#stTeleGOHDRespM.stHeader.sSeqNum := #stNewTelegram.arDataString[2];
#stTeleGOHDRespM.stHeader.sMessageType := #stNewTelegram.arDataString[3];
#stTeleGOHDRespM.stPayload.sTimeStamp := #stNewTelegram.arDataString[4];
#nState := 0;
(* IF #stTeleGOHDRespM.stHeader.sMessageType = 'GOHDRespM' THEN
Strg_TO_Chars(Strg := #stNewTelegram.arDataString[4],
pChars := 0,
Cnt => #cnt,
Chars := #arPayloadHelp);
#typeElement[0].type := 2;
#typeElement[0].key := 'DecisionPoint';
#typeElement[1].type := 3;
#typeElement[1].key := 'GIN';
#typeElement[2].type := 2;
#typeElement[2].key := 'Barcode';
#typeElement[3].type := 1;
#typeElement[3].key := 'Actions';
#typeElement[9].type := 1;
#typeElement[9].key := 'TimeStamp';
#xStart := TRUE;
IF #xDone THEN
#xStart := FALSE;
#stTeleGOHDRespM.stPayload.sDecisionPoint := #typeElement[0].value;
STRG_VAL(IN := #typeElement[1].value,
FORMAT := 0,
P := 1,
OUT => #stTeleGOHDRespM.stPayload.nGin);
STRG_VAL(IN := #typeElement[2].value,
FORMAT := 0,
P := 1,
OUT => #stTeleGOHDRespM.stPayload.nBarcode);
#stTeleGOHDRespM.stPayload.arActions[0] := #typeElement[4].value;
#stTeleGOHDRespM.stPayload.arActions[1] := #typeElement[5].value;
#stTeleGOHDRespM.stPayload.arActions[2] := #typeElement[6].value;
#stTeleGOHDRespM.stPayload.arActions[3] := #typeElement[7].value;
#stTeleGOHDRespM.stPayload.arActions[4] := #typeElement[8].value;
IF #stTeleGOHDRespM.stPayload.sDecisionPoint = 'GOH.REC.01' THEN
#nState := 300;
END_IF;
#xDone := FALSE;
#stTeleGOHDRespM.stPayload.sTimeStamp := #typeElement[9].value;
END_IF;
ELSE
#nState := 0;
END_IF; *)
300: //Transfer Telegram to StorageManagement
;
#nState := 0;
(* IF NOT "DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Status.xReadingNewData AND
NOT "DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Status.xNewDataSaved
THEN
"DB_HandshakeStorage".str_StorageManagement.str_TelegramMES.udtIn_DataMES := #stTeleGOHDRespM;
"DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible := TRUE;
END_IF;
IF "DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Ctrl.xNewDataAvaible AND
"DB_HandshakeStorage".str_StorageManagement.udt_HandshakeMESStorage.str_Status.xNewDataSaved
THEN
#nState := 0;
END_IF; *)
END_CASE;
END_REGION
#LStream_JsonDeserializer_Instance(execute := #xStart,
tree := #typeElement,
raw := #arPayloadHelp);
IF #LStream_JsonDeserializer_Instance.done THEN
#xDone := TRUE;
END_IF;
END_FUNCTION_BLOCK
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<InstanceOfName>FB_CommunicationWCSBL</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input" />
<Section Name="Output" />
<Section Name="InOut">
<Member Name="fbInOutSendFIFO" Datatype="&quot;LGF_FIFO&quot;" />
<Member Name="arFifoSendBuffer" Datatype="Array[1..100] of &quot;UDT_TelegramData_Send&quot;" />
</Section>
<Section Name="Static">
<Member Name="fbTeleHandler" Datatype="&quot;FB_TCP_LCOM_TeleHandler&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xReset" Datatype="Bool" />
<Member Name="xSendTele" Datatype="Bool" />
<Member Name="stTelegramToSend" Datatype="&quot;UDT_TelegramData_Send&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="nState" Datatype="Int" />
<Member Name="xRetVal" Datatype="Bool" />
<Member Name="stNewTelegram" Datatype="&quot;UDT_TelegramData&quot;" />
<Member Name="stTeleGOHDRespM" Datatype="&quot;UDT_Telegram_GOHDRespM&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="arPayloadHelp" Datatype="Array[0..200] of Byte" />
<Member Name="cnt" Datatype="UInt" />
<Member Name="LStream_JsonDeserializer_Instance" Datatype="&quot;LStream_JsonDeserializer&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="typeElement" Datatype="Array[0..10] of &quot;LStream_typeElement&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xDone" Datatype="Bool" />
<Member Name="rTrigConnectionActive" Datatype="R_TRIG" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xSendHeartbeat" Datatype="Bool" />
<Member Name="tOnHeartbeat" Datatype="TON_TIME" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>FB_CommunicationWCSBL_DB</Name>
<Namespace />
<Number>55</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
@@ -0,0 +1,157 @@
FUNCTION_BLOCK "FB_CommunicationWES_ASRS"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_IN_OUT
fbInOutSendFIFO : "LGF_FIFO";
arFifoSendBuffer : Array[1..100] of "UDT_TelegramData_Send";
END_VAR
VAR
fbTeleHandler : "FB_TCP_LCOM_TeleHandler";
xReset : Bool;
xSendTele : Bool;
stTelegramToSend : "UDT_TelegramData_Send";
nState : Int;
xRetVal : Bool;
stNewTelegram { S7_SetPoint := 'False'} : "UDT_TelegramData";
stTeleGOHDRespM : "UDT_Telegram_GOHDRespM";
stTeleCReqM : "UDT_Telegram_CReqM";
stTeleCRCanM : "UDT_Telegram_CRCanM";
rTrigConnectionActive {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
xSendHeartbeat : Bool;
tOnHeartbeat {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
END_VAR
BEGIN
REGION Info
// Kommunikation zu Fortna WES/ASRS Driver
// Telegramme:
// Senden:
// CRRespM (Abruf Bestätigung/Update) | Von Schönenberger -> Fortna WES/ASRS Driver
// CSRespM (Einlagern Bestätigung) | Von Schönenberger -> Fortna WES/ASRS Driver
// Empfangen:
// CReqM (Abruf) | Fortna WES/ASRS Driver -> Schönenberger
// CRCanM (Abruf Cancel) | Fortna WES/ASRS Driver -> Schönenberger
END_REGION
REGION Call TeleHandler
// hardware identifier of the local interface, PLC tags--Default tag table--System constant default value: PROFINET_interface_1 = 64
#fbTeleHandler.stInTcpTypeConfig.connection.interfaceID := "Local~PN-Interface_Customer";
//unique connection identifier (W#16#0001...W#16#0FFF)
#fbTeleHandler.stInTcpTypeConfig.connection.connectionID := 21;
//used protocol: 1=TCP protocol, 2=LCom protocol
#fbTeleHandler.stInTcpTypeConfig.connection.comService := "LCOM_TCP_CONNECTION";
//FALSE: passive (server), TRUE: active connection establishment (client)
#fbTeleHandler.stInTcpTypeConfig.connection.isClient := TRUE;
//TRUE: accept requests from all partners, FALSE: only specified partner is allowed in case of server
#fbTeleHandler.stInTcpTypeConfig.connection.acceptUnknownPartner := TRUE;
//local port number (possible values: 1...49151; caution: some may be reserved for internal use; recommended values: 2000...5000)
#fbTeleHandler.stInTcpTypeConfig.connection.localPort := 30635;
//partner port number, use only in case of client or specified partner (possible values: 1...49151; recommended values: 2000...5000)
#fbTeleHandler.stInTcpTypeConfig.connection.partnerPort := 30635;
//partner IP address xxx.xxx.xxx.xxx = [1].[2].[3].[4], use only in case of client or specified partner
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[1] := 172;
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[2] := 22;
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[3] := 160;
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[4] := 21;
#fbTeleHandler.stInTcpTypeConfig.connection.connectType := "LCOM_CON_TYPE_IPV4";
// Telegramdefinition
#fbTeleHandler.stInTelegramDefinition.sStartMarker := '$02';
#fbTeleHandler.stInTelegramDefinition.sEndMarker := '$03';
#fbTeleHandler.stInTelegramDefinition.sStartMarkerSend := '$02';
#fbTeleHandler.stInTelegramDefinition.sEndMarkerSend := '$03';
#fbTeleHandler.stInTelegramDefinition.bSeparatorByte := '$1D'; //',';
#fbTeleHandler.stInTelegramDefinition.nLength := 0;
#fbTeleHandler.stInTelegramDefinition.nTelegramIDDataField := 0;
#fbTeleHandler.stInTelegramDefinition.xTelegramIDIsNumber := FALSE;
#fbTeleHandler(xInReset := #xReset,
xInOutSendTele := #xSendTele,
stInTelegramSend := #stTelegramToSend,
fbInOutSendFIFO := #fbInOutSendFIFO,
arFifoSendBuffer := #arFifoSendBuffer);
END_REGION
REGION Reset SequenceNumber
#rTrigConnectionActive(CLK := #fbTeleHandler.xOutConnectionActive);
IF #rTrigConnectionActive.Q THEN
"DB_CommunicationParameters".nSeqNumWESASRS := 0;
END_IF;
END_REGION
REGION Send Heartbeat
IF #fbTeleHandler.xOutConnectionActive THEN
#xSendHeartbeat := TRUE;
IF #tOnHeartbeat.Q THEN
#xSendHeartbeat := FALSE;
"FC_Send_HB"(sInPLCID := 'GOHPLC02',
nInPartnerType:= 3,
FIFO := "DB_LGF_FIFO_CommWES_ASRS",
BUFFER := "DB_Buffer_CommunicationWES_ASRS".BUFFER,
nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWESASRS);
END_IF;
ELSE
#xSendHeartbeat := FALSE;
END_IF;
#tOnHeartbeat(IN := #xSendHeartbeat,
PT := t#15s);
END_REGION
REGION Empfangen
CASE #nState OF
0: // Waiting
//New Telegram
IF #fbTeleHandler.xOutTelegramAvailable THEN
#fbTeleHandler.xInGetFirst := TRUE;
#nState := 100;
END_IF;
100: // Get new Telegram
#stNewTelegram := #fbTeleHandler.stOutNewTelegram;
#fbTeleHandler.xInGetFirst := FALSE;
#nState := 200;
200: //Analyze Telegram
IF #stNewTelegram.arDataString[3] = 'GOHDRespM' THEN
#stTeleGOHDRespM.stPayload.sDecisionPoint := #stNewTelegram.arDataString[3];
// Parse field [4] into
(* REGION Send ACK
"FC_TeleClear"(#stTelegramToSend);
#xRetVal := "FC_TeleSetData"(nDataField := 1,
sData := '4711',
stInOutTelegram := #stTelegramToSend);
#xRetVal := "FC_TeleSetData"(nDataField := 2,
sData := #stNewTelegram.arDataString[2],
stInOutTelegram := #stTelegramToSend);
#xRetVal := "FC_TeleSetData"(nDataField := 3,
sData := 'ACK',
stInOutTelegram := #stTelegramToSend);
#xRetVal := "FC_TeleSetData"(nDataField := 4,
sData := '123',
stInOutTelegram := #stTelegramToSend);
#xSendTele := TRUE;
END_REGION *)
END_IF;
#nState := 0;
END_CASE;
END_REGION
END_FUNCTION_BLOCK
@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<Document>
<Engineering version="V20" />
<SW.Blocks.InstanceDB ID="0">
<AttributeList>
<InstanceOfName>FB_CommunicationWES_ASRS</InstanceOfName>
<InstanceOfType>FB</InstanceOfType>
<Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
<Section Name="Input" />
<Section Name="Output" />
<Section Name="InOut">
<Member Name="fbInOutSendFIFO" Datatype="&quot;LGF_FIFO&quot;" />
<Member Name="arFifoSendBuffer" Datatype="Array[1..100] of &quot;UDT_TelegramData_Send&quot;" />
</Section>
<Section Name="Static">
<Member Name="fbTeleHandler" Datatype="&quot;FB_TCP_LCOM_TeleHandler&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xReset" Datatype="Bool" />
<Member Name="xSendTele" Datatype="Bool" />
<Member Name="stTelegramToSend" Datatype="&quot;UDT_TelegramData_Send&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="nState" Datatype="Int" />
<Member Name="xRetVal" Datatype="Bool" />
<Member Name="stNewTelegram" Datatype="&quot;UDT_TelegramData&quot;" />
<Member Name="stTeleGOHDRespM" Datatype="&quot;UDT_Telegram_GOHDRespM&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stTeleCReqM" Datatype="&quot;UDT_Telegram_CReqM&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="stTeleCRCanM" Datatype="&quot;UDT_Telegram_CRCanM&quot;">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="rTrigConnectionActive" Datatype="R_TRIG" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
<Member Name="xSendHeartbeat" Datatype="Bool" />
<Member Name="tOnHeartbeat" Datatype="TON_TIME" Version="1.0">
<AttributeList>
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
</Member>
</Section>
</Sections></Interface>
<Name>FB_CommunicationWES_ASRS_DB</Name>
<Namespace />
<Number>108</Number>
<ProgrammingLanguage>DB</ProgrammingLanguage>
</AttributeList>
<ObjectList>
<MultilingualText ID="1" CompositionName="Comment">
<ObjectList>
<MultilingualTextItem ID="2" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="3" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="4" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
<MultilingualText ID="5" CompositionName="Title">
<ObjectList>
<MultilingualTextItem ID="6" CompositionName="Items">
<AttributeList>
<Culture>cs-CZ</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="7" CompositionName="Items">
<AttributeList>
<Culture>de-DE</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
<MultilingualTextItem ID="8" CompositionName="Items">
<AttributeList>
<Culture>en-US</Culture>
<Text />
</AttributeList>
</MultilingualTextItem>
</ObjectList>
</MultilingualText>
</ObjectList>
</SW.Blocks.InstanceDB>
</Document>
@@ -0,0 +1,36 @@
FUNCTION_BLOCK "FB_FortnaTele_Placeholder"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR
Static_1 : "UDT_Payload_CRCanM";
Static_2 : "UDT_Payload_CReqM";
Static_3 : "UDT_Payload_CRRespM";
Static_4 : "UDT_Payload_CSRespM";
Static_5 : "UDT_Payload_CTMP";
Static_6 : "UDT_Payload_ECNT";
Static_7 : "UDT_Payload_GOHDReqM";
Static_8 : "UDT_Payload_GOHDRespM";
Static_9 : "UDT_Payload_GOHDUM";
Static_10 : "UDT_Payload_INDX";
Static_11 : "UDT_Payload_UNLDResp";
Static_12 : "UDT_Payload_WSAD";
Static_13 : "UDT_Telegram_CRCanM";
Static_14 : "UDT_Telegram_CReqM";
Static_15 : "UDT_Telegram_CRRespM";
Static_16 : "UDT_Telegram_CSRespM";
Static_17 : "UDT_Telegram_CTMP";
Static_18 : "UDT_Telegram_ECNT";
Static_19 : "UDT_Telegram_GOHDReqM";
Static_20 : "UDT_Telegram_GOHDRespM";
Static_21 : "UDT_Telegram_GOHDUM";
Static_22 : "UDT_Telegram_INDX";
Static_23 : "UDT_Telegram_UNLDResp";
Static_24 : "UDT_Telegram_WSAD";
Static_25 : "UDT_Header";
Static_26 : "UDT_Workstation";
END_VAR
BEGIN
END_FUNCTION_BLOCK
@@ -0,0 +1,2 @@
TypeGuid: 778e978f-0132-4d3e-92e4-bac5ae8c94b4
VersionGuid: fa6b9e1f-06d9-44db-9f19-f50f411a47a7
@@ -0,0 +1,2 @@
TypeGuid: b81df732-2f71-4e71-a6ce-ea9574a97194
VersionGuid: b88680d5-4b26-4a61-9e6b-68f902616279
@@ -0,0 +1,2 @@
TypeGuid: 5dd01bcf-9240-4599-b662-501f9aa0983e
VersionGuid: ac5ee7ba-4136-4a93-ac9c-363a28d7ebae
@@ -0,0 +1,2 @@
TypeGuid: b4ee7c11-1f91-4065-ac19-6e95973c6878
VersionGuid: 76c93bac-8829-4bd8-8eae-21843fddd842

Some files were not shown because too many files have changed in this diff Show More