This commit is contained in:
2026-01-08 11:08:17 +01:00
commit fe882dc444
311 changed files with 511562 additions and 0 deletions

View File

@@ -0,0 +1,169 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<EnumerationTextList Name="HV_ErrorNr" Id="{8f29b822-eec2-4201-8996-e8831ca0ba13}">
<Declaration><![CDATA[{attribute 'qualified_only'}
{attribute 'strict'}
TYPE HV_ErrorNr:(
eNoError := 0,
eNoWafer := 10,
wTempOutOfRange := 20,
eNotTuned := 30,
eOverTemp := 50,
eNoCommunication := 60,
eTimeoutShutterOpen := 100,
eTimeoutShutterClose := 101,
eTimeoutN2PressureRelease := 110,
eTimeoutN2Pressure := 111,
eTimeoutCylinderPressure := 120,
eTimeoutChamberOpen := 130,
eTimeoutChamberClose := 131,
eChamberOpenIsNotOpen := 150
);
END_TYPE]]></Declaration>
<XmlArchive>
<Data>
<o xml:space="preserve" t="TextListEnumerationTextListObject">
<l n="TextList" t="ArrayList" cet="TextListRow">
<o>
<v n="TextID">"eNoError"</v>
<v n="TextDefault">"0"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v></v>
<v></v>
</l>
</o>
<o>
<v n="TextID">"eNoWafer"</v>
<v n="TextDefault">"10"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Substrate Detection</v>
<v>Timeout-Substraterkennung</v>
</l>
</o>
<o>
<v n="TextID">"wTempOutOfRange"</v>
<v n="TextDefault">"20"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Temperature Out of Range</v>
<v>Temperatur außerhalb des zulässigen Bereichs</v>
</l>
</o>
<o>
<v n="TextID">"eNotTuned"</v>
<v n="TextDefault">"30"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Hotplate is not tuned</v>
<v>Hotplate is not tuned</v>
</l>
</o>
<o>
<v n="TextID">"eOverTemp"</v>
<v n="TextDefault">"50"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Over Temperature</v>
<v>Over Temperature</v>
</l>
</o>
<o>
<v n="TextID">"eNoCommunication"</v>
<v n="TextDefault">"60"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>HV No Communication</v>
<v>HV No Communication</v>
</l>
</o>
<o>
<v n="TextID">"eTimeoutShutterOpen"</v>
<v n="TextDefault">"100"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Shutter Open</v>
<v>Timeout Shutter Open</v>
</l>
</o>
<o>
<v n="TextID">"eTimeoutShutterClose"</v>
<v n="TextDefault">"101"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Shutter Close</v>
<v>Timeout Shutter Close</v>
</l>
</o>
<o>
<v n="TextID">"eTimeoutN2PressureRelease"</v>
<v n="TextDefault">"110"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Chamber Pressure release</v>
<v>Timeout Druckentlastung der Kammer</v>
</l>
</o>
<o>
<v n="TextID">"eTimeoutN2Pressure"</v>
<v n="TextDefault">"111"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Chamber Pressure</v>
<v>Timeout-Kammerdruck</v>
</l>
</o>
<o>
<v n="TextID">"eTimeoutCylinderPressure"</v>
<v n="TextDefault">"120"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Cylinder Pressure</v>
<v>Timeout-Zylinderdruck</v>
</l>
</o>
<o>
<v n="TextID">"eTimeoutChamberOpen"</v>
<v n="TextDefault">"130"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Chamber Open</v>
<v>Timeout-Kammer Offen</v>
</l>
</o>
<o>
<v n="TextID">"eTimeoutChamberClose"</v>
<v n="TextDefault">"131"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Timeout Chamber Close</v>
<v>Timeout-Kammer Schließen</v>
</l>
</o>
<o>
<v n="TextID">"eChamberOpenIsNotOpen"</v>
<v n="TextDefault">"150"</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v>Chamber Open Is Not Open</v>
<v>Chamber Open Is Not Open</v>
</l>
</o>
<o>
<v n="TextID">""</v>
<v n="TextDefault">""</v>
<l n="LanguageTexts" t="ArrayList" cet="String">
<v></v>
<v></v>
</l>
</o>
</l>
<l n="Languages" t="ArrayList" cet="String">
<v>en</v>
<v>de</v>
</l>
<v n="GuidInit">{65f8ed53-88f3-45f1-8486-684ee3f71cdf}</v>
<v n="GuidReInit">{7887b2f1-cf0f-40e3-ac41-c5ed36a9e849}</v>
<v n="GuidExitX">{a3499053-6a88-4c9b-83f7-5d01d57e25cc}</v>
</o>
</Data>
<TypeList>
<Type n="ArrayList">System.Collections.ArrayList</Type>
<Type n="Guid">System.Guid</Type>
<Type n="String">System.String</Type>
<Type n="TextListEnumerationTextListObject">{4b60233c-f940-4beb-b331-82133b520151}</Type>
<Type n="TextListRow">{53da1be7-ad25-47c3-b0e8-e26286dad2e0}</Type>
</TypeList>
</XmlArchive>
</EnumerationTextList>
</TcPlcObject>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
<DUT Name="sHVRecipe" Id="{61618797-0ae1-495e-ab80-d4de8072107d}">
<Declaration><![CDATA[TYPE sHVRecipe:
STRUCT
TEMPERATURE : LREAL := 30;
TOL : LREAL := 1;
N2 : LREAL := 2;
// Ramp : USINT(0..5);
// MeasurementRate : USINT(0..4);
// I_Max : LREAL := 200;
// V_Max : LREAL := 20;
// I_Limit : LREAL := 10;
// V_Limit : LREAL := 15;
// Direction : BOOL;
DelayTime : LREAL;
DATA : ARRAY [1..maxRecipeSteps] OF sHVRecipeStepData;
STEP_COUNT : USINT := 1;
END_STRUCT
END_TYPE]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<DUT Name="sHVRecipeStepData" Id="{cd2b13e9-a8a8-423c-a8f7-1917f8c7771a}">
<Declaration><![CDATA[TYPE sHVRecipeStepData :
STRUCT
Ramp : USINT(0..5);
MeasurementRate : USINT(0..4);
I_Max : LREAL := 200;
V_Max : LREAL := 20;
I_Limit : LREAL := 10;
V_Limit : LREAL := 15;
Direction : BOOL;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.6">
<DUT Name="eHVMedienNamen" Id="{8526d440-0f96-4544-87a5-3fc8674823c5}">
<Declaration><![CDATA[{attribute 'qualified_only'}
{attribute 'strict'}
TYPE eHVMedienNamen :
(
enum_member := 0,
ShutterOpen,
ShutterClose,
ChamberOpen,
ChamberClose,
OverpressureN2,
Exhaust,
Valve,
VacuumOn,
VacuumOff
);
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.6">
<DUT Name="sHVConfig" Id="{f25e05ec-2c93-4148-9bf6-c1b07aa98634}">
<Declaration><![CDATA[TYPE sHVConfig :
STRUCT
Temperature : sConfigTemperatureController;
StandbyTemperature : LREAL := 60;
DefaultChamberPressure : LREAL := 1;
ConfigPlausibility : BOOL := FALSE;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<GVL Name="HV_GVL" Id="{415e88b1-cd55-446a-b833-167011158431}">
<Declaration><![CDATA[VAR_GLOBAL
HV_RECIPE_EDITE : sHVRecipe;
HV_RECIPE_EMPTY : sHVRecipe;
DummyHVConfig : sHVConfig;
VisuHVConfig : REFERENCE TO sHVConfig := DummyHVConfig;
DummyHVAutoRecipe : sHVRecipe;
VisuHVAutoRecipe : REFERENCE TO sHVRecipe := DummyHVAutoRecipe;
// DummyHV_IO : HV_IO_FB;
HV_TCP : TCPClient_FB;
HV_TempController : TemperatureController_FB;
HVRecipeArray : ARRAY[0..100] OF LREAL;
DataX : ARRAY [1..200] OF REAL ;
DataY : ARRAY [1..200] OF REAL ;
END_VAR
VAR_GLOBAL CONSTANT
HV_MessrateString : ARRAY[0..4] OF STRING := ['50 Hz', '25 Hz', '12,5 Hz', '6,25 Hz', '2 Hz'];
HV_MaxTemperature : UINT := 200;
END_VAR]]></Declaration>
</GVL>
</TcPlcObject>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
<POU Name="ITV2050_FB" Id="{c5fa7a12-b8fc-489d-8717-9d5876e2bc1d}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK ITV2050_FB
VAR_INPUT
rOutTargetPressure : LREAL;
END_VAR
VAR_OUTPUT
rInCurrentPressure : LREAL;
END_VAR
VAR
OutTargetPressure AT %Q* : UINT;
InCurrentPressure AT %I* : UINT;
Dummy : LREAL;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[Dummy := rOutTargetPressure;
Dummy := Dummy/9;
Dummy := Dummy * 4100;
OutTargetPressure := LREAL_TO_UINT(Dummy);
rInCurrentPressure := InCurrentPressure;
rInCurrentPressure := rInCurrentPressure/4100;
rInCurrentPressure := rInCurrentPressure*9;]]></ST>
</Implementation>
<Method Name="Check" Id="{e4f9e6e7-bf7d-4a13-b768-5d80de8f56e3}">
<Declaration><![CDATA[METHOD Check : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[Check := ABS(rOutTargetPressure - rInCurrentPressure) < 0.1;]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
<POU Name="HV_IO_FB" Id="{147a9e62-dc3f-4b6b-8708-0efd1b986735}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK HV_IO_FB EXTENDS Station_GENERAL_IO_FB
VAR_INPUT
Config : REFERENCE TO sHVConfig;
bOutOverpressureN2 AT %Q* : BOOL;
bOutExhaust AT %Q* : BOOL;
bOutValve AT %Q* : BOOL;
PressureController : ITV2050_FB;
END_VAR
VAR
Shutter : PneumaticCylinder_FB;
Chamber : PneumaticCylinder_FB;
ChuckVacuum : PneumaticCylinder_FB;
END_VAR
VAR_OUTPUT
bInOverTemp AT %I* : BOOL;
bInPressureCylinderOk AT %I* : BOOL;
bInShutterSafety AT %I* : BOOL;
InChamberPressure AT %I* : INT;
rInChamberPressure : LREAL;
bInChamberPressureOk : BOOL;
bInChamberNoPressure : BOOL;
bInRobotFree AT %I* : BOOL;
bInRobotNotFree AT %I* : BOOL;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[MediaCheck();
IF NOT bInShutterSafety THEN
Shutter.Up(TRUE);
END_IF
//
IF NOT Shutter.bInUp OR NOT Chamber.bInUp OR NOT bInRobotFree OR bInRobotNotFree THEN
iStationStatus.Ist.PrepIn := FALSE;
iStationStatus.Ist.PrepOut := FALSE;
END_IF
Shutter();
Chamber();
ChuckVacuum();
iMediaArray[eHVMedienNamen.ChamberClose].Disable := NOT bInPressureCylinderOk OR NOT Shutter.bInDown;
iMediaArray[eHVMedienNamen.ChamberOpen].Disable := NOT bInPressureCylinderOk OR NOT Shutter.bInDown;
IF NOT bInPressureCylinderOk THEN
Chamber.bOutUp := FALSE;
Chamber.bOutDown := FALSE;
END_IF
IF NOT Shutter.bInDown THEN
Chamber.bOutDown := FALSE;
END_IF
iMediaArray[eHVMedienNamen.Valve].Input := bInPressureCylinderOk;
rInChamberPressure := InChamberPressure;
rInChamberPressure := rInChamberPressure / 16#7FFF;
rInChamberPressure := rInChamberPressure * 10;
CASE iStationStatus.StationType OF
TypeHVHot:
rInChamberPressure := rInChamberPressure -1;
END_CASE
bInChamberPressureOk := ABS(rInChamberPressure - PressureController.rOutTargetPressure) < 0.1;
bInChamberNoPressure := rInChamberPressure < 0.02;
iMediaArray[eHVMedienNamen.OverpressureN2].Input := bInChamberPressureOk;
iMediaArray[eHVMedienNamen.Exhaust].Input := bInChamberNoPressure;
IF NOT Chamber.bInDown THEN
bOutOverpressureN2 := FALSE;
END_IF
//
//Vacuum
ChuckVacuum.bInDown := NOT ChuckVacuum.bInUp;
//iMediaArray[eHVMedienNamen.VacuumOn].Input := bInVacuumOk;
//iMediaArray[eHVMedienNamen.VacuumOff].Input := NOT bInVacuumOk;
//
PressureController();]]></ST>
</Implementation>
<Method Name="Initialization" Id="{ee221bc4-5d24-4a1e-9c73-9b3abc1ca4c2}">
<Declaration><![CDATA[METHOD Initialization : BOOL
VAR_INPUT
iStation : INT;
END_VAR
VAR
ShutterUpServiceName : ARRAY[0..NumberOfLanguages] OF T_MaxString := ['Open$NShutter', 'Shutter$NOffen'];
ShutterDownServiceName : ARRAY[0..NumberOfLanguages] OF T_MaxString := ['Close$NShutter', 'Shutter$NSchließen'];
ChamberUpServiceName : ARRAY[0..NumberOfLanguages] OF T_MaxString := ['Open$NChamber', 'Kammer$NOffen'];
ChamberDownServiceName : ARRAY[0..NumberOfLanguages] OF T_MaxString := ['Close$NChamber', 'Kammer$NSchließen'];
ChuckVacuumOnServiceName : ARRAY[0..NumberOfLanguages] OF T_MaxString := ['Auflagevakuum$NEin', 'Auflagevakuum$NEin'];
ChuckVacuumOffServiceName : ARRAY[0..NumberOfLanguages] OF T_MaxString := ['Auflagevakuum$NAus', 'Auflagevakuum$NAus'];
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[InitializationExt(iStation);
Shutter.Initialization(
iStation,
eHVMedienNamen.ShutterOpen,
eHVMedienNamen.ShutterClose,
HV_ErrorNr.eTimeoutShutterOpen,
ShutterUpServiceName,
ShutterDownServiceName
);
Shutter.TimeOut := T#10S;
Chamber.Initialization(
iStation,
eHVMedienNamen.ChamberOpen,
eHVMedienNamen.ChamberClose,
HV_ErrorNr.eTimeoutChamberOpen,
ChamberUpServiceName,
ChamberDownServiceName
);
Chamber.TimeOut := T#10S;
ChuckVacuum.Initialization(
iStation,
eHVMedienNamen.VacuumOn,
eHVMedienNamen.VacuumOff,
HV_ErrorNr.eNoWafer,
Peripherie_GVL.ServiceNameChuckVacuumOn,
Peripherie_GVL.ServiceNameChuckVacuumOff
);
ChuckVacuum.TimeOut := T#10S;
iMediaArray[eHVMedienNamen.OverpressureN2].ServiceName[0] := 'Überdruck$NN2';
iMediaArray[eHVMedienNamen.OverpressureN2].bReferenceControl REF= bOutOverpressureN2;
iMediaArray[eHVMedienNamen.OverpressureN2].bReferenceResetControl REF= bOutExhaust;
iMediaArray[eHVMedienNamen.OverpressureN2].InputAvailable := TRUE;
iMediaArray[eHVMedienNamen.Exhaust].ServiceName[0] := 'Exhaust';
iMediaArray[eHVMedienNamen.Exhaust].bReferenceControl REF= bOutExhaust;
iMediaArray[eHVMedienNamen.Exhaust].bReferenceResetControl REF= bOutOverpressureN2;
iMediaArray[eHVMedienNamen.Exhaust].InputAvailable := TRUE;
iMediaArray[eHVMedienNamen.Valve].ServiceName[0] := 'Ventil';
iMediaArray[eHVMedienNamen.Valve].bReferenceControl REF= bOutValve;
iMediaArray[eHVMedienNamen.Valve].InputAvailable := TRUE;]]></ST>
</Implementation>
</Method>
<Action Name="MediaCheck" Id="{a9750f69-cba0-4bdb-9a48-68a3453c159e}">
<Implementation>
<ST><![CDATA[CASE iStationStatus.StationType OF
TypeHVHot:
AlarmSend(iStation, HV_ErrorNr.eOverTemp, FALSE, eReportType.Warning, sAvailableResponse.Ok, NOT bInOverTemp);
END_CASE
DelayTimer(IN := TRUE AND InAktorspannung, PT := T#5S);
IF NOT DelayTimer.Q THEN
RETURN;
END_IF
]]></ST>
</Implementation>
</Action>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,732 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.13">
<POU Name="HV_MAIN_FB" Id="{2c8d10c9-caf7-4733-86a0-f1c82027a9a1}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK HV_MAIN_FB EXTENDS Station_GENERAL_MAIN_FB IMPLEMENTS I_STATION_CMD_CALL
VAR
Config : sHVConfig;
ConfigOld : sHVConfig;
IO : HV_IO_FB;
Recipe : sHVRecipe;
RecipeRead : sHVRecipe;
RecipeLoad : sHVRecipe;
Trend : Trend_FB;
ITempController : I_TempController;
TestFinish : BOOL;
END_VAR
VAR CONSTANT
StepRecipeStart : INT := 10;
TimeOut : TIME := T#10S;
END_VAR
VAR_INPUT
END_VAR
VAR_OUTPUT
TestOk : BOOL;
TestNotOk : BOOL;
END_VAR
VAR PERSISTENT
// RecipeStandby : sHVRecipe;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
<Method Name="CheckFlow" Id="{9e31302b-4aaf-427a-9e1e-f758811b1dd2}">
<Declaration><![CDATA[METHOD CheckFlow : BOOL
VAR_INPUT
Step : REFERENCE TO INT;
END_VAR
VAR
i : USINT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE Step OF
0:
IF CheckRecipe() THEN
Step := 50;
END_IF
50:
CASE iStationStatus.StationType OF
TypeHVHot:
ITempController.Enable := TRUE;
ITempController.TargetTemperature := RecipeRead.TEMPERATURE;
ITempController.Tolerance := RecipeRead.TOL;
Step := 60;
TypeHVCold:
Step := 100;
END_CASE
60:
IF ITempController.TemperatureInRange() THEN
Step := 100;
ELSE
Step := 110;
END_IF
100:
iStationStatus.Ist.ReadyForFlow := TRUE;
iStationStatus.Soll.CheckFlow := FALSE;
Step := 0;
110:
iStationStatus.Ist.ReadyForFlow := FALSE;
iStationStatus.Soll.CheckFlow := FALSE;
Step := 0;
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="CloseInOut" Id="{a1633ec5-946a-45c9-8f77-07d6a415581e}">
<Declaration><![CDATA[METHOD CloseInOut : BOOL
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _Step OF
0:
TestOk := FALSE;
TestNotOk := FALSE;
_Step := 10;
10:
CASE iCMD OF
CloseInCMD:
IF iStationStatus.Ist.Service THEN
_Step := 30;
ELSE
_Step := _Step +1;
END_IF
CloseOutCMD:
_Step := 30;
END_CASE
11:
IF LoadAutoRecipe() THEN
_Step := 15;
END_IF
15:
CASE iStationStatus.StationType OF
TypeHVHot:
_Step := 20;
TypeHVCold:
_Step := 30;
END_CASE
20:
IF ITempController.TuneDone THEN
ITempController.TargetTemperature := Recipe.TEMPERATURE;
ITempController.Tolerance := Recipe.TOL;
ITempController.Enable := TRUE;
_Step := _Step +1;
ELSE
AlarmSend(iStation:=iStation,MsgId := HV_ErrorNr.eNotTuned,TRUE, eReportType.Error, sAvailableResponse.Ok, FALSE);
iStationStatus.Soll.Stop := TRUE;
END_IF
21:
IF ITempController.TemperatureInRange() THEN
_Step := 30;
ELSE
iStationStatus.Error := TRUE;
iStationStatus.ErrorIndex := AlarmSend(iStation,MsgId := HV_ErrorNr.wTempOutOfRange,TRUE, eReportType.Warning, sAvailableResponse.AbortRetryIgnore, FALSE);
iStationStatus.StepRetry := 0;
iStationStatus.StepIgnore := 30;
END_IF
30:
IF IO.Shutter.Down() THEN
CASE iCMD OF
CloseInCMD:
_Step := 40;
CloseOutCMD:
_Step := 90;
END_CASE
END_IF
40:
IF IO.ChuckVacuum.Up() THEN
_Step := 50;
END_IF
50:
IO.bOutValve := TRUE;
ProblemTimer(
iStation,
_Step,
0,
HV_ErrorNr.eTimeoutCylinderPressure,
sAvailableResponse.RetryCancel,
TimeOut
);
_Step := _Step +1;
51:
IF IO.bInPressureCylinderOk THEN
iStationStatus.ProblemTimer := T#0S;
_Step := 55;
END_IF
55:
IF IO.Chamber.Down() THEN
_Step := _Step +1;
END_IF
56:
DelayTimer(IN := TRUE, PT := T#3S);
IF DelayTimer.Q THEN
DelayTimer(IN := FALSE);
_Step := 60;
END_IF
60:
IF iStationStatus.Ist.Service THEN
IO.bOutExhaust := FALSE;
IO.bOutOverpressureN2 := TRUE;
IO.PressureController.rOutTargetPressure := Config.DefaultChamberPressure;
ProblemTimer(
iStation,
_Step,
0,
HV_ErrorNr.eTimeoutN2Pressure,
sAvailableResponse.RetryCancel,
TimeOut
);
_Step := _Step +1;
ELSE
_Step := 90;
END_IF
61:
IF IO.bInChamberPressureOk THEN
iStationStatus.ProblemTimer := T#0S;
_Step := 90;
END_IF
90:
CloseInOut := TRUE;
_Step := 0;
END_CASE
]]></ST>
</Implementation>
</Method>
<Method Name="FB_Init" Id="{d0961d05-e82d-47be-a411-854140c0cec7}">
<Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization.
//The return value is not evaluated. For a specific influence, you can also declare the
//methods explicitly and provide additional code there with the standard initialization
//code. You can evaluate the return value.
METHOD FB_Init: BOOL
VAR_INPUT
bInitRetains: BOOL; // TRUE: the retain variables are initialized (reset warm / reset cold)
bInCopyCode: BOOL; // TRUE: the instance will be copied to the copy code afterward (online change)
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[_DataLoggerV2 := TRUE;
DataLoggerV2.IntervalTime := T#10MS;
_VisuName := 'HV';
_SchedulerManagement := TRUE;]]></ST>
</Implementation>
</Method>
<Method Name="INIT" Id="{428cfc9c-61cb-4074-9cd6-9c6a0e4b8e11}">
<Declaration><![CDATA[METHOD INIT : BOOL]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _Step OF
0:
CASE iStationStatus.StationType OF
TypeHVHot:
IF ITempController.TuneDone THEN
ITempController.Enable := TRUE;
ITempController.TargetTemperature := Config.StandbyTemperature;
ITempController.Tolerance := 1;
END_IF
END_CASE
_Step := 20;
20:
IO.bOutExhaust := TRUE;
_Step := 90;
90:
IF iStationStatus.WaferInfo[0].Number = 100 THEN
_Step := 91;
ELSE
_Step := 100;
END_IF
91:
DelayTimer(IN:= TRUE, PT := T#1S);
IF DelayTimer.Q THEN
DelayTimer(IN:= FALSE, PT := T#1S);
_Step := 100;
END_IF
100:
_Step := 0;
INIT := TRUE;
END_CASE
]]></ST>
</Implementation>
</Method>
<Method Name="Initialization" Id="{6d62762c-e62a-44c2-8ce3-6477e1d32b39}">
<Declaration><![CDATA[METHOD Initialization : BOOL
VAR_INPUT
iStation : INT;
END_VAR
VAR
j : INT;
V : LREAL; // Voltage across the diode
I : LREAL; // Current through the diode
I_s : REAL := 1E-12; // Reverse saturation current (example value)
n : REAL := 1.0; // Ideality factor (example value)
V_t : REAL := 0.026; // Thermal voltage at room temperature
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[InitializationExt(iStation);
iStationStatus.NoScan := TRUE;
iStationStatus.CheckStation := TRUE;
//iStationStatus.RecipeOnlyHeader := TRUE;
iStationStatus.RecipeStatus.StepCount REF= HV_RECIPE_EDITE.STEP_COUNT;
CASE iStationStatus.StationType OF
TypeHVHot:
iStationStatus.StandbyAvailable := TRUE;
iStationStatus.StationName := 'HV Hot';
RecipeStationName[iStation] := 'HV Hot';
TypeHVCold:
iStationStatus.StationName := 'HV Cold';
RecipeStationName[iStation] := 'HV Cold';
END_CASE
iStationStatus.ErrorList := 'HV_ErrorNr';
CASE StationsStatus[iStation].StationType OF
TypeHVHot:
ConfigManagement.Initialization(ADR(Config), ADR(ConfigOld), SIZEOF(Config), 'sHVConfig', 'HVHot');
TypeHVCold:
ConfigManagement.Initialization(ADR(Config), ADR(ConfigOld), SIZEOF(Config), 'sHVConfig', 'HVCold');
END_CASE
ConfigPlausibility REF= Config.ConfigPlausibility;
RecipeManagement.Initialization(
iStation,
ADR(RecipeLoad),
ADR(HV_RECIPE_EDITE),
ADR(HV_RECIPE_EMPTY),
ADR(RecipeRead),
ADR(Recipe),
// ADR(RecipeStandby),
SIZEOF(Recipe),
'sHVRecipe',
0
);
IO.Initialization(iStation);
IO.Config REF= Config;
//Signal REF= HVSiganl[iStation];
//Config REF= HVConfig[iStation];
CASE iStationStatus.StationType OF
TypeHVHot:
HV_TempController.Config REF= Config.Temperature;
HV_TempController.rInTuneTargetTemperature := 80;
HV_TempController.tTaskCycleTime := T#2MS;
HV_TempController.rInMaxTemperature := HV_MaxTemperature;
HV_TempController.rInMinTemperature := 20;
StationsStatus[iStation].StandbyAvailable := TRUE;
END_CASE
ITempController := HV_TempController;
iStationStatus.CurrentStep REF= CurrentStep;
FOR j := 0 TO 100 DO
V := INT_TO_LREAL(j)/100;
I := I_s * (EXP(V / (n * V_t)) - 1);
HVRecipeArray[j] := I;
END_FOR
DataLoggerV2.Data[1].Name := 'Voltage (V)';
DataLoggerV2.Data[1].Value REF= HV_SCHUSTER.HV_I.Spannungsmesswert;
DataLoggerV2.Data[1].Tolerence := 0.01;
DataLoggerV2.Data[2].Name := 'Current (mA)';
DataLoggerV2.Data[2].Value REF= HV_SCHUSTER.HV_I.Strommesswert;
DataLoggerV2.Data[2].Tolerence := 0.001;
DataLoggerV2.Data[3].Name := 'N2 Pressure(Bar)';
DataLoggerV2.Data[3].Value REF= IO.rInChamberPressure;
DataLoggerV2.Data[3].Tolerence := 0.1;
CASE iStationStatus.StationType OF
TypeHVHot:
DataLoggerV2.Data[4].Name := 'Temperature(°C)';
DataLoggerV2.Data[4].Value REF= HV_TempController.rOutCurrentTemperature;
DataLoggerV2.Data[4].Tolerence := 0.1;
END_CASE
]]></ST>
</Implementation>
</Method>
<Method Name="MAIN" Id="{57f96818-f1de-40b4-804b-5da601f77892}">
<Declaration><![CDATA[METHOD MAIN : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE iStationStatus.StationType OF
TypeHVHot:
ITempController.MAIN();
END_CASE
IO();]]></ST>
</Implementation>
</Method>
<Method Name="PrepInOut" Id="{f80ff994-5226-46de-9e5b-8de878859f7e}">
<Declaration><![CDATA[METHOD PrepInOut : BOOL]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _Step OF
0:
IF IO.Chamber.bInUp THEN
_Step := 50;
ELSE
_Step := 10;
END_IF
10:
IF IO.Shutter.Down() THEN
_Step := 20;
END_IF
20:
IO.bOutOverpressureN2 := FALSE;
IO.bOutExhaust := TRUE;
ProblemTimer(
iStation,
_Step,
0,
HV_ErrorNr.eTimeoutN2PressureRelease,
sAvailableResponse.RetryCancel,
TimeOut
);
_Step := _Step +1;
21:
IF IO.bInChamberNoPressure THEN
iStationStatus.ProblemTimer := T#0S;
_Step := 30;
END_IF
30:
IO.bOutValve := TRUE;
ProblemTimer(
iStation,
_Step,
0,
HV_ErrorNr.eTimeoutCylinderPressure,
sAvailableResponse.RetryCancel,
TimeOut
);
_Step := _Step +1;
31:
IF IO.bInPressureCylinderOk THEN
iStationStatus.ProblemTimer := T#0S;
_Step := 40;
END_IF
40:
IF IO.Chamber.Up() THEN
_Step := 50;
END_IF
50:
IF IO.Shutter.Up() THEN
_Step := 60;
END_IF
60:
IO.ChuckVacuum.Down(TRUE);
_Step := 90;
90:
IF IO.bInRobotFree AND NOT IO.bInRobotNotFree THEN
_Step := 100;
ELSE
iStationStatus.Error := TRUE;
iStationStatus.ErrorIndex := AlarmSend(iStation, HV_ErrorNr.eChamberOpenIsNotOpen, TRUE, eReportType.Error, sAvailableResponse.RetryCancel, FALSE);
iStationStatus.StepRetry := 0;
END_IF
100:
_Step := 0;
PrepInOut := TRUE;
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="RCPAddStep" Id="{cae62163-76f5-4e53-bba4-94862f0ab370}">
<Declaration><![CDATA[METHOD RCPAddStep : BOOL
]]></Declaration>
<Implementation>
<ST><![CDATA[MEMMOVE(
ADR(HV_RECIPE_EDITE.DATA[RecipeCurrentStep+1]),
ADR(HV_RECIPE_EDITE.DATA[RecipeCurrentStep]),
SIZEOF(HV_RECIPE_EDITE.DATA[RecipeCurrentStep])*(HV_RECIPE_EDITE.STEP_COUNT-RecipeCurrentStep+1)
);
HV_RECIPE_EDITE.STEP_COUNT := HV_RECIPE_EDITE.STEP_COUNT+1;
RecipeCurrentStep := RecipeCurrentStep +1;]]></ST>
</Implementation>
</Method>
<Method Name="RCPStepRemove" Id="{9408a95a-5c58-41b0-bfc6-85651a702066}">
<Declaration><![CDATA[METHOD RCPStepRemove : BOOL
]]></Declaration>
<Implementation>
<ST><![CDATA[IF HV_RECIPE_EDITE.STEP_COUNT = (RecipeCurrentStep) THEN
RecipeCurrentStep := RecipeCurrentStep -1;
ELSE
MEMMOVE(
ADR(HV_RECIPE_EDITE.DATA[RecipeCurrentStep]),
ADR(HV_RECIPE_EDITE.DATA[RecipeCurrentStep+1]),
SIZEOF(HV_RECIPE_EDITE.DATA[RecipeCurrentStep])*(HV_RECIPE_EDITE.STEP_COUNT-RecipeCurrentStep)
);
END_IF
HV_RECIPE_EDITE.STEP_COUNT := HV_RECIPE_EDITE.STEP_COUNT-1;]]></ST>
</Implementation>
</Method>
<Method Name="RecipeVisu" Id="{a08d8697-042d-4915-b544-11ccf0743ac9}">
<Declaration><![CDATA[METHOD RecipeVisu : BOOL
VAR_INPUT
END_VAR
VAR_INST
Step : INT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE Step OF
0:
Step := 10;
10:
CurrentStepOld := RecipeCurrentStep;
Step := Step +1;
11:
IF CurrentStepOld <> RecipeCurrentStep THEN
Step := 10;
RETURN;
END_IF
IF iStationStatus.Soll.RecipeExit THEN
Step := 0;
iStationStatus.Ist.Recipe := FALSE;
iStationStatus.Soll.RecipeExit := FALSE;
END_IF
END_CASE
]]></ST>
</Implementation>
</Method>
<Method Name="Standby" Id="{2b06bb6c-9354-43b6-9046-9535cc9317f4}">
<Declaration><![CDATA[METHOD Standby : BOOL
VAR_INPUT
bStart : BOOL;
Step : REFERENCE TO INT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE Step OF
0:
StandbyTimer(IN := bStart, PT := UDINT_TO_TIME(StandbyDelay[iStation]*1000));
IF StandbyTimer.Q THEN
StandbyTimer(IN := FALSE);
Step := 10;
END_IF
10:
CASE iStationStatus.StationType OF
TypeHVHot:
// ITempController.TargetTemperature := RecipeStandby.TEMPERATURE;
ITempController.Enable := TRUE;
END_CASE
Step := 0;
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="Start" Id="{9f12bd79-2919-4430-8172-8e9ca53b4dd4}">
<Declaration><![CDATA[METHOD Start : BOOL
VAR_INST
i : INT;
CassetteNumber : INT;
SlotNumber : INT;
CurrentProcessStep : UINT;
TargetRelaxStation : INT;
RetryFlowName : T_MaxString;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _Step OF
0:
//Profi
TestOk := TRUE;
_Step := 90;
RETURN;
HV_SCHUSTER.HV_I.Spannungsmesswert := 0;
HV_SCHUSTER.HV_I.Strommesswert := 0;
CurrentStep := 0;
_Step := StepRecipeStart;
StepRecipeStart:
IO.bOutExhaust := FALSE;
IO.bOutOverpressureN2 := TRUE;
ProblemTimer(
iStation,
_Step,
0,
HV_ErrorNr.eTimeoutN2Pressure,
sAvailableResponse.RetryCancel,
TimeOut
);
_Step := _Step +1;
11:
IO.PressureController.rOutTargetPressure := Recipe.N2;
IF IO.bInPressureCylinderOk THEN
iStationStatus.ProblemTimer := T#0S;
//Step := 90;
_Step := 20;
END_IF
20:
CASE iStationStatus.StationType OF
TypeHVHot:
_Step := _Step +1;
TypeHVCold:
_Step := 30;
END_CASE
21:
StepTimer(IN := TRUE, PT := LREAL_TO_TIME(Recipe.DelayTime*1000));
IF StepTimer.Q THEN
_Step := 30;
StepTimer(IN := FALSE);
END_IF
30:
TestFinish := FALSE;
CurrentStep := CurrentStep +1;
HV_SCHUSTER.sMessrate := Recipe.DATA[CurrentStep].MeasurementRate;
HV_SCHUSTER.sRampe := Recipe.DATA[CurrentStep].Ramp;
HV_SCHUSTER.sVD := LREAL_TO_UDINT(Recipe.DATA[CurrentStep].V_Max*1000);
HV_SCHUSTER.sVR := LREAL_TO_UDINT(Recipe.DATA[CurrentStep].V_Max*1000);
HV_SCHUSTER.sID := Recipe.DATA[CurrentStep].I_Max;
HV_SCHUSTER.sIR := Recipe.DATA[CurrentStep].I_Max;
HV_SCHUSTER.R_Dir := Recipe.DATA[CurrentStep].Direction;
HV_SCHUSTER.SendParameter();
_Step := _Step +1;
31:
DelayTimer(IN := TRUE, PT := T#100MS);
IF DelayTimer.Q THEN
DelayTimer(IN := FALSE, PT := T#100MS);
_Step := 40;
END_IF
40:
IF HV_SCHUSTER.StartRead(iStation) THEN
_Step := 50;
END_IF
50:
IF HV_SCHUSTER.CheckResult(Recipe.DATA[CurrentStep].V_Limit*1000, Recipe.DATA[CurrentStep].I_Limit, ResultNotOk => TestNotOk) THEN
TestOk := NOT TestNotOk;
_Step := 60;
END_IF
60:
IF TestOk THEN
_Step := 80;
ELSE
CASE iStationStatus.OperationMode OF
AutomaticMode:
_Step := 70;
ELSE
_Step := 80;
END_CASE
END_IF
70:
CassetteNumber := iStationStatus.WaferInfo[0].CassetteNumber;
SlotNumber := iStationStatus.WaferInfo[0].Number;
CurrentProcessStep := iStationStatus.WaferInfo[0].FlowStepNumber;
RetryFlowName := CASSETTE_PROCESS[CassetteNumber][SlotNumber][CurrentProcessStep].RetryFlowName;
IF CASSETTE_PROCESS[CassetteNumber][SlotNumber][CurrentProcessStep].Retry THEN
_Step := 75;
ELSE
iStationStatus.WaferInfo[0].Defect := TRUE;
_Step := 90;
END_IF
75:
IF StationsStatus[RobotStation].Ist.Busy AND ROBOT_MAIN.TargetStation <> iStation THEN
RETURN;
END_IF
FOR i := FirstLelaxStation TO LastRelaxStation DO
IF StationsStatus[i].WaferInfo[0].Number = 0 THEN
TargetRelaxStation := i;
RETRY_MAIN[TargetRelaxStation].RetryFlowName := RetryFlowName;
CASSETTE_PROCESS[CassetteNumber][SlotNumber][iStationStatus.WaferInfo[0].FlowStepNumber+1].TargetStation := TargetRelaxStation;
_Step := 90;
RETURN;
END_IF
END_FOR
80:
IF Recipe.STEP_COUNT > CurrentStep THEN
_Step := 30;
ELSE
_Step := 90;
END_IF
90:
IO.bOutOverpressureN2 := FALSE;
IO.bOutExhaust := TRUE;
ProblemTimer(
iStation,
_Step,
0,
HV_ErrorNr.eTimeoutN2PressureRelease,
sAvailableResponse.RetryCancel,
TimeOut
);
_Step := _Step +1;
91:
IF IO.bInChamberNoPressure THEN
iStationStatus.ProblemTimer := T#0S;
_Step := _Step+1;
END_IF
92:
IO.bOutValve := TRUE;
ProblemTimer(
iStation,
_Step,
0,
HV_ErrorNr.eTimeoutCylinderPressure,
sAvailableResponse.RetryCancel,
TimeOut
);
_Step := _Step +1;
93:
IF IO.bInPressureCylinderOk THEN
iStationStatus.ProblemTimer := T#0S;
_Step := 95;
END_IF
95:
IF IO.Chamber.Up() THEN
_Step := 100;
END_IF
100:
Start := TRUE;
_Step := 0;
END_CASE
]]></ST>
</Implementation>
</Method>
<Method Name="ToVisu" Id="{9bfbeb4b-7bab-4090-b95e-1b2c52af5555}">
<Declaration><![CDATA[METHOD ToVisu : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[VisuHVAutoRecipe REF= Recipe;
VisuHPTrend REF= Trend;
VisuHVConfig REF= Config;
//VisuHotplateSignal REF= HotplateSiganl[iStation];
VisuHV_IO REF= IO;
//VisuTempController REF= TempController;
VISU_HVMain REF= HV_MAIN[iStation];
CASE iStationStatus.StationType OF
TypeHVHot:
VisuIITempController := HV_TempController;
END_CASE
]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,490 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<POU Name="SCHUSTER_FB" Id="{cddda422-ecf8-4686-8f76-3b74f720146f}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK SCHUSTER_FB EXTENDS Peripherie_FB
VAR_INPUT
NoComErrorIndex : INT;
sMessrate : USINT(0..4);
sRampe : USINT(0..5);
sVR,sVD : UDINT;
sIR,sID : LREAL;
R_Dir : BOOL;
bInStartRead : BOOL;
bInReadParameter : BOOL;
HV_I : sHV_I;
END_VAR
VAR_OUTPUT
gMessrate : USINT(0..4);
gRampe : USINT(0..5);
gVR,gVD : UDINT;
gIR,gID : LREAL;
ServiceScaleEndV : LREAL;
ServiceScaleMainV : LREAL;
ServiceSubscaleV : LREAL;
ServiceScaleEndI : LREAL;
ServiceScaleMainI : LREAL;
ServiceSubscaleI : LREAL;
END_VAR
VAR
Com : TCPClient_FB;
FindPosition : INT;
ReceiveMessage : T_MaxString;
ComTimeDelay : TON;
EmptyTrend : ARRAY[0..50] OF LREAL;
OldSendMessage : T_MaxString;
CMD_LOGGER : CMD_LOGGER_FB;
END_VAR
VAR CONSTANT
NewLine : STRING := '#';
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[CMD_LOGGER();
Com();
ErrorHandling();
ComTimeDelay(IN := InAktorspannung, PT := T#3S);
AlarmSend(iStation, NoComErrorIndex, FALSE, eReportType.Warning, sAvailableResponse.NoResponse, Com.bOutConnected OR NOT ComTimeDelay.Q);
FindPosition := Find(Com.ReceiveMessage, NewLine);
IF FindPosition > 0 THEN
ReceiveMessage := Left(Com.ReceiveMessage, FindPosition);
Com.ReceiveMessage := DELETE(Com.ReceiveMessage, FindPosition,1);
JMP Lable1;
END_IF
Lable1:
IF FIND(ReceiveMessage, SCHUSTER_LOG[0]) = 0 AND ReceiveMessage <> '' THEN
MEMMOVE(ADR(SCHUSTER_LOG[1]), ADR(SCHUSTER_LOG[0]), SIZEOF(SCHUSTER_LOG)- SIZEOF(SCHUSTER_LOG[0]));
SCHUSTER_LOG[0] := ReceiveMessage;
END_IF
FindPosition := find(SCHUSTER_LOG[0], NewLine);
IF FindPosition > 0 AND SCHUSTER_LOG[0] <> NewLine THEN
SCHUSTER_LOG[0] := LEFT(SCHUSTER_LOG[0], FindPosition-1);
END_IF
IF OldSendMessage <> Com.SendMessage THEN
OldSendMessage := Com.SendMessage;
ReceiveMessage := '';
MEMMOVE(ADR(SCHUSTER_LOG[1]), ADR(SCHUSTER_LOG[0]), SIZEOF(SCHUSTER_LOG)- SIZEOF(SCHUSTER_LOG[0]));
SCHUSTER_LOG[0] := Com.SendMessage;
END_IF
IF bInStartRead THEN
StartRead(iStation);
END_IF
IF bInReadParameter THEN
ReadParameter();
END_IF
ReadInput();
Visu();]]></ST>
</Implementation>
<Method Name="CheckResult" Id="{fad758aa-eb3d-402d-9488-b2bd7f865c09}">
<Declaration><![CDATA[METHOD CheckResult : BOOL
VAR_INPUT
V_Limit : LREAL;
I_Limit : LREAL;
END_VAR
VAR_OUTPUT
ResultNotOk : BOOL;
END_VAR
VAR
i : INT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[FOR i := 0 TO 50 DO
IF SCHUSTER_TrendV[i] = 0 AND SCHUSTER_TrendI[i] = 0 THEN
EXIT;
ELSE
IF SCHUSTER_TrendV[i] <= V_Limit THEN
IF SCHUSTER_TrendI[i] > I_Limit THEN
ResultNotOk := TRUE;
CheckResult := TRUE;
RETURN;
END_IF
END_IF
END_IF
END_FOR
FOR i := 0 TO 50 DO
IF SCHUSTER_TrendV[i] = 0 AND SCHUSTER_TrendI[i] = 0 THEN
ResultNotOk := TRUE;
CheckResult := TRUE;
RETURN;
ELSE
IF SCHUSTER_TrendV[i] >= V_Limit THEN
IF SCHUSTER_TrendI[i] > I_Limit THEN
CheckResult := TRUE;
RETURN;
END_IF
END_IF
END_IF
END_FOR ]]></ST>
</Implementation>
</Method>
<Method Name="Initialization" Id="{0ecf030c-5efd-4f3e-91a9-2462c2abfca7}">
<Declaration><![CDATA[METHOD Initialization
VAR_INPUT
iStation : INT;
IPAdress : STRING;
Port : UDINT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[PeripherieInitialization(iStation);
//Com.NewLine := NewLine;
Com.IPAdress := IPAdress;//'192.168.9.101';
Com.Port := Port;//23;
CMD_LOGGER.LogPath := 'D:\Obducat\LOG_CMD\SCHUSTER\';
CMD_LOGGER.LogString REF= SCHUSTER_LOG[0];]]></ST>
</Implementation>
</Method>
<Method Name="ReadInput" Id="{37422f72-7bc5-40a0-8871-634ac1a23a3f}">
<Declaration><![CDATA[METHOD ReadInput : BOOL
VAR_INPUT
END_VAR
VAR_INST
TempString : STRING;
Index : INT;
TempPos : INT;
TempText : STRING;
OldIndex : UINT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF FIND(ReceiveMessage, 'I;') > 0 THEN
TempString := ReceiveMessage;
TempString := DELETE(TempString, 2, 1);
FOR index := 1 TO 9 DO
TempPos := Find(TempString, ',');
TempText := Left(TempString, TempPos -1);
TempString := DELETE(TempString, TempPos, 1);
CASE index OF
1:
HV_I.Index := STRING_TO_UINT(TempText);
2:
HV_I.Ereignis := STRING_TO_USINT(TempText);
IF HV_I.Ereignis <> 2 THEN
EXIT;
END_IF
3:
HV_I.Betriebsart := STRING_TO_USINT(TempText);
4:
HV_I.Messrate := STRING_TO_USINT(TempText);
5:
HV_I.Rampe := STRING_TO_USINT(TempText);
6:
HV_I.Spannungsgrenzwert := STRING_TO_UDINT(TempText);
7:
HV_I.Stromgrenzwert := STRING_TO_LREAL(TempText)/100;
8:
HV_I.Spannungsmesswert := STRING_TO_UDINT(TempText);
9:
HV_I.Strommesswert := STRING_TO_LREAL(TempText)/100;
END_CASE
END_FOR
END_IF
IF HV_I.Index <> OldIndex THEN
OldIndex := HV_I.Index;
MEMMOVE(ADR(SCHUSTER_TrendV[1]), ADR(SCHUSTER_TrendV) ,SIZEOF(LREAL)*50);
SCHUSTER_TrendV[0] := HV_I.Spannungsmesswert;
MEMMOVE(ADR(SCHUSTER_TrendI[1]), ADR(SCHUSTER_TrendI) ,SIZEOF(LREAL)*50);
SCHUSTER_TrendI[0] := HV_I.Strommesswert;
END_IF]]></ST>
</Implementation>
</Method>
<Method Name="ReadParameter" Id="{08e53c57-2972-4317-a66f-d29bb4f6f31f}">
<Declaration><![CDATA[METHOD ReadParameter : BOOL
VAR_INST
Step : INT;
TempString : STRING;
Index : INT;
TempPos : INT;
TempText : STRING;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE Step OF
0:
Com.SendMessage := 'G;';
DelayTimer(IN := FALSE);
Step := 10;
10:
DelayTimer(IN := TRUE, PT := T#1S);
IF DelayTimer.Q THEN
Step := 0;
END_IF
IF find(ReceiveMessage, 'G;') > 0 THEN
TempString := ReceiveMessage;
TempString := DELETE(TempString, 2, 1);
FOR index := 1 TO 6 DO
TempPos := Find(TempString, ',');
TempText := Left(TempString, TempPos -1);
TempString := DELETE(TempString, TempPos, 1);
CASE index OF
1:
gMessrate := STRING_TO_USINT(TempText);
sMessrate := gMessrate;
2:
gRampe := STRING_TO_USINT(TempText);
sRampe := gRampe;
3:
gVR := STRING_TO_UDINT(TempText);
sVR := gVR;
4:
gIR := STRING_TO_LREAL(TempText)/100;
sIR := gIR;
5:
gVD := STRING_TO_UDINT(TempText);
sVD := gVD;
6:
gID := STRING_TO_LREAL(TempText)/100;
sID := gID;
END_CASE
END_FOR
Step := 20;
END_IF
20:
bInReadParameter := FALSE;
ReadParameter := TRUE;
Step := 0;
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="Restart" Id="{82bc2d8c-ea80-4015-b886-94d45e64698e}">
<Declaration><![CDATA[METHOD Restart : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[Com.SendMessage := 'R;';]]></ST>
</Implementation>
</Method>
<Method Name="SendParameter" Id="{6ce2a076-63f2-489c-9ec5-c12455c9ddd0}">
<Declaration><![CDATA[METHOD SendParameter : BOOL
VAR_INPUT
END_VAR
VAR_INST
Step : INT;
fbFormat : FB_FormatString;
format : STRING;
TempIR, TempID : UDINT;
TempMessrate : USINT;
TempRampe : USINT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[TempIR := LREAL_TO_UDINT(sIR * 100);
TempID := LREAL_TO_UDINT(sID * 100);
TempMessrate := sMessrate;
TempRampe := sRampe;
format := 'P%d,%d,%d,%d,%d,%d;';
fbFormat(
sFormat:=format,
arg1:= F_USINT (TempMessrate),
arg2:= F_USINT (TempRampe),
arg3:= F_UDINT (sVR),
arg4:= F_UDINT (TempIR),
arg5:= F_UDINT (sVD),
arg6:= F_UDINT (TempID),
sOut=> Com.SendMessage
);]]></ST>
</Implementation>
</Method>
<Method Name="StartRead" Id="{7f26b1da-4d0e-453a-b6c2-a320f4947df5}">
<Declaration><![CDATA[METHOD StartRead : BOOL
VAR_INPUT
iStation : INT;
END_VAR
VAR_INST
Step : INT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE Step OF
0:
SCHUSTER_TrendV := EmptyTrend;
SCHUSTER_TrendI := EmptyTrend;
CASE iStation OF
FirstHV:
Com.SendMessage := 'M0;';
LastHV:
Com.SendMessage := 'M1;';
END_CASE
DelayTimer(IN := FALSE);
Step := Step +1;
1:
DelayTimer(IN := TRUE, PT :=T#1S);
IF DelayTimer.Q THEN
Step := 0;
END_IF
CASE iStation OF
FirstHV:
IF find(ReceiveMessage , 'M0;') > 0 THEN
Step := 10;
END_IF
LastHV:
IF find(ReceiveMessage , 'M1;') > 0 THEN
Step := 10;
END_IF
END_CASE
10:
Com.SendMessage := 'K1;';
DelayTimer(IN := FALSE);
Step := Step +1;
11:
DelayTimer(IN := TRUE, PT :=T#1S);
IF DelayTimer.Q THEN
Step := 10;
END_IF
IF find(ReceiveMessage, 'K1;') > 0 THEN
Step := 20;
END_IF
20:
Com.SendMessage := SEL(R_Dir, 'S0;', 'S1;');
HV_I.Ereignis := 0;
Step := 30;
30:
CASE HV_I.Ereignis OF
3:
bInStartRead := FALSE;
StartRead := TRUE;
Step := 0;
END_CASE
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="StopMeasurement" Id="{be5ae5a7-adbe-401f-b0ee-ae9bb2238c54}">
<Declaration><![CDATA[METHOD StopMeasurement : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[Com.SendMessage := 'A;';]]></ST>
</Implementation>
</Method>
<Method Name="Visu" Id="{5a877f71-418f-4c4b-9a90-b5668f09db71}">
<Declaration><![CDATA[METHOD Visu : BOOL
VAR
i : INT;
BiggerV : UDINT;
BiggerI : UDINT;
EndV : LREAL;
EndI : LREAL;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF sVR > sVD THEN
BiggerV := sVR;
ELSE
BiggerV := sVD;
END_IF
CASE BiggerV OF
0..80:
EndV := 100;
81..180:
EndV := 200;
181..480:
EndV := 500;
481..980:
EndV := 1000;
981..1980:
EndV := 2000;
1981..4980:
EndV := 5000;
4981..9980:
EndV := 10000;
9981..19980:
EndV := 20000;
19981..49980:
EndV := 50000;
49981..99980:
EndV := 100000;
ELSE
EndV := 200000;
END_CASE
ServiceScaleEndV := EndV;
ServiceScaleMainV := EndV /4;
ServiceSubscaleV := EndV /20;
IF sIR > sID THEN
BiggerI := LREAL_TO_UDINT(sIR);
ELSE
BiggerI := LREAL_TO_UDINT(sID);
END_IF
CASE BiggerI OF
0..19:
EndI := 20;
20..39:
EndI := 40;
40..79:
EndI := 80;
80..99:
EndI := 100;
100..119:
EndI := 120;
120..159:
EndI := 160;
ELSE
EndI := 200;
END_CASE
ServiceScaleEndI := EndI;
ServiceScaleMainI := EndI /4;
ServiceSubscaleI := EndI /20;
]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<GVL Name="SCHUSTER_GVL" Id="{8c5129c7-db53-4f5d-83a9-81e851cdb96a}">
<Declaration><![CDATA[VAR_GLOBAL
HV_SCHUSTER : SCHUSTER_FB;
SCHUSTER_LOG : ARRAY [0..255] OF T_MaxString;
SCHUSTER_TrendV : ARRAY[0..50] OF LREAL;
SCHUSTER_TrendI : ARRAY[0..50] OF LREAL;
END_VAR]]></Declaration>
</GVL>
</TcPlcObject>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,720 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<Visu Name="VISU_SCHUSTER_TREND_I" Id="{42c8e1c2-7f18-4cb8-b06b-bf36ce6cecfe}">
<XmlArchive>
<Data>
<o xml:space="preserve" t="VisualObject">
<n n="LastVisuLanguageModelEntry" />
<v n="UniqueIdGenerator">"44"</v>
<o n="VisualElemList" t="VisualElemList">
<l n="VisualElementList" t="VisualElemCollection" cet="GenericVisualElem">
<o>
<a n="ConfiguredComplexInputs" et="ComplexInput" />
<l n="Elements" t="ArrayList" />
<n n="VisualElementDescription" />
<o n="VisualElemMemberList" t="VisualElemMemberList">
<l n="VisualElemMemberList" t="VisualElemMemberCollection" cet="VisualElemMember">
<o>
<v n="Id">1988609688L</v>
<v n="Value">"BC2A4FA5-14BB-4918-8204-CD9A59198925"</v>
</o>
<o>
<v n="Id">4107784757L</v>
<v n="Value" t="Int16">1</v>
</o>
<o>
<v n="Id">3549563837L</v>
<v n="Value">"ISOTROPIC"</v>
</o>
<o>
<v n="Id">1404881523L</v>
<v n="Value" t="Single">0</v>
</o>
<o>
<v n="Id">3837067714L</v>
<o n="Value" t="ConstantWithOptionalExpression">
<v n="UsingType">1</v>
<v n="Constant" t="Single">200</v>
<v n="Expression">"HV_SCHUSTER.ServiceScaleEndI"</v>
</o>
</o>
<o>
<v n="Id">2867424708L</v>
<o n="Value" t="ConstantWithOptionalExpression">
<v n="UsingType">1</v>
<v n="Constant" t="Single">50</v>
<v n="Expression">"HV_SCHUSTER.ServiceScaleMainI"</v>
</o>
</o>
<o>
<v n="Id">440407611L</v>
<o n="Value" t="ConstantWithOptionalExpression">
<v n="UsingType">1</v>
<v n="Constant" t="Single">10</v>
<v n="Expression">"HV_SCHUSTER.ServiceSubscaleI"</v>
</o>
</o>
<o>
<v n="Id">1527935698L</v>
<v n="Value">4290822336U</v>
</o>
<o>
<v n="Id">459247385L</v>
<v n="Value" t="Single">0</v>
</o>
<o>
<v n="Id">2798229494L</v>
<v n="Value">"Arial"</v>
</o>
<o>
<v n="Id">942122628L</v>
<v n="Value" t="Int16">12</v>
</o>
<o>
<v n="Id">3057670479L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">4249794590L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">3675475996L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">993465544L</v>
<v n="Value">38</v>
</o>
<o>
<v n="Id">743178379L</v>
<v n="Value">15</v>
</o>
<o>
<v n="Id">4034249374L</v>
<v n="Value">4278255360U</v>
</o>
<o>
<v n="Id">1233680996L</v>
<v n="Value">4294901760U</v>
</o>
<o>
<v n="Id">707429771L</v>
<v n="Value">true</v>
</o>
<o>
<v n="Id">2812299069L</v>
<v n="Value">4292137160U</v>
</o>
<o>
<v n="Id">494569607L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">3719097617L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">1649127785L</v>
<v n="Value" t="Int16">0</v>
</o>
<o>
<v n="Id">357335551L</v>
<v n="Value" t="Int16">0</v>
</o>
<o>
<v n="Id">2422045748L</v>
<v n="Value" t="Int16">1250</v>
</o>
<o>
<v n="Id">2134141914L</v>
<v n="Value" t="Int16">400</v>
</o>
<o>
<v n="Id">1668544811L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">3866084034L</v>
<v n="Value">true</v>
</o>
<o>
<v n="Id">538318008L</v>
<v n="Value">true</v>
</o>
<o>
<v n="Id">3649724534L</v>
<v n="Value">20</v>
</o>
<o>
<v n="Id">1970058906L</v>
<v n="Value">20</v>
</o>
<o>
<v n="Id">1055805281L</v>
<v n="Value">40</v>
</o>
<o>
<v n="Id">1255297995L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">1500670465L</v>
<v n="Value">"%.1f"</v>
</o>
<o>
<v n="Id">518627256L</v>
<v n="Value">"mA"</v>
</o>
<o>
<v n="Id">708186566L</v>
<v n="Value">60</v>
</o>
<o>
<v n="Id">3994970671L</v>
<l n="Value" t="ArrayList" cet="NamedStyleFont">
<o>
<v n="FontStyle">0</v>
<v n="AdditionalFontStyle" t="UInt16">0</v>
<v n="ExplicitColor">-16777216</v>
<v n="CanonicalName">"Font-Standard"</v>
<v n="FontName">"Arial"</v>
<v n="DisplayName">""</v>
<v n="FontSize">12</v>
<v n="ScriptIdentification">0</v>
<v n="DoubleFontSize" t="Double">0</v>
<o n="NamedColor" t="NamedStyleColor">
<v n="Color">-16777216</v>
<v n="CanonicalName">"Font-Default-Color"</v>
</o>
</o>
</l>
</o>
<o>
<v n="Id">493260384L</v>
<v n="Value">4294967295U</v>
</o>
<o>
<v n="Id">135947015L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">2678395525L</v>
<v n="Value">1U</v>
</o>
<o>
<v n="Id">2340015797L</v>
<v n="Value">"HCENTER"</v>
</o>
<o>
<v n="Id">2565699834L</v>
<v n="Value">"VCENTER"</v>
</o>
<o>
<v n="Id">390574330L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">571893170L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">2597686782L</v>
<v n="Value">false</v>
</o>
<o>
<v n="Id">1518820177L</v>
<v n="Value">"SCHUSTER_TrendI"</v>
</o>
<o>
<v n="Id">102497268L</v>
<v n="Value">"SCHUSTER_TrendI"</v>
</o>
<o>
<v n="Id">4129603265L</v>
<v n="Value">15</v>
</o>
<o>
<v n="Id">3474540816L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">48782508L</v>
<v n="Value">50</v>
</o>
<o>
<v n="Id">788070771L</v>
<v n="Value">"ARRAY [0..50] OF LREAL"</v>
</o>
<o>
<v n="Id">2750573338L</v>
<v n="Value">"789"</v>
</o>
<o>
<v n="Id">2990785078L</v>
<v n="Value">"CURVE"</v>
</o>
</l>
</o>
<v n="VisualElementName">"Histogram"</v>
<v n="VisualElementTypeName">"VisuFbHistogram"</v>
<v n="VisualElementIsRectangle">true</v>
<v n="VisualElementIdentifier">"GenElemInst_3"</v>
<n n="VisualElementOfflinePaintCommands" />
<n n="VisualElementFrameInformation" />
<d n="VisualElementInputActions" t="Hashtable" />
<v n="VisualElementIdentification">{20c2ec6d-b04b-4388-b3b9-c3f0802b0427}</v>
<v n="VisualElementOwningObjectGuid">{42c8e1c2-7f18-4cb8-b06b-bf36ce6cecfe}</v>
<a n="LMGuids" cet="Guid">
<v>faa1b183-76e6-4125-bf89-25e7cdaa89a2</v>
<v>e015b4f4-2522-40da-9cc4-a261175f5fa6</v>
</a>
<d n="SubElements" t="Hashtable" />
<v n="VisualElementId">6</v>
<l n="UserManagementAccessRights" t="ArrayList" />
<v n="AnimationDuration">"0"</v>
<v n="BringToForeground">""</v>
<v n="ElementVersion" t="Byte">0</v>
<n n="TabOrder" />
</o>
<o>
<a n="ConfiguredComplexInputs" et="ComplexInput" />
<l n="Elements" t="ArrayList" />
<n n="VisualElementDescription" />
<o n="VisualElemMemberList" t="VisualElemMemberList">
<l n="VisualElemMemberList" t="VisualElemMemberCollection" cet="VisualElemMember">
<o>
<v n="Id">571893170L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">494569607L</v>
<l n="Value" t="ArrayList" cet="NamedStyleColor">
<o>
<v n="Color">-16777216</v>
<v n="CanonicalName">"BasicElement-Frame-Color"</v>
</o>
</l>
</o>
<o>
<v n="Id">2812299069L</v>
<l n="Value" t="ArrayList" cet="UInt32">
<v>4278222976</v>
</l>
</o>
<o>
<v n="Id">135947015L</v>
<l n="Value" t="ArrayList" cet="NamedStyleColor">
<o>
<v n="Color">-65536</v>
<v n="CanonicalName">"BasicElement-Alarm-Frame-Color"</v>
</o>
</l>
</o>
<o>
<v n="Id">493260384L</v>
<l n="Value" t="ArrayList" cet="NamedStyleColor">
<o>
<v n="Color">-12337</v>
<v n="CanonicalName">"BasicElement-Alarm-Fill-Color"</v>
</o>
</l>
</o>
<o>
<v n="Id">2340015797L</v>
<v n="Value">"HCENTER"</v>
</o>
<o>
<v n="Id">2565699834L</v>
<v n="Value">"VCENTER"</v>
</o>
<o>
<v n="Id">4134387352L</v>
<v n="Value">"NONE"</v>
</o>
<o>
<v n="Id">1603690730L</v>
<v n="Value">"Arial"</v>
</o>
<o>
<v n="Id">4253639993L</v>
<v n="Value" t="Int16">12</v>
</o>
<o>
<v n="Id">2729990903L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">1213979116L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">3488306084L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">1999528970L</v>
<v n="Value">"&lt;toggle/tap variable&gt;"</v>
</o>
<o>
<v n="Id">3719097617L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">1649127785L</v>
<v n="Value" t="Int16">1300</v>
</o>
<o>
<v n="Id">357335551L</v>
<v n="Value" t="Int16">0</v>
</o>
<o>
<v n="Id">2422045748L</v>
<v n="Value" t="Int16">150</v>
</o>
<o>
<v n="Id">2134141914L</v>
<v n="Value" t="Int16">90</v>
</o>
<o>
<v n="Id">3729828405L</v>
<l n="Value" t="ArrayList" cet="FontDescription">
<o>
<v n="FontStyle">1</v>
<v n="AdditionalFontStyle" t="UInt16">0</v>
<v n="ExplicitColor">-1</v>
<v n="FontName">"Arial"</v>
<v n="DisplayName">""</v>
<v n="FontSize">27</v>
<v n="ScriptIdentification">0</v>
<v n="DoubleFontSize" t="Double">0</v>
<n n="NamedColor" />
</o>
</l>
</o>
<o>
<v n="Id">550940142L</v>
<v n="Value">1375</v>
</o>
<o>
<v n="Id">1473355128L</v>
<v n="Value">45</v>
</o>
<o>
<v n="Id">2678395525L</v>
<v n="Value">1U</v>
</o>
<o>
<v n="Id">564465120L</v>
<v n="Value">"VISU_ST_ROUNDRECT"</v>
</o>
<o>
<v n="Id">390574330L</v>
<v n="Value">"%0.3f
mA"</v>
</o>
<o>
<v n="Id">2597686782L</v>
<v n="Value">false</v>
</o>
<o>
<v n="Id">2477733581L</v>
<v n="Value">"HV_SCHUSTER.HV_I.Strommesswert"</v>
</o>
<o>
<v n="Id">2496894244L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">823443203L</v>
<v n="Value">"2807"</v>
</o>
</l>
</o>
<v n="VisualElementName">"Rounded Rectangle"</v>
<v n="VisualElementTypeName">"VisuFbElemSimple"</v>
<v n="VisualElementIsRectangle">true</v>
<v n="VisualElementIdentifier">"GenElemInst_4"</v>
<n n="VisualElementOfflinePaintCommands" />
<n n="VisualElementFrameInformation" />
<d n="VisualElementInputActions" t="Hashtable" />
<v n="VisualElementIdentification">{6c043a27-2f10-4e34-bbb3-b1d3967d9c28}</v>
<v n="VisualElementOwningObjectGuid">{42c8e1c2-7f18-4cb8-b06b-bf36ce6cecfe}</v>
<a n="LMGuids" et="Guid" />
<d n="SubElements" t="Hashtable" />
<v n="VisualElementId">8</v>
<l n="UserManagementAccessRights" t="ArrayList" />
<v n="AnimationDuration">"0"</v>
<v n="BringToForeground">""</v>
<v n="ElementVersion" t="Byte">0</v>
<n n="TabOrder" />
</o>
</l>
<v n="BackgroundBitmapId">""</v>
<v n="BackgroundColor">16777215</v>
<o n="Background" t="BackgroundSettings">
<n n="BgGradient" />
<n n="BgNamedColor" />
<v n="BgBmpId">""</v>
<v n="BgUseBmp">false</v>
<v n="BgColor">false</v>
<v n="BgUseColor">16777215</v>
<v n="BgUseGradient">false</v>
</o>
</o>
<o n="GeneratedLMMDescriptions" t="GeneratedLanguageModelEntriesData">
<o n="GeneratedVisuFbDescription" t="GenericFbDescription">
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>ContainsPoint</v>
<v>04bb5a58-345e-434c-b90c-2b8ec98578e9</v>
<v>Destruct</v>
<v>3bc576cf-ce48-4d45-8d0a-a3f864945d03</v>
<v>ElementInfo</v>
<v>ff5b993c-8a1e-4405-ae56-8ff691b22240</v>
<v>FB_Exit</v>
<v>eeac3e78-84a0-4d38-9695-895ba64585c0</v>
<v>FB_Reinit</v>
<v>422c0bdc-9130-48c2-ba67-0679cfaf5c70</v>
<v>GetClientData</v>
<v>a9870197-1901-43ef-8c42-203c8f852e62</v>
<v>GetDialogInterface</v>
<v>a27c1f1a-2544-4f79-9c3e-6f5402e549e2</v>
<v>GetDialogInterfaceSize</v>
<v>78cf28bb-f48b-4e97-84e0-e3d876f0aa07</v>
<v>GetElementArray</v>
<v>5ceab75f-da23-412f-9b7c-a9b6f2802689</v>
<v>GetElementIdArray</v>
<v>773edabd-cccd-49b0-989a-bc93ce02fb73</v>
<v>GetElementName</v>
<v>76045ecc-1361-4e33-aec7-dabb7cc8df55</v>
<v>GetInitializeVersion</v>
<v>9e5df058-0e76-49f0-ae7e-f0858ceb0191</v>
<v>GetInstance</v>
<v>fd2dc10f-9af8-4695-85ea-e9d74bf757cb</v>
<v>GetLocalUsergroup</v>
<v>367e5c3d-919e-420e-8f38-d543741f9f62</v>
<v>GetName</v>
<v>bc61089f-9828-4fea-b60e-5e23243237c1</v>
<v>GetNamespace</v>
<v>03a01c6a-d3bd-46f7-9376-977fc4a01941</v>
<v>GetResult</v>
<v>45be04d4-3cb1-4b5b-9b14-fa11ef707df2</v>
<v>GetSize</v>
<v>dc9572a5-0569-4ffa-bada-9cd1c04f822e</v>
<v>GetSurroundingRect</v>
<v>61795627-6eda-4eac-9b60-e9bb11b79225</v>
<v>GetTabOrderIdArray</v>
<v>21274180-526d-49e9-b9cf-ccdaa0430e33</v>
<v>GetText</v>
<v>5f7ab76d-4c23-498a-ac5d-df61ac90e420</v>
<v>GetTextProperties</v>
<v>8a2e5991-5326-448f-b967-a69127d0718a</v>
<v>GetTooltip</v>
<v>a600b244-a66d-4aba-918e-ff88710b5c83</v>
<v>GetTranslator</v>
<v>7a7ae35b-0704-42f6-8e83-d47302f54359</v>
<v>GetUpdateRects</v>
<v>22b6c06b-3c73-46e1-bdb8-5e6a6cf28a8f</v>
<v>HandleInput</v>
<v>429fd7ab-7515-4a45-92a8-a71422530d96</v>
<v>HasInputAccess</v>
<v>cf970afa-bd07-41d3-96e8-c4fd5eca4180</v>
<v>HasInputAccessIntern</v>
<v>905f29d6-0923-447a-8ed9-ed7113ed80c0</v>
<v>HasVisibilityAccess</v>
<v>b7842eae-0f9e-4f3b-8bd1-86126ad700e9</v>
<v>HasVisibilityAccessIntern</v>
<v>fc31afcc-798b-49f7-afb2-b151025d6c5a</v>
<v>Initialize</v>
<v>3f06a29d-cbbc-496c-af02-bf0adc6ec1d0</v>
<v>IsAntialiasingInactive</v>
<v>c7c15a68-6b06-4ed5-91c0-3ef037168e45</v>
<v>Paint</v>
<v>e2118c3b-21dd-4f27-9f14-ee4e7a47ad0f</v>
<v>SetClientData</v>
<v>24cc6e13-4732-4f85-9416-78af8d55cd56</v>
<v>SetContainerSize</v>
<v>77c6b729-a2f1-40f2-a6f3-801cf9e35b8f</v>
<v>SetDialogInterface</v>
<v>98a3c27f-836f-4f9b-beff-a0cfebe9f03d</v>
<v>SetResult</v>
<v>61390004-9eaa-4eaa-b1f6-c9279a23e9de</v>
<v>SetStaticState</v>
<v>847bbf81-6036-4ba2-8578-60eb6a2f61f7</v>
<v>SetVisuFlagsInternal</v>
<v>43d1ed2c-9353-4875-9ac0-1d5cea73e830</v>
<v>Update</v>
<v>d44ce5c5-1e29-4c81-9289-eda5f4076c92</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>__getContainer</v>
<v>f8f13901-7929-4de1-bda0-e3f183fd325b</v>
<v>__getVisu</v>
<v>25455c8c-6f2c-44a3-9660-35a15f67789a</v>
</d>
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{42c8e1c2-7f18-4cb8-b06b-bf36ce6cecfe}</v>
</o>
<v n="GeneratedGlobalVisuVarsGuid">{6a01c7e0-8bcd-4bc2-ae67-ff17cc010288}</v>
<v n="GeneratedGlobalTheVisuVarlistGuid">{dd4292b6-0f6a-489c-8d31-7a7282e9e4b7}</v>
<v n="GeneratedGlobalVisuConstants">{89188aa1-4a7f-4ee1-8a86-d3a55231c935}</v>
<d n="GeneratedAllElementsEntries" t="Hashtable" />
<o n="VisuRegDesc" t="GenericFbDescription">
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>FB_Exit</v>
<v>8821f1bf-432c-4f4c-983d-5a0c1526175b</v>
<v>FB_Init</v>
<v>3c426301-2576-4ec9-a381-60fc51e2adb5</v>
<v>FB_Reinit</v>
<v>83a30c96-c723-4866-a575-73c99e145ffc</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" />
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{a5199125-0fb9-4c2d-909f-dc9f04a527df}</v>
</o>
<v n="VisuRegisterGvl">{287604fb-5218-4bab-938b-aa50c774c3b7}</v>
<n n="SettingsPou" />
<n n="MemManPou" />
<o n="InputsPou" t="GenericFbDescription">
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>abstrGetDefaultCursor</v>
<v>9bae2fbd-93f5-4af2-b534-1e78a7116cee</v>
<v>ExecuteDialogClosed</v>
<v>e06f09bb-e826-4887-8af6-fd578df70dcc</v>
<v>ExecuteKeyDown</v>
<v>62b559fb-d343-4eeb-8ec3-ddbf786b1cc7</v>
<v>ExecuteKeyUp</v>
<v>40880a7e-e447-4e59-a1d8-0a1bc52d1a65</v>
<v>ExecuteLooseCapture</v>
<v>4f2cd536-ecee-4b30-97b8-3206946ca339</v>
<v>ExecuteMouseClick</v>
<v>17899e53-aede-4d80-a803-3344b714e1bf</v>
<v>ExecuteMouseDblClick</v>
<v>53c2df5c-3b26-4cda-bd40-bb84a6f2ab13</v>
<v>ExecuteMouseDown</v>
<v>99bd9970-c3da-4b58-90be-7944a60891ea</v>
<v>ExecuteMouseEnter</v>
<v>a5c83024-0d2b-493d-b629-c8c11ad55385</v>
<v>ExecuteMouseLeave</v>
<v>32caa995-d100-44fc-ace6-517ae4d850ac</v>
<v>ExecuteMouseMove</v>
<v>760915a5-2f26-4012-8dbd-42feed593917</v>
<v>ExecuteMouseUp</v>
<v>7be3a1a3-4add-47c7-9387-f8acab265be4</v>
<v>ExecuteValueChanged</v>
<v>c3cfe579-593f-4781-9019-675ba631ee94</v>
<v>GetElementInfo</v>
<v>6cc744e9-03e5-410e-ae24-fa616de79be4</v>
<v>Initialize</v>
<v>319d3e01-827e-4fd9-b532-cde7318e28b9</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" />
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{cf038560-8f32-4071-8463-1005d102b1a2}</v>
</o>
<v n="DialogDut">{e390b550-aa66-468a-b775-0f1826ac91a6}</v>
</o>
<v n="LastUsedIdForIdentifier">8</v>
<o n="TextDocument" t="TextDocument">
<v n="TextBlobForSerialisation">"VAR_IN_OUT
END_VAR"</v>
<n n="LineInfoPersistence" />
</o>
<v n="GvlCreated">false</v>
<n n="LMEntry" />
<v n="ProfileCompatibilityId">4140216668L</v>
<v n="LMVerMinor">0</v>
<v n="LMVerMajor">1</v>
<o n="Hotkeys" t="HotkeyConfiguration">
<v n="IdMin">481037385728L</v>
<v n="IdMax">549755813887L</v>
<v n="Id">481037385728L</v>
<v n="IdMask">549754765312L</v>
<v n="IdStep">1048576L</v>
<l2 n="Inputs" />
</o>
<o n="VisuSizeManager" t="VisualObjectSizeManager">
<d2 n="Size" ckt="Int32" cvt="VisualObjectSize">
<v>0</v>
<o>
<v n="Width">1450</v>
<v n="Height">400</v>
</o>
<v>1</v>
<o>
<v n="Width">1450</v>
<v n="Height">400</v>
</o>
<v>2</v>
<o>
<v n="Width">1450</v>
<v n="Height">400</v>
</o>
</d2>
<v n="Version">2</v>
</o>
<n n="FrameInterfaceDataModel" />
</o>
</Data>
<TypeList>
<Type n="ArrayList">System.Collections.ArrayList</Type>
<Type n="BackgroundSettings">{1038f12c-dd4b-4f96-87a3-a350fe8f3552}</Type>
<Type n="Boolean">System.Boolean</Type>
<Type n="Byte">System.Byte</Type>
<Type n="CaseInsensitiveHashtable">{7df88604-7ac5-4e36-91c4-55e4fdad3e68}</Type>
<Type n="ComplexInput">{1de566f6-72a7-494c-9353-9a418172c96e}</Type>
<Type n="ConstantWithOptionalExpression">{be74fbbc-f60e-4118-88db-b2ee5169938e}</Type>
<Type n="Double">System.Double</Type>
<Type n="FontDescription">{896a5e54-96c3-433b-96d2-4f1442fef591}</Type>
<Type n="GeneratedLanguageModelEntriesData">{703465dc-4679-4ff2-bcc3-c57d0a204da3}</Type>
<Type n="GenericFbDescription">{40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}</Type>
<Type n="GenericVisualElem">{f86c2928-8614-4cca-824b-e819ac4d58c4}</Type>
<Type n="Guid">System.Guid</Type>
<Type n="Hashtable">System.Collections.Hashtable</Type>
<Type n="HotkeyConfiguration">{6b108d46-58af-4e41-a3f4-174d8f160cc4}</Type>
<Type n="Int16">System.Int16</Type>
<Type n="Int32">System.Int32</Type>
<Type n="Int64">System.Int64</Type>
<Type n="NamedStyleColor">{fa491db2-51ff-4bc1-9cd0-ce8c94ff6216}</Type>
<Type n="NamedStyleFont">{9e842eb2-1463-4af2-b605-4fbb17044f94}</Type>
<Type n="Single">System.Single</Type>
<Type n="String">System.String</Type>
<Type n="TextDocument">{f3878285-8e4f-490b-bb1b-9acbb7eb04db}</Type>
<Type n="UInt16">System.UInt16</Type>
<Type n="UInt32">System.UInt32</Type>
<Type n="VisualElemCollection">{ef9d0b20-c96e-48db-b361-2ded4063150e}</Type>
<Type n="VisualElemList">{f285c9a3-7019-446b-b98c-ccec3a0af8fa}</Type>
<Type n="VisualElemMember">{c694e3a2-5c0b-4177-ab35-cb06bd5a6a02}</Type>
<Type n="VisualElemMemberCollection">{a4b83bea-3742-489c-9fe8-d96d68dba7ab}</Type>
<Type n="VisualElemMemberList">{17e26cd1-bb9b-47fe-a3d5-18fcd63b9c96}</Type>
<Type n="VisualObject">{f18bec89-9fef-401d-9953-2f11739a6808}</Type>
<Type n="VisualObjectSize">{6ad3e88f-aee2-4766-a7ea-a8790037ef51}</Type>
<Type n="VisualObjectSizeManager">{5f612b0e-b404-455f-8177-27864e9f5332}</Type>
</TypeList>
</XmlArchive>
<ObjectProperties>
<XmlArchive>
<Data>
<o xml:space="preserve" t="VisualProperty">
<v n="VisuUsageType">0</v>
<v n="SizeX">1450</v>
<v n="SizeY">400</v>
<v n="IsStartVisu">false</v>
<v n="VisuSizeMode" t="VisualVisuSizeMode">Specified</v>
<v n="Internal">false</v>
<v n="DialogIsOpaque">false</v>
<v n="DialogIsOpaqueIsSet">false</v>
<v n="UseParentSizeProperties">true</v>
</o>
</Data>
<TypeList>
<Type n="Boolean">System.Boolean</Type>
<Type n="Int32">System.Int32</Type>
<Type n="VisualProperty">{477d844b-9b2a-407e-90a4-d36fd6dde2fc}</Type>
<Type n="VisualVisuSizeMode">{34718b76-91f6-43de-8c65-b77e0b1ee621}</Type>
</TypeList>
</XmlArchive>
</ObjectProperties>
</Visu>
</TcPlcObject>

View File

@@ -0,0 +1,720 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<Visu Name="VISU_SCHUSTER_TREND_V" Id="{6417d8f5-7e69-4dbb-a27e-1788eb77e06d}">
<XmlArchive>
<Data>
<o xml:space="preserve" t="VisualObject">
<n n="LastVisuLanguageModelEntry" />
<v n="UniqueIdGenerator">"21"</v>
<o n="VisualElemList" t="VisualElemList">
<l n="VisualElementList" t="VisualElemCollection" cet="GenericVisualElem">
<o>
<a n="ConfiguredComplexInputs" et="ComplexInput" />
<l n="Elements" t="ArrayList" />
<n n="VisualElementDescription" />
<o n="VisualElemMemberList" t="VisualElemMemberList">
<l n="VisualElemMemberList" t="VisualElemMemberCollection" cet="VisualElemMember">
<o>
<v n="Id">1988609688L</v>
<v n="Value">"BC2A4FA5-14BB-4918-8204-CD9A59198925"</v>
</o>
<o>
<v n="Id">4107784757L</v>
<v n="Value" t="Int16">1</v>
</o>
<o>
<v n="Id">3549563837L</v>
<v n="Value">"ISOTROPIC"</v>
</o>
<o>
<v n="Id">1404881523L</v>
<v n="Value" t="Single">0</v>
</o>
<o>
<v n="Id">3837067714L</v>
<o n="Value" t="ConstantWithOptionalExpression">
<v n="UsingType">1</v>
<v n="Constant" t="Single">20000</v>
<v n="Expression">"HV_SCHUSTER.ServiceScaleEndV"</v>
</o>
</o>
<o>
<v n="Id">2867424708L</v>
<o n="Value" t="ConstantWithOptionalExpression">
<v n="UsingType">1</v>
<v n="Constant" t="Single">5000</v>
<v n="Expression">"HV_SCHUSTER.ServiceScaleMainV"</v>
</o>
</o>
<o>
<v n="Id">440407611L</v>
<o n="Value" t="ConstantWithOptionalExpression">
<v n="UsingType">1</v>
<v n="Constant" t="Single">1000</v>
<v n="Expression">"HV_SCHUSTER.ServiceSubscaleV"</v>
</o>
</o>
<o>
<v n="Id">1527935698L</v>
<v n="Value">4290822336U</v>
</o>
<o>
<v n="Id">459247385L</v>
<v n="Value" t="Single">0</v>
</o>
<o>
<v n="Id">2798229494L</v>
<v n="Value">"Arial"</v>
</o>
<o>
<v n="Id">942122628L</v>
<v n="Value" t="Int16">12</v>
</o>
<o>
<v n="Id">3057670479L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">4249794590L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">3675475996L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">993465544L</v>
<v n="Value">52</v>
</o>
<o>
<v n="Id">743178379L</v>
<v n="Value">15</v>
</o>
<o>
<v n="Id">4034249374L</v>
<v n="Value">4278255360U</v>
</o>
<o>
<v n="Id">1233680996L</v>
<v n="Value">4294901760U</v>
</o>
<o>
<v n="Id">707429771L</v>
<v n="Value">true</v>
</o>
<o>
<v n="Id">2812299069L</v>
<v n="Value">4292137160U</v>
</o>
<o>
<v n="Id">494569607L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">3719097617L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">1649127785L</v>
<v n="Value" t="Int16">0</v>
</o>
<o>
<v n="Id">357335551L</v>
<v n="Value" t="Int16">0</v>
</o>
<o>
<v n="Id">2422045748L</v>
<v n="Value" t="Int16">1250</v>
</o>
<o>
<v n="Id">2134141914L</v>
<v n="Value" t="Int16">400</v>
</o>
<o>
<v n="Id">1668544811L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">3866084034L</v>
<v n="Value">true</v>
</o>
<o>
<v n="Id">538318008L</v>
<v n="Value">true</v>
</o>
<o>
<v n="Id">3649724534L</v>
<v n="Value">20</v>
</o>
<o>
<v n="Id">1970058906L</v>
<v n="Value">20</v>
</o>
<o>
<v n="Id">1055805281L</v>
<v n="Value">40</v>
</o>
<o>
<v n="Id">1255297995L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">1500670465L</v>
<v n="Value">"%.1f"</v>
</o>
<o>
<v n="Id">518627256L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">708186566L</v>
<v n="Value">60</v>
</o>
<o>
<v n="Id">3994970671L</v>
<l n="Value" t="ArrayList" cet="NamedStyleFont">
<o>
<v n="FontStyle">0</v>
<v n="AdditionalFontStyle" t="UInt16">0</v>
<v n="ExplicitColor">-16777216</v>
<v n="CanonicalName">"Font-Standard"</v>
<v n="FontName">"Arial"</v>
<v n="DisplayName">""</v>
<v n="FontSize">12</v>
<v n="ScriptIdentification">0</v>
<v n="DoubleFontSize" t="Double">0</v>
<o n="NamedColor" t="NamedStyleColor">
<v n="Color">-16777216</v>
<v n="CanonicalName">"Font-Default-Color"</v>
</o>
</o>
</l>
</o>
<o>
<v n="Id">493260384L</v>
<v n="Value">4294967295U</v>
</o>
<o>
<v n="Id">135947015L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">2678395525L</v>
<v n="Value">1U</v>
</o>
<o>
<v n="Id">2340015797L</v>
<v n="Value">"HCENTER"</v>
</o>
<o>
<v n="Id">2565699834L</v>
<v n="Value">"VCENTER"</v>
</o>
<o>
<v n="Id">390574330L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">571893170L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">2597686782L</v>
<v n="Value">false</v>
</o>
<o>
<v n="Id">1518820177L</v>
<v n="Value">"SCHUSTER_TrendV"</v>
</o>
<o>
<v n="Id">102497268L</v>
<v n="Value">"SCHUSTER_TrendV"</v>
</o>
<o>
<v n="Id">4129603265L</v>
<v n="Value">15</v>
</o>
<o>
<v n="Id">3474540816L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">48782508L</v>
<v n="Value">50</v>
</o>
<o>
<v n="Id">788070771L</v>
<v n="Value">"ARRAY [0..50] OF LREAL"</v>
</o>
<o>
<v n="Id">2750573338L</v>
<v n="Value">"2203"</v>
</o>
<o>
<v n="Id">2990785078L</v>
<v n="Value">"CURVE"</v>
</o>
</l>
</o>
<v n="VisualElementName">"Histogram"</v>
<v n="VisualElementTypeName">"VisuFbHistogram"</v>
<v n="VisualElementIsRectangle">true</v>
<v n="VisualElementIdentifier">"GenElemInst_1"</v>
<n n="VisualElementOfflinePaintCommands" />
<n n="VisualElementFrameInformation" />
<d n="VisualElementInputActions" t="Hashtable" />
<v n="VisualElementIdentification">{011e697c-564e-4290-a423-435f45774c29}</v>
<v n="VisualElementOwningObjectGuid">{6417d8f5-7e69-4dbb-a27e-1788eb77e06d}</v>
<a n="LMGuids" cet="Guid">
<v>c7919779-b3c4-4882-a957-898a40ca1e23</v>
<v>7c4d77a8-ec08-4a4c-bd10-76b66ca5f99e</v>
</a>
<d n="SubElements" t="Hashtable" />
<v n="VisualElementId">1</v>
<l n="UserManagementAccessRights" t="ArrayList" />
<v n="AnimationDuration">"0"</v>
<v n="BringToForeground">""</v>
<v n="ElementVersion" t="Byte">0</v>
<n n="TabOrder" />
</o>
<o>
<a n="ConfiguredComplexInputs" et="ComplexInput" />
<l n="Elements" t="ArrayList" />
<n n="VisualElementDescription" />
<o n="VisualElemMemberList" t="VisualElemMemberList">
<l n="VisualElemMemberList" t="VisualElemMemberCollection" cet="VisualElemMember">
<o>
<v n="Id">571893170L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">494569607L</v>
<l n="Value" t="ArrayList" cet="NamedStyleColor">
<o>
<v n="Color">-16777216</v>
<v n="CanonicalName">"BasicElement-Frame-Color"</v>
</o>
</l>
</o>
<o>
<v n="Id">2812299069L</v>
<l n="Value" t="ArrayList" cet="UInt32">
<v>4278222976</v>
</l>
</o>
<o>
<v n="Id">135947015L</v>
<l n="Value" t="ArrayList" cet="NamedStyleColor">
<o>
<v n="Color">-65536</v>
<v n="CanonicalName">"BasicElement-Alarm-Frame-Color"</v>
</o>
</l>
</o>
<o>
<v n="Id">493260384L</v>
<l n="Value" t="ArrayList" cet="NamedStyleColor">
<o>
<v n="Color">-12337</v>
<v n="CanonicalName">"BasicElement-Alarm-Fill-Color"</v>
</o>
</l>
</o>
<o>
<v n="Id">2340015797L</v>
<v n="Value">"HCENTER"</v>
</o>
<o>
<v n="Id">2565699834L</v>
<v n="Value">"VCENTER"</v>
</o>
<o>
<v n="Id">4134387352L</v>
<v n="Value">"NONE"</v>
</o>
<o>
<v n="Id">1603690730L</v>
<v n="Value">"Arial"</v>
</o>
<o>
<v n="Id">4253639993L</v>
<v n="Value" t="Int16">12</v>
</o>
<o>
<v n="Id">2729990903L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">1213979116L</v>
<v n="Value">0U</v>
</o>
<o>
<v n="Id">3488306084L</v>
<v n="Value">4278190080U</v>
</o>
<o>
<v n="Id">1999528970L</v>
<v n="Value">"&lt;toggle/tap variable&gt;"</v>
</o>
<o>
<v n="Id">3719097617L</v>
<v n="Value">0</v>
</o>
<o>
<v n="Id">1649127785L</v>
<v n="Value" t="Int16">1300</v>
</o>
<o>
<v n="Id">357335551L</v>
<v n="Value" t="Int16">0</v>
</o>
<o>
<v n="Id">2422045748L</v>
<v n="Value" t="Int16">150</v>
</o>
<o>
<v n="Id">2134141914L</v>
<v n="Value" t="Int16">90</v>
</o>
<o>
<v n="Id">3729828405L</v>
<l n="Value" t="ArrayList" cet="FontDescription">
<o>
<v n="FontStyle">1</v>
<v n="AdditionalFontStyle" t="UInt16">0</v>
<v n="ExplicitColor">-1</v>
<v n="FontName">"Arial"</v>
<v n="DisplayName">""</v>
<v n="FontSize">27</v>
<v n="ScriptIdentification">0</v>
<v n="DoubleFontSize" t="Double">0</v>
<n n="NamedColor" />
</o>
</l>
</o>
<o>
<v n="Id">550940142L</v>
<v n="Value">1375</v>
</o>
<o>
<v n="Id">1473355128L</v>
<v n="Value">45</v>
</o>
<o>
<v n="Id">2678395525L</v>
<v n="Value">1U</v>
</o>
<o>
<v n="Id">564465120L</v>
<v n="Value">"VISU_ST_ROUNDRECT"</v>
</o>
<o>
<v n="Id">390574330L</v>
<v n="Value">"%d
V"</v>
</o>
<o>
<v n="Id">2597686782L</v>
<v n="Value">false</v>
</o>
<o>
<v n="Id">2477733581L</v>
<v n="Value">"HV_SCHUSTER.HV_I.Spannungsmesswert"</v>
</o>
<o>
<v n="Id">2496894244L</v>
<v n="Value">""</v>
</o>
<o>
<v n="Id">823443203L</v>
<v n="Value">"1974"</v>
</o>
</l>
</o>
<v n="VisualElementName">"Rounded Rectangle"</v>
<v n="VisualElementTypeName">"VisuFbElemSimple"</v>
<v n="VisualElementIsRectangle">true</v>
<v n="VisualElementIdentifier">"GenElemInst_2"</v>
<n n="VisualElementOfflinePaintCommands" />
<n n="VisualElementFrameInformation" />
<d n="VisualElementInputActions" t="Hashtable" />
<v n="VisualElementIdentification">{b74f1fd9-e172-4337-ae3e-6dcdf909db33}</v>
<v n="VisualElementOwningObjectGuid">{6417d8f5-7e69-4dbb-a27e-1788eb77e06d}</v>
<a n="LMGuids" et="Guid" />
<d n="SubElements" t="Hashtable" />
<v n="VisualElementId">3</v>
<l n="UserManagementAccessRights" t="ArrayList" />
<v n="AnimationDuration">"0"</v>
<v n="BringToForeground">""</v>
<v n="ElementVersion" t="Byte">0</v>
<n n="TabOrder" />
</o>
</l>
<v n="BackgroundBitmapId">""</v>
<v n="BackgroundColor">16777215</v>
<o n="Background" t="BackgroundSettings">
<n n="BgGradient" />
<n n="BgNamedColor" />
<v n="BgBmpId">""</v>
<v n="BgUseBmp">false</v>
<v n="BgColor">false</v>
<v n="BgUseColor">16777215</v>
<v n="BgUseGradient">false</v>
</o>
</o>
<o n="GeneratedLMMDescriptions" t="GeneratedLanguageModelEntriesData">
<o n="GeneratedVisuFbDescription" t="GenericFbDescription">
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>ContainsPoint</v>
<v>b57d9cb2-3568-4a50-909f-af6024d4052d</v>
<v>Destruct</v>
<v>9f76a568-ba63-4809-be6a-720dd9a52599</v>
<v>ElementInfo</v>
<v>651110db-5f01-4489-a7b9-97ee545e4991</v>
<v>FB_Exit</v>
<v>8cee1e79-2a8b-402e-af47-230b964d795f</v>
<v>FB_Reinit</v>
<v>8fe953ae-19a0-4133-82c8-ae22ea6f0994</v>
<v>GetClientData</v>
<v>aada1398-81ac-4c4d-9c39-69368ab703cb</v>
<v>GetDialogInterface</v>
<v>f2c7f2a2-02c0-4cc2-afda-831e3974fd48</v>
<v>GetDialogInterfaceSize</v>
<v>02f94107-6069-49da-9ea6-624fd4685548</v>
<v>GetElementArray</v>
<v>7ee12acf-dea5-4720-ad4c-6f9226fb550d</v>
<v>GetElementIdArray</v>
<v>4a4a613c-5284-420d-9ab4-bd9917f28916</v>
<v>GetElementName</v>
<v>6992dcb0-cd67-5993-a7b2-f3e5fb2bb41f</v>
<v>GetInitializeVersion</v>
<v>34514df8-4679-4c0f-a8f7-461a4b83d1ab</v>
<v>GetInstance</v>
<v>7ccfdf30-ec0c-4484-b7af-18a81f00b774</v>
<v>GetLocalUsergroup</v>
<v>a1a2ad5f-beee-46d8-b23c-9d6fb3f91624</v>
<v>GetName</v>
<v>6ad4d13f-6960-425b-a247-7b7d4a318a3a</v>
<v>GetNamespace</v>
<v>8226e023-ffa4-41f5-8cae-130b494b2307</v>
<v>GetResult</v>
<v>624b4423-672f-4583-8c08-b2cc52a8c0e3</v>
<v>GetSize</v>
<v>be26fb61-de7d-4d89-9516-1fa87c228c86</v>
<v>GetSurroundingRect</v>
<v>540e3111-1dff-4093-8245-49b0b2843191</v>
<v>GetTabOrderIdArray</v>
<v>8d8d0640-23b3-54da-84ae-1866ccc1a8eb</v>
<v>GetText</v>
<v>31162959-9f0c-4971-b5da-513902735176</v>
<v>GetTextProperties</v>
<v>eedefc81-e221-4bd2-ba12-7fd7566d4876</v>
<v>GetTooltip</v>
<v>858a62fa-4a9d-418a-a685-7165b6177a44</v>
<v>GetTranslator</v>
<v>55d98290-3f6a-4a9c-a40a-f30bc7aa7830</v>
<v>GetUpdateRects</v>
<v>2a1d87a3-a4b0-475f-b037-f1a60889ff3c</v>
<v>HandleInput</v>
<v>49cb14bc-aef9-45c6-a7ed-07c026d84608</v>
<v>HasInputAccess</v>
<v>5fbebf50-c697-4883-aa34-060527dbf422</v>
<v>HasInputAccessIntern</v>
<v>f653c2e5-c0fa-538d-acf4-db1cddc522e3</v>
<v>HasVisibilityAccess</v>
<v>fc9460e5-a1b5-4ef0-8af7-7cdf44c55f94</v>
<v>HasVisibilityAccessIntern</v>
<v>4d738387-8294-5797-8fad-6fcc2767c77c</v>
<v>Initialize</v>
<v>c912d9a6-3099-4fd8-8c6b-9c729c5b2004</v>
<v>IsAntialiasingInactive</v>
<v>cebe9b1e-b4af-49b6-92b9-d8013324d910</v>
<v>Paint</v>
<v>8c69f244-db53-4b89-8de3-32c7fa08d0d4</v>
<v>SetClientData</v>
<v>62011238-9967-426c-9bc6-e9c44d1555c4</v>
<v>SetContainerSize</v>
<v>a8e1cae6-4353-5ec4-a8da-139cbd6da9d1</v>
<v>SetDialogInterface</v>
<v>390109f8-0563-4d26-b9c2-26e2a1300424</v>
<v>SetResult</v>
<v>a9c42fea-0522-4177-869b-2d2b2bf6baba</v>
<v>SetStaticState</v>
<v>991e8766-625c-4263-ba9f-89c90f8233ff</v>
<v>SetVisuFlagsInternal</v>
<v>09740ec0-1d81-425f-bb0c-abfd20ce31ad</v>
<v>Update</v>
<v>4b9c6273-d35d-46ea-a622-2bdac7eeceb0</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>__getContainer</v>
<v>0323a923-4436-43d4-a56b-5b6c99276976</v>
<v>__getVisu</v>
<v>672fd592-5ed6-4352-b3a0-475c2dcdf562</v>
</d>
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{6417d8f5-7e69-4dbb-a27e-1788eb77e06d}</v>
</o>
<v n="GeneratedGlobalVisuVarsGuid">{bf3c21d2-451e-4272-a973-4b8156187d4b}</v>
<v n="GeneratedGlobalTheVisuVarlistGuid">{7c801ebf-fe2c-4ee1-be26-be395019245f}</v>
<v n="GeneratedGlobalVisuConstants">{e85e7a05-3476-4079-97ed-3800c5d6cb71}</v>
<d n="GeneratedAllElementsEntries" t="Hashtable" />
<o n="VisuRegDesc" t="GenericFbDescription">
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>FB_Exit</v>
<v>6eef3a36-681d-4be7-8ab7-79e47523a5e6</v>
<v>FB_Init</v>
<v>53560e25-a238-4e5a-bdf3-ecde33a2a804</v>
<v>FB_Reinit</v>
<v>ed422880-bece-4ec4-acce-7d5d90947953</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" />
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{7dc1d4d7-69e5-4433-86f8-dd81a3d7986a}</v>
</o>
<v n="VisuRegisterGvl">{7cb681e4-f442-44e4-b91f-7d927693d3f7}</v>
<n n="SettingsPou" />
<n n="MemManPou" />
<o n="InputsPou" t="GenericFbDescription">
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>abstrGetDefaultCursor</v>
<v>995393ad-f42f-446a-bd35-ee58b9b58c41</v>
<v>ExecuteDialogClosed</v>
<v>42644b81-003c-4f52-a4cb-cdd29aa2a569</v>
<v>ExecuteKeyDown</v>
<v>5f566370-4ade-48cc-b85d-b4f993a5f0af</v>
<v>ExecuteKeyUp</v>
<v>fdd89008-4a0b-4a9e-8949-eb2379a96578</v>
<v>ExecuteLooseCapture</v>
<v>2a424de6-d4c3-4ad4-b959-0426e8623c31</v>
<v>ExecuteMouseClick</v>
<v>6c77032a-1e96-4268-b9e0-6baf16264965</v>
<v>ExecuteMouseDblClick</v>
<v>3c59466d-b79f-4f99-8d98-a9a470a1ccda</v>
<v>ExecuteMouseDown</v>
<v>a095bd22-96f9-4a2a-8731-923ae90a2c8e</v>
<v>ExecuteMouseEnter</v>
<v>c62f4a03-72aa-47a4-b542-fde41582ff31</v>
<v>ExecuteMouseLeave</v>
<v>0632e9ed-ff79-48dd-973c-4bd0aaee83a3</v>
<v>ExecuteMouseMove</v>
<v>4553b25e-6633-4c68-a8b6-073c4d8dd041</v>
<v>ExecuteMouseUp</v>
<v>213a0cc4-1567-4d97-9e35-93bff1384454</v>
<v>ExecuteValueChanged</v>
<v>209b3538-77e1-4c5f-8752-4a0b929045d6</v>
<v>GetElementInfo</v>
<v>50bb3466-e6df-4b22-84e4-b4f36c9ea9d2</v>
<v>Initialize</v>
<v>a0276d84-31cf-4f04-bcb1-d7389b09d6ce</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" />
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{f3b41fc6-e0e7-41c1-8ade-c0d5825064e8}</v>
</o>
<v n="DialogDut">{b872c3d4-5381-41ad-b5ee-fd7cbe46fb5c}</v>
</o>
<v n="LastUsedIdForIdentifier">2</v>
<o n="TextDocument" t="TextDocument">
<v n="TextBlobForSerialisation">"VAR_IN_OUT
END_VAR"</v>
<n n="LineInfoPersistence" />
</o>
<v n="GvlCreated">false</v>
<n n="LMEntry" />
<v n="ProfileCompatibilityId">4140216668L</v>
<v n="LMVerMinor">0</v>
<v n="LMVerMajor">1</v>
<o n="Hotkeys" t="HotkeyConfiguration">
<v n="IdMin">481037385728L</v>
<v n="IdMax">549755813887L</v>
<v n="Id">481037385728L</v>
<v n="IdMask">549754765312L</v>
<v n="IdStep">1048576L</v>
<l2 n="Inputs" />
</o>
<o n="VisuSizeManager" t="VisualObjectSizeManager">
<d2 n="Size" ckt="Int32" cvt="VisualObjectSize">
<v>0</v>
<o>
<v n="Width">1450</v>
<v n="Height">400</v>
</o>
<v>1</v>
<o>
<v n="Width">1450</v>
<v n="Height">400</v>
</o>
<v>2</v>
<o>
<v n="Width">1450</v>
<v n="Height">400</v>
</o>
</d2>
<v n="Version">2</v>
</o>
<n n="FrameInterfaceDataModel" />
</o>
</Data>
<TypeList>
<Type n="ArrayList">System.Collections.ArrayList</Type>
<Type n="BackgroundSettings">{1038f12c-dd4b-4f96-87a3-a350fe8f3552}</Type>
<Type n="Boolean">System.Boolean</Type>
<Type n="Byte">System.Byte</Type>
<Type n="CaseInsensitiveHashtable">{7df88604-7ac5-4e36-91c4-55e4fdad3e68}</Type>
<Type n="ComplexInput">{1de566f6-72a7-494c-9353-9a418172c96e}</Type>
<Type n="ConstantWithOptionalExpression">{be74fbbc-f60e-4118-88db-b2ee5169938e}</Type>
<Type n="Double">System.Double</Type>
<Type n="FontDescription">{896a5e54-96c3-433b-96d2-4f1442fef591}</Type>
<Type n="GeneratedLanguageModelEntriesData">{703465dc-4679-4ff2-bcc3-c57d0a204da3}</Type>
<Type n="GenericFbDescription">{40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}</Type>
<Type n="GenericVisualElem">{f86c2928-8614-4cca-824b-e819ac4d58c4}</Type>
<Type n="Guid">System.Guid</Type>
<Type n="Hashtable">System.Collections.Hashtable</Type>
<Type n="HotkeyConfiguration">{6b108d46-58af-4e41-a3f4-174d8f160cc4}</Type>
<Type n="Int16">System.Int16</Type>
<Type n="Int32">System.Int32</Type>
<Type n="Int64">System.Int64</Type>
<Type n="NamedStyleColor">{fa491db2-51ff-4bc1-9cd0-ce8c94ff6216}</Type>
<Type n="NamedStyleFont">{9e842eb2-1463-4af2-b605-4fbb17044f94}</Type>
<Type n="Single">System.Single</Type>
<Type n="String">System.String</Type>
<Type n="TextDocument">{f3878285-8e4f-490b-bb1b-9acbb7eb04db}</Type>
<Type n="UInt16">System.UInt16</Type>
<Type n="UInt32">System.UInt32</Type>
<Type n="VisualElemCollection">{ef9d0b20-c96e-48db-b361-2ded4063150e}</Type>
<Type n="VisualElemList">{f285c9a3-7019-446b-b98c-ccec3a0af8fa}</Type>
<Type n="VisualElemMember">{c694e3a2-5c0b-4177-ab35-cb06bd5a6a02}</Type>
<Type n="VisualElemMemberCollection">{a4b83bea-3742-489c-9fe8-d96d68dba7ab}</Type>
<Type n="VisualElemMemberList">{17e26cd1-bb9b-47fe-a3d5-18fcd63b9c96}</Type>
<Type n="VisualObject">{f18bec89-9fef-401d-9953-2f11739a6808}</Type>
<Type n="VisualObjectSize">{6ad3e88f-aee2-4766-a7ea-a8790037ef51}</Type>
<Type n="VisualObjectSizeManager">{5f612b0e-b404-455f-8177-27864e9f5332}</Type>
</TypeList>
</XmlArchive>
<ObjectProperties>
<XmlArchive>
<Data>
<o xml:space="preserve" t="VisualProperty">
<v n="VisuUsageType">0</v>
<v n="SizeX">1450</v>
<v n="SizeY">400</v>
<v n="IsStartVisu">false</v>
<v n="VisuSizeMode" t="VisualVisuSizeMode">Specified</v>
<v n="Internal">false</v>
<v n="DialogIsOpaque">false</v>
<v n="DialogIsOpaqueIsSet">false</v>
<v n="UseParentSizeProperties">true</v>
</o>
</Data>
<TypeList>
<Type n="Boolean">System.Boolean</Type>
<Type n="Int32">System.Int32</Type>
<Type n="VisualProperty">{477d844b-9b2a-407e-90a4-d36fd6dde2fc}</Type>
<Type n="VisualVisuSizeMode">{34718b76-91f6-43de-8c65-b77e0b1ee621}</Type>
</TypeList>
</XmlArchive>
</ObjectProperties>
</Visu>
</TcPlcObject>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<DUT Name="sHV_I" Id="{4df94f7b-3c4a-41f7-b3aa-dd531483f85c}">
<Declaration><![CDATA[TYPE sHV_I :
STRUCT
Index : UINT;
Ereignis : USINT;
Betriebsart : USINT;
Messrate : USINT;
Rampe : USINT;
Spannungsgrenzwert : UDINT; //V
Stromgrenzwert : LREAL; //mA
Spannungsmesswert : LREAL; //1 V
Strommesswert : LREAL; //mA
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff