dritte Steuerung nochmal wiederholt hinzugefügt
This commit is contained in:
@@ -1,75 +0,0 @@
|
||||
<?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>
|
||||
@@ -1,69 +0,0 @@
|
||||
<?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.."cNoMainTros"] 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>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>
|
||||
@@ -1,150 +0,0 @@
|
||||
<?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>
|
||||
</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>
|
||||
</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="TimePLC" Datatype="DTL" Version="1.0" />
|
||||
<Member Name="stSafetyInterface" Datatype="Struct">
|
||||
<Member Name="Input" Datatype="Struct">
|
||||
<Member Name="arLifterApprovalMain" Datatype="Array[1..5] of Bool" />
|
||||
<Member Name="arLifterRollerSwitchError" Datatype="Array[1..5] of Bool" />
|
||||
<Member Name="xRunning" Datatype="Bool" />
|
||||
<Member Name="xStarting" Datatype="Bool" />
|
||||
</Member>
|
||||
<Member Name="Output" Datatype="Struct">
|
||||
<Member Name="arLifterApprovalMain" Datatype="Array[1..5] of Bool" />
|
||||
<Member Name="arLifterRollerSwitchError" Datatype="Array[1..5] of Bool" />
|
||||
<Member Name="xRunning" Datatype="Bool" />
|
||||
<Member Name="xStarting" Datatype="Bool" />
|
||||
</Member>
|
||||
</Member>
|
||||
<Member Name="SMCCard" Datatype="Struct">
|
||||
<Member Name="Size" Datatype="UDInt" />
|
||||
<Member Name="AcutalInUse" Datatype="UDInt" />
|
||||
<Member Name="Livespan" Datatype="UDInt" />
|
||||
</Member>
|
||||
<Member Name="stStateMain" Datatype=""UDT_MainState"">
|
||||
<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=""E_LogLevel.DEBUG"" />
|
||||
</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>
|
||||
@@ -1,160 +0,0 @@
|
||||
<?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="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Gesamtanzahl Carrier</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nLoadedCarrierCount" Datatype="Int">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Gesamtanzahl beladene Carrier</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nEmptyCarrierCount" Datatype="Int">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Gesamtanzahl Leercarrier</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nDummyCount" Datatype="Int">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Gesamtanzahl Dummy</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nRecircCount" Datatype="Int" />
|
||||
<Member Name="arJamStatisticsStandard" Datatype="Array[0.."cNoStatistikJam"] of "CarrierStatisticsStandard"">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Standard Jam Statistiken </MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="arJamStatisticsAdvanced" Datatype="Array[0.."cNoStatistikJam"] of "CarrierStatisticsAMR"">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Fortgeschrittene/Spezielle Jam Statistiken</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="stWorkstations" Datatype="Struct">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Arbeitsplätze</MultiLanguageText>
|
||||
</Comment>
|
||||
<Member Name="MPS1" Datatype="Struct">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Workstation 1.1</MultiLanguageText>
|
||||
</Comment>
|
||||
<Member Name="nRealCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Tatsächliche Anzahl Carrier</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nReservedCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Reserviert für Station (unterwegs)</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nTotalCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Real+Reserved</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
</Member>
|
||||
<Member Name="MPS2" Datatype="Struct">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Workstation 1.0</MultiLanguageText>
|
||||
</Comment>
|
||||
<Member Name="nRealCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Tatsächliche Anzahl Carrier</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nReservedCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Reserviert für Station (unterwegs)</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nTotalCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Real+Reserved</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
</Member>
|
||||
<Member Name="MPS3" Datatype="Struct">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Workstation 2.0</MultiLanguageText>
|
||||
</Comment>
|
||||
<Member Name="nRealCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Tatsächliche Anzahl Carrier</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nReservedCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Reserviert für Station (unterwegs)</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
<Member Name="nTotalCount" Datatype="UInt">
|
||||
<Comment>
|
||||
<MultiLanguageText Lang="de-DE">Real+Reserved</MultiLanguageText>
|
||||
</Comment>
|
||||
</Member>
|
||||
</Member>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_Statistics</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>
|
||||
@@ -1,65 +0,0 @@
|
||||
<?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.."cNoSensors"] of "UDT_Sensor"" />
|
||||
</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>
|
||||
@@ -1,783 +0,0 @@
|
||||
FUNCTION_BLOCK "FB_CallSensors"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_IN_OUT
|
||||
stInOutControlUnitCabinet : "UDT_MainState";
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
fbSensorInput : Array[0.."cNoSensors"] of "FB_SensorInput";
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
idx : Int;
|
||||
tFlicker : Bool;
|
||||
index : Int;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION SensorInput-Baustein Aufrufe
|
||||
REGION BG3240
|
||||
#fbSensorInput["cInBG3240"](sInName := 'BG3240',
|
||||
xInSensor := "BG3240",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3240"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3240"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3241
|
||||
#fbSensorInput["cInBG3241"](sInName := 'BG3241',
|
||||
xInSensor := "BG3241",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3241"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3241"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3242
|
||||
#fbSensorInput["cInBG3242"](sInName := 'BG3242',
|
||||
xInSensor := "BG3242",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3242"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3242"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3244
|
||||
#fbSensorInput["cInBG3244"](sInName := 'BG3244',
|
||||
xInSensor := "BG3244",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3244"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3244"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3245
|
||||
#fbSensorInput["cInBG3245"](sInName := 'BG3245',
|
||||
xInSensor := "BG3245",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3245"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3245"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3246
|
||||
#fbSensorInput["cInBG3246"](sInName := 'BG3246',
|
||||
xInSensor := "BG3246",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3246"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3246"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3243
|
||||
#fbSensorInput["cInBG3243"](sInName := 'BG3243',
|
||||
xInSensor := "BG3243",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3243"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3243"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3250
|
||||
#fbSensorInput["cInBG3250"](sInName := 'BG3250',
|
||||
xInSensor := "BG3250",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3250"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3250"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3251
|
||||
#fbSensorInput["cInBG3251"](sInName := 'BG3251',
|
||||
xInSensor := "BG3251",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3251"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3251"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3247
|
||||
#fbSensorInput["cInBG3247"](sInName := 'BG3247',
|
||||
xInSensor := "BG3247",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3247"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3247"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3253
|
||||
#fbSensorInput["cInBG3253"](sInName := 'BG3253',
|
||||
xInSensor := "BG3253",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3253"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3253"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3255
|
||||
#fbSensorInput["cInBG3255"](sInName := 'BG3255',
|
||||
xInSensor := "BG3255",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3255"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3255"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3256
|
||||
#fbSensorInput["cInBG3256"](sInName := 'BG3256',
|
||||
xInSensor := "BG3256",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3256"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3256"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3257
|
||||
#fbSensorInput["cInBG3257"](sInName := 'BG3257',
|
||||
xInSensor := "BG3257",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3257"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3257"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3260
|
||||
#fbSensorInput["cInBG3260"](sInName := 'BG3260',
|
||||
xInSensor := "BG3260",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3260"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3260"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3261
|
||||
#fbSensorInput["cInBG3261"](sInName := 'BG3261',
|
||||
xInSensor := "BG3261",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3261"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3261"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3262
|
||||
#fbSensorInput["cInBG3262"](sInName := 'BG3262',
|
||||
xInSensor := "BG3262",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3262"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3262"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3300
|
||||
#fbSensorInput["cInBG3300"](sInName := 'BG3300',
|
||||
xInSensor := "BG3300",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3300"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3300"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3301
|
||||
#fbSensorInput["cInBG3301"](sInName := 'BG3301',
|
||||
xInSensor := "BG3301",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3301"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3301"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3303
|
||||
#fbSensorInput["cInBG3303"](sInName := 'BG3303',
|
||||
xInSensor := "BG3303",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3303"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3303"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3304
|
||||
#fbSensorInput["cInBG3304"](sInName := 'BG3304',
|
||||
xInSensor := "BG3304",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3304"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3304"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3310
|
||||
#fbSensorInput["cInBG3310"](sInName := 'BG3310',
|
||||
xInSensor := "BG3310",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3310"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3310"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3311
|
||||
#fbSensorInput["cInBG3311"](sInName := 'BG3311',
|
||||
xInSensor := "BG3311",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3311"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3311"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3312
|
||||
#fbSensorInput["cInBG3312"](sInName := 'BG3312',
|
||||
xInSensor := "BG3312",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3312"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3312"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3313
|
||||
#fbSensorInput["cInBG3313"](sInName := 'BG3313',
|
||||
xInSensor := "BG3313",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3313"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3313"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3314
|
||||
#fbSensorInput["cInBG3314"](sInName := 'BG3314',
|
||||
xInSensor := "BG3314",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3314"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3314"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3315
|
||||
#fbSensorInput["cInBG3315"](sInName := 'BG3315',
|
||||
xInSensor := "BG3315",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3315"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3315"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3316
|
||||
#fbSensorInput["cInBG3316"](sInName := 'BG3316',
|
||||
xInSensor := "BG3316",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3316"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3316"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3317
|
||||
#fbSensorInput["cInBG3317"](sInName := 'BG3317',
|
||||
xInSensor := "BG3317",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3317"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3317"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3320
|
||||
#fbSensorInput["cInBG3320"](sInName := 'BG3320',
|
||||
xInSensor := "BG3320",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3320"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3320"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3321
|
||||
#fbSensorInput["cInBG3321"](sInName := 'BG3321',
|
||||
xInSensor := "BG3321",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3321"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3321"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3322
|
||||
#fbSensorInput["cInBG3322"](sInName := 'BG3322',
|
||||
xInSensor := "BG3322",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3322"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3322"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3325
|
||||
#fbSensorInput["cInBG3325"](sInName := 'BG3325',
|
||||
xInSensor := "BG3325",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3325"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3325"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3360
|
||||
#fbSensorInput["cInBG3360"](sInName := 'BG3360',
|
||||
xInSensor := "BG3360",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3360"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3360"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3362
|
||||
#fbSensorInput["cInBG3362"](sInName := 'BG3362',
|
||||
xInSensor := "BG3362",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3362"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3362"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3363
|
||||
#fbSensorInput["cInBG3363"](sInName := 'BG3363',
|
||||
xInSensor := "BG3363",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3363"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3363"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3367
|
||||
#fbSensorInput["cInBG3367"](sInName := 'BG3367',
|
||||
xInSensor := "BG3367",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3367"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3367"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3370
|
||||
#fbSensorInput["cInBG3370"](sInName := 'BG3370',
|
||||
xInSensor := "BG3370",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3370"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3370"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3371
|
||||
#fbSensorInput["cInBG3371"](sInName := 'BG3371',
|
||||
xInSensor := "BG3371",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3371"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3371"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3372
|
||||
#fbSensorInput["cInBG3372"](sInName := 'BG3372',
|
||||
xInSensor := "BG3372",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3372"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3372"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3373
|
||||
#fbSensorInput["cInBG3373"](sInName := 'BG3373',
|
||||
xInSensor := "BG3373",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3373"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3373"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3374
|
||||
#fbSensorInput["cInBG3374"](sInName := 'BG3374',
|
||||
xInSensor := "BG3374",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3374"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3374"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3375
|
||||
#fbSensorInput["cInBG3375"](sInName := 'BG3375',
|
||||
xInSensor := "BG3375",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3375"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3375"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3376
|
||||
#fbSensorInput["cInBG3376"](sInName := 'BG3376',
|
||||
xInSensor := "BG3376",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3376"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3376"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3377
|
||||
#fbSensorInput["cInBG3377"](sInName := 'BG3377',
|
||||
xInSensor := "BG3377",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3377"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3377"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3381
|
||||
#fbSensorInput["cInBG3381"](sInName := 'BG3381',
|
||||
xInSensor := "BG3381",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3381"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3381"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3382
|
||||
#fbSensorInput["cInBG3382"](sInName := 'BG3382',
|
||||
xInSensor := "BG3382",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3382"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3382"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3383
|
||||
#fbSensorInput["cInBG3383"](sInName := 'BG3383',
|
||||
xInSensor := "BG3383",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3383"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3383"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3385
|
||||
#fbSensorInput["cInBG3385"](sInName := 'BG3385',
|
||||
xInSensor := "BG3385",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3385"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3385"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
REGION BG3386
|
||||
#fbSensorInput["cInBG3386"](sInName := 'BG3386',
|
||||
xInSensor := "BG3386",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3386"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3386"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3387
|
||||
#fbSensorInput["cInBG3387"](sInName := 'BG3387',
|
||||
xInSensor := "BG3387",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3387"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3387"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3390
|
||||
#fbSensorInput["cInBG3390"](sInName := 'BG3390',
|
||||
xInSensor := "BG3390",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3390"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3390"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3391
|
||||
#fbSensorInput["cInBG3391"](sInName := 'BG3391',
|
||||
xInSensor := "BG3391",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3391"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3391"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3393
|
||||
#fbSensorInput["cInBG3393"](sInName := 'BG3393',
|
||||
xInSensor := "BG3393",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3393"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3393"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3394
|
||||
#fbSensorInput["cInBG3394"](sInName := 'BG3394',
|
||||
xInSensor := "BG3394",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3394"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3394"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3420
|
||||
#fbSensorInput["cInBG3420"](sInName := 'BG3420',
|
||||
xInSensor := "BG3420",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3420"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3420"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3421
|
||||
#fbSensorInput["cInBG3421"](sInName := 'BG3421',
|
||||
xInSensor := "BG3421",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3421"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3421"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3423
|
||||
#fbSensorInput["cInBG3423"](sInName := 'BG3423',
|
||||
xInSensor := "BG3423",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3423"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3423"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3424
|
||||
#fbSensorInput["cInBG3424"](sInName := 'BG3424',
|
||||
xInSensor := "BG3424",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3424"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3424"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3425
|
||||
#fbSensorInput["cInBG3425"](sInName := 'BG3425',
|
||||
xInSensor := "BG3425",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3425"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3425"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3427
|
||||
#fbSensorInput["cInBG3427"](sInName := 'BG3427',
|
||||
xInSensor := "BG3427",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3427"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3427"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3430
|
||||
#fbSensorInput["cInBG3430"](sInName := 'BG3430',
|
||||
xInSensor := "BG3430",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3430"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3430"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3432
|
||||
#fbSensorInput["cInBG3432"](sInName := 'BG3432',
|
||||
xInSensor := "BG3432",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3432"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3432"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3433
|
||||
#fbSensorInput["cInBG3433"](sInName := 'BG3433',
|
||||
xInSensor := "BG3433",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3433"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3433"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3434
|
||||
#fbSensorInput["cInBG3434"](sInName := 'BG3434',
|
||||
xInSensor := "BG3434",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3434"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3434"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3435
|
||||
#fbSensorInput["cInBG3435"](sInName := 'BG3435',
|
||||
xInSensor := "BG3435",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3435"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3435"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3440
|
||||
#fbSensorInput["cInBG3440"](sInName := 'BG3440',
|
||||
xInSensor := "BG3440",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3440"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3440"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3441
|
||||
#fbSensorInput["cInBG3441"](sInName := 'BG3441',
|
||||
xInSensor := "BG3441",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3441"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3441"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3442
|
||||
#fbSensorInput["cInBG3442"](sInName := 'BG3442',
|
||||
xInSensor := "BG3442",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3442"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3442"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3443
|
||||
#fbSensorInput["cInBG3443"](sInName := 'BG3443',
|
||||
xInSensor := "BG3443",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3443"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3443"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3444
|
||||
#fbSensorInput["cInBG3444"](sInName := 'BG3444',
|
||||
xInSensor := "BG3444",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3444"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3444"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3445
|
||||
#fbSensorInput["cInBG3445"](sInName := 'BG3445',
|
||||
xInSensor := "BG3445",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3445"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3445"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3446
|
||||
#fbSensorInput["cInBG3446"](sInName := 'BG3446',
|
||||
xInSensor := "BG3446",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3446"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3446"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3447
|
||||
#fbSensorInput["cInBG3447"](sInName := 'BG3447',
|
||||
xInSensor := "BG3447",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3447"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3447"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3450
|
||||
#fbSensorInput["cInBG3450"](sInName := 'BG3450',
|
||||
xInSensor := "BG3450",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3450"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3450"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3451
|
||||
#fbSensorInput["cInBG3451"](sInName := 'BG3451',
|
||||
xInSensor := "BG3451",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3451"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3451"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3455
|
||||
#fbSensorInput["cInBG3455"](sInName := 'BG3455',
|
||||
xInSensor := "BG3455",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3455"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3455"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3380
|
||||
#fbSensorInput["cInBG3380"](sInName := 'BG3380',
|
||||
xInSensor := "BG3380",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3380"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3380"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3431
|
||||
#fbSensorInput["cInBG3431"](sInName := 'BG3431',
|
||||
xInSensor := "BG3431",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3431"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3431"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3324
|
||||
#fbSensorInput["cInBG3324"](sInName := 'BG3324',
|
||||
xInSensor := "BG3324",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3324"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3324"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3384
|
||||
#fbSensorInput["cInBG3384"](sInName := 'BG3384',
|
||||
xInSensor := "BG3384",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3384"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3384"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3454
|
||||
#fbSensorInput["cInBG3454"](sInName := 'BG3454',
|
||||
xInSensor := "BG3454",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3454"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3454"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3426
|
||||
#fbSensorInput["cInBG3426"](sInName := 'BG3426',
|
||||
xInSensor := "BG3426",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3426"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3426"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3392
|
||||
#fbSensorInput["cInBG3392"](sInName := 'BG3392',
|
||||
xInSensor := "BG3392",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3392"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3392"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3326
|
||||
#fbSensorInput["cInBG3326"](sInName := 'BG3326',
|
||||
xInSensor := "BG3326",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3326"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3326"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3327
|
||||
#fbSensorInput["cInBG3327"](sInName := 'BG3327',
|
||||
xInSensor := "BG3327",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3327"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3327"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3396
|
||||
#fbSensorInput["cInBG3396"](sInName := 'BG3396',
|
||||
xInSensor := "BG3396",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3396"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3396"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3397
|
||||
#fbSensorInput["cInBG3397"](sInName := 'BG3397',
|
||||
xInSensor := "BG3397",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3397"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3397"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3436
|
||||
#fbSensorInput["cInBG3436"](sInName := 'BG3436',
|
||||
xInSensor := "BG3436",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3436"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3436"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3437
|
||||
#fbSensorInput["cInBG3437"](sInName := 'BG3437',
|
||||
xInSensor := "BG3437",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3437"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3437"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3264
|
||||
#fbSensorInput["cInBG3264"](sInName := 'BG3264',
|
||||
xInSensor := "BG3264",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3264"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3264"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3361
|
||||
#fbSensorInput["cInBG3361"](sInName := 'BG3361',
|
||||
xInSensor := "BG3361",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3361"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3361"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
REGION BG3400
|
||||
#fbSensorInput["cInBG3400"](sInName := 'BG3400',
|
||||
xInSensor := "BG3400",
|
||||
stInOutSensor := "DB_Inputs".Sensors["cInBG3400"],
|
||||
stInOutHMI := "DB_Interface_HMI".arSensors["cInBG3400"],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
|
||||
// REGION Warnungen beim Erkennen von Flackern werfen
|
||||
// FOR #idx := 1 TO "cNoSensors" DO
|
||||
// // Nur der erste Fehler am Tag wird gemeldet um vollschreiben der MMC zu verhindern
|
||||
// IF #fbSensorInput[#idx].xOutFlickerError AND #fbSensorInput[#idx].nOutCntFlicker = 1 THEN
|
||||
// #tFlicker := TRUE;
|
||||
// EXIT;
|
||||
// END_IF;
|
||||
// END_FOR;
|
||||
|
||||
// IF #idx > "cNoSensors" OR #idx < 1 THEN
|
||||
// #idx := 1;
|
||||
// #tFlicker := FALSE;
|
||||
// END_IF;
|
||||
|
||||
// END_REGION
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
<?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=""UDT_MainState"" />
|
||||
</Section>
|
||||
<Section Name="Static">
|
||||
<Member Name="fbSensorInput" Datatype="Array[0.."cNoSensors"] of "FB_SensorInput"">
|
||||
<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>
|
||||
@@ -1,491 +0,0 @@
|
||||
FUNCTION_BLOCK "FB_PreMain"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_IN_OUT
|
||||
stInOutControlUnitCabinet : "UDT_MainState";
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
fbMonMotorProtection : "FB_Monitoring";
|
||||
fbMonPhaseFailure : "FB_Monitoring";
|
||||
fbMonFuse400V : "FB_Monitoring";
|
||||
fbMonFuse24V : "FB_Monitoring";
|
||||
fbMonPressure : "FB_Monitoring";
|
||||
fbMonMainContactorsUH04 : "FB_Monitoring";
|
||||
fbMonSafetyContactorsExternOmniflo : "FB_Monitoring";
|
||||
fbMonSafetyContactorsExternReserve : "FB_Monitoring";
|
||||
fbMonFAS1 : "FB_Monitoring"; // IF from FACP "fire alarm" DI0034
|
||||
fbMonFAS2 : "FB_Monitoring"; // IF from FACP "fire alarm" DI0033
|
||||
fbMonFPG_Open : "FB_Monitoring"; // Control from FPG
|
||||
fbMonFPG_Fault : "FB_Monitoring"; // Control from FPG
|
||||
fbMonFPG_Fire : "FB_Monitoring"; // Control from FPG
|
||||
fbMonCommFortnaWCS : "FB_Monitoring";
|
||||
fbMonCommFortnaWESDeviceHub : "FB_Monitoring";
|
||||
xAllReadyToStart { S7_SetPoint := 'True'} : Bool;
|
||||
fbStateMain : "FB_StateMain";
|
||||
arESTOPAck { S7_SetPoint := 'False'} : Array[0..4] of "FB_ESTOPhandling";
|
||||
xReInit : Bool;
|
||||
fTrigReIntTime {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
|
||||
tOfReIntTime {InstructionName := 'TOF_TIME'; LibVersion := '1.0'} : TOF_TIME; // nach Hochfahren vergeht diese Zeit bis erstmalig Quit
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
tDebug : Int;
|
||||
nIdx : USInt;
|
||||
END_VAR
|
||||
|
||||
VAR CONSTANT
|
||||
c_UH04 : Int := 0; // Konstante für ESTOP
|
||||
c_UZ0409 : Int := 1; // Konstante für ESTOP
|
||||
c_UH04_Extern1 : Int := 2; // Konstante für ESTOP
|
||||
c_UH04_Extern2 : Int := 3; // Konstante für ESTOP
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
|
||||
REGION Reinitialisieren
|
||||
#tOfReIntTime(IN := NOT #xReInit,
|
||||
PT := T#10s);
|
||||
|
||||
IF NOT #xReInit THEN
|
||||
#xReInit := TRUE;
|
||||
END_IF;
|
||||
|
||||
#fTrigReIntTime(CLK := #tOfReIntTime.Q);
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION CycleTime
|
||||
// "DB_MachineGlobal".nLogicCycle := stInOutControlUnitCabinet.nLogicCycle + 1;
|
||||
#tDebug := RD_SYS_T("DB_MachineGlobal".TimePLC);
|
||||
// #fbCycleTime("DB_MachineGlobal".nPrevCycle);
|
||||
END_REGION
|
||||
|
||||
REGION Monitoring
|
||||
REGION Motor protection
|
||||
#fbMonMotorProtection.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonMotorProtection.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonMotorProtection(sInFctnName := 'Motorschutz',
|
||||
sInPrefix := 'UH04',
|
||||
sInAlarmMessage := 'Motorschutz ausgeloest',
|
||||
sInSuffix := 'FC0060-FC0074',
|
||||
wInTextListId_Function := 3,
|
||||
wInTextListId_Message := 1,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "FC0060" AND "FC0061" AND "FC0062" AND "FC0063" AND "FC0064" AND "FC0065" AND "FC0066" AND
|
||||
"FC0070" AND "FC0071" AND "FC0072" AND "FC0073" AND "FC0074",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stMotorProtection.UH04);
|
||||
END_REGION
|
||||
|
||||
REGION Phase failure
|
||||
#fbMonPhaseFailure.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonPhaseFailure.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonPhaseFailure(sInFctnName := 'Phasenausfall',
|
||||
sInPrefix := 'UH04',
|
||||
sInAlarmMessage := 'Phase ausgefallen',
|
||||
sInSuffix := 'DI0005',
|
||||
wInTextListId_Function := 6,
|
||||
wInTextListId_Message := 2,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "DI0005",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stPhase.UH04_400V);
|
||||
END_REGION
|
||||
|
||||
REGION 400V
|
||||
#fbMonFuse400V.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonFuse400V.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonFuse400V(sInFctnName := 'Sicherungsfall',
|
||||
sInPrefix := 'UH04 400V',
|
||||
sInAlarmMessage := 'Sicherung ausgeloest',
|
||||
sInSuffix := 'DI0016',
|
||||
wInTextListId_Function := 4,
|
||||
wInTextListId_Message := 3,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "DI0016",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stFuse.UH04_400V);
|
||||
END_REGION
|
||||
|
||||
REGION 24V
|
||||
#fbMonFuse24V.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonFuse24V.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonFuse24V(sInFctnName := 'Sicherungsfall',
|
||||
sInPrefix := 'UH04 24V',
|
||||
sInAlarmMessage := 'Sicherung ausgeloest',
|
||||
sInSuffix := 'DI0021',
|
||||
wInTextListId_Function := 4,
|
||||
wInTextListId_Message := 3,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "DI0021",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stFuse.UH04_24V);
|
||||
END_REGION
|
||||
|
||||
|
||||
REGION Pressure
|
||||
#fbMonPressure.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonPressure.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonPressure(sInFctnName := 'Druckluftueberwachung',
|
||||
sInPrefix := 'UH04',
|
||||
sInAlarmMessage := 'Druckluft zu niedrig',
|
||||
sInSuffix := 'BP0004',
|
||||
wInTextListId_Function := 5,
|
||||
wInTextListId_Message := 4,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "BP0004",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stPressure.UH04);
|
||||
END_REGION
|
||||
|
||||
REGION Hauptschütze UH04
|
||||
#fbMonMainContactorsUH04.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonMainContactorsUH04.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonMainContactorsUH04(sInFctnName := 'Hauptschuetzueberwachung',
|
||||
sInPrefix := 'UH04',
|
||||
sInAlarmMessage := 'Hauptschuetze Fehler',
|
||||
sInSuffix := 'QA0610-QA0613',
|
||||
wInTextListId_Function := 7,
|
||||
wInTextListId_Message := 5,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "DB_InterfaceSafety".stFromSafety.stMainContactorsUH04.xOk,
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stMainContactor.UH04);
|
||||
END_REGION
|
||||
|
||||
REGION Safetyrelais Extern Omniflo
|
||||
#fbMonSafetyContactorsExternOmniflo.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonSafetyContactorsExternOmniflo.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonSafetyContactorsExternOmniflo(sInFctnName := 'Relaisueberwachung',
|
||||
sInPrefix := 'UH04->UH06',
|
||||
sInAlarmMessage := 'Relais Fehler',
|
||||
sInSuffix := 'QA0660/QA0661',
|
||||
wInTextListId_Function := 9,
|
||||
wInTextListId_Message := 9,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternOmniflo.xOk,
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stMainContactor.ExternOmniflo);
|
||||
END_REGION
|
||||
|
||||
REGION Safetyrelais Extern Reserve
|
||||
#fbMonSafetyContactorsExternReserve.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonSafetyContactorsExternReserve.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonSafetyContactorsExternReserve(sInFctnName := 'Relaisueberwachung',
|
||||
sInPrefix := 'UH04',
|
||||
sInAlarmMessage := 'Relais Fehler',
|
||||
sInSuffix := 'QA0662/QA0663',
|
||||
wInTextListId_Function := 9,
|
||||
wInTextListId_Message := 9,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternReserve.xOk,
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stMainContactor.ExternReserve);
|
||||
END_REGION
|
||||
|
||||
REGION Brandschutz
|
||||
|
||||
REGION FAS 1
|
||||
#fbMonFAS1.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonFAS1.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonFAS1(sInFctnName := 'Feueralarm',
|
||||
sInPrefix := 'UH04/FAS1',
|
||||
sInAlarmMessage := 'Feueralarm Signal 1',
|
||||
sInSuffix := 'DI0034',
|
||||
wInTextListId_Function := 8,
|
||||
wInTextListId_Message := 6,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
|
||||
xInSignal := "DI0034",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFAS1);
|
||||
END_REGION
|
||||
|
||||
REGION FAS 2
|
||||
#fbMonFAS2.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonFAS2.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonFAS2(sInFctnName := 'Feueralarm',
|
||||
sInPrefix := 'UH04/FAS2',
|
||||
sInAlarmMessage := 'Feueralarm Signal 2',
|
||||
sInSuffix := 'DI0033',
|
||||
wInTextListId_Function := 8,
|
||||
wInTextListId_Message := 6,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
|
||||
xInSignal := "DI0033" OR TRUE,
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFAS2);
|
||||
END_REGION
|
||||
|
||||
REGION FPG open
|
||||
#fbMonFPG_Open.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonFPG_Open.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonFPG_Open(sInFctnName := 'Feueralarm',
|
||||
sInPrefix := 'UH04/FD411',
|
||||
sInAlarmMessage := 'Tor nicht offen',
|
||||
sInSuffix := 'DI0037',
|
||||
wInTextListId_Function := 8,
|
||||
wInTextListId_Message := 7,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
|
||||
xInSignal := "DI0037",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.FPCOpened);
|
||||
END_REGION
|
||||
|
||||
REGION FPG fault
|
||||
#fbMonFPG_Fault.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonFPG_Fault.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonFPG_Fault(sInFctnName := 'Feueralarm',
|
||||
sInPrefix := 'UH04/FD411',
|
||||
sInAlarmMessage := 'Fehler',
|
||||
sInSuffix := 'DI0036',
|
||||
wInTextListId_Function := 8,
|
||||
wInTextListId_Message := 8,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
|
||||
xInSignal := "DI0036",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFault);
|
||||
END_REGION
|
||||
|
||||
REGION FPG Fire
|
||||
#fbMonFPG_Fire.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonFPG_Fire.stSettings.xSelfQuit := FALSE;
|
||||
#fbMonFPG_Fire(sInFctnName := 'Feueralarm',
|
||||
sInPrefix := 'UH04/FD411',
|
||||
sInAlarmMessage := 'Feuer',
|
||||
sInSuffix := 'DI0035',
|
||||
wInTextListId_Function := 8,
|
||||
wInTextListId_Message := 6,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError OR "SF0002",
|
||||
xInSignal := "DI0035",
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stFireControl.NoFireAlarmFPG);
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION MISC (nicht für AllReadyToStart)
|
||||
|
||||
REGION TCP-Kommunikation
|
||||
REGION Fortna WCS
|
||||
#fbMonCommFortnaWCS.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonCommFortnaWCS.stSettings.xSelfQuit := TRUE;
|
||||
#fbMonCommFortnaWCS(sInFctnName := 'Kommunikationsfehler',
|
||||
sInPrefix := 'UH04',
|
||||
sInSuffix := 'Fortna WCS',
|
||||
wInTextListId_Function := 20000,
|
||||
wInTextListId_Message := 20000,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "FB_CommunicationWCSBL_DB".fbTeleHandler.xOutConnectionActive,
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stExternal.TCPFortnaWCS);
|
||||
END_REGION
|
||||
|
||||
REGION Fortna WES DeviceHub
|
||||
#fbMonCommFortnaWESDeviceHub.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonCommFortnaWESDeviceHub.stSettings.xSelfQuit := TRUE;
|
||||
#fbMonCommFortnaWESDeviceHub(sInFctnName := 'Kommunikationsfehler',
|
||||
sInPrefix := 'UH04',
|
||||
sInSuffix := 'Fortna WES',
|
||||
wInTextListId_Function := 20000,
|
||||
wInTextListId_Message := 20000,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError,
|
||||
xInSignal := "FB_CommunicationWES_DeviceHub_DB".fbTeleHandler.xOutConnectionActive,
|
||||
InOutMachineState := #stInOutControlUnitCabinet,
|
||||
stOutHMI => "DB_Interface_HMI".stSystem.stExternal.TCPFortnaWES);
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION AllReadyToStart
|
||||
|
||||
#xAllReadyToStart :=
|
||||
#fbMonPhaseFailure.xOutOk AND
|
||||
#fbMonFuse24V.xOutOk AND
|
||||
#fbMonFuse400V.xOutOk AND
|
||||
#fbMonPressure.xOutOk AND
|
||||
#fbMonMotorProtection.xOutOk AND
|
||||
#fbMonMainContactorsUH04.xOutOk AND
|
||||
#fbMonSafetyContactorsExternOmniflo.xOutOk AND
|
||||
#fbMonSafetyContactorsExternReserve.xOutOk AND
|
||||
#fbMonFAS1.xOutOk AND
|
||||
#fbMonFAS2.xOutOk AND
|
||||
#fbMonFPG_Fire.xOutOk AND
|
||||
#fbMonFPG_Fault.xOutOk AND
|
||||
#fbMonFPG_Open.xOutOk;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION StateMain
|
||||
|
||||
#fbStateMain.stSettings.xEnableStartUpWarning := TRUE;
|
||||
#fbStateMain.stSettings.tStartUpTime := T#5s;
|
||||
#fbStateMain(xInBtnMachineOn := "SF0001",
|
||||
xInBtnMachineNotOff := "SF0000",
|
||||
xInBtnTrigMot := "SF0002",
|
||||
xInBtnQuitError := "SF0002",
|
||||
xInAllReadyToStart := #xAllReadyToStart,
|
||||
xInAllInExecute := TRUE,
|
||||
xInAllStarted := TRUE,
|
||||
xInSafetyActive := "DB_InterfaceSafety".stFromSafety.EStopMain.Q, //("Main_Safety_RTG1_DB".ESTOP1_Main.Q AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ACK_REQ AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ERROR),
|
||||
xInAllInSafeState := "DB_InterfaceSafety".stFromSafety.EStopMain.Q, //("Main_Safety_RTG1_DB".ESTOP1_Main.Q AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ACK_REQ AND NOT "Main_Safety_RTG1_DB".FDBACK_UH04.ERROR),
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
|
||||
stInOutHMI := "DB_Interface_HMI".stStateMachine);
|
||||
END_REGION
|
||||
|
||||
REGION Interface Safety
|
||||
|
||||
REGION to Safety
|
||||
"DB_InterfaceSafety".stToSafety.xAckGlob := "IBN".xAckGlob OR #fTrigReIntTime.Q;
|
||||
"DB_InterfaceSafety".stToSafety.xMachineRunning := #stInOutControlUnitCabinet.xRunning;
|
||||
"DB_InterfaceSafety".stToSafety.xMachineStarting := #stInOutControlUnitCabinet.xStarting;
|
||||
"DB_InterfaceSafety".stToSafety.xQuitButtonHss := "SF0002" OR #stInOutControlUnitCabinet.xQuitError OR #fTrigReIntTime.Q;
|
||||
"DB_InterfaceSafety".stToSafety.xQuitButtonUZ0409 := "SF0051" OR "IBN".xAckGlob OR #fTrigReIntTime.Q;
|
||||
"DB_InterfaceSafety".stToSafety.stMainContactorsUH04.xFeedback := "DI0013";
|
||||
"DB_InterfaceSafety".stToSafety.stSafetyContactorsExternOmniflo.xFeedback := "DI0014";
|
||||
"DB_InterfaceSafety".stToSafety.stSafetyContactorsExternReserve.xFeedback := "DI0015";
|
||||
END_REGION
|
||||
|
||||
|
||||
REGION from Safety
|
||||
;
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Outputs
|
||||
|
||||
//E-Stop Signalsäule
|
||||
"PF0030" := "SF0003" OR #fbMonFAS1.xOutError
|
||||
OR #fbMonFAS2.xOutError
|
||||
OR #fbMonFPG_Fire.xOutError
|
||||
OR #fbMonFPG_Fault.xOutError
|
||||
OR #fbMonFPG_Open.xOutError
|
||||
OR NOT "DB_InterfaceSafety".stFromSafety.EStopMain.Q;
|
||||
|
||||
//Anfahrwarnung Signalsäule
|
||||
"PF0033" := #stInOutControlUnitCabinet.xStartUpWarning AND "Clock_1Hz";
|
||||
|
||||
//LED Störung + Signalsäule gelb
|
||||
"PF0000" := "PF0031" :=
|
||||
"SF0003" OR
|
||||
#fbMonFuse24V.xOutLedError OR
|
||||
#fbMonFuse400V.xOutLedError OR
|
||||
#fbMonMotorProtection.xOutLedError OR
|
||||
#fbMonPhaseFailure.xOutLedError OR
|
||||
#fbMonPressure.xOutLedError OR
|
||||
#fbMonMainContactorsUH04.xOutLedError OR
|
||||
#fbMonSafetyContactorsExternOmniflo.xOutLedError OR
|
||||
#fbMonSafetyContactorsExternReserve.xOutLedError;
|
||||
|
||||
//LED Ein + Signalsäule grün
|
||||
"PF0001" := "PF0032" := "PF0050" := "PF0052" := "PF0054" := "PF0056" := "SF0003" OR (#stInOutControlUnitCabinet.xRunning AND NOT #stInOutControlUnitCabinet.xStartUpWarning) OR
|
||||
(NOT #stInOutControlUnitCabinet.xRunning AND #stInOutControlUnitCabinet.xStartUpWarning);
|
||||
|
||||
//LED Start nach Störung
|
||||
"PF0002" := "SF0003" OR #arESTOPAck[0].xOutLed (* OR NOT #xAllReadyToStart *)OR
|
||||
(#fbMonMotorProtection.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonPhaseFailure.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonFuse24V.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonFuse400V.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonPressure.xOutAckReq AND "Clock_1Hz") OR
|
||||
("DB_InterfaceSafety".stFromSafety.stMainContactorsUH04.xAckReq AND "Clock_1Hz") OR
|
||||
("DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternOmniflo.xAckReq AND "Clock_1Hz") OR
|
||||
("DB_InterfaceSafety".stFromSafety.stSafetyContactorsExternReserve.xAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonFAS1.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonFAS2.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonFPG_Fire.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonFPG_Fault.xOutAckReq AND "Clock_1Hz") OR
|
||||
(#fbMonFPG_Open.xOutAckReq AND "Clock_1Hz") OR
|
||||
("fbMain_DB".fbCarousel4003.xOutGridError AND "Clock_1Hz");
|
||||
|
||||
//LED Druckluft
|
||||
"PF0003" := "SF0003" OR #fbMonPressure.xOutLedError;
|
||||
|
||||
//LED Motorschutz
|
||||
"PF0004" := "SF0003" OR #fbMonMotorProtection.xOutLedError;
|
||||
|
||||
//LED Sicherung
|
||||
"PF0005" := "SF0003" OR #fbMonFuse24V.xOutLedError OR #fbMonFuse400V.xOutLedError;
|
||||
|
||||
//LED Brandfall
|
||||
"PF0006" := "SF0003" OR #fbMonFAS1.xOutError
|
||||
OR #fbMonFAS2.xOutError
|
||||
OR #fbMonFPG_Fire.xOutError
|
||||
OR #fbMonFPG_Fault.xOutError
|
||||
OR #fbMonFPG_Open.xOutError;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Not-Halt Tableaues
|
||||
REGION UH04
|
||||
#arESTOPAck[#c_UH04](sInAlarmFunction := 'HSS',
|
||||
sInAlarmDevice := 'UH04',
|
||||
sInAlarmMessage := 'Not-Halt aktiv',
|
||||
sInAlarmSuffix := 'PF0002',
|
||||
xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopUH04.AckReq,
|
||||
xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopUH04.Q,
|
||||
xInAckReqGlobal := (* #arESTOPAck[1].xOutAckReq OR *)
|
||||
#arESTOPAck[#c_UH04_Extern1].xOutAckReq OR
|
||||
#arESTOPAck[#c_UH04_Extern2].xOutAckReq,
|
||||
//#arESTOPAck[4].xOutAckReq OR
|
||||
xInSafetyNotOkGlobal := (* #arESTOPAck[1].xOutSafetyNotOk OR *)
|
||||
#arESTOPAck[#c_UH04_Extern1].xOutSafetyNotOk OR
|
||||
#arESTOPAck[#c_UH04_Extern2].xOutSafetyNotOk,
|
||||
// #arESTOPAck[4].xOutSafetyNotOk OR
|
||||
xInMainCabinet := TRUE,
|
||||
// xOutLed => "PF0002",
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
|
||||
stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UH04]);
|
||||
END_REGION
|
||||
|
||||
REGION UH04 Extern1
|
||||
#arESTOPAck[#c_UH04_Extern1](sInAlarmDevice := 'UH04_Ext1/UH06',
|
||||
sInAlarmSuffix := 'PF0002',
|
||||
stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UH04_Extern1],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
|
||||
xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopExternOmniflo.AckReq,
|
||||
xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopExternOmniflo.Q);
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION UH04 Extern2
|
||||
#arESTOPAck[#c_UH04_Extern2](sInAlarmDevice := 'UH04_Ext2/Res',
|
||||
sInAlarmSuffix := 'PF0002',
|
||||
stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UH04_Extern2],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
|
||||
xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopExternReserve.AckReq,
|
||||
xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopExternReserve.Q);
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION UZ0409
|
||||
#arESTOPAck[#c_UZ0409](sInAlarmFunction := 'Bedientableau',
|
||||
sInAlarmDevice := 'UZ0409',
|
||||
sInAlarmMessage := 'Not-Halt aktiv',
|
||||
sInAlarmSuffix := 'PF0051',
|
||||
wInTextListId_Function := 1,
|
||||
wInTextListId_Message := 0,
|
||||
stInOutHmiEstopPanel := "DB_Interface_HMI".arEstops[#c_UZ0409],
|
||||
stInOutControlUnitCabinet := #stInOutControlUnitCabinet,
|
||||
xInAckReqLocal := "DB_InterfaceSafety".stFromSafety.EStopUZ0409.AckReq,
|
||||
xInEstopOkLocal := "DB_InterfaceSafety".stFromSafety.EStopUZ0409.Q);
|
||||
|
||||
"PF0051" := #arESTOPAck[#c_UZ0409].xOutLed OR "SF0003";
|
||||
END_REGION
|
||||
END_REGION
|
||||
|
||||
REGION SCADA-Interface
|
||||
"FB-OPC_UA_System-Stat_DB"(nInSystemStat := #fbStateMain.nState, //State Main (Running, Idle, Stopped...)
|
||||
xInFireAlarm := (#fbMonFAS1.xOutError OR #fbMonFAS2.xOutError OR #fbMonFPG_Fire.xOutError), // Nur Feueralarm
|
||||
xInSafetyStop := NOT "DB_InterfaceSafety".stFromSafety.EStopMain.Q, // Not-Halt
|
||||
xInError := "DB_Interface_HMI".nActiveAlarms > 0, //Alle aktiven Meldungen über HMI Interface
|
||||
xInCommunicationError := #fbMonCommFortnaWCS.xOutError OR #fbMonCommFortnaWESDeviceHub.xOutError,
|
||||
nOutScadaStatus => "DB_Status".System.Status);
|
||||
END_REGION
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
@@ -1,166 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Document>
|
||||
<Engineering version="V20" />
|
||||
<SW.Blocks.InstanceDB ID="0">
|
||||
<AttributeList>
|
||||
<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="stInOutControlUnitCabinet" Datatype=""UDT_MainState"" />
|
||||
</Section>
|
||||
<Section Name="Static">
|
||||
<Member Name="fbMonMotorProtection" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonPhaseFailure" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonFuse400V" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonFuse24V" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonPressure" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonMainContactorsUH04" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonSafetyContactorsExternOmniflo" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonSafetyContactorsExternReserve" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonFAS1" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonFAS2" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonFPG_Open" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonFPG_Fault" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonFPG_Fire" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonCommFortnaWCS" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbMonCommFortnaWESDeviceHub" Datatype=""FB_Monitoring"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="xAllReadyToStart" Datatype="Bool">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbStateMain" Datatype=""FB_StateMain"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="arESTOPAck" Datatype="Array[0..4] of "FB_ESTOPhandling"" />
|
||||
<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>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.InstanceDB>
|
||||
</Document>
|
||||
@@ -1,68 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Document>
|
||||
<Engineering version="V20" />
|
||||
<SW.Blocks.InstanceDB ID="0">
|
||||
<AttributeList>
|
||||
<InstanceOfName>FB_CallAMRManagement</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_AMRManagement" Datatype=""FB_AMR_Management_V2"" />
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<Name>FB_CallAMRManagement_DB</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.InstanceDB>
|
||||
</Document>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,72 +0,0 @@
|
||||
FUNCTION_BLOCK "FB_PriorityLogic"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR
|
||||
fbPrioTRO404_TRO417 { S7_SetPoint := 'False'} : "Fb_PriorityManagerV2";
|
||||
fbPrioTRO407_TRO409 : "Fb_PriorityManagerV2";
|
||||
fbPrioTRO410_TRO412 : "Fb_PriorityManagerV2";
|
||||
fbPrioTRO413_TRO415 : "Fb_PriorityManagerV2";
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
todo : "udt_InterruptParameter";
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION Priority-Manager
|
||||
REGION Kreuzung TRO404/TRO417
|
||||
#fbPrioTRO404_TRO417(xInQuit := "cTodoFalse",
|
||||
tIn_ReleaseTime1 := T#45s,
|
||||
tIn_ReleaseTime2 := t#15s,
|
||||
xInClearJam := FALSE,
|
||||
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO404.TroOut,
|
||||
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO417.TroOut,
|
||||
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO404.TroIn,
|
||||
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO417.TroIn,
|
||||
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO404_TRO417,
|
||||
udt_InterruptParameter := #todo);
|
||||
END_REGION
|
||||
|
||||
REGION Kreuzung TRO407/TRO409
|
||||
#fbPrioTRO407_TRO409(xInQuit := "cTodoFalse",
|
||||
tIn_ReleaseTime1 := T#10s,
|
||||
tIn_ReleaseTime2 := t#10s,
|
||||
xInClearJam := FALSE,
|
||||
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO409.TroOut,
|
||||
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO407.TroOut,
|
||||
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO409.TroIn,
|
||||
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO407.TroIn,
|
||||
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO407_TRO409,
|
||||
udt_InterruptParameter := #todo);
|
||||
END_REGION
|
||||
|
||||
|
||||
REGION Kreuzung TRO410/TRO412
|
||||
#fbPrioTRO410_TRO412(xInQuit := "cTodoFalse",
|
||||
tIn_ReleaseTime1 := T#10s,
|
||||
tIn_ReleaseTime2 := t#10s,
|
||||
xInClearJam := FALSE,
|
||||
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO412.TroOut,
|
||||
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO410.TroOut,
|
||||
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO412.TroIn,
|
||||
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO410.TroIn,
|
||||
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO410_TRO412,
|
||||
udt_InterruptParameter := #todo);
|
||||
END_REGION
|
||||
|
||||
REGION Kreuzung TRO413/TRO415
|
||||
#fbPrioTRO413_TRO415(xInQuit := "cTodoFalse",
|
||||
tIn_ReleaseTime1 := T#10s,
|
||||
tIn_ReleaseTime2 := t#10s,
|
||||
xInClearJam := FALSE,
|
||||
udtIn_Source1Req := "DB_Prozessdaten".stPriorityManager.udt_TRO415.TroOut,
|
||||
udtIn_Source2Req := "DB_Prozessdaten".stPriorityManager.udt_TRO413.TroOut,
|
||||
udtOut_Source1Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO415.TroIn,
|
||||
udtOut_Source2Resp => "DB_Prozessdaten".stPriorityManager.udt_TRO413.TroIn,
|
||||
udt_PrioParameter := "DB_Prozessdaten".stPriorityParameter.udt_TRO413_TRO415,
|
||||
udt_InterruptParameter := #todo);
|
||||
END_REGION
|
||||
END_REGION ;
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
@@ -1,241 +0,0 @@
|
||||
<?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="stInOutControlUnitCabinet" Datatype=""UDT_MainState"" />
|
||||
</Section>
|
||||
<Section Name="Static">
|
||||
<Member Name="fbCarousel4003" Datatype=""FB_Conveyor"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="arCognexInterface" Datatype="Array[1.."cNoScanner"] of "stCognexInterface"" Remanence="Retain" />
|
||||
<Member Name="stCognexInterfaceDummy" Datatype=""stCognexInterface"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="stBarcodeReaderDummy" Datatype=""UDT_BarcodeReader"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO400" Datatype=""FB_ILS_MTRO_Vario"" />
|
||||
<Member Name="TRO401" Datatype=""FB_ILS_MTRO_Vario"" />
|
||||
<Member Name="TRO402" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO403" Datatype=""FB_ILS_MTRO_Vario"" />
|
||||
<Member Name="TRO404" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO405" Datatype=""FB_ILS_MTRO_1Sep1Swi"" />
|
||||
<Member Name="TRO406" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO407" Datatype=""FB_ILS_MTRO_1Sep1Swi"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO408" Datatype=""FB_ILS_MTRO_Vario"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO409" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO410" Datatype=""FB_ILS_MTRO_1Sep1Swi"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO411" Datatype=""FB_ILS_MTRO_Vario"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO412" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO413" Datatype=""FB_ILS_MTRO_1Sep1Swi"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO414" Datatype=""FB_ILS_MTRO_Vario"" />
|
||||
<Member Name="TRO415" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO416" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO417" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO418" Datatype=""FB_ILS_MTRO_Vario"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO419" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO420" Datatype=""FB_ILS_MTRO_Vario"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="Input" />
|
||||
<Section Name="Output" />
|
||||
<Section Name="InOut" />
|
||||
<Section Name="Static">
|
||||
<Member Name="nArrayMax" Datatype="Int">
|
||||
<StartValue>0</StartValue>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
<Member Name="TRO421" Datatype=""FB_ILS_MTRO_Vario_workStation"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO422" Datatype=""FB_ILS_MTRO_Vario_workStation"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO423" Datatype=""FB_ILS_MTRO_Vario_workStation"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="TRO424" Datatype=""FB_ILS_MTRO_1Sep"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbBarcodeReaderBX4103" Datatype=""FB_BarcodeReaderCognex"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="xStartScan4103" Datatype="Bool" />
|
||||
<Member Name="xHandshakeScanb4103" Datatype="Bool" />
|
||||
<Member Name="nBarcodeReaderBX4103_Result" Datatype="DInt" />
|
||||
<Member Name="fbBarcodeReaderBX4105" Datatype=""FB_BarcodeReaderCognex"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="xStartScan4105" Datatype="Bool" />
|
||||
<Member Name="xHandshakeScan4105" Datatype="Bool" />
|
||||
<Member Name="nBarcodeReaderBX4105_Result" Datatype="DInt" />
|
||||
<Member Name="fbBarcodeReaderBX4107" Datatype=""FB_BarcodeReaderCognex"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="xStartScan4107" Datatype="Bool" />
|
||||
<Member Name="xHandshakeScan4107" Datatype="Bool" />
|
||||
<Member Name="nBarcodeReaderBX4107_Result" Datatype="DInt" />
|
||||
<Member Name="xReInit" Datatype="Bool" />
|
||||
<Member Name="rTrigReInit" Datatype="R_TRIG" Version="1.0" />
|
||||
<Member Name="rTrig_Workstation 1" Datatype="R_TRIG" Version="1.0">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="rTrig_Workstation 2" Datatype="R_TRIG" Version="1.0">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="rTrig_Workstation 3" Datatype="R_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>
|
||||
@@ -1,83 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Document>
|
||||
<Engineering version="V20" />
|
||||
<SW.Blocks.InstanceDB ID="0">
|
||||
<AttributeList>
|
||||
<InstanceOfName>FB_PriorityLogic</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="fbPrioTRO404_TRO417" Datatype=""Fb_PriorityManagerV2"" />
|
||||
<Member Name="fbPrioTRO407_TRO409" Datatype=""Fb_PriorityManagerV2"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbPrioTRO410_TRO412" Datatype=""Fb_PriorityManagerV2"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="fbPrioTRO413_TRO415" Datatype=""Fb_PriorityManagerV2"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<Name>fbPriorityLogic_DB</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.InstanceDB>
|
||||
</Document>
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: f8c50fdf-18cb-49d8-bf63-620c65163568
|
||||
VersionGuid: fa6b40b5-8048-40b8-9a10-460377c0a038
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: bc5be256-7a5d-4ae4-aac8-c04ee556905a
|
||||
VersionGuid: 34059056-04c6-4b56-b5a2-abd5a842540e
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 934482b5-e58d-48b7-95c0-95843c18790d
|
||||
VersionGuid: 4a99e138-618d-44bb-915f-75873870e021
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 909777d2-e8ca-420e-b3b9-f6ae53af035b
|
||||
VersionGuid: b605d468-bdd6-47e4-b7f5-c931cf8b16ae
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: b6f005ff-2e28-4973-a770-caf1f845319a
|
||||
VersionGuid: 5f307c66-66a2-4362-98ee-51660aada83e
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 165134c6-89ff-4736-8f52-770c0346080b
|
||||
VersionGuid: bae66bce-23a3-475d-93bf-65bd96466183
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: f40dd329-3f8e-45dd-898b-24da6076f332
|
||||
VersionGuid: 78bc094a-ba36-410e-bb5c-9dc8345824b9
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: fc79a2eb-31dd-4847-9624-eb660ce10f25
|
||||
VersionGuid: cb3fd588-4989-4a4a-a2a6-5529192cbc90
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 3342ee0b-33ee-4d32-9746-e58e39123b17
|
||||
VersionGuid: 52e3e154-927c-43ca-a9f1-9b6026af3f8a
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: a35365d7-dff1-4ac5-9689-8750d7467e8e
|
||||
VersionGuid: b1b8d1e1-2be4-46f5-8e3b-08cc20f9ff04
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 8024a909-1e3e-4f70-8f13-ffe7958aad3e
|
||||
VersionGuid: 2e5c8d6b-fd81-4364-8c85-7c635e9e9be3
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 2d4f98e2-307a-4d8c-ad18-172d395d7189
|
||||
VersionGuid: da7f5558-c66c-49f0-982d-1c07a6997146
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 888dc75b-b6b6-4900-a239-6d2c867697ea
|
||||
VersionGuid: 46cc0419-40ed-460b-a195-d0a08c48c8de
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 60039f0c-6948-419b-9eb0-5d641af2177b
|
||||
VersionGuid: 8c5f4bbf-9313-4dc8-ad58-26945063526b
|
||||
@@ -1,72 +0,0 @@
|
||||
<?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="nIdx" Datatype="Int" />
|
||||
<Member Name="nIdxMax" Datatype="Int" />
|
||||
<Member Name="DataLogBuffer" Datatype="Array[0.."cNoTempDataLog"] of "DataLogBuffer"" />
|
||||
<Member Name="DataLogBufferEmpty" Datatype=""DataLogBuffer"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>dbDataLogBuffer</Name>
|
||||
<Namespace />
|
||||
<Number>75</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>
|
||||
-623
@@ -1,623 +0,0 @@
|
||||
FUNCTION_BLOCK "FB_TCP_LCOM_TeleHandler"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
xInGetFirst : Bool; // Holt das erste älteste Telegram aus dem Puffer
|
||||
xInReset : Bool; // Setzt den TeleHandler zurück
|
||||
xInSendTele : Bool; // Das gewünschte Telegram wird versendet
|
||||
stInTelegramSend : "UDT_TelegramData_Send"; // Das Telegram, dass versendet werden soll
|
||||
stInTelegramDefinition : "UDT_TelegramDefinition"; // Telegram-Definition
|
||||
stInTcpTypeConfig : "LCom_typeConfig";
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
stOutNewTelegram : "UDT_TelegramData"; // Das erste älteste Telegram, wird mit xInGetFirst geholt
|
||||
xOutConnectionActive : Bool; // Verbindungszustand zum Partner
|
||||
xOutTelegramAvailable : Bool; // Zeigt an, ob ein Telegram zur Verfügung steht
|
||||
xOutError : Bool; // Fehler
|
||||
sOutErrorText : String; // Fehler Text
|
||||
END_VAR
|
||||
|
||||
VAR_IN_OUT
|
||||
xInOutSendTele : Bool;
|
||||
fbInOutSendFIFO : "LGF_FIFO";
|
||||
arFifoSendBuffer : Array[1..100] of "UDT_TelegramData_Send";
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
stTelegramSend { S7_SetPoint := 'False'} : "UDT_TelegramData_Send";
|
||||
xStart : Bool;
|
||||
arTelegramList { S7_SetPoint := 'False'} : Array[0.."TELEGRAM_RECV_LIST_MAX"] of "UDT_TelegramData"; // Telegramliste mit allen aktuellen Telegrammen
|
||||
nTelegramListWrite { S7_SetPoint := 'True'} : DInt := 0; // Index zum Schreiben
|
||||
nTelegramListRead { S7_SetPoint := 'True'} : DInt := 0; // Index zum Lesen
|
||||
fbTeleRecvFifo : "LGF_FIFO";
|
||||
fbTeleSendFifo : "LGF_FIFO";
|
||||
fbTcpComm { S7_SetPoint := 'False'} : "LCom_Communication"; // Aufruf TCP-Baustein // IST MULTIINSTANZ HIER SINNVOLL???
|
||||
stTcpParam : Struct // TCP-Parameter
|
||||
xEnable : Bool; // enables TCP/IP connection
|
||||
xSendRequest : Bool; // triggers a send request
|
||||
xSending : Bool;
|
||||
nRcvLen : UInt; // length of data you want to receive from partner (opt. DBs = 0)
|
||||
nSendLen : UInt; // length of date so send to partner
|
||||
xAdhocMode : Bool; // activate adhoc Mode to receive data with variable len
|
||||
xConnectionEstablished { S7_SetPoint := 'True'} : Bool; // connection to partner established
|
||||
xNdr { S7_SetPoint := 'True'} : Bool; // new data received
|
||||
xDone { S7_SetPoint := 'True'} : Bool; // send request finished successully
|
||||
xBusy : Bool; // block is busy
|
||||
xError : Bool; // error occurred
|
||||
nRcvdLen : UDInt; // length of received data
|
||||
nStatusId : UInt; // error location in block
|
||||
nStatus : Word; // status word from OUC blocks
|
||||
t_TelegramReceiveBuffer : Array[0..#cTelegramLengthReceive] of Byte; // Empfangspuffer
|
||||
t_TelegramSendBuffer : Array[0..#cTelegramLengthSend] of Byte; // Sendepuffer
|
||||
stDiagnosticData : "LCom_typeDiagnostics";
|
||||
stTypeConfig : "LCom_typeConfig";
|
||||
END_STRUCT;
|
||||
stRecvFifoParam : Struct // Recv-Fifo Parameter
|
||||
xEnq : Bool;
|
||||
xDeq : Bool;
|
||||
xReset : Bool;
|
||||
xClear : Bool;
|
||||
nInitItem : String;
|
||||
nMaxElementCount : USInt;
|
||||
sStringIn : String;
|
||||
sStringOut : String;
|
||||
arStringBuffer : Array[1..10] of String;
|
||||
END_STRUCT;
|
||||
stSendFifoParam : Struct // Send-Fifo Parameter
|
||||
xEnq : Bool;
|
||||
xDeq : Bool;
|
||||
xReset : Bool;
|
||||
xClear : Bool;
|
||||
nInitItem : String;
|
||||
nMaxElementCount : USInt;
|
||||
sStringIn : String;
|
||||
sStringOut : String;
|
||||
arStringBuffer : Array[1..100] of String;
|
||||
END_STRUCT;
|
||||
statEdgeGetFirst : Bool; // Flankenmerker GetFirst
|
||||
statEdgeReset : Bool; // Flankenmerker Reset
|
||||
statEdgeSend : Bool; // Flankenmerker Send
|
||||
stTelegramDefinition { S7_SetPoint := 'False'} : "UDT_TelegramDefinition"; // Telegram-Definition
|
||||
stFirstTelegram : "UDT_TelegramData"; // Das erste älteste Telegram
|
||||
sBuildString { S7_SetPoint := 'True'} : String; // String zum Versenden wird hier zusammengestellt
|
||||
nStateConn : Int; // Verbindungszustand TCP
|
||||
sConnectionStatus : String; // Verbindungzustand TCP Text
|
||||
tOnRetryEnable {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Totzeit Verbindung neu aufbauen
|
||||
tOnWatchdogConn {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Überwachungszeit Verbindungsaufbau
|
||||
arAnalyzeBuffer : Array[0..100000] of Byte; // Zwischenpuffer für Parser
|
||||
nAnalyzeBufferLen : UDInt := 0; // Länge des Zwischenpuffer
|
||||
nParseState : Int; // Parse Zustand
|
||||
nLenTelegram : UDInt; // Hilfsvariable Telegrammlänge
|
||||
arRecvdTelegram : Array[0..100000] of Byte; // Das empfangene Telegramm in Bytes
|
||||
xTelegramAvailable { S7_SetPoint := 'True'} : Bool; // Zeigt an, ob ein Telegramm zur Verfügung steht
|
||||
xTestSend : Bool;
|
||||
"Char" : Char;
|
||||
"String" : String[1];
|
||||
fbEventLogSending : "FB_EventLog_Root";
|
||||
fbEventLogReceiving : "FB_EventLog_Root";
|
||||
sLogReceiveMessage : String;
|
||||
sLogRecvSingle : String[1];
|
||||
fTrigSending {InstructionName := 'F_TRIG'; LibVersion := '1.0'} : F_TRIG;
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
tempEdgeGetFirst : Bool;
|
||||
tempEdgeReset : Bool;
|
||||
tempEdgeSend : Bool;
|
||||
i : DInt;
|
||||
x : UDInt;
|
||||
y : UDInt;
|
||||
p : UDInt;
|
||||
n : UDInt;
|
||||
r : UDInt;
|
||||
RetVal_MoveBlk_RecvdTele : Int;
|
||||
RetVal_MoveBlk_Zwischenpuffer : Int;
|
||||
RetVal_MoveBlk_ZwPu : Int;
|
||||
Laenge : DInt;
|
||||
a : UDInt;
|
||||
RetVal_StartMarkerFound : Bool;
|
||||
RetVal_EndMarkerFound : Bool;
|
||||
strLen : UInt;
|
||||
xSuccess_Append_SendFIFO : Bool;
|
||||
xSuccess_GF_SendFIFO : Bool;
|
||||
sInitialEmptyString : String;
|
||||
j : DInt;
|
||||
stInitialTelegram : "UDT_TelegramData_Send";
|
||||
empty : "UDT_TelegramData_Send";
|
||||
xSuccess : Bool;
|
||||
END_VAR
|
||||
|
||||
VAR CONSTANT
|
||||
cTelegramLengthSend : UDInt := 65535; // Länge des Sendepuffer
|
||||
cTelegramLengthReceive : UDInt := 65535; // Länge des Empfangspuffer
|
||||
cCheckSumLength : UDInt := 10; // Checksumme Länge
|
||||
STATE_NOTCONNECTED : Int := 0; // State: nicht Verbunden
|
||||
STATE_CONNECTED : Int := 1; // State: Verbunden
|
||||
STATE_RECONNECT : Int := 4; // State: Neu verbinden
|
||||
E_TeleParseState_START : Int := 0; // ParseState: Warte auf Startmarker
|
||||
E_TeleParseState_DATA : Int := 1; // ParseState: Analyse Daten
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION Edges
|
||||
// Flankenerkennung
|
||||
#tempEdgeGetFirst := #xInGetFirst AND NOT #statEdgeGetFirst;
|
||||
#statEdgeGetFirst := #xInGetFirst;
|
||||
|
||||
#tempEdgeReset := #xInReset AND NOT #statEdgeReset;
|
||||
#statEdgeReset := #xInReset;
|
||||
|
||||
#tempEdgeSend := #xInOutSendTele AND NOT #statEdgeSend;
|
||||
#statEdgeSend := #xInOutSendTele;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Initialize
|
||||
// Eingangswerte werden umkopiert
|
||||
#stTelegramDefinition.sStartMarker := #stInTelegramDefinition.#sStartMarker;
|
||||
#stTelegramDefinition.nStartMarkerLen := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sStartMarker));
|
||||
|
||||
#stTelegramDefinition.sEndMarker := #stInTelegramDefinition.#sEndMarker;
|
||||
#stTelegramDefinition.nEndMarkerLen := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sEndMarker));
|
||||
|
||||
#stTelegramDefinition.bSeparatorByte := #stInTelegramDefinition.#bSeparatorByte;
|
||||
|
||||
#stTelegramDefinition.sStartMarkerSend := #stInTelegramDefinition.#sStartMarkerSend;
|
||||
#stTelegramDefinition.nStartMarkerLenSend := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sStartMarkerSend));
|
||||
|
||||
#stTelegramDefinition.sEndMarkerSend := #stInTelegramDefinition.#sEndMarkerSend;
|
||||
#stTelegramDefinition.nEndMarkerLenSend := INT_TO_UDINT(LEN(#stInTelegramDefinition.#sEndMarkerSend));
|
||||
|
||||
#stTelegramDefinition.nLength := #stInTelegramDefinition.#nLength;
|
||||
|
||||
#stTelegramDefinition.nTelegramIDDataField := #stInTelegramDefinition.#nTelegramIDDataField;
|
||||
#stTelegramDefinition.xTelegramIDIsNumber := #stInTelegramDefinition.#xTelegramIDIsNumber;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Reset
|
||||
// Telehandler rücksetzen
|
||||
IF #tempEdgeReset THEN
|
||||
FOR #i := 0 TO 100000 DO
|
||||
#arAnalyzeBuffer[#i] := 0;
|
||||
END_FOR;
|
||||
|
||||
// #arAnalyzeBuffer := #arEmptyBuffer;
|
||||
#nAnalyzeBufferLen := 0;
|
||||
|
||||
FOR #i := 0 TO "TELEGRAM_RECV_LIST_MAX" DO
|
||||
#arTelegramList[#i].sIDString := '';
|
||||
#arTelegramList[#i].nID := 0;
|
||||
#arTelegramList[#i].xCRC32ValidationResult := FALSE;
|
||||
FOR #j := 1 TO "TELEGRAM_DATA_MAX" DO
|
||||
#arTelegramList[#i].arDataString[#j] := '';
|
||||
END_FOR;
|
||||
#arTelegramList[#i].nDataCount := 0;
|
||||
END_FOR;
|
||||
|
||||
#nTelegramListRead := 0;
|
||||
#nTelegramListWrite := 0;
|
||||
|
||||
// #stFirstTelegram := #stEmptyTelegram;
|
||||
#stFirstTelegram.nDataCount := 0;
|
||||
#stFirstTelegram.nID := 0;
|
||||
#stFirstTelegram.sIDString := '';
|
||||
#stFirstTelegram.xCRC32ValidationResult := FALSE;
|
||||
FOR #i := 1 TO "TELEGRAM_DATA_MAX" DO
|
||||
#stFirstTelegram.arDataString[#i] := '';
|
||||
END_FOR;
|
||||
|
||||
#stSendFifoParam.xClear := TRUE;
|
||||
FOR #i := 0 TO 65535 DO
|
||||
#stTcpParam.t_TelegramSendBuffer[#i] := 0;
|
||||
END_FOR;
|
||||
|
||||
// #stTcpParam.t_TelegramSendBuffer := #arEmptyBuffer;
|
||||
|
||||
ELSE
|
||||
#stSendFifoParam.xClear := FALSE;
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION GetFirst
|
||||
IF #tempEdgeGetFirst THEN // Erstes Telegram holen
|
||||
IF (#nTelegramListRead <> #nTelegramListWrite) THEN // Liste ist nicht leer
|
||||
#stFirstTelegram := #arTelegramList[#nTelegramListRead]; // Erstes Telegram schreiben
|
||||
|
||||
#nTelegramListRead := #nTelegramListRead + 1; // Lese-Index inkrementieren
|
||||
IF (#nTelegramListRead > "TELEGRAM_RECV_LIST_MAX") THEN // Lese-Index rücksetzen wenn Max erreicht
|
||||
#nTelegramListRead := 0;
|
||||
END_IF;
|
||||
|
||||
#xTelegramAvailable := (#nTelegramListRead <> #nTelegramListWrite); // Telegramm verfügbar, wenn Indexe ungleich
|
||||
ELSE
|
||||
// #stFirstTelegram := #stEmptyTelegram;
|
||||
#stFirstTelegram.nDataCount := 0;
|
||||
#stFirstTelegram.nID := 0;
|
||||
#stFirstTelegram.sIDString := '';
|
||||
#stFirstTelegram.xCRC32ValidationResult := FALSE;
|
||||
FOR #i := 1 TO "TELEGRAM_DATA_MAX" DO
|
||||
#stFirstTelegram.arDataString[#i] := '';
|
||||
END_FOR;
|
||||
// TODO Error // Fehler erzeugen, weil z.B. FIFO leer ist
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
|
||||
|
||||
REGION Parse
|
||||
IF (* #xStart *)(#nStateConn = #STATE_CONNECTED) AND #stTcpParam.xNdr THEN // neue Daten?
|
||||
FOR #p := 0 TO #stTcpParam.nRcvdLen - 1 DO // Alle empfangenen Bytes durchgehen
|
||||
#arAnalyzeBuffer[#nAnalyzeBufferLen] := #stTcpParam.t_TelegramReceiveBuffer[#p]; // Byte[p] von Empfangspuffer in Analysepuffer kopieren
|
||||
#nAnalyzeBufferLen := #nAnalyzeBufferLen + 1; // Pufferlänge inkrementieren
|
||||
|
||||
REGION 0000: ParseState = START
|
||||
// ParseState = Start
|
||||
IF #nParseState = #E_TeleParseState_START THEN // Start-Zustand
|
||||
IF #stTelegramDefinition.nStartMarkerLen > 0 THEN // Start Marker definiert? (>0 bedeutet das einer definiert wurde)
|
||||
IF #nAnalyzeBufferLen >= #stTelegramDefinition.nStartMarkerLen THEN // Wenn die Zeichen im Zwischenpuffer noch geringer sind als die Länge des definierten Startmarkers, dann nichts zu tun, nächstes Zeichen holen --> END_IF
|
||||
#RetVal_StartMarkerFound := "FC_ParseCheckForStart"(bInNewData := #stTcpParam.t_TelegramReceiveBuffer[#p], //Funktion überprüft den Startmarker
|
||||
arInBuffer := #arAnalyzeBuffer,
|
||||
nInBufferLen := #nAnalyzeBufferLen,
|
||||
stInTelegramDefinition := #stTelegramDefinition);
|
||||
IF NOT #RetVal_StartMarkerFound THEN
|
||||
#RetVal_MoveBlk_ZwPu := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := #nAnalyzeBufferLen - 1, SRC_INDEX := 1, DEST_INDEX := 0, DEST => #arAnalyzeBuffer);
|
||||
#nAnalyzeBufferLen := #nAnalyzeBufferLen - 1;
|
||||
ELSE
|
||||
#nParseState := #E_TeleParseState_DATA; //StartMarker gefunden, Zustandswechsel zu Daten
|
||||
END_IF;
|
||||
END_IF;
|
||||
ELSE // Es wurde kein StartMarker definiert / ohne Startmarker
|
||||
#nParseState := #E_TeleParseState_DATA;
|
||||
END_IF;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
REGION 0001: ParseState = DATA
|
||||
IF #nParseState = #E_TeleParseState_DATA THEN // Daten-Analyse
|
||||
#RetVal_EndMarkerFound := "FC_ParseCheckForEnd"(bInNewData := #stTcpParam.t_TelegramReceiveBuffer[#p], // Funktion überprüft den Endmarker
|
||||
arInBuffer := #arAnalyzeBuffer,
|
||||
nInBufferLen := #nAnalyzeBufferLen,
|
||||
stInTelegramDefinition := #stTelegramDefinition);
|
||||
|
||||
#RetVal_StartMarkerFound := "FC_ParseCheckForStart"(bInNewData := #stTcpParam.t_TelegramReceiveBuffer[#p], //Funktion überprüft den Startmarker
|
||||
arInBuffer := #arAnalyzeBuffer,
|
||||
nInBufferLen := #nAnalyzeBufferLen,
|
||||
stInTelegramDefinition := #stTelegramDefinition);
|
||||
|
||||
IF #RetVal_EndMarkerFound THEN // End-Marker wurde gefunden
|
||||
// reset RecvdTelegram
|
||||
// #arRecvdTelegram := #arEmptyBuffer;
|
||||
FOR #i := 0 TO 100000 DO
|
||||
#arRecvdTelegram[#i] := 0;
|
||||
END_FOR;
|
||||
|
||||
// Telegram aus Puffer rauskopieren ohne die Marker!
|
||||
#nLenTelegram := (#nAnalyzeBufferLen - (#stTelegramDefinition.nStartMarkerLen + #stTelegramDefinition.nEndMarkerLen));
|
||||
#RetVal_MoveBlk_RecvdTele := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := #nLenTelegram, SRC_INDEX := #stTelegramDefinition.nStartMarkerLen, DEST_INDEX := 0, DEST => #arRecvdTelegram);
|
||||
|
||||
// Zwischenpuffer reset
|
||||
FOR #i := 0 TO 100000 DO
|
||||
#arAnalyzeBuffer[#i] := 0;
|
||||
END_FOR;
|
||||
|
||||
// #arAnalyzeBuffer := #arEmptyBuffer;
|
||||
#nAnalyzeBufferLen := 0;
|
||||
|
||||
//Reset die telegramList-Position wo wir die neuen Daten reinschreiben
|
||||
// #arTelegramList[#nTelegramListWrite] := #stEmptyTelegram;
|
||||
|
||||
#arTelegramList[#nTelegramListWrite].nID := 0;
|
||||
#arTelegramList[#nTelegramListWrite].sIDString := '';
|
||||
#arTelegramList[#nTelegramListWrite].xCRC32ValidationResult := FALSE;
|
||||
FOR #i := 1 TO "TELEGRAM_DATA_MAX" DO
|
||||
#arTelegramList[#nTelegramListWrite].arDataString[#i] := '';
|
||||
END_FOR;
|
||||
#arTelegramList[#nTelegramListWrite].nDataCount := 1;
|
||||
|
||||
IF (#stTelegramDefinition.bSeparatorByte <> 0) THEN // Es gibt ein Separator Byte, ansonsten wird davon ausgegangen, dass es alles am Stück ist
|
||||
#x := 0;
|
||||
FOR #y := 0 TO #nLenTelegram DO // Ganzes Telegram durchgehen
|
||||
IF (#arRecvdTelegram[#y] = #stTelegramDefinition.bSeparatorByte) THEN // Wenn das Byte dem Separator-Byte entspricht
|
||||
#x := 0;
|
||||
#arTelegramList[#nTelegramListWrite].nDataCount := #arTelegramList[#nTelegramListWrite].nDataCount + 1; // DataCount inkrementieren, da neues Datenfeld
|
||||
IF (#arTelegramList[#nTelegramListWrite].nDataCount > "TELEGRAM_DATA_MAX") THEN // Fehler abfangen, wenn zu viele Datenfelder im Telegram sind
|
||||
// TODO Error erzeugen
|
||||
EXIT;
|
||||
END_IF;
|
||||
ELSE
|
||||
IF (#x <= "TELEGRAM_DATA_FIELD_MAX") THEN
|
||||
#String := CHAR_TO_STRING((BYTE_TO_CHAR(#arRecvdTelegram[#y])));
|
||||
#arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount] := CONCAT(IN1 := #arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount], IN2 := #String);
|
||||
// #arData_Test[#arTelegramList[#nTelegramListWrite].nDataCount, #x + 1] := #arRecvdTelegram[#y]; // Byte in 2D-Array of Byte schreiben
|
||||
#x := #x + 1;
|
||||
END_IF;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
ELSE // Wenn kein Separator-Byte definiert wurde, dann das Telegram an die erste Position schreiben
|
||||
FOR #a := 0 TO #nLenTelegram DO
|
||||
// #arData_Test[1, #a + 1] := #arRecvdTelegram[#a];
|
||||
#String := CHAR_TO_STRING((BYTE_TO_CHAR(#arRecvdTelegram[#a])));
|
||||
#arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount] := CONCAT(IN1 := #arTelegramList[#nTelegramListWrite].arDataString[#arTelegramList[#nTelegramListWrite].nDataCount], IN2 := #String);
|
||||
END_FOR;
|
||||
END_IF;
|
||||
|
||||
// convert each byte field into a string
|
||||
(* FOR #n := 1 TO DINT_TO_UDINT(#arTelegramList[#nTelegramListWrite].nDataCount) DO //1 TO 64
|
||||
Chars_TO_Strg(Chars := #arData_Test[#n],
|
||||
pChars := 0,
|
||||
Cnt := "TELEGRAM_DATA_FIELD_MAX",
|
||||
Strg => #arTelegramList[#nTelegramListWrite].arDataString[#n]);
|
||||
END_FOR; *)
|
||||
|
||||
// increment write pointer to telegram data ring buffer:
|
||||
|
||||
#sLogReceiveMessage := '';
|
||||
FOR #a := 0 TO #nLenTelegram DO
|
||||
#sLogRecvSingle := CHAR_TO_STRING((BYTE_TO_CHAR(#arRecvdTelegram[#a])));
|
||||
#sLogReceiveMessage := CONCAT(IN1 := #sLogReceiveMessage, IN2 := #sLogRecvSingle);
|
||||
END_FOR;
|
||||
|
||||
|
||||
#fbEventLogReceiving.sInMessage := #sLogReceiveMessage;
|
||||
(* FOR #j := 1 TO #arTelegramList[#nTelegramListWrite].nDataCount DO
|
||||
#fbEventLogReceiving.sInMessage := CONCAT_STRING(IN1:= #fbEventLogReceiving.sInMessage, IN2:= '<GS>',IN3:=#arTelegramList[#nTelegramListWrite].arDataString[#j]);
|
||||
END_FOR; *)
|
||||
#fbEventLogReceiving.xInTrigger := 1;
|
||||
|
||||
#nTelegramListWrite := #nTelegramListWrite + 1;
|
||||
IF (#nTelegramListWrite > "TELEGRAM_RECV_LIST_MAX") THEN // Wenn Maximum an Telegrammen erreicht, dann Index zurücksetzen, ältestes wird überschrieben
|
||||
#nTelegramListWrite := 0;
|
||||
END_IF;
|
||||
|
||||
#xTelegramAvailable := TRUE; // Info rausgeben
|
||||
|
||||
#nParseState := #E_TeleParseState_START; // Zustandswechsel
|
||||
|
||||
END_IF;
|
||||
ELSIF #RetVal_StartMarkerFound AND (#nAnalyzeBufferLen > #stTelegramDefinition.nStartMarkerLen) THEN
|
||||
// #Laenge := #nAnalyzeBufferLen - #stTelegramDefinition.nStartMarkerLen; // 8192 - ...
|
||||
#RetVal_MoveBlk_Zwischenpuffer := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := ((#cTelegramLengthReceive + 1) - #nAnalyzeBufferLen - #stTelegramDefinition.nStartMarkerLen), SRC_INDEX := UDINT_TO_DINT(#nAnalyzeBufferLen - #stTelegramDefinition.nStartMarkerLen), DEST_INDEX := 0, DEST => #arAnalyzeBuffer);
|
||||
#nAnalyzeBufferLen := #stTelegramDefinition.nStartMarkerLen;
|
||||
ELSE
|
||||
IF (UDINT_TO_DINT(#stTelegramDefinition.nLength) > 0 AND
|
||||
#nAnalyzeBufferLen >= UDINT_TO_DINT(#stTelegramDefinition.nLength)) THEN
|
||||
|
||||
#RetVal_MoveBlk_Zwischenpuffer := MOVE_BLK_VARIANT(SRC := #arAnalyzeBuffer, COUNT := #cTelegramLengthReceive + 1, SRC_INDEX := 1, DEST_INDEX := 0, DEST => #arAnalyzeBuffer);
|
||||
|
||||
#nAnalyzeBufferLen := #nAnalyzeBufferLen - 1;
|
||||
|
||||
END_IF;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
END_FOR;
|
||||
FOR #i := 0 TO 65535 DO
|
||||
#stTcpParam.t_TelegramReceiveBuffer[#i] := 0;
|
||||
END_FOR;
|
||||
// #stTcpParam.t_TelegramReceiveBuffer := #temp_TelegramReceiveBuffer;
|
||||
END_IF;
|
||||
#xStart := FALSE;
|
||||
|
||||
END_REGION
|
||||
|
||||
(* REGION Sending
|
||||
IF #tempEdgeSend THEN
|
||||
REGION Prepare new Telegram and add to Send-FIFO
|
||||
// add start string
|
||||
IF (#stTelegramDefinition.sStartMarkerSend <> '') THEN
|
||||
#sBuildString := #stTelegramDefinition.sStartMarkerSend;
|
||||
ELSE
|
||||
#sBuildString[1] := '0';
|
||||
END_IF;
|
||||
|
||||
// add data fields:
|
||||
FOR #i := 1 TO #stInTelegramSend.nDataCount DO
|
||||
IF (#i > 1) THEN
|
||||
#sBuildString := CONCAT(IN1 := #sBuildString, IN2 := CHAR_TO_STRING(#stTelegramDefinition.bSeparatorByte));
|
||||
END_IF;
|
||||
|
||||
IF (#stInTelegramSend.arDataString[#i] <> '') THEN
|
||||
#sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stInTelegramSend.arDataString[#i]);
|
||||
END_IF;
|
||||
END_FOR;
|
||||
|
||||
// add end string:
|
||||
IF (#stTelegramDefinition.sEndMarkerSend <> '') THEN
|
||||
#sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stTelegramDefinition.sEndMarkerSend);
|
||||
END_IF;
|
||||
|
||||
REGION SendStr
|
||||
// hier dann sBuildString mit Enqueue in SendFIFO schieben zum Versenden
|
||||
IF NOT #fbTeleSendFifo.isFull THEN
|
||||
// #stSendFifoParam.sStringIn := #sBuildString;
|
||||
"FC_FIFO_Append"(DataIn := #sBuildString,
|
||||
InitialItem := #sInitialEmptyString,
|
||||
MaxNo := 100,
|
||||
Success => #xSuccess_Append_SendFIFO,
|
||||
fifoBuffer := #fbTeleSendFifo,
|
||||
buffer := #stSendFifoParam.arStringBuffer);
|
||||
// #stSendFifoParam.xEnq := TRUE;
|
||||
#xInOutSendTele := FALSE;
|
||||
#fbEventLogSending.sInMessage := #sBuildString;
|
||||
#fbEventLogSending.xInTrigger := 1;
|
||||
ELSE
|
||||
// Error Todo
|
||||
;
|
||||
END_IF;
|
||||
END_REGION ;
|
||||
END_REGION
|
||||
END_IF;
|
||||
END_REGION *)
|
||||
|
||||
REGION Send Telegram
|
||||
IF NOT #fbInOutSendFIFO.isEmpty AND // Es gibt etwas zum Senden?
|
||||
(#nStateConn = #STATE_CONNECTED) AND // Verbindung zum Partner aufgebaut
|
||||
//NOT #stSendFifoParam.xDeq AND // FIFO nicht busy
|
||||
NOT #stTcpParam.xSendRequest AND // Aktuell kein aktiver Sendeauftrag
|
||||
NOT #stTcpParam.xSending
|
||||
THEN
|
||||
"FC_FIFO_GetFirst"(xInInitialItem := #stInitialTelegram,
|
||||
nInMaxNo := 100,
|
||||
xOutSuccess => #xSuccess_GF_SendFIFO,
|
||||
xOutData => #stTelegramSend,
|
||||
fifoBuffer := #fbInOutSendFIFO,
|
||||
buffer := #arFifoSendBuffer);
|
||||
END_IF;
|
||||
|
||||
IF #xSuccess_GF_SendFIFO THEN // Wenn erstes Telegram herausgeholt
|
||||
|
||||
REGION Log
|
||||
IF "FB_CommunicationLogger_DB".fbTeleHandler.xOutConnectionActive AND NOT #xInSendTele THEN
|
||||
|
||||
// "DB_CommunciationParametersLogger".xIsLogger := TRUE;
|
||||
|
||||
"FC_FIFO_Append"(DataIn := #stTelegramSend,
|
||||
InitialItem := #empty,
|
||||
MaxNo := 100,
|
||||
Success => #xSuccess,
|
||||
fifoBuffer := "DB_LGF_FIFO_CommLogger",
|
||||
buffer := "DB_Buffer_CommunicationLogger".BUFFER);
|
||||
;
|
||||
END_IF;
|
||||
|
||||
END_REGION ;
|
||||
|
||||
REGION Prepare Telegram for sending
|
||||
// add start string
|
||||
IF (#stTelegramDefinition.sStartMarkerSend <> '') THEN
|
||||
#sBuildString := #stTelegramDefinition.sStartMarkerSend;
|
||||
ELSE
|
||||
#sBuildString[1] := '0';
|
||||
END_IF;
|
||||
|
||||
// add data fields:
|
||||
FOR #i := 1 TO #stTelegramSend.nDataCount DO
|
||||
IF (#i > 1) THEN
|
||||
#sBuildString := CONCAT(IN1 := #sBuildString, IN2 := CHAR_TO_STRING(#stTelegramDefinition.bSeparatorByte));
|
||||
END_IF;
|
||||
|
||||
IF (#stTelegramSend.arDataString[#i] <> '') THEN
|
||||
#sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stTelegramSend.arDataString[#i]);
|
||||
END_IF;
|
||||
END_FOR;
|
||||
|
||||
// add end string:
|
||||
IF (#stTelegramDefinition.sEndMarkerSend <> '') THEN
|
||||
#sBuildString := CONCAT(IN1 := #sBuildString, IN2 := #stTelegramDefinition.sEndMarkerSend);
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
#strLen := INT_TO_UINT(LEN(#sBuildString)); // Telegramlänge ermitteln
|
||||
Strg_TO_Chars(Strg := #sBuildString, // Telegramstring in Array of Byte umwandeln
|
||||
pChars := 0,
|
||||
Cnt => #strLen,
|
||||
Chars := #stTcpParam.t_TelegramSendBuffer);
|
||||
#stTcpParam.nSendLen := #strLen; // Telegramlänge übergeben
|
||||
#stTcpParam.xSendRequest := TRUE; // Sendeauftrag starten
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION TCP-Verbindungszustand
|
||||
CASE #nStateConn OF
|
||||
|
||||
#STATE_RECONNECT:
|
||||
|
||||
REGION STATE: RECONNECT
|
||||
// Status
|
||||
#sConnectionStatus := 'RECONNECTING';
|
||||
|
||||
// Static
|
||||
#stTcpParam.xSendRequest := FALSE;
|
||||
#stTcpParam.xEnable := FALSE; // Disable connection
|
||||
|
||||
// Transition
|
||||
IF #tOnRetryEnable.Q THEN // Totzeit
|
||||
#nStateConn := #STATE_NOTCONNECTED;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
#STATE_NOTCONNECTED:
|
||||
|
||||
REGION STATE: NOT CONNECTED
|
||||
// Status
|
||||
#sConnectionStatus := 'NOT CONNECTED';
|
||||
|
||||
// Static
|
||||
#stTcpParam.xSendRequest := FALSE;
|
||||
#stTcpParam.xEnable := TRUE; // Verbindungsaufbau aktivieren / TCP-Baustein aktivieren
|
||||
|
||||
// Transition
|
||||
IF #stTcpParam.xConnectionEstablished THEN // Erfolgreich verbunden mit Partner?
|
||||
#nStateConn := #STATE_CONNECTED;
|
||||
ELSIF #tOnWatchdogConn.Q THEN // Nach Timeout wird der Verbindungsaufbau neu getriggert
|
||||
#nStateConn := #STATE_RECONNECT;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
#STATE_CONNECTED:
|
||||
|
||||
REGION STATE: CONNECTED
|
||||
#sConnectionStatus := 'CONNECTED';
|
||||
|
||||
IF NOT #stTcpParam.xConnectionEstablished THEN // Verbindung verloren?
|
||||
#nStateConn := #STATE_RECONNECT; // Neue Verbindung starten
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
END_CASE;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION TCP-Communication: Server
|
||||
#fbTcpComm(configuration := #stInTcpTypeConfig,
|
||||
enable := #stTcpParam.xEnable,
|
||||
send := #stTcpParam.xSendRequest,
|
||||
sendDataLength := #stTcpParam.nSendLen,
|
||||
connected => #stTcpParam.xConnectionEstablished,
|
||||
sending => #stTcpParam.xSending,
|
||||
dataReceived => #stTcpParam.xNdr,
|
||||
receivedDataLength => #stTcpParam.nRcvdLen,
|
||||
busy => #stTcpParam.xBusy,
|
||||
error => #stTcpParam.xError,
|
||||
status => #stTcpParam.nStatus,
|
||||
sendBuffer := #stTcpParam.t_TelegramSendBuffer,
|
||||
receiveBuffer := #stTcpParam.t_TelegramReceiveBuffer,
|
||||
diagnostics := #stTcpParam.stDiagnosticData);
|
||||
|
||||
#fTrigSending(CLK:= #stTcpParam.xSending);
|
||||
|
||||
IF #fTrigSending.Q THEN
|
||||
#stTcpParam.xSendRequest := FALSE;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
REGION Timer
|
||||
#tOnRetryEnable(IN := #nStateConn = #STATE_RECONNECT,
|
||||
PT := t#50ms);
|
||||
|
||||
#tOnWatchdogConn(IN := #nStateConn = #STATE_NOTCONNECTED,
|
||||
PT := t#15s);
|
||||
END_REGION
|
||||
|
||||
REGION Outputs
|
||||
#xOutTelegramAvailable := #xTelegramAvailable;
|
||||
#stOutNewTelegram := #stFirstTelegram;
|
||||
#xOutConnectionActive := (#nStateConn = #STATE_CONNECTED);
|
||||
END_REGION
|
||||
|
||||
REGION Logging
|
||||
#fbEventLogSending(sInInstance := CONCAT(IN1 := ''(* #stInTcpParameters.sInInstance *), IN2 := '-Sending'),
|
||||
nInLogLevel := 0(* "E_LogLevel.DEBUG" *));
|
||||
#fbEventLogSending.xInTrigger := 0;
|
||||
#fbEventLogReceiving(sInInstance := CONCAT(IN1 := ''(* #stInTcpParameters.sInInstance *), IN2 := '-Receiving'),
|
||||
nInLogLevel := 0(* "E_LogLevel.DEBUG" *));
|
||||
#fbEventLogReceiving.xInTrigger := 0;
|
||||
END_REGION
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 507f060d-3ada-4f0d-be55-ad0a573f4197
|
||||
VersionGuid: 0eb2e25d-8a3e-4933-a967-d5e3f0e48bb4
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: ec1c1f34-0a2d-4751-84a8-f9c4ee84884b
|
||||
VersionGuid: 4adee4de-c703-4794-9700-da57684c5c9f
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: ecdcb816-c5f6-4500-b05f-1b5b1f79ef0b
|
||||
VersionGuid: 85d69f29-f857-4428-90a9-872b80e36573
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: e790056b-d8d1-47bb-bce9-c6e26c157eec
|
||||
VersionGuid: 36b9f032-4747-42aa-b87f-9637f121af9c
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 7462bbc8-2811-4b0d-bdf1-031a6aa286ee
|
||||
VersionGuid: c0b69439-324f-4624-bfa7-02fc724e52f7
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 9058dc9e-b9e7-4405-8e1d-e48b9273bd5f
|
||||
VersionGuid: 592d2c58-e2fc-4ba6-a0b2-d15ffd39706c
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: bd77b34d-de4a-4cf4-b3fa-6af27ab4f306
|
||||
VersionGuid: bde5a261-573a-4feb-b079-cd5359d14c09
|
||||
@@ -1,631 +0,0 @@
|
||||
FUNCTION "FC_CARR_GLOB_CORRECTION" : Void
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
xInStart : Bool; // Ausführen der Funktion
|
||||
nInBarcodeScan : DInt; // Gescannter Barcode
|
||||
nInStation : Int; // Scanner-Nummer für Unterscheidungen
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
arOutEventLogInfo : Array[0..1] of "stEventCorrectionInfo"; // Informationen für Log-Baustein
|
||||
END_VAR
|
||||
|
||||
VAR_IN_OUT
|
||||
InOutCarrierExpect : "stCarrier"; // Erwarteter Carrier in ScannerStation
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
tmpPartJam : "stCarrier"; // Zwischengespeicherter Carrier, gefunden in Jambereich
|
||||
tmpPartHyperJam : "stCarrier"; // Zwischengespeicherter Carrier, gefunden in JHyperjam
|
||||
tmpDummy : "stCarrier"; // Leerer Dummy mit speziellem Barcode
|
||||
tmpEmpty : "stCarrier"; // Leerer Carrier
|
||||
nCounter : DInt;
|
||||
i : Int; // Schleifenindex
|
||||
tempStatus : Int;
|
||||
xResult : Bool;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
(*************************************************************************************
|
||||
Durchsucht alle Jam- und Lagerberieche nach den Daten die mit dem gescannten Barcode verbunden sind falls am Scanner ein anderes Teil erwartet wird.
|
||||
-Suche beginnt immer im Hyperjam.
|
||||
-Wenn fündig im Hyperjam, dann wird erwartetes Teil durch das Teil vom Hyperjam ersetzt, dafür kommt erwartetes Teil in Hyperjam.
|
||||
-Ansonsten wenn fündig in Jambereichen, dann werden Daten aus dem Jambereich übernommen und diese durch Dummy ersetzt
|
||||
*************************************************************************************)
|
||||
|
||||
#tmpDummy.nBarcode := 1;
|
||||
#tmpDummy.bStatus.%X0 := TRUE;
|
||||
|
||||
IF #xInStart AND #nInBarcodeScan > 0 THEN //Barcode muss einen Wert haben
|
||||
REGION Hyperjam
|
||||
FOR #i := 1 TO "cHyperJam" DO
|
||||
IF "DB_HyperJam".stHyperJam.arCarrier[#i].nBarcode = #nInBarcodeScan THEN //Merke gefundenes Teil und lösche ursprüngliches
|
||||
#tmpPartHyperJam := "DB_HyperJam".stHyperJam.arCarrier[#i];
|
||||
"DB_HyperJam".stHyperJam.arCarrier[#i] := #tmpEmpty;
|
||||
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 0;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'HyperJam';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartHyperJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4000_1
|
||||
FOR #i := 1 TO "cJam4000_1" DO
|
||||
IF "DB_JamArea4000".stJam4000_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4000".stJam4000_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4000".stJam4000_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4000_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4000".stJam4000_1.arCarrier);
|
||||
"DB_JamArea4000".stJam4000_1.arCarrier["cJam4000_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4001_1
|
||||
FOR #i := 1 TO "cJam4001_1" DO
|
||||
IF "DB_JamArea4001".stJam4001_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4001".stJam4001_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4001".stJam4001_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4001_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4001".stJam4001_1.arCarrier);
|
||||
"DB_JamArea4001".stJam4001_1.arCarrier["cJam4001_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4001_2
|
||||
FOR #i := 1 TO "cJam4001_2" DO
|
||||
IF "DB_JamArea4001".stJam4001_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4001".stJam4001_2.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4001".stJam4001_2.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4001_2" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4001".stJam4001_2.arCarrier);
|
||||
"DB_JamArea4001".stJam4001_2.arCarrier["cJam4001_2"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4002_1
|
||||
FOR #i := 1 TO "cJam4002_1" DO
|
||||
IF "DB_JamArea4002".stJam4002_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4002".stJam4002_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4002".stJam4002_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4002_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4002".stJam4002_1.arCarrier);
|
||||
"DB_JamArea4002".stJam4002_1.arCarrier["cJam4002_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4002_2
|
||||
FOR #i := 1 TO "cJam4002_2" DO
|
||||
IF "DB_JamArea4002".stJam4002_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4002".stJam4002_2.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4002".stJam4002_2.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4002_2" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4002".stJam4002_2.arCarrier);
|
||||
"DB_JamArea4002".stJam4002_2.arCarrier["cJam4002_2"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4003_1
|
||||
FOR #i := 1 TO "cJam4003_1" DO
|
||||
IF "DB_JamArea4003".stJam4003_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4003".stJam4003_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4003_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4003".stJam4003_1.arCarrier);
|
||||
"DB_JamArea4003".stJam4003_1.arCarrier["cJam4003_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4003_2
|
||||
FOR #i := 1 TO "cJam4003_2" DO
|
||||
IF "DB_JamArea4003".stJam4003_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4003".stJam4003_2.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_2.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4003_2" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4003".stJam4003_2.arCarrier);
|
||||
"DB_JamArea4003".stJam4003_2.arCarrier["cJam4003_2"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4003_3
|
||||
FOR #i := 1 TO "cJam4003_3" DO
|
||||
IF "DB_JamArea4003".stJam4003_3.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4003".stJam4003_3.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_3.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4003_3" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4003".stJam4003_3.arCarrier);
|
||||
"DB_JamArea4003".stJam4003_3.arCarrier["cJam4003_3"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4003_4
|
||||
FOR #i := 1 TO "cJam4003_4" DO
|
||||
IF "DB_JamArea4003".stJam4003_4.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4003".stJam4003_4.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_4.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4003_4" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4003".stJam4003_4.arCarrier);
|
||||
"DB_JamArea4003".stJam4003_4.arCarrier["cJam4003_4"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4003_5
|
||||
FOR #i := 1 TO "cJam4003_5" DO
|
||||
IF "DB_JamArea4003".stJam4003_5.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4003".stJam4003_5.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_5.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4003_5" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4003".stJam4003_5.arCarrier);
|
||||
"DB_JamArea4003".stJam4003_5.arCarrier["cJam4003_5"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4003_6
|
||||
FOR #i := 1 TO "cJam4003_6" DO
|
||||
IF "DB_JamArea4003".stJam4003_6.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4003".stJam4003_6.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_6.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4003_6" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4003".stJam4003_6.arCarrier);
|
||||
"DB_JamArea4003".stJam4003_6.arCarrier["cJam4003_6"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4003_7
|
||||
FOR #i := 1 TO "cJam4003_7" DO
|
||||
IF "DB_JamArea4003".stJam4003_7.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4003".stJam4003_7.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4003".stJam4003_7.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4003_7" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4003".stJam4003_7.arCarrier);
|
||||
"DB_JamArea4003".stJam4003_7.arCarrier["cJam4003_7"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4004_1
|
||||
FOR #i := 1 TO "cJam4004_1" DO
|
||||
IF "DB_JamArea4004".stJam4004_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4004".stJam4004_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4004".stJam4004_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4004_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4004".stJam4004_1.arCarrier);
|
||||
"DB_JamArea4004".stJam4004_1.arCarrier["cJam4004_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4005_1
|
||||
FOR #i := 1 TO "cJam4005_1" DO
|
||||
IF "DB_JamArea4005".stJam4005_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4005".stJam4005_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4005".stJam4005_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4005_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4005".stJam4005_1.arCarrier);
|
||||
"DB_JamArea4005".stJam4005_1.arCarrier["cJam4005_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4006_1
|
||||
FOR #i := 1 TO "cJam4006_1" DO
|
||||
IF "DB_JamArea4006".stJam4006_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4006".stJam4006_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4006".stJam4006_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4006_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4006".stJam4006_1.arCarrier);
|
||||
"DB_JamArea4006".stJam4006_1.arCarrier["cJam4006_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4007_1
|
||||
FOR #i := 1 TO "cJam4007_1" DO
|
||||
IF "DB_JamArea4007".stJam4007_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4007".stJam4007_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4007".stJam4007_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4007_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4007".stJam4007_1.arCarrier);
|
||||
"DB_JamArea4007".stJam4007_1.arCarrier["cJam4007_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4008_1
|
||||
FOR #i := 1 TO "cJam4008_1" DO
|
||||
IF "DB_JamArea4008".stJam4008_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4008".stJam4008_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4008".stJam4008_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4008_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4008".stJam4008_1.arCarrier);
|
||||
"DB_JamArea4008".stJam4008_1.arCarrier["cJam4008_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4009_1
|
||||
FOR #i := 1 TO "cJam4009_1" DO
|
||||
IF "DB_JamArea4009".stJam4009_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4009".stJam4009_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4009".stJam4009_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4009_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4009".stJam4009_1.arCarrier);
|
||||
"DB_JamArea4009".stJam4009_1.arCarrier["cJam4009_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4010_1
|
||||
FOR #i := 1 TO "cJam4010_1" DO
|
||||
IF "DB_JamArea4010".stJam4010_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4010".stJam4010_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4010".stJam4010_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4010_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4010".stJam4010_1.arCarrier);
|
||||
"DB_JamArea4010".stJam4010_1.arCarrier["cJam4010_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
REGION Jam Area 4010_2
|
||||
FOR #i := 1 TO "cJam4010_2" DO
|
||||
IF "DB_JamArea4010".stJam4010_2.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4010".stJam4010_2.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4010".stJam4010_2.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4010_2" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4010".stJam4010_2.arCarrier);
|
||||
"DB_JamArea4010".stJam4010_2.arCarrier["cJam4010_2"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Jam Area 4011_1
|
||||
FOR #i := 1 TO "cJam4011_1" DO
|
||||
IF "DB_JamArea4011".stJam4011_1.arCarrier[#i].nBarcode = #nInBarcodeScan (* AND #InOutCarrierExpect.nBarcode = 0 *)THEN
|
||||
#tmpPartJam := "DB_JamArea4011".stJam4011_1.arCarrier[#i];
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_JamArea4011".stJam4011_1.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cJam4011_1" - #i), //lösche Teil und rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_JamArea4011".stJam4011_1.arCarrier);
|
||||
"DB_JamArea4011".stJam4011_1.arCarrier["cJam4011_1"] := #tmpEmpty;//lösche letzte Position
|
||||
REGION Event Log
|
||||
#arOutEventLogInfo[0].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[0].nCorrectionType := 1;
|
||||
#arOutEventLogInfo[0].sBarcode := DINT_TO_STRING(#nInBarcodeScan);
|
||||
#arOutEventLogInfo[0].sLoc := 'JamPin';
|
||||
#arOutEventLogInfo[0].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[0].sDest := INT_TO_STRING(#tmpPartJam.nDestination);
|
||||
END_REGION
|
||||
GOTO END;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
|
||||
END:
|
||||
;
|
||||
REGION Handling
|
||||
IF #tmpPartHyperJam.nBarcode <> 0 THEN //Gefundenes Teil aus Hyperjam
|
||||
REGION Teil aus Hyperjam
|
||||
IF #InOutCarrierExpect.nBarcode > 10000 THEN //Wenn erwarteter Carrier einen Barcode hat, füge ihn am Ende des Hyperjams ein
|
||||
"FC_TSHR_AddAtEnd"(stInTrolley := #InOutCarrierExpect,
|
||||
nOutCounter => #nCounter,
|
||||
xOutResult => #xResult,
|
||||
arTSHR := "DB_HyperJam".stHyperJam.arCarrier);
|
||||
|
||||
REGION Event log
|
||||
|
||||
#arOutEventLogInfo[1].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[1].nCorrectionType := 3;
|
||||
#arOutEventLogInfo[1].sBarcode := DINT_TO_STRING(#InOutCarrierExpect.nBarcode);
|
||||
#arOutEventLogInfo[1].sLoc := 'HyperJ';
|
||||
#arOutEventLogInfo[1].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[1].sDest := INT_TO_STRING(#InOutCarrierExpect.nDestination);
|
||||
|
||||
END_REGION
|
||||
|
||||
END_IF;
|
||||
FOR #i := 1 TO "cHyperJam" DO //Durchsuche Hyperjam nach Lücke
|
||||
IF NOT "DB_HyperJam".stHyperJam.arCarrier[#i].bStatus.%X0 THEN
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_HyperJam".stHyperJam.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cHyperJam" - #i), //Wo die Lücke im Hyperjam entstanden ist, rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_HyperJam".stHyperJam.arCarrier);
|
||||
"DB_HyperJam".stHyperJam.arCarrier["cHyperJam"] := #tmpEmpty; //lösche letztes Teil
|
||||
EXIT;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
#InOutCarrierExpect := #tmpPartHyperJam; //Gib gefundenes Teil aus
|
||||
END_REGION
|
||||
ELSIF #tmpPartJam.nBarcode <> 0 THEN //Gefundenes Teil aus Jambereich
|
||||
REGION Teil aus Jam
|
||||
IF #InOutCarrierExpect.nBarcode > 10000 THEN //Wenn erwarteter Carrier einen Barcode hat, füge ihn am Ende des Hyperjams ein
|
||||
"FC_TSHR_AddAtEnd"(stInTrolley := #InOutCarrierExpect,
|
||||
nOutCounter => #nCounter,
|
||||
xOutResult => #xResult,
|
||||
arTSHR := "DB_HyperJam".stHyperJam.arCarrier);
|
||||
|
||||
REGION Event log
|
||||
|
||||
#arOutEventLogInfo[1].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[1].nCorrectionType := 3;
|
||||
#arOutEventLogInfo[1].sBarcode := DINT_TO_STRING(#InOutCarrierExpect.nBarcode);
|
||||
#arOutEventLogInfo[1].sLoc := 'HyperJ';
|
||||
#arOutEventLogInfo[1].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[1].sDest := INT_TO_STRING(#InOutCarrierExpect.nDestination);
|
||||
|
||||
END_REGION
|
||||
|
||||
END_IF;
|
||||
FOR #i := 1 TO "cHyperJam" DO //Durchsuche Hyperjam nach Lücke
|
||||
IF NOT "DB_HyperJam".stHyperJam.arCarrier[#i].bStatus.%X0 THEN
|
||||
#tempStatus := MOVE_BLK_VARIANT(SRC := "DB_HyperJam".stHyperJam.arCarrier,
|
||||
COUNT := INT_TO_UDINT("cHyperJam" - #i), //Wo die Lücke im Hyperjam entstanden ist, rücke Rest nach
|
||||
SRC_INDEX := #i,
|
||||
DEST_INDEX := #i - 1,
|
||||
DEST => "DB_HyperJam".stHyperJam.arCarrier);
|
||||
"DB_HyperJam".stHyperJam.arCarrier["cHyperJam"] := #tmpEmpty; //lösche letztes Teil
|
||||
EXIT;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
#InOutCarrierExpect := #tmpPartJam; //Gib gefundenes Teil aus
|
||||
END_REGION
|
||||
ELSE
|
||||
//Teil bei Suche nicht gefunden, aber das erwartete soll trotzdem in den Hyperjam kommen und außerhalb des FC dann durch den gescannten ersetzt werden
|
||||
IF #InOutCarrierExpect.nBarcode > 10000 THEN //Wenn erwarteter Carrier einen gültigen Barcode hat, füge ihn am Ende des Hyperjams ein
|
||||
"FC_TSHR_AddAtEnd"(stInTrolley := #InOutCarrierExpect,
|
||||
nOutCounter => #nCounter,
|
||||
xOutResult => #xResult,
|
||||
arTSHR := "DB_HyperJam".stHyperJam.arCarrier);
|
||||
//Es gibt keine Lücke in der Liste die man schließen muss
|
||||
REGION Event log
|
||||
|
||||
#arOutEventLogInfo[1].xTrigger := TRUE;
|
||||
#arOutEventLogInfo[1].nCorrectionType := 3;
|
||||
#arOutEventLogInfo[1].sBarcode := DINT_TO_STRING(#InOutCarrierExpect.nBarcode);
|
||||
#arOutEventLogInfo[1].sLoc := 'HyperJ';
|
||||
#arOutEventLogInfo[1].sPos := INT_TO_STRING(#i);
|
||||
#arOutEventLogInfo[1].sDest := INT_TO_STRING(#InOutCarrierExpect.nDestination);
|
||||
|
||||
END_REGION
|
||||
|
||||
END_IF;
|
||||
|
||||
// #xOutNotFound := TRUE;
|
||||
#InOutCarrierExpect.nDestination := 0;
|
||||
#InOutCarrierExpect.nBarcode := #nInBarcodeScan; //Hier werden neue Carrier im System angelegt
|
||||
#InOutCarrierExpect.bStatus.%X0 := TRUE;
|
||||
END_IF;
|
||||
END_REGION
|
||||
END_IF;
|
||||
END_FUNCTION
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
FUNCTION "FC_Direction" : Void
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
nInSwitchNo : USInt;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
nOutDirection : USInt; // Ziel für Switch-Baustein
|
||||
END_VAR
|
||||
|
||||
VAR_IN_OUT
|
||||
InOutCarrier : "stCarrier";
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
// Destination vom Carrier, immer unterschiedlich je nach Anlagenbereich, soll übertragen werden auf universale Switch Direction (1-4)
|
||||
|
||||
// TEST TEST TEST
|
||||
REGION Vergabe Direction
|
||||
CASE #nInSwitchNo OF
|
||||
"cSwi405.1":
|
||||
REGION Switch 405.1
|
||||
IF (#InOutCarrier.nDestination = "cDestLeaveAmr") THEN // Verlasse AMR (empty carrier)
|
||||
#nOutDirection := 1; // LINKS, 1->3
|
||||
ELSE // Im AMR bleiben, alle anderen Fälle + Fallbackstrategie (?)
|
||||
#nOutDirection := 2; // RECHTS, 1->4
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
"cSwi407.1":
|
||||
REGION Switch 407.1
|
||||
IF #InOutCarrier.nDestination = "cDestMps3" THEN // MPS 3
|
||||
#nOutDirection := 1; // LINKS, 1->3
|
||||
ELSIF #InOutCarrier.nDestination = "cDestStayAmr"
|
||||
OR #InOutCarrier.nDestination = "cDestRecirc"
|
||||
THEN // Auf Kreisel bleiben
|
||||
#nOutDirection := 2; // RECHTS, 1->4
|
||||
ELSE
|
||||
#nOutDirection := 2; // Fallback, falls unerwartetes Ziel
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
"cSwi410.1":
|
||||
REGION Switch 410.1
|
||||
IF #InOutCarrier.nDestination = "cDestMps2" THEN // MPS 2
|
||||
#nOutDirection := 1; // LINKS, 1->3
|
||||
ELSIF #InOutCarrier.nDestination = "cDestStayAmr"
|
||||
OR #InOutCarrier.nDestination = "cDestRecirc"
|
||||
THEN // Auf Kreisel bleiben
|
||||
#nOutDirection := 2; // RECHTS, 1->4
|
||||
ELSE
|
||||
#nOutDirection := 2; // Fallback, falls unerwartetes Ziel
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
"cSwi413.1":
|
||||
REGION Switch 413.1
|
||||
IF #InOutCarrier.nDestination = "cDestMps1" THEN // MPS 1
|
||||
#nOutDirection := 1; // LINKS, 1->3
|
||||
ELSIF #InOutCarrier.nDestination = "cDestStayAmr"
|
||||
OR #InOutCarrier.nDestination = "cDestRecirc"
|
||||
THEN // Auf Kreisel bleiben
|
||||
#nOutDirection := 2; // RECHTS, 1->4
|
||||
ELSE
|
||||
#nOutDirection := 2; // Fallback, falls unerwartetes Ziel
|
||||
END_IF;
|
||||
END_REGION
|
||||
END_CASE;
|
||||
END_REGION
|
||||
END_FUNCTION
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 330e3c73-0c6f-428c-bd04-06e779578b19
|
||||
VersionGuid: 6e61feb0-b755-46ad-858d-a6af74114a38
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 873575bd-45c1-4e5d-ad81-32da723bf561
|
||||
VersionGuid: ef6d16a4-e489-47fe-ac26-6e1120abf3dc
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 7b2f674e-09cf-4295-8f62-286c90fb1e37
|
||||
VersionGuid: 0c32dfac-9456-4f09-94aa-e0c5522ed860
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 0fb07577-0755-4aaa-8aa1-ed98c4a96d46
|
||||
VersionGuid: 80031440-bc66-4cb7-9dd8-353095fb8de0
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: d0ad9446-bc78-42a5-b84b-49a4797c28ac
|
||||
VersionGuid: 574d1c63-2f47-400a-81d4-5ae98e38068a
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 2dfa028b-93e2-4db3-a2df-573dd5f5a859
|
||||
VersionGuid: 9b45df8c-7bb0-44b6-97db-967b2a2d5925
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 901da2f1-dd37-4f9f-ad1c-457a2942dfb5
|
||||
VersionGuid: ef1f567e-60c2-46dd-a938-0b4684fbae6e
|
||||
-1301
File diff suppressed because it is too large
Load Diff
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 7d35be77-2a72-4530-b111-2a609340cc24
|
||||
VersionGuid: 2ad8b4f4-249f-4013-ac79-66401f0d4420
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: d73846b1-6cd6-414c-ac23-6600e2c98ae1
|
||||
VersionGuid: 456c4cee-f3c8-4642-aa97-cf33a9152512
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 2b644f30-a3a6-4abb-8b59-ef341fedf9f8
|
||||
VersionGuid: 91175451-8c0e-4789-b302-fd2c134e9d15
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: fdb28b91-85cc-4257-9a7f-4ee21454e413
|
||||
VersionGuid: 2497d8a1-ceea-4dac-b905-551eed5082d8
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: b2b7bae2-df01-45c1-b728-4f21f6dccf2b
|
||||
VersionGuid: 3b4a840b-d014-4f13-8b4b-a11a10747b6c
|
||||
-614
@@ -1,614 +0,0 @@
|
||||
FUNCTION_BLOCK "FB_ILS_STRO_Vario_WorkStation"
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
stInSettings : "SettingsVario"; // Einstellungen Vario
|
||||
xInReleaseEdge : Bool; // Flanke Carrier rausgelassen
|
||||
stInSenConvFingerInPos : "UDT_Sensor"; // Mitnehmerfinger in Position (FingerInPos)
|
||||
stInSenJam : "UDT_Sensor"; // Stausensor nach Vario (Jam)
|
||||
stInSenLastPos : "UDT_Sensor"; // Letzte Position erreicht (Full)
|
||||
stInSenCarrInPos : "UDT_Sensor"; // Carrier in Position (CarrInPos)
|
||||
xInRelease : Bool := false; // Freigabe zum Entleeren
|
||||
xInRequest : Bool; // Anfrage an Vario
|
||||
xInMotorProtection : Bool := false; // Motorschutz
|
||||
xInErrorQuit : Bool; // Fehler quittieren Überwachung Finger
|
||||
xInAutomatic : Bool;
|
||||
stInStationSensor : "UDT_Sensor";
|
||||
xInReleaseStation : Bool;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
xOutMotor : Bool := false; // Antrieb raumgängiger Förderer
|
||||
xOutConveyorReady : Bool := false; // HFS Schnittstelle: Förderer kann neuen BT aufnehmen
|
||||
xOutConveyorReleaseReq : Bool := false; // Anforderung: Förderer entleeren
|
||||
END_VAR
|
||||
|
||||
VAR_IN_OUT
|
||||
arInOutJamFinger : Array[*] of "stCarrier"; // Daten Staubereich Finger
|
||||
stInOutHMI : "UDT_Vario";
|
||||
stInOutControlUnitCabinet : "UDT_MainState";
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
fbStateManager { ExternalWritable := 'False'; S7_SetPoint := 'False'} : "FB_StateManager"; // Schrittkette Manager
|
||||
fbFingerControl : "FB_SupervisionRasterSensor";
|
||||
sStateText { S7_SetPoint := 'True'} : String := ''; // Schritt Text (zum Beobachten)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
nState { S7_SetPoint := 'True'} : Int := 0; // Schritt
|
||||
nStateLast : Int := 0; // vorheriger Schritt (für State Manager)
|
||||
xRunMotor : Bool := false; // Motor Start
|
||||
xConveyorReady : Bool := false; // Förderer ist bereit
|
||||
tOnAllBtOut {InstructionName := 'TON_TIME'; LibVersion := '1.0'; S7_SetPoint := 'False'} : TON_TIME; // Timer: Keine Bt mehr auf Vario
|
||||
counterCarrier {InstructionName := 'CTU_INT'; LibVersion := '1.0'} : CTU_INT; // Klinkenzählerfunktion
|
||||
END_VAR
|
||||
VAR
|
||||
nCounterCatch : Int := 0; // Zähler Klinke
|
||||
xErrorBtNotReaching : Bool := false;
|
||||
tOn_ErrorConv {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Zeitverzögerte Fehlermeldung wenn Förderer zu lange zum Entleeren braucht oder zu lange voll
|
||||
tOn_WaitForStop {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
|
||||
fbMonitoringFinger : "FB_Monitoring";
|
||||
xClearDone : Bool; // Prüffahrt um Finger leer zu fahren abgeschlossen
|
||||
"////////" : Bool;
|
||||
xTestMode : Bool;
|
||||
xSationStop : Bool;
|
||||
xReleaseReq : Bool;
|
||||
nCarrierCount : Int;
|
||||
xReleaseStation : Bool;
|
||||
xStartScanBarcode : Bool;
|
||||
xReadyForScan : Bool;
|
||||
xReadingDone : Bool;
|
||||
xHandShakeScan : Bool;
|
||||
xBeladenError : Bool;
|
||||
xResetBeladen : Bool;
|
||||
xResetLed : Bool;
|
||||
FB_Blinker { S7_SetPoint := 'False'} : "FB_Blinker";
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
tmpActUnivTon : Bool; // Siehe State Manager
|
||||
nArrayMaxFinger : DInt;
|
||||
END_VAR
|
||||
|
||||
VAR CONSTANT
|
||||
c0000_StepOff : Int := 0; // Aus
|
||||
c0100_StepUndefined : Int := 100; // Undefiniert
|
||||
c0200_StepReceive : Int := 200; // Förderer wartet auf Arbeit / Bereit aufzunehmen
|
||||
c1200_StepWaitTime : Int := 1200; // Förderer wartet vor Fahrt
|
||||
c2000_StepJog : Int := 2000; // Förderer eine Position weiter fahren (Jog Fw)
|
||||
c2200_StepNormalStop : Int := 2200;
|
||||
c2250_StepQuickStop : Int := 2250;
|
||||
c2500_StepCheckVario : Int := 2500; // Prüfen ob wirklich leer
|
||||
c3000_StepEmptying : Int := 3000; // Förderer entleeren
|
||||
c5000_StepEnding : Int := 5000; // Förderer Ablauf beenden
|
||||
c8000_StepScan : Int := 8000;
|
||||
c8001_WaitingForRelease : Int := 8001;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION Arraygrößen
|
||||
#nArrayMaxFinger := UPPER_BOUND(ARR := #arInOutJamFinger, DIM := 1);
|
||||
END_REGION
|
||||
|
||||
REGION State Machine
|
||||
// Off
|
||||
// Idle (keine Daten und Prüffahrt abgeschlossen)
|
||||
// Anforderung MTRO / Separator
|
||||
// -> Entleeren
|
||||
// Entleeren (Fahre bis Stau oder keine Daten)
|
||||
// 1. Anforderung MTRO / Separator
|
||||
// -> Entleeren Pausieren
|
||||
// 2. Keine Daten mehr
|
||||
// -> Idle
|
||||
// Entleeren Pausieren
|
||||
//
|
||||
|
||||
|
||||
CASE #nState OF
|
||||
#c0000_StepOff:
|
||||
REGION 0000: Off
|
||||
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'OFF';
|
||||
|
||||
// Statics
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
END_REGION
|
||||
|
||||
#c0100_StepUndefined:
|
||||
REGION 0100: Undefined
|
||||
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'UNDEFINED';
|
||||
|
||||
// Statics
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
#nState := #c0200_StepReceive;
|
||||
END_REGION
|
||||
|
||||
#c0200_StepReceive:
|
||||
REGION 0200: Receive
|
||||
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'RECEIVE';
|
||||
|
||||
// Statics
|
||||
#xReleaseReq := FALSE;
|
||||
#xRunMotor := FALSE;
|
||||
|
||||
|
||||
|
||||
|
||||
#xConveyorReady := #xInMotorProtection;
|
||||
|
||||
// Transition
|
||||
//
|
||||
IF #xTestMode OR #stInOutHMI.stControl.xTestMode THEN
|
||||
#xConveyorReady := FALSE;
|
||||
#nState := #c2000_StepJog;
|
||||
ELSE
|
||||
|
||||
IF (#xConveyorReady AND #counterCarrier.QU) OR ((* #arInOutJamFinger[1].bStatus.%X0 AND *)NOT #xInRequest AND NOT #xClearDone AND #fbStateManager.tOutTimeInStep > T#5000ms) THEN
|
||||
#nState := #c1200_StepWaitTime;
|
||||
|
||||
// ELSIF (#arInOutJamFinger[1].stCarrData.xOnline AND NOT #xClearDone AND NOT #xInRequest AND #fbStateManager.tOutTimeInStep > T#5000ms) AND
|
||||
// (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms) THEN
|
||||
// #nState := #c2500_StepCheckVario;
|
||||
// ELSIF #arInOutJamFinger[1].stCarrData.xOnline AND NOT #xInRequest AND #fbStateManager.tOutTimeInStep > T#5000ms THEN
|
||||
// #nState := #c3000_StepEmptying;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
|
||||
#c1200_StepWaitTime:
|
||||
REGION 1200: Wait
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'WAIT FOR TIMER';
|
||||
#xSationStop := FALSE;// PRÜFEN
|
||||
// #xReleaseReq := FALSE;
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
#xReleaseStation := FALSE;
|
||||
|
||||
|
||||
IF #fbStateManager.tOutTimeInStep > #stInSettings.tWaitForJog (* AND NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms *)THEN
|
||||
IF #xInRequest THEN
|
||||
#xClearDone := FALSE;
|
||||
#nState := #c3000_StepEmptying(* #c2000_StepJog *);
|
||||
|
||||
ELSIF NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#2s THEN
|
||||
#nState := #c3000_StepEmptying;
|
||||
(* ELSE
|
||||
#nState := #c3000_StepEmptying; *)
|
||||
END_IF;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
|
||||
#c2000_StepJog:
|
||||
REGION 2000: Jog
|
||||
|
||||
|
||||
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'JOG';
|
||||
|
||||
// Statics
|
||||
#xRunMotor := TRUE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
// IF #stInStationSensor.xDirectSensor AND #stInStationSensor.tDirectChangeLast< T#3000MS THEN
|
||||
|
||||
// #xSationStop := TRUE;
|
||||
// #xReleaseReq := TRUE;
|
||||
// END_IF;
|
||||
|
||||
IF #xTestMode OR #stInOutHMI.stControl.xTestMode THEN
|
||||
IF #stInSenConvFingerInPos.xDirectEdgePos THEN
|
||||
#nState := #c2200_StepNormalStop;
|
||||
END_IF;
|
||||
// ELSE
|
||||
// IF (#fbStateManager.tOutTimeInStep > T#1000ms OR #fbFingerControl.xOutErrorRasterSensor) OR (#stInSenJam.xDirectSensor AND #stInSenLastPos.xDirectSensor)
|
||||
// OR #xSationStop
|
||||
|
||||
// THEN
|
||||
// #nState := #c2250_StepQuickStop;
|
||||
// ELSIF (#stInSenJam.xDirectEdgePos AND NOT #stInSettings.xJamSenDelayActive)
|
||||
// OR (#stInSettings.xJamSenDelayActive AND #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > #stInSettings.tJamSenDelay)
|
||||
// THEN
|
||||
// #nState := #c2200_StepNormalStop;
|
||||
// ELSIF #stInSenConvFingerInPos.xDirectEdgePos THEN //////EMBI TEST
|
||||
// #nState := #c0200_StepReceive;
|
||||
// END_IF;
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
|
||||
#c2200_StepNormalStop: //normal anhalten
|
||||
REGION 2200: Normal Stop
|
||||
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'NORMAL STOP';
|
||||
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
#xConveyorReady := FALSE;
|
||||
IF #stInStationSensor.xDirectSensor AND #stInStationSensor.tDirectChangeLast < T#3000MS THEN
|
||||
|
||||
// #xSationStop := TRUE;
|
||||
#xReleaseReq := TRUE;
|
||||
END_IF;
|
||||
|
||||
|
||||
IF #xTestMode OR #stInOutHMI.stControl.xTestMode THEN
|
||||
|
||||
IF #tOn_WaitForStop.Q THEN
|
||||
#nState := #c0200_StepReceive;
|
||||
END_IF;
|
||||
|
||||
ELSE
|
||||
IF NOT #xReleaseReq THEN
|
||||
IF (NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#2s AND #stInSenJam.xDbncdSensor) OR
|
||||
(NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms) THEN
|
||||
#nState := #c5000_StepEnding;
|
||||
END_IF;
|
||||
ELSE
|
||||
IF
|
||||
((NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#2s AND #stInSenJam.xDbncdSensor) OR
|
||||
(NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms)) AND #xInReleaseStation THEN
|
||||
#nState := #c5000_StepEnding;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
END_IF;
|
||||
|
||||
|
||||
END_REGION
|
||||
|
||||
#c2250_StepQuickStop:
|
||||
REGION 2250: Quick Stop
|
||||
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'QUICK STOP';
|
||||
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
|
||||
IF NOT #xSationStop THEN
|
||||
|
||||
IF ((NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms) OR
|
||||
(NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#3000ms)) AND
|
||||
NOT #fbFingerControl.xOutErrorRasterSensor
|
||||
THEN
|
||||
#nState := #c1200_StepWaitTime;
|
||||
|
||||
|
||||
END_IF;
|
||||
ELSE
|
||||
#nState := #c8000_StepScan;
|
||||
#xReleaseReq := TRUE;
|
||||
|
||||
(* IF (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms)(* OR
|
||||
(NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#3000ms) *) AND
|
||||
NOT #fbFingerControl.xOutErrorRasterSensor AND #xReleaseStation
|
||||
THEN
|
||||
#nState := #c1200_StepWaitTime;
|
||||
|
||||
|
||||
END_IF; *)
|
||||
|
||||
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
#c3000_StepEmptying:
|
||||
REGION 3000: Emptying
|
||||
|
||||
IF #stInStationSensor.xDirectSensor AND #stInStationSensor.tDirectChangeLast < T#500MS THEN
|
||||
|
||||
#xSationStop := TRUE;
|
||||
// #xReleaseReq := TRUE;
|
||||
END_IF;
|
||||
|
||||
// Aktueller Zustand
|
||||
#sStateText := 'EMPTYING CONVEYOR';
|
||||
|
||||
// Statics
|
||||
|
||||
#xRunMotor := TRUE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
|
||||
///////////////////// ////TEST ///
|
||||
//
|
||||
|
||||
|
||||
IF (#stInSenJam.xDirectSensor AND #stInSenLastPos.xDirectSensor) OR #xSationStop THEN
|
||||
#nState := #c2250_StepQuickStop;
|
||||
ELSIF #xBeladenError THEN
|
||||
#nState := 9999;
|
||||
|
||||
ELSIF (#stInSenJam.xDirectEdgePos AND NOT #stInSettings.xJamSenDelayActive)
|
||||
OR (#stInSettings.xJamSenDelayActive AND #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > #stInSettings.tJamSenDelay)
|
||||
THEN
|
||||
#nState := #c2200_StepNormalStop;
|
||||
ELSIF #xInRequest AND #xReleaseReq THEN
|
||||
#xClearDone := FALSE;
|
||||
#nState := #c5000_StepEnding;
|
||||
ELSIF #tOnAllBtOut.Q THEN
|
||||
#xClearDone := TRUE;
|
||||
#nState := #c5000_StepEnding;
|
||||
// ELSIF #tOnAllBtOut.Q THEN // Freigabe zum Entleeren ist wieder/noch da und Carousel-Motor läuft
|
||||
// // Wenn nach einer gewissen Zeit nichts mehr kommt --> Alle Bt draußen --> Kette leer
|
||||
// #nState := #c5000_StepEnding; // Weiter
|
||||
END_IF;
|
||||
///////////////////
|
||||
|
||||
END_REGION
|
||||
|
||||
#c5000_StepEnding:
|
||||
REGION 5000: Ending Step
|
||||
|
||||
(*Dieser Schritt wird nur nach dem Entleeren angesprungen
|
||||
damit sich die Kette zum Schluss noch richtig positioniert*)
|
||||
|
||||
//Aktueller Zustand
|
||||
|
||||
|
||||
#sStateText := 'STOPPING CONVEYOR';
|
||||
|
||||
//Statics
|
||||
#xRunMotor := TRUE;
|
||||
#xConveyorReady := FALSE;
|
||||
#xReleaseReq := FALSE;
|
||||
|
||||
// Transition
|
||||
IF (#stInSenJam.xDirectSensor AND #stInSenLastPos.xDirectSensor) OR (#fbStateManager.tOutTimeInStep > T#1000ms OR #fbFingerControl.xOutErrorRasterSensor) THEN
|
||||
#xClearDone := FALSE;
|
||||
#nState := #c2250_StepQuickStop;
|
||||
ELSIF #stInSenConvFingerInPos.xDirectEdgePos (* AND #stInStationSensor.xDirectSensor *) (*or #fbStateManager.tOutTimeInStep > T#800ms OR *) (* #stInSenLastPos.xDirectEdgePos *)(* #stInSenConvFingerInPos.xDirectSensor *)THEN
|
||||
#nState := #c0200_StepReceive;
|
||||
ELSIF (#stInSenJam.xDirectEdgePos AND NOT #stInSettings.xJamSenDelayActive)
|
||||
OR (#stInSettings.xJamSenDelayActive AND #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > #stInSettings.tJamSenDelay)
|
||||
THEN
|
||||
#nState := #c2200_StepNormalStop;
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
#c8000_StepScan: //StartScan
|
||||
REGION 8000: Start Scan
|
||||
|
||||
#sStateText := ' Start Scan';
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
|
||||
|
||||
IF #xReadyForScan THEN
|
||||
|
||||
#xStartScanBarcode := TRUE;
|
||||
#xHandShakeScan := FALSE;
|
||||
|
||||
END_IF;
|
||||
|
||||
|
||||
IF #xReadingDone THEN
|
||||
|
||||
#xStartScanBarcode := FALSE;
|
||||
|
||||
|
||||
|
||||
#nState := #c8001_WaitingForRelease;
|
||||
#xHandShakeScan := TRUE;
|
||||
|
||||
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
|
||||
|
||||
#c8001_WaitingForRelease:
|
||||
REGION 8001: WaitingForRelease
|
||||
|
||||
#sStateText := 'Waiting For Release ';
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
|
||||
IF #xInReleaseStation THEN
|
||||
#xReleaseStation := TRUE;
|
||||
END_IF;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF (NOT #stInSenJam.xDirectSensor AND #stInSenJam.tDirectChangeLast > T#3000ms)(* OR
|
||||
(NOT #stInSenLastPos.xDirectSensor AND #stInSenLastPos.tDirectChangeLast > T#3000ms) *)AND
|
||||
NOT #fbFingerControl.xOutErrorRasterSensor AND #xReleaseStation
|
||||
THEN
|
||||
|
||||
#nState := #c1200_StepWaitTime;
|
||||
END_IF;
|
||||
|
||||
END_REGION
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9999: //Beladen Error
|
||||
REGION 9999: Beladen Error
|
||||
|
||||
#sStateText := 'beladen Error ';
|
||||
#xRunMotor := FALSE;
|
||||
#xConveyorReady := FALSE;
|
||||
#xResetLed := TRUE;
|
||||
|
||||
IF NOT #xBeladenError AND #xResetBeladen THEN
|
||||
#xResetLed := FALSE;
|
||||
#nState := #c3000_StepEmptying;
|
||||
ELSIF
|
||||
#xBeladenError AND #xResetBeladen THEN
|
||||
#xResetLed := TRUE;
|
||||
ELSIF
|
||||
NOT #xBeladenError AND NOT #xResetBeladen THEN
|
||||
|
||||
#xResetLed := #FB_Blinker.xOutput;
|
||||
|
||||
END_IF;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Blinker
|
||||
#FB_Blinker(tInPeriodicTime := T#500ms,
|
||||
xInActivate := 1);
|
||||
END_REGION
|
||||
|
||||
|
||||
|
||||
|
||||
END_CASE;
|
||||
END_REGION
|
||||
|
||||
REGION Timer
|
||||
|
||||
//??????????????????????????
|
||||
#tOn_ErrorConv(IN := (#nState = #c0200_StepReceive OR #nState = #c3000_StepEmptying) AND NOT #stInSettings.xContinousEmptying,
|
||||
PT := T#60s);
|
||||
|
||||
// Kette wird entleert... wenn nach PT sekunden (z.b. 5 sec) nichts mehr am FullSensor vorbeikommt, wird das Entleeren beendet (die Kette ist also leer)
|
||||
// Jedesmal wenn ein Bt den FullSensor passiert oder das Entleeren pausiert wird, wird der Timer neu gestartet
|
||||
|
||||
#tOnAllBtOut(IN := #nState = #c3000_StepEmptying(* AND #xInRelease *),
|
||||
PT := #stInSettings.tConvEmpty);
|
||||
|
||||
#tOn_WaitForStop(IN := #nState = #c2200_StepNormalStop,
|
||||
PT := #stInSettings.tWaitForStop);
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Carrier zählen
|
||||
|
||||
|
||||
#counterCarrier(CU := #xInReleaseEdge,
|
||||
R := #nState > #c0200_StepReceive,
|
||||
PV := #stInSettings.nCountCarrier,
|
||||
CV => #nCounterCatch);
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Überwachung Finger
|
||||
|
||||
#fbFingerControl.stInSettings.xInEnableSupervision := TRUE;
|
||||
#fbFingerControl.stInSettings.tInDelayMotorRun := #stInSettings.tRasterDelayMotorRun;
|
||||
#fbFingerControl.stInSettings.tInRasterHigh := #stInSettings.tRasterHigh;
|
||||
#fbFingerControl.stInSettings.tInRasterLow := #stInSettings.tRasterLow;
|
||||
#fbFingerControl(stInSenRaster := #stInSenConvFingerInPos,
|
||||
xInErrorQuit := #xInErrorQuit,
|
||||
xInMotorRun := #xRunMotor);
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION StateManager
|
||||
|
||||
#fbStateManager.stInSettings.nStartState := #c0200_StepReceive;
|
||||
#fbStateManager.stInSettings.xActUnivTOn := TRUE;
|
||||
#fbStateManager.stInSettings.xRestartAtStartState := FALSE;
|
||||
#fbStateManager(xInFunctionEnabled := ((#xInAutomatic AND #stInOutControlUnitCabinet.xRunning) OR #stInOutHMI.stConveyor.xSemiAuto) AND NOT #stInOutHMI.stConveyor.xDisableConveyor AND NOT #fbFingerControl.xOutErrorRasterSensor,
|
||||
xInRunUnivTOn := #tmpActUnivTon,
|
||||
nOutStateLast => #nStateLast,
|
||||
nInOutState := #nState);
|
||||
END_REGION
|
||||
|
||||
REGION Ausgänge
|
||||
|
||||
// Das ist der Motor vom Förderer
|
||||
#xOutMotor := #xRunMotor OR #stInOutHMI.stConveyor.xManual; // Förderer-Motor angefordert und kein Bereichshalt
|
||||
#xOutConveyorReady := #xConveyorReady; //Förderer bereit (aus SK) und kein Bereichshalt Förderer
|
||||
|
||||
//????????????????????????????
|
||||
#xOutConveyorReleaseReq := #nState = #c3000_StepEmptying OR #nState = #c1200_StepWaitTime;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Visu
|
||||
#stInOutHMI.stConveyor.nType := 7; // Vario
|
||||
|
||||
#stInOutHMI.stConveyor.nState := #nState;
|
||||
#stInOutHMI.stConveyor.sStateText := #sStateText;
|
||||
|
||||
#stInOutHMI.FingerSensor := #stInSenConvFingerInPos;
|
||||
#stInOutHMI.JamSensor := #stInSenJam;
|
||||
#stInOutHMI.LastPosSensor := #stInSenLastPos;
|
||||
|
||||
REGION Status
|
||||
IF #xInMotorProtection THEN
|
||||
IF #fbStateManager.xInFunctionEnabled THEN
|
||||
CASE #nState OF
|
||||
#c0000_StepOff:
|
||||
#stInOutHMI.stConveyor.bStatus := 0; // NOT_AVAILABLE
|
||||
#c0200_StepReceive, #c1200_StepWaitTime, #c2000_StepJog, #c2250_StepQuickStop, #c2200_StepNormalStop, #c3000_StepEmptying, #c5000_StepEnding:
|
||||
#stInOutHMI.stConveyor.bStatus := 1; // AVAILABLE
|
||||
ELSE //Fallback
|
||||
#stInOutHMI.stConveyor.bStatus := 0; // NOT_AVAILABLE
|
||||
END_CASE;
|
||||
ELSE
|
||||
#stInOutHMI.stConveyor.bStatus := 0; // NOT_AVAILABLE
|
||||
END_IF;
|
||||
ELSE
|
||||
#stInOutHMI.stConveyor.bStatus := 2; // ERROR
|
||||
END_IF;
|
||||
END_REGION
|
||||
REGION Modes
|
||||
// Int16 Bit-codiert
|
||||
#stInOutHMI.stConveyor.nMode.%X0 := (#nState = #c0000_StepOff) OR (#nState = #c0100_StepUndefined) OR (#nState = #c0200_StepReceive) OR (#nState = #c1200_StepWaitTime) OR (#nState = #c2200_StepNormalStop) OR (#nState = #c2250_StepQuickStop); // The device is turned off
|
||||
#stInOutHMI.stConveyor.nMode.%X1 := (#nState = #c2000_StepJog) OR (#nState = #c3000_StepEmptying) OR (#nState = #c5000_StepEnding);
|
||||
#stInOutHMI.stConveyor.nMode.%X2 := #stInOutHMI.stConveyor.xDisableConveyor OR #stInOutHMI.stConveyor.xManual OR #stInOutHMI.stConveyor.xSemiAuto OR #xTestMode OR #stInOutHMI.stControl.xTestMode (* OR #xViSuManualMode OR #xViSuSemiAutoMode *); // The device is being manually operated
|
||||
#stInOutHMI.stConveyor.nMode.%X3 := FALSE;//(#nState = #STOPPED); //The device only is on when the device is needed (like standby)
|
||||
#stInOutHMI.stConveyor.nMode.%X10 := FALSE; // Overflow Error is set for this device
|
||||
END_REGION
|
||||
#stInOutHMI.stConveyor.xIsInAutomatic := #stInOutControlUnitCabinet.xRunning;
|
||||
#stInOutHMI.stConveyor.xEnergySaveReq := FALSE;
|
||||
#stInOutHMI.stConveyor.xPowerContactor := #xOutMotor;
|
||||
#stInOutHMI.stConveyor.xPluggedChainBreak := FALSE;
|
||||
#stInOutHMI.stConveyor.xStatusChainBreak := TRUE;
|
||||
#stInOutHMI.stConveyor.xStatusMotorProtect := #xInMotorProtection;
|
||||
#stInOutHMI.stConveyor.xConveyorFull1 := FALSE;
|
||||
#stInOutHMI.stConveyor.xConveyorFull2 := FALSE;
|
||||
#stInOutHMI.stConveyor.xReady2Receive := TRUE;
|
||||
#stInOutHMI.stConveyor.xNextConveyorReady := TRUE;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Monitoring
|
||||
|
||||
#fbMonitoringFinger.stSettings.nErrorType := 1;
|
||||
#fbMonitoringFinger.stSettings.xErrLedIfMachineIsOff := TRUE;
|
||||
#fbMonitoringFinger.stSettings.xSelfQuit := TRUE;
|
||||
#fbMonitoringFinger.stSettings.tDelay := T#1s;
|
||||
#fbMonitoringFinger(sInFctnName := #stInOutHMI.stConveyor.sConveyorName,
|
||||
sInPrefix := 'Fingerueberwachung',
|
||||
sInSuffix := #stInOutHMI.FingerSensor.sName,
|
||||
wInTextListId_Function := 300,
|
||||
wInTextListId_Message := 301,
|
||||
xInQuitError := #stInOutControlUnitCabinet.xQuitError OR #xInErrorQuit,
|
||||
xInSignal := NOT #fbFingerControl.xOutErrorRasterSensor,
|
||||
sInAlarmMessage := 'Fingerfehler',
|
||||
InOutMachineState := #stInOutControlUnitCabinet);
|
||||
END_REGION
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 72f65cd0-2f82-4e9a-944e-763573262fcb
|
||||
VersionGuid: 86087764-f9fa-4e00-99b4-fd1f0d046c81
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 487f8a43-4b39-46f6-a1db-76a1b3e0f176
|
||||
VersionGuid: a5ef1d68-80ec-445d-a745-78efb8a2a107
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 7fd3f712-0c70-464a-a178-3c0e9f56e7fd
|
||||
VersionGuid: 42d9ac8f-436d-47fd-ad7b-f96d7f788df8
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: d80e8fca-e961-4f74-921c-a6b0d72f1eac
|
||||
VersionGuid: f6d0468d-7b77-4edd-9872-9c45f88f2433
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 080fec55-3e2f-4dd7-a4ef-294c5113ff9e
|
||||
VersionGuid: 87ef5917-e524-4be6-9c25-711f27819aa2
|
||||
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 170b53d4-41f2-4a63-95d5-f1d211def922
|
||||
VersionGuid: f6da1f27-73cc-44c0-b509-a32a5cc418eb
|
||||
@@ -1,25 +0,0 @@
|
||||
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
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
FUNCTION "FC_Jam" : Void
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_OUTPUT
|
||||
stOutCarrierStatsStandard : "CarrierStatisticsStandard";
|
||||
stOutCarrierStatsAdv : "CarrierStatisticsAMR";
|
||||
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.nDestMPS1 := 0;
|
||||
#stOutCarrierStatsAdv.nDestMPS2 := 0;
|
||||
#stOutCarrierStatsAdv.nDestMPS3 := 0;
|
||||
#stOutCarrierStatsAdv.nDestRecirce := 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;
|
||||
|
||||
//Statistik - Jam leer
|
||||
#stOutCarrierStatsStandard.nEmptyCarrier := 0;
|
||||
#stOutCarrierStatsStandard.nLoadedCarrier := 0;
|
||||
#stOutCarrierStatsStandard.nDummyCarrier := 0;
|
||||
|
||||
#stOutCarrierStatsAdv.nDestMPS1 := 0;
|
||||
#stOutCarrierStatsAdv.nDestMPS2 := 0;
|
||||
#stOutCarrierStatsAdv.nDestMPS3 := 0;
|
||||
#stOutCarrierStatsAdv.nDestRecirce := 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 = "cDestMps1" THEN
|
||||
#stOutCarrierStatsAdv.nDestMPS1 += 1;
|
||||
END_IF;
|
||||
|
||||
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestMps2" THEN
|
||||
#stOutCarrierStatsAdv.nDestMPS2 += 1;
|
||||
END_IF;
|
||||
|
||||
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestMps3" THEN
|
||||
#stOutCarrierStatsAdv.nDestMPS3 += 1;
|
||||
END_IF;
|
||||
|
||||
IF #arInOutJamCarrier[#nIdx].bStatus.%X0 AND #arInOutJamCarrier[#nIdx].nDestination = "cDestRecirc" THEN
|
||||
#stOutCarrierStatsAdv.nDestRecirce += 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
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
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 : USInt;
|
||||
nIdx2 : USInt;
|
||||
nArrayMax : USInt;
|
||||
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
|
||||
#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
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
FUNCTION "FC_Uint2TroString" : String
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
nInNumber : UInt;
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
sTmp : String[5];
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
// Funktion wandelt Uint zu einem Tro-String. Aus 123 wird 12.3, aus 0 wird 0.0 aus 12345 wird 1234.5
|
||||
// Autor: Christian Forkl
|
||||
// Getestet: Ja
|
||||
// 03.08.2021
|
||||
|
||||
#sTmp := RIGHT(IN := UINT_TO_STRING(#nInNumber), L := (LEN(UINT_TO_STRING(#nInNumber)) - 1));
|
||||
|
||||
#FC_Uint2TroString := '';
|
||||
|
||||
IF #nInNumber > 9999 THEN
|
||||
#FC_Uint2TroString[1] := #sTmp[1];
|
||||
#FC_Uint2TroString[2] := #sTmp[2];
|
||||
#FC_Uint2TroString[3] := #sTmp[3];
|
||||
#FC_Uint2TroString[4] := #sTmp[4];
|
||||
#FC_Uint2TroString[5] := '.';
|
||||
#FC_Uint2TroString[6] := #sTmp[5];
|
||||
ELSIF #nInNumber > 999 THEN
|
||||
#FC_Uint2TroString[1] := #sTmp[1];
|
||||
#FC_Uint2TroString[2] := #sTmp[2];
|
||||
#FC_Uint2TroString[3] := #sTmp[3];
|
||||
#FC_Uint2TroString[4] := '.';
|
||||
#FC_Uint2TroString[5] := #sTmp[4];
|
||||
ELSIF #nInNumber > 99 THEN
|
||||
#FC_Uint2TroString[1] := #sTmp[1];
|
||||
#FC_Uint2TroString[2] := #sTmp[2];
|
||||
#FC_Uint2TroString[3] := '.';
|
||||
#FC_Uint2TroString[4] := #sTmp[3];
|
||||
ELSIF #nInNumber > 9 THEN
|
||||
#FC_Uint2TroString[1] := #sTmp[1];
|
||||
#FC_Uint2TroString[2] := '.';
|
||||
#FC_Uint2TroString[3] := #sTmp[2];
|
||||
ELSIF #nInNumber > 0 THEN
|
||||
#FC_Uint2TroString[1] := '0';
|
||||
#FC_Uint2TroString[2] := '.';
|
||||
#FC_Uint2TroString[3] := #sTmp[1];
|
||||
ELSE
|
||||
#FC_Uint2TroString := '0.0';
|
||||
END_IF;
|
||||
END_FUNCTION
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
FUNCTION "FC_usint2String" : String
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
nInNumber : USInt;
|
||||
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 := USINT_TO_STRING(#nInNumber);
|
||||
IF #nInNumber >= 0 THEN
|
||||
#FC_usint2String := RIGHT(IN := #sTmp, L := (LEN(#sTmp) - 1));
|
||||
ELSE
|
||||
#FC_usint2String := #sTmp;
|
||||
END_IF;
|
||||
END_FUNCTION
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
<?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.."cHyperJam"] of "stCarrier"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<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>
|
||||
@@ -1,89 +0,0 @@
|
||||
<?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="stJam4000_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4000_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>100</MemoryReserve>
|
||||
<Name>DB_JamArea4000</Name>
|
||||
<Namespace />
|
||||
<Number>4000</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>
|
||||
@@ -1,113 +0,0 @@
|
||||
<?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="stJam4001_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4001_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="nCapacityMax" Datatype="UInt">
|
||||
<StartValue>130</StartValue>
|
||||
</Member>
|
||||
<Member Name="nCapacitySet" Datatype="UInt">
|
||||
<StartValue>130</StartValue>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Member>
|
||||
<Member Name="stJam4001_2" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4001_2"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="nCapacityMax" Datatype="UInt">
|
||||
<StartValue>130</StartValue>
|
||||
</Member>
|
||||
<Member Name="nCapacitySet" Datatype="UInt">
|
||||
<StartValue>130</StartValue>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4001</Name>
|
||||
<Namespace />
|
||||
<Number>4001</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>
|
||||
@@ -1,113 +0,0 @@
|
||||
<?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="stJam4002_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4002_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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="stJam4002_2" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4002_2"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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_JamArea4002</Name>
|
||||
<Namespace />
|
||||
<Number>4002</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>
|
||||
@@ -1,257 +0,0 @@
|
||||
<?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="stJam4003_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="nCapacityMax" Datatype="UInt">
|
||||
<StartValue>1</StartValue>
|
||||
</Member>
|
||||
<Member Name="nCapacitySet" Datatype="UInt">
|
||||
<StartValue>1</StartValue>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Member>
|
||||
<Member Name="stJam4003_2" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_2"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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="stJam4003_3" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_3"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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="stJam4003_4" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_4"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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="stJam4003_5" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_5"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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="stJam4003_6" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_6"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="nCapacityMax" Datatype="UInt">
|
||||
<StartValue>7</StartValue>
|
||||
</Member>
|
||||
<Member Name="nCapacitySet" Datatype="UInt">
|
||||
<StartValue>7</StartValue>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Member>
|
||||
<Member Name="stJam4003_7" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_7"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
<Member Name="stJam4003_8" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4003_8"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="nCapacityMax" Datatype="UInt">
|
||||
<StartValue>8</StartValue>
|
||||
</Member>
|
||||
<Member Name="nCapacitySet" Datatype="UInt">
|
||||
<StartValue>8</StartValue>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections>
|
||||
</Member>
|
||||
</Member>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4003</Name>
|
||||
<Namespace />
|
||||
<Number>4003</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>
|
||||
@@ -1,113 +0,0 @@
|
||||
<?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="stJam4004_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4004_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
<Member Name="stJam4004_2" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4004_2"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4004</Name>
|
||||
<Namespace />
|
||||
<Number>4004</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>
|
||||
@@ -1,89 +0,0 @@
|
||||
<?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="stJam4005_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4005_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4005</Name>
|
||||
<Namespace />
|
||||
<Number>4005</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>
|
||||
@@ -1,113 +0,0 @@
|
||||
<?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="stJam4006_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4006_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
<Member Name="stJam4006_2" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4006_2"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4006</Name>
|
||||
<Namespace />
|
||||
<Number>4006</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>
|
||||
@@ -1,89 +0,0 @@
|
||||
<?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="stJam4007_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4007_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4007</Name>
|
||||
<Namespace />
|
||||
<Number>4007</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>
|
||||
@@ -1,113 +0,0 @@
|
||||
<?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="stJam4008_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4008_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
<Member Name="stJam4008_2" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4008_2"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4008</Name>
|
||||
<Namespace />
|
||||
<Number>4008</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>
|
||||
@@ -1,89 +0,0 @@
|
||||
<?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="stJam4009_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4009_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4009</Name>
|
||||
<Namespace />
|
||||
<Number>4009</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>
|
||||
@@ -1,113 +0,0 @@
|
||||
<?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="stJam4010_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4010_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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="stJam4010_2" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4010_2"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_JamArea4010</Name>
|
||||
<Namespace />
|
||||
<Number>4010</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>
|
||||
@@ -1,89 +0,0 @@
|
||||
<?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="stJam4011_1" Datatype="Struct" Remanence="Retain">
|
||||
<Member Name="arCarrier" Datatype="Array[1.."cJam4011_1"] of "stCarrier"" />
|
||||
<Member Name="stData" Datatype=""stJamData"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
<Sections>
|
||||
<Section Name="None">
|
||||
<Member Name="Config" Datatype=""stJamConfig"">
|
||||
<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>100</MemoryReserve>
|
||||
<Name>DB_JamArea4011</Name>
|
||||
<Namespace />
|
||||
<Number>4011</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>
|
||||
@@ -1,328 +0,0 @@
|
||||
FUNCTION "FC_Call_Jams" : Void
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_TEMP
|
||||
nIdx : Int;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
REGION Jam Füllstände
|
||||
|
||||
REGION Hyper-Jam
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikHyperJam"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikHyperJam"],
|
||||
arInOutJamCarrier := "DB_HyperJam".stHyperJam.arCarrier,
|
||||
stInOutData := "DB_HyperJam".stHyperJam.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_HyperJam".stHyperJam.stData.Status.nCount;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4000
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4000_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4000_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4000".stJam4000_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4000".stJam4000_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4000".stJam4000_1.stData.Status.nCount;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4001
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4001_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4001_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4001".stJam4001_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4001".stJam4001_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4001".stJam4001_1.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4001_2"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4001_2"],
|
||||
arInOutJamCarrier := "DB_JamArea4001".stJam4001_2.arCarrier,
|
||||
stInOutData := "DB_JamArea4001".stJam4001_2.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4001".stJam4001_2.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4002
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4002_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4002_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4002".stJam4002_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4002".stJam4002_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4002".stJam4002_1.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4002_2"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4002_2"],
|
||||
arInOutJamCarrier := "DB_JamArea4002".stJam4002_2.arCarrier,
|
||||
stInOutData := "DB_JamArea4002".stJam4002_2.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4002".stJam4002_2.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4003
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_1.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_2"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_2"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_2.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_2.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_2.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_3"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_3"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_3.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_3.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_3.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_4"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_4"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_4.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_4.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_4.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_5"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_5"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_5.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_5.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_5.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_6"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_6"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_6.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_6.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_6.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_7"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_7"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_7.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_7.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_7.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4003_8"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4003_8"],
|
||||
arInOutJamCarrier := "DB_JamArea4003".stJam4003_8.arCarrier,
|
||||
stInOutData := "DB_JamArea4003".stJam4003_8.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4003".stJam4003_8.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4004
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4004_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4004_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4004".stJam4004_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4004".stJam4004_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4004".stJam4004_1.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4004_2"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4004_2"],
|
||||
arInOutJamCarrier := "DB_JamArea4004".stJam4004_2.arCarrier,
|
||||
stInOutData := "DB_JamArea4004".stJam4004_2.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4004".stJam4004_2.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4005
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4005_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4005_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4005".stJam4005_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4005".stJam4005_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4005".stJam4005_1.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4006
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4006_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4006_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4006".stJam4006_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4006".stJam4006_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4006".stJam4006_1.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4006_2"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4006_2"],
|
||||
arInOutJamCarrier := "DB_JamArea4006".stJam4006_2.arCarrier,
|
||||
stInOutData := "DB_JamArea4006".stJam4006_2.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4006".stJam4006_2.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4007
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4007_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4007_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4007".stJam4007_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4007".stJam4007_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4007".stJam4007_1.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4008
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4008_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4008_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4008".stJam4008_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4008".stJam4008_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4008".stJam4008_1.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4008_2"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4008_2"],
|
||||
arInOutJamCarrier := "DB_JamArea4008".stJam4008_2.arCarrier,
|
||||
stInOutData := "DB_JamArea4008".stJam4008_2.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4008".stJam4008_2.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4009
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4009_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4009_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4009".stJam4009_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4009".stJam4009_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4009".stJam4009_1.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4010
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4010_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4010_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4010".stJam4010_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4010".stJam4010_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4010".stJam4010_1.stData.Status.nCount;
|
||||
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4010_2"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4010_2"],
|
||||
arInOutJamCarrier := "DB_JamArea4010".stJam4010_2.arCarrier,
|
||||
stInOutData := "DB_JamArea4010".stJam4010_2.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4010".stJam4010_2.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
REGION JamArea4011
|
||||
"FC_Jam"(stOutCarrierStatsStandard => "DB_Statistics".arJamStatisticsStandard["cStatistikJam4011_1"],
|
||||
stOutCarrierStatsAdv => "DB_Statistics".arJamStatisticsAdvanced["cStatistikJam4011_1"],
|
||||
arInOutJamCarrier := "DB_JamArea4011".stJam4011_1.arCarrier,
|
||||
stInOutData := "DB_JamArea4011".stJam4011_1.stData);
|
||||
|
||||
"DB_Statistics".nJamCount := "DB_Statistics".nJamCount + "DB_JamArea4011".stJam4011_1.stData.Status.nCount;
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Auswertung
|
||||
REGION Leere Carrier
|
||||
"DB_Statistics".nEmptyCarrierCount := 0;
|
||||
FOR #nIdx := 0 TO "cNoStatistikJam" DO
|
||||
"DB_Statistics".nEmptyCarrierCount := "DB_Statistics".nEmptyCarrierCount + "DB_Statistics".arJamStatisticsStandard[#nIdx].nEmptyCarrier;
|
||||
END_FOR;
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION Beladene Carrier
|
||||
"DB_Statistics".nLoadedCarrierCount := 0;
|
||||
FOR #nIdx := 0 TO "cNoStatistikJam" DO
|
||||
"DB_Statistics".nLoadedCarrierCount := "DB_Statistics".nLoadedCarrierCount + "DB_Statistics".arJamStatisticsStandard[#nIdx].nLoadedCarrier;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Dummy
|
||||
"DB_Statistics".nDummyCount := 0;
|
||||
FOR #nIdx := 0 TO "cNoStatistikJam" DO
|
||||
"DB_Statistics".nDummyCount := "DB_Statistics".nDummyCount + "DB_Statistics".arJamStatisticsStandard[#nIdx].nDummyCarrier;
|
||||
END_FOR;
|
||||
END_REGION
|
||||
|
||||
REGION Advanced
|
||||
REGION Multi-Purpose-Station 1
|
||||
//RealCount = Pre-Buffer Workstation real
|
||||
//ReservedCount = Anzahl Carrier die noch zu dieser Station wollen
|
||||
//TotalCount = Real + Reserved
|
||||
|
||||
"DB_Statistics".stWorkstations.MPS1.nRealCount := "DB_JamArea4008".stJam4008_1.stData.Status.nCount;
|
||||
|
||||
"DB_Statistics".stWorkstations.MPS1.nReservedCount := 0;
|
||||
FOR #nIdx := 0 TO "cNoStatistikJam" DO
|
||||
IF (#nIdx <> "cStatistikJam4008_1") AND (#nIdx <> "cStatistikJam4008_2") AND (#nIdx <> "cStatistikJam4009_1") THEN //eigene Station nicht mitzählen...oder Destination bei Einfahrt in Station ändern, dann wäre es egal
|
||||
"DB_Statistics".stWorkstations.MPS1.nReservedCount := "DB_Statistics".stWorkstations.MPS1.nReservedCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestMPS1;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
|
||||
"DB_Statistics".stWorkstations.MPS1.nTotalCount := "DB_Statistics".stWorkstations.MPS1.nRealCount + "DB_Statistics".stWorkstations.MPS1.nReservedCount;
|
||||
|
||||
END_REGION ;
|
||||
|
||||
REGION Multi-Purpose-Station 2
|
||||
"DB_Statistics".stWorkstations.MPS2.nRealCount := "DB_JamArea4006".stJam4006_1.stData.Status.nCount;
|
||||
|
||||
"DB_Statistics".stWorkstations.MPS2.nReservedCount := 0;
|
||||
FOR #nIdx := 0 TO "cNoStatistikJam" DO
|
||||
IF (#nIdx <> "cStatistikJam4006_1") AND (#nIdx <> "cStatistikJam4006_2") AND (#nIdx <> "cStatistikJam4007_1") THEN //eigene Station nicht mitzählen...oder Destination bei Einfahrt in Station ändern, dann wäre es egal
|
||||
"DB_Statistics".stWorkstations.MPS2.nReservedCount := "DB_Statistics".stWorkstations.MPS2.nReservedCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestMPS2;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
|
||||
"DB_Statistics".stWorkstations.MPS2.nTotalCount := "DB_Statistics".stWorkstations.MPS2.nRealCount + "DB_Statistics".stWorkstations.MPS2.nReservedCount;
|
||||
END_REGION
|
||||
|
||||
REGION Multi-Purpose-Station 3
|
||||
"DB_Statistics".stWorkstations.MPS3.nRealCount := "DB_JamArea4004".stJam4004_1.stData.Status.nCount;
|
||||
|
||||
"DB_Statistics".stWorkstations.MPS3.nReservedCount := 0;
|
||||
FOR #nIdx := 0 TO "cNoStatistikJam" DO
|
||||
IF (#nIdx <> "cStatistikJam4004_1") AND (#nIdx <> "cStatistikJam4004_2") AND (#nIdx <> "cStatistikJam4005_1") THEN //eigene Station nicht mitzählen...oder Destination bei Einfahrt in Station ändern, dann wäre es egal
|
||||
"DB_Statistics".stWorkstations.MPS3.nReservedCount := "DB_Statistics".stWorkstations.MPS3.nReservedCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestMPS3;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
|
||||
"DB_Statistics".stWorkstations.MPS3.nTotalCount := "DB_Statistics".stWorkstations.MPS3.nRealCount + "DB_Statistics".stWorkstations.MPS3.nReservedCount;
|
||||
END_REGION
|
||||
|
||||
REGION Recirce
|
||||
"DB_Statistics".nRecircCount := 0;
|
||||
FOR #nIdx := 0 TO "cNoStatistikJam" DO //eingrenzen?
|
||||
IF NOT (#nIdx = "cStatistikJam4003_2") THEN
|
||||
"DB_Statistics".nRecircCount := "DB_Statistics".nRecircCount + "DB_Statistics".arJamStatisticsAdvanced[#nIdx].nDestRecirce;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
|
||||
END_REGION
|
||||
|
||||
END_REGION
|
||||
END_REGION
|
||||
|
||||
REGION Prozessdaten
|
||||
"DB_Prozessdaten".stWorkStations.stMPS1.nCountReal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS1.nRealCount);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS1.nCountReserved := UINT_TO_INT("DB_Statistics".stWorkstations.MPS1.nReservedCount);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS1.nCountTotal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS1.nTotalCount);
|
||||
|
||||
"DB_Prozessdaten".stWorkStations.stMPS2.nCountReal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS2.nRealCount);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS2.nCountReserved := UINT_TO_INT("DB_Statistics".stWorkstations.MPS2.nReservedCount);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS2.nCountTotal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS2.nTotalCount);
|
||||
|
||||
"DB_Prozessdaten".stWorkStations.stMPS3.nCountReal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS3.nRealCount);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS3.nCountReserved := UINT_TO_INT("DB_Statistics".stWorkstations.MPS3.nReservedCount);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS3.nCountTotal := UINT_TO_INT("DB_Statistics".stWorkstations.MPS3.nTotalCount);
|
||||
|
||||
END_REGION
|
||||
|
||||
REGION HMI
|
||||
"DB_Interface_HMI".stStatistics.nJamCount := "DB_Statistics".nJamCount;
|
||||
"DB_Interface_HMI".stStatistics.nLoadedCount := "DB_Statistics".nLoadedCarrierCount;
|
||||
"DB_Interface_HMI".stStatistics.nEmptyCount := "DB_Statistics".nEmptyCarrierCount;
|
||||
"DB_Interface_HMI".stStatistics.nDummyCount := "DB_Statistics".nDummyCount;
|
||||
END_REGION
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
<?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 "UDT_TelegramData_Send"">
|
||||
<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>
|
||||
-72
@@ -1,72 +0,0 @@
|
||||
<?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="BUFFER" Datatype="Array[1..100] of "UDT_TelegramData_Send"">
|
||||
<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</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>
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
<?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="nSeqNumWESDeviceHub" Datatype="LInt" />
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_CommunicationParameters</Name>
|
||||
<Namespace />
|
||||
<Number>92</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>
|
||||
-142
@@ -1,142 +0,0 @@
|
||||
<?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>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.InstanceDB>
|
||||
</Document>
|
||||
-142
@@ -1,142 +0,0 @@
|
||||
<?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</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.InstanceDB>
|
||||
</Document>
|
||||
-181
@@ -1,181 +0,0 @@
|
||||
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";
|
||||
rTrigConnectionActive {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG;
|
||||
xSendHeartbeat : Bool;
|
||||
tOnHeartbeat {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
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
|
||||
|
||||
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 := 40;
|
||||
//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 Reset SequenceNumber
|
||||
#rTrigConnectionActive(CLK := #fbTeleHandler.xOutConnectionActive);
|
||||
|
||||
IF #rTrigConnectionActive.Q THEN
|
||||
"DB_CommunicationParameters".nSeqNumWCSBL := 0;
|
||||
END_IF;
|
||||
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
|
||||
//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
|
||||
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
|
||||
|
||||
-101
@@ -1,101 +0,0 @@
|
||||
<?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=""LGF_FIFO"" />
|
||||
<Member Name="arFifoSendBuffer" Datatype="Array[1..100] of "UDT_TelegramData_Send"" />
|
||||
</Section>
|
||||
<Section Name="Static">
|
||||
<Member Name="fbTeleHandler" Datatype=""FB_TCP_LCOM_TeleHandler"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="xReset" Datatype="Bool" />
|
||||
<Member Name="xSendTele" Datatype="Bool" />
|
||||
<Member Name="stTelegramToSend" Datatype=""UDT_TelegramData_Send"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="nState" Datatype="Int" />
|
||||
<Member Name="xRetVal" Datatype="Bool" />
|
||||
<Member Name="stNewTelegram" Datatype=""UDT_TelegramData"" />
|
||||
<Member Name="stTeleGOHDRespM" Datatype=""UDT_Telegram_GOHDRespM"">
|
||||
<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_CommunicationWCSBL_DB</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.InstanceDB>
|
||||
</Document>
|
||||
-168
@@ -1,168 +0,0 @@
|
||||
FUNCTION_BLOCK "FB_CommunicationWES_DeviceHub"
|
||||
{ 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";
|
||||
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:
|
||||
// CTMP (Container Mapping) | Von Schönenberger -> Fortna WES/DeviceHub
|
||||
// UNLDResp (Unload Response) | Von Schönenberger -> Fortna WES/DeviceHub
|
||||
// Empfangen:
|
||||
// WSAD (Workstation Activation) | Fortna WES/DeviceHub -> Schönenberger
|
||||
// INDX (Workstation Index) | Fortna WES/DeviceHub -> Schönenberger
|
||||
// ENCT (End Container) | Fortna WES/DeviceHub -> 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 := 41;
|
||||
//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 := 30636;
|
||||
//partner port number, use only in case of client or specified partner (possible values: 1...49151; recommended values: 2000...5000)
|
||||
#fbTeleHandler.stInTcpTypeConfig.connection.partnerPort := 30636;
|
||||
|
||||
//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".nSeqNumWESDeviceHub := 0;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
REGION Send Heartbeat
|
||||
IF #fbTeleHandler.xOutConnectionActive THEN
|
||||
#xSendHeartbeat := TRUE;
|
||||
|
||||
IF #tOnHeartbeat.Q THEN
|
||||
#xSendHeartbeat := FALSE;
|
||||
"FC_Send_HB"(sInPLCID := "cPLCID",
|
||||
nInPartnerType:= 2,
|
||||
FIFO := "DB_LGF_FIFO_CommWES",
|
||||
BUFFER := "DB_Buffer_CommunicationWES".BUFFER,
|
||||
nInOutSequenceNumber := "DB_CommunicationParameters".nSeqNumWESDeviceHub);
|
||||
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] = 'WSAD' THEN // Workstation Activation
|
||||
IF #stNewTelegram.arDataString[4] = 'GOH-DWS-101' THEN
|
||||
"DB_Prozessdaten".stWorkStations.stMPS1.nActivationStatus := STRING_TO_DINT(#stNewTelegram.arDataString[5]);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS1.nFunctionCode := STRING_TO_DINT(#stNewTelegram.arDataString[6]);
|
||||
ELSIF #stNewTelegram.arDataString[4] = 'GOH-DWS-102' THEN
|
||||
"DB_Prozessdaten".stWorkStations.stMPS2.nActivationStatus := STRING_TO_DINT(#stNewTelegram.arDataString[5]);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS2.nFunctionCode := STRING_TO_DINT(#stNewTelegram.arDataString[6]);
|
||||
ELSIF #stNewTelegram.arDataString[4] = 'GOH-DWS-103' THEN
|
||||
"DB_Prozessdaten".stWorkStations.stMPS3.nActivationStatus := STRING_TO_DINT(#stNewTelegram.arDataString[5]);
|
||||
"DB_Prozessdaten".stWorkStations.stMPS3.nFunctionCode := STRING_TO_DINT(#stNewTelegram.arDataString[6]);
|
||||
ELSE
|
||||
// ERROR
|
||||
// Invalid Workstation
|
||||
;
|
||||
END_IF;
|
||||
ELSIF #stNewTelegram.arDataString[3] = 'INDX' THEN // INDEX
|
||||
; //todo
|
||||
ELSIF #stNewTelegram.arDataString[3] = 'ENCT' THEN
|
||||
; //todo
|
||||
(* 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 *)
|
||||
|
||||
ELSE
|
||||
;//ERROR
|
||||
END_IF;
|
||||
|
||||
#nState := 0;
|
||||
END_CASE;
|
||||
END_REGION
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
-101
@@ -1,101 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Document>
|
||||
<Engineering version="V20" />
|
||||
<SW.Blocks.InstanceDB ID="0">
|
||||
<AttributeList>
|
||||
<InstanceOfName>FB_CommunicationWES_DeviceHub</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=""LGF_FIFO"" />
|
||||
<Member Name="arFifoSendBuffer" Datatype="Array[1..100] of "UDT_TelegramData_Send"" />
|
||||
</Section>
|
||||
<Section Name="Static">
|
||||
<Member Name="fbTeleHandler" Datatype=""FB_TCP_LCOM_TeleHandler"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="xReset" Datatype="Bool" />
|
||||
<Member Name="xSendTele" Datatype="Bool" />
|
||||
<Member Name="stTelegramToSend" Datatype=""UDT_TelegramData_Send"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="nState" Datatype="Int" />
|
||||
<Member Name="xRetVal" Datatype="Bool" />
|
||||
<Member Name="stNewTelegram" Datatype=""UDT_TelegramData"" />
|
||||
<Member Name="stTeleGOHDRespM" Datatype=""UDT_Telegram_GOHDRespM"">
|
||||
<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_DeviceHub_DB</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.InstanceDB>
|
||||
</Document>
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 778e978f-0132-4d3e-92e4-bac5ae8c94b4
|
||||
VersionGuid: fa6b9e1f-06d9-44db-9f19-f50f411a47a7
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
FUNCTION "FC_Get_LaneStatus" : String
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_IN_OUT
|
||||
stInOutJamData : "stJamData"; // Staubereichs info
|
||||
stInOutWorkStation : "UDT_Workstation"; // Workstation info
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
IF #stInOutWorkStation.nCountTotal >= #stInOutJamData.Config.nCapacitySet OR //voll
|
||||
// (#stInOutWorkStation.nActivationStatus = 0) OR auch berücksichtigen?!
|
||||
#stInOutJamData.Status.nCount >= #stInOutJamData.Config.nCapacitySet OR //voll
|
||||
#stInOutJamData.Status.bByte.%X1 OR //Stau
|
||||
#stInOutJamData.Status.bByte.%X2 OR //Einfahrt gesperrt
|
||||
#stInOutJamData.Status.bByte.%X4 // Error
|
||||
THEN
|
||||
#FC_Get_LaneStatus := '0';
|
||||
ELSE
|
||||
#FC_Get_LaneStatus := '1';
|
||||
END_IF;
|
||||
END_FUNCTION
|
||||
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 5dd01bcf-9240-4599-b662-501f9aa0983e
|
||||
VersionGuid: ac5ee7ba-4136-4a93-ac9c-363a28d7ebae
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: c13bbb3e-468d-4003-bc69-30571b148328
|
||||
VersionGuid: a9add86c-6810-4ce0-9e3c-8a4fe1fb5768
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: b4ee7c11-1f91-4065-ac19-6e95973c6878
|
||||
VersionGuid: 76c93bac-8829-4bd8-8eae-21843fddd842
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: 38f9fbd2-eefa-4b3d-9910-bd5a9e03eca6
|
||||
VersionGuid: 4ea53fbf-b035-4eda-ac6d-cf23978f7d42
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
TypeGuid: fa21a558-0fb1-4e2e-ab9e-87ba1a763150
|
||||
VersionGuid: beeb038b-f634-485f-9c3c-a77af36bc924
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
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
|
||||
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
<?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 "UDT_TelegramData_Send"">
|
||||
<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_CommunicationLogger</Name>
|
||||
<Namespace />
|
||||
<Number>95</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>
|
||||
-66
@@ -1,66 +0,0 @@
|
||||
<?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="nSeqNum" Datatype="LInt" />
|
||||
<Member Name="xIsLogger" Datatype="Bool" />
|
||||
</Section>
|
||||
</Sections></Interface>
|
||||
<MemoryLayout>Optimized</MemoryLayout>
|
||||
<MemoryReserve>100</MemoryReserve>
|
||||
<Name>DB_CommunciationParametersLogger</Name>
|
||||
<Namespace />
|
||||
<Number>97</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>
|
||||
-142
@@ -1,142 +0,0 @@
|
||||
<?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_CommLogger</Name>
|
||||
<Namespace />
|
||||
<Number>96</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>
|
||||
-228
@@ -1,228 +0,0 @@
|
||||
FUNCTION_BLOCK "FB_CommunicationLogger"
|
||||
{ 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 { S7_SetPoint := 'False'} : Array[0..10] of "LStream_typeElement" := [(2, 'DecisionPoint', (), (), ()), (3, 'GIN', (), (), ()), (2, 'Barcode', (), (), ()), (1, 'Actions', (), (), true), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ()), ((), (), (), (), ())];
|
||||
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";
|
||||
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
|
||||
|
||||
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_SchSy"; //"Local"~PN-Interface_Customer";
|
||||
//unique connection identifier (W#16#0001...W#16#0FFF)
|
||||
#fbTeleHandler.stInTcpTypeConfig.connection.connectionID := 100;
|
||||
//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 := 4711;
|
||||
//partner port number, use only in case of client or specified partner (possible values: 1...49151; recommended values: 2000...5000)
|
||||
#fbTeleHandler.stInTcpTypeConfig.connection.partnerPort := 4711;
|
||||
|
||||
//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] := 192;
|
||||
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[2] := 168;
|
||||
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[3] := 3;
|
||||
#fbTeleHandler.stInTcpTypeConfig.connection.partnerIP.ADDR[4] := 245;
|
||||
|
||||
#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,
|
||||
xInSendTele := true,
|
||||
xInOutSendTele := #xSendTele,
|
||||
stInTelegramSend := #stTelegramToSend,
|
||||
fbInOutSendFIFO:= #fbInOutSendFIFO,
|
||||
arFifoSendBuffer:=#arFifoSendBuffer);
|
||||
END_REGION
|
||||
|
||||
REGION Reset SequenceNumber
|
||||
#rTrigConnectionActive(CLK:=#fbTeleHandler.xOutConnectionActive);
|
||||
|
||||
IF #rTrigConnectionActive.Q THEN
|
||||
"DB_CommunciationParametersLogger".nSeqNum := 0;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
REGION Send Heartbeat
|
||||
(* IF #fbTeleHandler.xOutConnectionActive THEN
|
||||
#xSendHeartbeat := TRUE;
|
||||
|
||||
IF #tOnHeartbeat.Q THEN
|
||||
#xSendHeartbeat := FALSE;
|
||||
"FC_Send_HB"(sInPLCID := "cPLCID",
|
||||
FIFO := "DB_LGF_FIFO_CommLogger",
|
||||
BUFFER := "DB_Buffer_CommunicationLogger".BUFFER,
|
||||
nInOutSequenceNumber:="DB_CommunciationParametersLogger".nSeqNum);
|
||||
END_IF;
|
||||
ELSE
|
||||
#xSendHeartbeat := FALSE;
|
||||
END_IF;
|
||||
|
||||
#tOnHeartbeat(IN := #xSendHeartbeat,
|
||||
PT := t#15s); *)
|
||||
END_REGION
|
||||
|
||||
REGION Empfangen
|
||||
//Wird nicht benötigt
|
||||
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
|
||||
#stTeleGOHDRespM.stHeader.sPlcId := #stNewTelegram.arDataString[1];
|
||||
#stTeleGOHDRespM.stHeader.sSeqNum := #stNewTelegram.arDataString[2];
|
||||
#stTeleGOHDRespM.stHeader.sMessageType := #stNewTelegram.arDataString[3];
|
||||
|
||||
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';
|
||||
|
||||
#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
|
||||
IF "DB_JamArea0102".stJam0102_4.arCarrier[1].nBarcode = #stTeleGOHDRespM.stPayload.nBarcode THEN
|
||||
IF #stTeleGOHDRespM.stPayload.arActions[0] = '1' THEN
|
||||
"DB_JamArea0102".stJam0102_4.arCarrier[1].nDestination := "cDestInboundOut";
|
||||
ELSIF #stTeleGOHDRespM.stPayload.arActions[0] = '-1' THEN
|
||||
"DB_JamArea0102".stJam0102_4.arCarrier[1].nDestination := "cDestClearing";
|
||||
END_IF;
|
||||
END_IF;
|
||||
END_IF; *)
|
||||
|
||||
#xDone := FALSE;
|
||||
|
||||
|
||||
|
||||
|
||||
(* 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 *)
|
||||
|
||||
#nState := 0;
|
||||
END_IF;
|
||||
|
||||
ELSE
|
||||
#nState := 0;
|
||||
END_IF;
|
||||
END_CASE;
|
||||
END_REGION
|
||||
|
||||
REGION LStream
|
||||
#LStream_JsonDeserializer_Instance(execute := #xStart,
|
||||
tree := #typeElement,
|
||||
raw := #arPayloadHelp);
|
||||
|
||||
IF #LStream_JsonDeserializer_Instance.done THEN
|
||||
#xDone := TRUE;
|
||||
END_IF;
|
||||
END_REGION
|
||||
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
-110
@@ -1,110 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Document>
|
||||
<Engineering version="V20" />
|
||||
<SW.Blocks.InstanceDB ID="0">
|
||||
<AttributeList>
|
||||
<InstanceOfName>FB_CommunicationLogger</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=""LGF_FIFO"" />
|
||||
<Member Name="arFifoSendBuffer" Datatype="Array[1..100] of "UDT_TelegramData_Send"" />
|
||||
</Section>
|
||||
<Section Name="Static">
|
||||
<Member Name="fbTeleHandler" Datatype=""FB_TCP_LCOM_TeleHandler"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="xReset" Datatype="Bool" />
|
||||
<Member Name="xSendTele" Datatype="Bool" />
|
||||
<Member Name="stTelegramToSend" Datatype=""UDT_TelegramData_Send"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="nState" Datatype="Int" />
|
||||
<Member Name="xRetVal" Datatype="Bool" />
|
||||
<Member Name="stNewTelegram" Datatype=""UDT_TelegramData"" />
|
||||
<Member Name="stTeleGOHDRespM" Datatype=""UDT_Telegram_GOHDRespM"">
|
||||
<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=""LStream_JsonDeserializer"">
|
||||
<AttributeList>
|
||||
<BooleanAttribute Name="SetPoint" SystemDefined="true">true</BooleanAttribute>
|
||||
</AttributeList>
|
||||
</Member>
|
||||
<Member Name="typeElement" Datatype="Array[0..10] of "LStream_typeElement"" />
|
||||
<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_CommunicationLogger_DB</Name>
|
||||
<Namespace />
|
||||
<Number>94</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>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user