Initial commit
This commit is contained in:
61
.gitignore
vendored
Normal file
61
.gitignore
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
### TwinCAT3 ###
|
||||
# website: https://www.beckhoff.com/twincat3/
|
||||
|
||||
# TwinCAT PLC
|
||||
*.plcproj.bak
|
||||
*.plcproj.orig
|
||||
*.tpy
|
||||
*.tclrs
|
||||
*.library
|
||||
*.compiled-library
|
||||
*.compileinfo
|
||||
*.asm
|
||||
*.core
|
||||
LineIDs.dbg
|
||||
LineIDs.dbg.bak
|
||||
|
||||
# TwinCAT C++ and shared types
|
||||
# ignoring the TMC file is only useful for plain PLC programming
|
||||
# as soon as shared data types (via tmc), C++ or in general TcCom-Module are used, the TMC file has to be part of the repository
|
||||
#*.tmc
|
||||
*.tmcRefac
|
||||
|
||||
# TwinCAT project files
|
||||
*.tsproj.bak
|
||||
*.tspproj.bak
|
||||
*.tsproj.b?k
|
||||
*.tsproj.orig
|
||||
*.xti.bak
|
||||
*.xti.bk?
|
||||
*.xti.orig
|
||||
*.xtv
|
||||
*.xtv.bak
|
||||
*.xtv.bk?
|
||||
*.tnzip
|
||||
|
||||
# Multiuser specific
|
||||
**/.TcGit/
|
||||
|
||||
# exclude not required folders
|
||||
**/_Boot/
|
||||
**/_CompileInfo/
|
||||
**/_Libraries/
|
||||
**/_ModuleInstall/
|
||||
**/_Deployment/
|
||||
**/_Repository/
|
||||
|
||||
# VS Shell project specific files and folders
|
||||
**/.vs/
|
||||
*.~u
|
||||
*.project.~u
|
||||
*.suo
|
||||
|
||||
# Own Ignores
|
||||
commit.txt
|
||||
*.txt
|
||||
*.exe
|
||||
*.xlsx
|
||||
# TwinCAT HMI, filter downloaded JSON schema files
|
||||
json-schema.org
|
||||
# Drawio backup file
|
||||
*.bkp
|
||||
202
PLC/PLC.plcproj
Normal file
202
PLC/PLC.plcproj
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<FileVersion>1.0.0.0</FileVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{8d001bcc-646b-4e7a-a1fd-61efd5111463}</ProjectGuid>
|
||||
<SubObjectsSortedByName>true</SubObjectsSortedByName>
|
||||
<DownloadApplicationInfo>true</DownloadApplicationInfo>
|
||||
<WriteProductVersion>false</WriteProductVersion>
|
||||
<GenerateTpy>false</GenerateTpy>
|
||||
<Name>PLC</Name>
|
||||
<ProgramVersion>3.1.4026.20</ProgramVersion>
|
||||
<Application>{be2ccb83-367c-408a-8224-3f532c11e28a}</Application>
|
||||
<TypeSystem>{92bce27b-dcfc-428a-88ab-80d87ffe8045}</TypeSystem>
|
||||
<Implicit_Task_Info>{7b80be63-816a-4c93-8d2e-3e443140c3ad}</Implicit_Task_Info>
|
||||
<Implicit_KindOfTask>{283143d9-1600-4cb8-9d03-5b352f239e18}</Implicit_KindOfTask>
|
||||
<Implicit_Jitter_Distribution>{c6989e8a-54be-4e7a-bf6f-351e3a5ccef1}</Implicit_Jitter_Distribution>
|
||||
<LibraryReferences>{c5c6b994-f2a1-4a71-b657-f282007c0cd2}</LibraryReferences>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="PlcTask.TcTTO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\MAIN.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\DUTs\E_TransitCond.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\DUTs\ST_Recipe.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\DUTs\ST_RecipeNode.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\DUTs\ST_Transition.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\GVLs\GVL_Scheduler.TcGVL">
|
||||
<SubType>Code</SubType>
|
||||
<LinkAlways>true</LinkAlways>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\ITFs\I_Product.TcIO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\ITFs\I_Station.TcIO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\ITFs\I_Transport.TcIO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\POUs\FB_Product.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\POUs\FB_Scheduler.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\POUs\FB_StationBase.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Scheduler\POUs\FB_TransportBase.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Stations\FB_Etcher.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Stations\FB_HVTest.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Stations\FB_Input.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Stations\FB_NIO.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Stations\FB_Output.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="DUTs" />
|
||||
<Folder Include="GVLs" />
|
||||
<Folder Include="POUs\Scheduler" />
|
||||
<Folder Include="POUs\Scheduler\ITFs" />
|
||||
<Folder Include="POUs\Scheduler\DUTs" />
|
||||
<Folder Include="POUs\Scheduler\GVLs" />
|
||||
<Folder Include="POUs\Scheduler\POUs" />
|
||||
<Folder Include="POUs\Stations" />
|
||||
<Folder Include="VISUs" />
|
||||
<Folder Include="POUs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PlaceholderReference Include="Tc2_Standard">
|
||||
<DefaultResolution>Tc2_Standard, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||
<Namespace>Tc2_Standard</Namespace>
|
||||
</PlaceholderReference>
|
||||
<PlaceholderReference Include="Tc2_System">
|
||||
<DefaultResolution>Tc2_System, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||
<Namespace>Tc2_System</Namespace>
|
||||
</PlaceholderReference>
|
||||
<PlaceholderReference Include="Tc3_Module">
|
||||
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||
<Namespace>Tc3_Module</Namespace>
|
||||
<SystemLibrary>true</SystemLibrary>
|
||||
</PlaceholderReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="PLC.tmc">
|
||||
<SubType>Content</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ProjectExtensions>
|
||||
<PlcProjectOptions>
|
||||
<XmlArchive>
|
||||
<Data>
|
||||
<o xml:space="preserve" t="OptionKey">
|
||||
<v n="Name">"<ProjectRoot>"</v>
|
||||
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
||||
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
|
||||
<o>
|
||||
<v n="Name">"{192FAD59-8248-4824-A8DE-9177C94C195A}"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
<v>{29BD8D0C-3586-4548-BB48-497B9A01693F}</v>
|
||||
<o>
|
||||
<v n="Name">"{29BD8D0C-3586-4548-BB48-497B9A01693F}"</v>
|
||||
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
||||
<v>Metrics</v>
|
||||
<o>
|
||||
<v n="Name">"Metrics"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
<v>NamingConventions</v>
|
||||
<o>
|
||||
<v n="Name">"NamingConventions"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
<v>Rules</v>
|
||||
<o>
|
||||
<v n="Name">"Rules"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
</d>
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
<v>{40450F57-0AA3-4216-96F3-5444ECB29763}</v>
|
||||
<o>
|
||||
<v n="Name">"{40450F57-0AA3-4216-96F3-5444ECB29763}"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
<v>{8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6}</v>
|
||||
<o>
|
||||
<v n="Name">"{8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6}"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" ckt="String" cvt="Boolean">
|
||||
<v>WriteLineIDs</v>
|
||||
<v>True</v>
|
||||
</d>
|
||||
</o>
|
||||
<v>{8F99A816-E488-41E4-9FA3-846536012284}</v>
|
||||
<o>
|
||||
<v n="Name">"{8F99A816-E488-41E4-9FA3-846536012284}"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||
<v>DisabledWarningIds</v>
|
||||
<v>410,5410</v>
|
||||
</d>
|
||||
</o>
|
||||
<v>{eeeeeeee-3909-4298-8022-501ac3238667}</v>
|
||||
<o>
|
||||
<v n="Name">"{eeeeeeee-3909-4298-8022-501ac3238667}"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
<v>{F66C7017-BDD8-4114-926C-81D6D687E35F}</v>
|
||||
<o>
|
||||
<v n="Name">"{F66C7017-BDD8-4114-926C-81D6D687E35F}"</v>
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" ckt="String" cvt="Boolean">
|
||||
<v>CalcActiveTransOnly</v>
|
||||
<v>True</v>
|
||||
</d>
|
||||
</o>
|
||||
</d>
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</PlcProjectOptions>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
1
PLC/PLC.tmc
Normal file
1
PLC/PLC.tmc
Normal file
File diff suppressed because one or more lines are too long
71
PLC/POUs/MAIN.TcPOU
Normal file
71
PLC/POUs/MAIN.TcPOU
Normal file
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="MAIN" Id="{253d06d0-7abd-4394-b68c-5ffd2aaf348a}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[PROGRAM MAIN
|
||||
VAR
|
||||
_fbScheduler : FB_Scheduler;
|
||||
|
||||
_xInitDone : BOOL;
|
||||
|
||||
// Stations
|
||||
_fbInput : FB_Input;
|
||||
_fbEtcher : FB_Etcher;
|
||||
_fbHVTest : FB_HVTest;
|
||||
_fbOutput : FB_Output;
|
||||
_fbNIO : FB_NIO;
|
||||
|
||||
// Example recipe
|
||||
_stRecipeSimple : ST_Recipe;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF (NOT _xInitDone) THEN
|
||||
_xInitDone := TRUE;
|
||||
A_Init();
|
||||
END_IF
|
||||
|
||||
// Call all stations
|
||||
_fbInput();
|
||||
_fbEtcher();
|
||||
_fbHVTest();
|
||||
_fbOutput();
|
||||
_fbNIO();
|
||||
|
||||
// Call scheduler
|
||||
_fbScheduler();]]></ST>
|
||||
</Implementation>
|
||||
<Action Name="A_Init" Id="{203d4406-b6da-4e3d-8378-ac96a0e18ff2}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Register stations to scheduler
|
||||
_fbScheduler.M_ClearStations();
|
||||
|
||||
_fbScheduler.M_Register(_fbInput);
|
||||
_fbScheduler.M_Register(_fbEtcher);
|
||||
_fbScheduler.M_Register(_fbHVTest);
|
||||
_fbScheduler.M_Register(_fbOutput);
|
||||
_fbScheduler.M_Register(_fbNIO);
|
||||
|
||||
|
||||
// Create simple recipe
|
||||
_stRecipeSimple.uiRecipeID := 1;
|
||||
_stRecipeSimple.uiStartNode := 0;
|
||||
_stRecipeSimple.uiNodeCnt := 3;
|
||||
|
||||
// Process nodes
|
||||
_stRecipeSimple.astNodes[0].uiNodeID := 1;
|
||||
_stRecipeSimple.astNodes[0].dwReqCap := 16#0001;
|
||||
_stRecipeSimple.astNodes[0].uiTransCnt := 1;
|
||||
_stRecipeSimple.astNodes[0].astTransitions[0].eCondition := E_TransitCond.ALWAYS;
|
||||
_stRecipeSimple.astNodes[0].astTransitions[0].uiNextNodeID := 1;
|
||||
|
||||
_stRecipeSimple.astNodes[1].uiNodeID := 1;
|
||||
_stRecipeSimple.astNodes[1].dwReqCap := 16#0001;
|
||||
_stRecipeSimple.astNodes[1].uiTransCnt := 2;
|
||||
_stRecipeSimple.astNodes[1].astTransitions[0].eCondition := E_TransitCond.RESULT_OK;
|
||||
_stRecipeSimple.astNodes[1].astTransitions[0].uiNextNodeID := 3;
|
||||
_stRecipeSimple.astNodes[1].astTransitions[1].eCondition := E_TransitCond.RESULT_NIO;
|
||||
_stRecipeSimple.astNodes[1].astTransitions[1].uiNextNodeID := 4;]]></ST>
|
||||
</Implementation>
|
||||
</Action>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
16
PLC/POUs/Scheduler/DUTs/E_TransitCond.TcDUT
Normal file
16
PLC/POUs/Scheduler/DUTs/E_TransitCond.TcDUT
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="E_TransitCond" Id="{0c8e8042-17f8-4b76-ad0c-96d650245098}">
|
||||
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||
{attribute 'strict'}
|
||||
{attribute 'to_string'}
|
||||
TYPE E_TransitCond :
|
||||
(
|
||||
ALWAYS := 0,
|
||||
RESULT_OK,
|
||||
RESULT_NIO
|
||||
);
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
14
PLC/POUs/Scheduler/DUTs/ST_Recipe.TcDUT
Normal file
14
PLC/POUs/Scheduler/DUTs/ST_Recipe.TcDUT
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_Recipe" Id="{3e2c2867-3147-4627-bf49-6255dbaf5310}">
|
||||
<Declaration><![CDATA[TYPE ST_Recipe :
|
||||
STRUCT
|
||||
uiRecipeID : UINT;
|
||||
uiStartNode : UINT := 0;
|
||||
uiNodeCnt : UINT := 0;
|
||||
astNodes : ARRAY[0..(GVL_Scheduler.MAX_RECIPE_NODES - 1)] OF ST_RecipeNode;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
19
PLC/POUs/Scheduler/DUTs/ST_RecipeNode.TcDUT
Normal file
19
PLC/POUs/Scheduler/DUTs/ST_RecipeNode.TcDUT
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_RecipeNode" Id="{ceb8b626-8a65-4e92-9344-14e330b6c8bd}">
|
||||
<Declaration><![CDATA[TYPE ST_RecipeNode :
|
||||
STRUCT
|
||||
uiNodeID : UINT;
|
||||
// Required capabilities
|
||||
dwReqCap : DWORD;
|
||||
|
||||
// Transition count
|
||||
uiTransCnt : UINT;
|
||||
|
||||
// Transitions
|
||||
astTransitions : ARRAY[0..(GVL_Scheduler.MAX_STATIONS - 1)] OF ST_Transition;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
12
PLC/POUs/Scheduler/DUTs/ST_Transition.TcDUT
Normal file
12
PLC/POUs/Scheduler/DUTs/ST_Transition.TcDUT
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_Transition" Id="{7b8c5232-d3a6-4d0b-b8ad-e54400018d53}">
|
||||
<Declaration><![CDATA[TYPE ST_Transition :
|
||||
STRUCT
|
||||
eCondition : E_TransitCond;
|
||||
uiNextNodeID : UINT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
14
PLC/POUs/Scheduler/GVLs/GVL_Scheduler.TcGVL
Normal file
14
PLC/POUs/Scheduler/GVLs/GVL_Scheduler.TcGVL
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<GVL Name="GVL_Scheduler" Id="{768bef46-feba-4d2e-bc5d-8385420ff7b5}">
|
||||
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||
VAR_GLOBAL CONSTANT
|
||||
// Recipe constants
|
||||
MAX_RECIPE_TRANSITIONS : UINT := 10;
|
||||
MAX_RECIPE_NODES : UINT := 10;
|
||||
|
||||
// Scheduler constants
|
||||
MAX_STATIONS : UINT := 10;
|
||||
END_VAR]]></Declaration>
|
||||
</GVL>
|
||||
</TcPlcObject>
|
||||
30
PLC/POUs/Scheduler/ITFs/I_Product.TcIO
Normal file
30
PLC/POUs/Scheduler/ITFs/I_Product.TcIO
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<Itf Name="I_Product" Id="{78dffc1b-aed6-4622-8b64-e060477179c6}">
|
||||
<Declaration><![CDATA[{attribute 'no_explicit_call' := 'do not call this POU directly'}
|
||||
INTERFACE I_Product
|
||||
]]></Declaration>
|
||||
<Method Name="M_SetCurrProcRes" Id="{afd48187-6008-4813-8fe5-04c632483cf0}">
|
||||
<Declaration><![CDATA[METHOD M_SetCurrProcRes
|
||||
VAR_INPUT
|
||||
xSuccess : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
</Method>
|
||||
<Property Name="P_CurrNodeID" Id="{2408303a-b81e-4623-9557-4af29ff08776}">
|
||||
<Declaration><![CDATA[PROPERTY P_CurrNodeID : UINT]]></Declaration>
|
||||
<Get Name="Get" Id="{c7773936-77b0-42da-86b5-ef706272183a}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
<Set Name="Set" Id="{1ecab2de-a6ae-4a48-a0d3-c65c8bfe8a22}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Set>
|
||||
</Property>
|
||||
<Property Name="P_NextReqCap" Id="{ea007dca-197b-4284-b65b-0f7c1a14e1fa}">
|
||||
<Declaration><![CDATA[PROPERTY P_NextReqCap : DWORD]]></Declaration>
|
||||
<Get Name="Get" Id="{0abf4eb3-351d-4342-a687-7722bc63fdaa}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
</Itf>
|
||||
</TcPlcObject>
|
||||
84
PLC/POUs/Scheduler/ITFs/I_Station.TcIO
Normal file
84
PLC/POUs/Scheduler/ITFs/I_Station.TcIO
Normal file
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<Itf Name="I_Station" Id="{f863fe97-4162-4b2e-b60e-3fee73b74d3a}">
|
||||
<Declaration><![CDATA[INTERFACE I_Station
|
||||
]]></Declaration>
|
||||
<Method Name="M_HasCapabilty" Id="{b116dc84-553d-4994-acaf-ce410825ba36}">
|
||||
<Declaration><![CDATA[METHOD M_HasCapabilty : BOOL
|
||||
VAR_INPUT
|
||||
dwReqCap : DWORD;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
</Method>
|
||||
<Method Name="M_InsertProduct" Id="{6d808715-3e3b-47f8-9bce-8110ddf0fadc}">
|
||||
<Declaration><![CDATA[METHOD M_InsertProduct : BOOL;
|
||||
VAR_INPUT
|
||||
fbProduct : I_Product;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
</Method>
|
||||
<Method Name="M_Release" Id="{8a898aac-0cc9-477d-9998-62f5f31391c7}">
|
||||
<Declaration><![CDATA[METHOD M_Release : BOOL
|
||||
VAR_INPUT
|
||||
udiHandle : UDINT;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
</Method>
|
||||
<Method Name="M_RemoveProduct" Id="{90af1fde-9aed-4c2f-990d-d0ad1af5a705}">
|
||||
<Declaration><![CDATA[METHOD M_RemoveProduct : I_Product
|
||||
]]></Declaration>
|
||||
</Method>
|
||||
<Method Name="M_Reserve" Id="{6c535852-3b02-41fc-a4fc-9b0284412ec7}">
|
||||
<Declaration><![CDATA[METHOD M_Reserve : UDINT
|
||||
]]></Declaration>
|
||||
</Method>
|
||||
<Property Name="P_Available" Id="{3075cb0b-1920-4207-a4f7-c06c6ad91a05}">
|
||||
<Declaration><![CDATA[PROPERTY P_Available : BOOL]]></Declaration>
|
||||
<Get Name="Get" Id="{8936bdb5-2331-44ac-804b-848836e7e78f}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Busy" Id="{c7a782a6-d9d8-4f37-ab05-aa446f3c2ade}">
|
||||
<Declaration><![CDATA[PROPERTY P_Busy : BOOL]]></Declaration>
|
||||
<Get Name="Get" Id="{0bee0f8b-b5f7-4a72-b050-a4b75337d9bb}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Capabilities" Id="{3066b824-0e0c-4a74-9959-559c483d2106}">
|
||||
<Declaration><![CDATA[PROPERTY P_Capabilities : DWORD]]></Declaration>
|
||||
<Get Name="Get" Id="{e550ce47-de92-4f19-a7f9-98ddde2d0ceb}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_HasError" Id="{9d27caa3-2913-4127-9dc4-3c0085468476}">
|
||||
<Declaration><![CDATA[PROPERTY P_HasError : BOOL]]></Declaration>
|
||||
<Get Name="Get" Id="{ce1554ec-8c79-4cec-ba5a-7f52f7858b24}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_ProdAvail" Id="{8be4500d-7028-4fcc-a7fe-1999aec0ad49}">
|
||||
<Declaration><![CDATA[PROPERTY P_ProdAvail : BOOL]]></Declaration>
|
||||
<Get Name="Get" Id="{f64416d4-c6fe-4557-a6a6-a815d611ad92}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Product" Id="{20f38cff-89b3-4ebd-9f5f-171721cc7f4c}">
|
||||
<Declaration><![CDATA[PROPERTY P_Product : I_Product]]></Declaration>
|
||||
<Get Name="Get" Id="{54f46645-3bb5-477e-a037-282c55914608}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Result" Id="{703e039e-b718-4d79-86bd-e01bd8c2d16b}">
|
||||
<Declaration><![CDATA[PROPERTY P_Result : UINT]]></Declaration>
|
||||
<Get Name="Get" Id="{5a6206de-d50c-4c20-be99-7f2f851fee69}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_StationID" Id="{9004f009-99e0-41c2-a1a1-57af78c8e0c6}">
|
||||
<Declaration><![CDATA[PROPERTY P_StationID : UINT]]></Declaration>
|
||||
<Get Name="Get" Id="{060c4b1d-c578-4e27-95fc-86c34f0eedd4}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
</Itf>
|
||||
</TcPlcObject>
|
||||
19
PLC/POUs/Scheduler/ITFs/I_Transport.TcIO
Normal file
19
PLC/POUs/Scheduler/ITFs/I_Transport.TcIO
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<Itf Name="I_Transport" Id="{ab102a71-b12c-47a4-86f6-0ac81eba046a}">
|
||||
<Declaration><![CDATA[INTERFACE I_Transport
|
||||
]]></Declaration>
|
||||
<Property Name="P_Available" Id="{3d35d7bc-8757-4198-a19d-30d68f948ed9}">
|
||||
<Declaration><![CDATA[PROPERTY P_Available : BOOL]]></Declaration>
|
||||
<Get Name="Get" Id="{4a84e659-1971-4dc0-87d2-0fe5edfa2e18}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_HasError" Id="{57c92e5a-3721-42db-811d-3913f54f35ee}">
|
||||
<Declaration><![CDATA[PROPERTY P_HasError : BOOL]]></Declaration>
|
||||
<Get Name="Get" Id="{ce549bea-4b32-46cf-b739-cdadf8dfa005}">
|
||||
<Declaration><![CDATA[]]></Declaration>
|
||||
</Get>
|
||||
</Property>
|
||||
</Itf>
|
||||
</TcPlcObject>
|
||||
87
PLC/POUs/Scheduler/POUs/FB_Product.TcPOU
Normal file
87
PLC/POUs/Scheduler/POUs/FB_Product.TcPOU
Normal file
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_Product" Id="{aeaa85d2-80b5-4274-aa7e-dadad9f0dcfb}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Product IMPLEMENTS I_Product
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
// Product recipe
|
||||
_stRecipe : ST_Recipe;
|
||||
|
||||
_uiCurrNodeID : UINT := 0;
|
||||
_uiNextNodeID : UINT := 0;
|
||||
|
||||
_xResult : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_SetCurrProcRes" Id="{478e39cf-00d0-4253-8c4e-ed30567e421d}">
|
||||
<Declaration><![CDATA[METHOD M_SetCurrProcRes
|
||||
VAR_INPUT
|
||||
xSuccess : BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
_uiCnt : UINT;
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Check all possible transition
|
||||
FOR _uiCnt := 0 TO (_stRecipe.astNodes[_uiCurrNodeID].uiTransCnt - 1) DO
|
||||
CASE _stRecipe.astNodes[_uiCurrNodeID].astTransitions[_uiCnt].eCondition OF
|
||||
E_TransitCond.ALWAYS:
|
||||
_uiNextNodeID := _stRecipe.astNodes[_uiCurrNodeID].astTransitions[_uiCnt].uiNextNodeID;
|
||||
EXIT;
|
||||
|
||||
E_TransitCond.RESULT_OK:
|
||||
IF xSuccess THEN
|
||||
_uiNextNodeID := _stRecipe.astNodes[_uiCurrNodeID].astTransitions[_uiCnt].uiNextNodeID;
|
||||
EXIT;
|
||||
END_IF
|
||||
|
||||
E_TransitCond.RESULT_NIO:
|
||||
IF (NOT xSuccess) THEN
|
||||
_uiNextNodeID := _stRecipe.astNodes[_uiCurrNodeID].astTransitions[_uiCnt].uiNextNodeID;
|
||||
EXIT;
|
||||
END_IF
|
||||
END_CASE
|
||||
END_FOR
|
||||
]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Property Name="P_CurrNodeID" Id="{896d8e88-c324-42f7-8ec5-28782223405a}">
|
||||
<Declaration><![CDATA[PROPERTY P_CurrNodeID : UINT
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{e1aeb000-7306-4b12-ab29-6078214076ea}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_CurrNodeID := _uiCurrNodeID;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
<Set Name="Set" Id="{6b281f43-823b-4830-a917-2539de62e216}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[_uiCurrNodeID := P_CurrNodeID;]]></ST>
|
||||
</Implementation>
|
||||
</Set>
|
||||
</Property>
|
||||
<Property Name="P_NextReqCap" Id="{4c4a03ed-4074-46c1-8f2a-b964a788faf6}">
|
||||
<Declaration><![CDATA[PROPERTY P_NextReqCap : DWORD
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{a7e4e08c-166a-4234-b8b1-9d5ae2650ea7}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_NextReqCap := _stRecipe.astNodes[_uiNextNodeID].dwReqCap;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
108
PLC/POUs/Scheduler/POUs/FB_Scheduler.TcPOU
Normal file
108
PLC/POUs/Scheduler/POUs/FB_Scheduler.TcPOU
Normal file
@@ -0,0 +1,108 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_Scheduler" Id="{af4eba28-c46c-4c30-8885-00e91057da4d}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Scheduler
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
_aiStations : ARRAY[1..(GVL_Scheduler.MAX_STATIONS)] OF I_Station;
|
||||
_uiStationCount : UINT := 0;
|
||||
|
||||
_fbTransport : ARRAY[1..(GVL_Scheduler.MAX_STATIONS)] OF I_Station;
|
||||
_uiTransportCnt : UINT := 0;
|
||||
|
||||
_uiCnt : UINT;
|
||||
_uiNextAvailStation : UINT;
|
||||
|
||||
_fbProduct : I_Product;
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[FOR _
|
||||
|
||||
|
||||
FOR _uiCnt := 1 TO _uiStationCount DO
|
||||
IF _aiStations[_uiCnt].P_ProdAvail THEN
|
||||
// Find next available station according to recipe and available station
|
||||
_uiNextAvailStation := M_FindNextAvailStation(_aiStations[_uiCnt].P_Product);
|
||||
|
||||
// Check if there is a station available
|
||||
IF _uiNextAvailStation <> 0 THEN
|
||||
// _aiStations[_uiNextAvailStation].M_Reserve();
|
||||
END_IF
|
||||
END_IF
|
||||
END_FOR]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_ClearStations" Id="{7c667e8a-38f2-48a9-afff-834e87e4d3f6}">
|
||||
<Declaration><![CDATA[METHOD M_ClearStations
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Remove all registered stations from array
|
||||
MEMSET(destAddr := ADR(_aiStations), fillByte := 0, n := SIZEOF(_aiStations));
|
||||
|
||||
// Reset number of registered stations
|
||||
_uiStationCount := 0;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_FindNextAvailStation" Id="{75382296-32be-4724-b020-39273aa8358c}">
|
||||
<Declaration><![CDATA[METHOD PRIVATE M_FindNextAvailStation : UINT
|
||||
VAR_INPUT
|
||||
_fbProduct : I_Product;
|
||||
END_VAR
|
||||
VAR
|
||||
_uiCnt : UINT;
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[FOR _uiCnt := 1 TO _uiStationCount DO
|
||||
IF _aiStations[_uiCnt].M_HasCapabilty(_fbProduct.P_NextReqCap) AND _aiStations[_uiCnt].P_Available THEN
|
||||
M_FindNextAvailStation := _uiCnt;
|
||||
EXIT;
|
||||
END_IF
|
||||
END_FOR
|
||||
|
||||
M_FindNextAvailStation := 0;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Register" Id="{6a14034a-d5c0-46c1-a13b-418885a02563}">
|
||||
<Declaration><![CDATA[METHOD M_Register
|
||||
VAR_INPUT
|
||||
fbStation : I_Station;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Check if station is valid interface
|
||||
IF fbStation = 0 THEN
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Check if we have free slots
|
||||
IF _uiStationCount < GVL_Scheduler.MAX_STATIONS THEN
|
||||
_aiStations[_uiStationCount] := fbStation;
|
||||
_uiStationCount := _uiStationCount + 1;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_RegisterTransport" Id="{a85ebd03-27a5-40c5-bd8f-ade9f2eac962}">
|
||||
<Declaration><![CDATA[METHOD M_RegisterTransport
|
||||
VAR_INPUT
|
||||
fbTransport : I_Transport;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Check if transport is valid interface
|
||||
IF fbTransport = 0 THEN
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Check if we have free slots
|
||||
IF _uiTransportCnt < GVL_Scheduler.MAX_STATIONS THEN
|
||||
_aiStations[_uiTransportCnt] := fbTransport;
|
||||
_uiTransportCnt := _uiTransportCnt + 1;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
204
PLC/POUs/Scheduler/POUs/FB_StationBase.TcPOU
Normal file
204
PLC/POUs/Scheduler/POUs/FB_StationBase.TcPOU
Normal file
@@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_StationBase" Id="{e987477c-14c3-4a7d-9e57-317d0837328f}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_StationBase IMPLEMENTS I_Station
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
// Product available for pickup
|
||||
_xProdAvail : BOOL;
|
||||
|
||||
// Station available for new product
|
||||
_xAvailable : BOOL;
|
||||
_xBusy : BOOL;
|
||||
_xDone : BOOL;
|
||||
_xError : BOOL;
|
||||
|
||||
_uiStationID : UINT := 0;
|
||||
_dwCapabilities : DWORD;
|
||||
_uiResult : UINT;
|
||||
|
||||
// Reserve token handle
|
||||
_xReserved : BOOL;
|
||||
_udiCurrHandle : UDINT;
|
||||
_udiHandleCounter : UDINT := 1;
|
||||
|
||||
_fbProduct : I_Product;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_HasCapabilty" Id="{d05e7240-ab9b-469b-8867-87a70dbef84e}">
|
||||
<Declaration><![CDATA[METHOD M_HasCapabilty : BOOL
|
||||
VAR_INPUT
|
||||
dwReqCap : DWORD;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[M_HasCapabilty := (dwReqCap AND _dwCapabilities) = dwReqCap;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_InsertProduct" Id="{d323f806-9a97-49f2-9986-a997415883bf}">
|
||||
<Declaration><![CDATA[METHOD M_InsertProduct : BOOL;
|
||||
VAR_INPUT
|
||||
fbProduct : I_Product;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF fbProduct <> 0 AND _fbProduct = 0 THEN
|
||||
_fbProduct := fbProduct;
|
||||
M_InsertProduct := TRUE;
|
||||
ELSE
|
||||
M_InsertProduct := FALSE;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Release" Id="{924bffc5-44cc-4d02-a67d-fb0f3ab51cc2}">
|
||||
<Declaration><![CDATA[METHOD M_Release : BOOL
|
||||
VAR_INPUT
|
||||
udiHandle : UDINT;
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF _xReserved AND (udiHandle = _udiCurrHandle) THEN
|
||||
_xReserved := FALSE;
|
||||
_udiCurrHandle := 0;
|
||||
M_Release := TRUE;
|
||||
ELSE
|
||||
M_Release := FALSE;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_RemoveProduct" Id="{e5d01ee0-a885-4496-b522-46d093416622}">
|
||||
<Declaration><![CDATA[METHOD M_RemoveProduct : I_Product
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[M_RemoveProduct := _fbProduct;
|
||||
_fbProduct := 0;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Reserve" Id="{42a69458-4b78-4d35-bd61-3bb1ee3cafec}">
|
||||
<Declaration><![CDATA[METHOD M_Reserve : UDINT
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF (NOT _xReserved) THEN
|
||||
_xReserved := TRUE;
|
||||
_xAvailable := FALSE;
|
||||
|
||||
_udiCurrHandle := _udiHandleCounter;
|
||||
|
||||
// Increment handle
|
||||
_udiHandleCounter := _udiHandleCounter + 1;
|
||||
|
||||
// Prevent invalid token when overflowing
|
||||
IF _udiHandleCounter = 0 THEN
|
||||
_udiHandleCounter := 1;
|
||||
END_IF
|
||||
|
||||
// Return handle
|
||||
M_Reserve := _udiCurrHandle;
|
||||
ELSE
|
||||
M_Reserve := 0;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Property Name="P_Available" Id="{44abe6d9-f47e-47fa-8e00-c1822708d7bb}">
|
||||
<Declaration><![CDATA[PROPERTY P_Available : BOOL
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{3bc760b0-1ae6-43b4-920e-8dd9987fe3f7}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_Available := _xAvailable;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Busy" Id="{5b025893-318c-4480-ab72-6ffb8bedb715}">
|
||||
<Declaration><![CDATA[PROPERTY P_Busy : BOOL
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{596ebd24-6d36-4141-9b46-0ba6929a7256}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_Busy := _xBusy;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Capabilities" Id="{3e87d0bb-3b77-4aa6-bc89-587ee89028c2}">
|
||||
<Declaration><![CDATA[PROPERTY P_Capabilities : DWORD
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{4acbb119-eda4-4b57-8a60-16f1e982c21f}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_Capabilities := _dwCapabilities;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_HasError" Id="{1126bae7-5dd1-4592-8f95-62ea6e252ed0}">
|
||||
<Declaration><![CDATA[PROPERTY P_HasError : BOOL
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{3b3e65f8-9d92-48aa-9006-6a688edebb28}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_HasError := _xError;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_ProdAvail" Id="{47526379-0732-4031-8d2b-4380310ef64c}">
|
||||
<Declaration><![CDATA[PROPERTY P_ProdAvail : BOOL
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{c498f522-3394-4950-acf2-2e6ab02869cd}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_ProdAvail := _xProdAvail;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Product" Id="{78d9c0d5-87fc-4940-8596-ddfb9f581df8}">
|
||||
<Declaration><![CDATA[PROPERTY P_Product : I_Product
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{16260053-c4bc-45d7-9a2b-60c60dd338ad}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_Product := _fbProduct;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_Result" Id="{84eed0af-ed7f-4d3e-964c-fa5fda4093f1}">
|
||||
<Declaration><![CDATA[PROPERTY P_Result : UINT
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{72d03065-7320-43e6-8295-5250a7641abc}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_Result := _uiResult;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_StationID" Id="{6655f302-05b0-4a57-b6f3-aa70ddd6a9f3}">
|
||||
<Declaration><![CDATA[PROPERTY P_StationID : UINT
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{06281909-79f6-4e9b-a8d9-9b210420e132}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_StationID := _uiStationID;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
42
PLC/POUs/Scheduler/POUs/FB_TransportBase.TcPOU
Normal file
42
PLC/POUs/Scheduler/POUs/FB_TransportBase.TcPOU
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_TransportBase" Id="{27acb860-a7d2-4ad3-adc1-3999bf7b2d0f}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_TransportBase IMPLEMENTS I_Transport
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
_xAvailable : BOOL;
|
||||
_xError : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
<Property Name="P_Available" Id="{b86daa99-acd7-4a83-9de5-8155146759bd}">
|
||||
<Declaration><![CDATA[PROPERTY P_Available : BOOL
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{b5275c3b-e101-4786-a7c8-b2f25babf8a7}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_Available := _xAvailable;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
<Property Name="P_HasError" Id="{fc4055b6-6553-4a3a-9b04-c5bb792578a6}">
|
||||
<Declaration><![CDATA[PROPERTY P_HasError : BOOL
|
||||
]]></Declaration>
|
||||
<Get Name="Get" Id="{da490431-bb00-4006-9c7f-3c5d4dab3bd2}">
|
||||
<Declaration><![CDATA[VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[P_HasError := _xError;]]></ST>
|
||||
</Implementation>
|
||||
</Get>
|
||||
</Property>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
16
PLC/POUs/Stations/FB_Etcher.TcPOU
Normal file
16
PLC/POUs/Stations/FB_Etcher.TcPOU
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_Etcher" Id="{b81a122a-e5f5-475c-8ee0-2d97c1df7eb4}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Etcher EXTENDS FB_StationBase
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
16
PLC/POUs/Stations/FB_HVTest.TcPOU
Normal file
16
PLC/POUs/Stations/FB_HVTest.TcPOU
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_HVTest" Id="{b3445d38-3c32-4973-bf63-429552f0da50}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_HVTest EXTENDS FB_StationBase
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
16
PLC/POUs/Stations/FB_Input.TcPOU
Normal file
16
PLC/POUs/Stations/FB_Input.TcPOU
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_Input" Id="{d51b3f46-877e-4234-99b6-53eb690c6bdc}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Input EXTENDS FB_StationBase
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
16
PLC/POUs/Stations/FB_NIO.TcPOU
Normal file
16
PLC/POUs/Stations/FB_NIO.TcPOU
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_NIO" Id="{2cf6f855-1738-40a7-bc96-4518cbb192c2}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_NIO EXTENDS FB_StationBase
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
16
PLC/POUs/Stations/FB_Output.TcPOU
Normal file
16
PLC/POUs/Stations/FB_Output.TcPOU
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_Output" Id="{9711b552-d6a0-4f78-8a70-9ea977b18390}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Output EXTENDS FB_StationBase
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
17
PLC/PlcTask.TcTTO
Normal file
17
PLC/PlcTask.TcTTO
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<Task Name="PlcTask" Id="{9a246e46-b1dd-42b1-99e1-4c98bc5f4db0}">
|
||||
<!--CycleTime in micro seconds.-->
|
||||
<CycleTime>10000</CycleTime>
|
||||
<Priority>20</Priority>
|
||||
<PouCall>
|
||||
<Name>MAIN</Name>
|
||||
</PouCall>
|
||||
<TaskFBGuid>{a1469927-56f4-418f-bb57-6711c95cc7e9}</TaskFBGuid>
|
||||
<Fb_init>{567fbfcf-cd16-4b21-a304-9eee787f3b0f}</Fb_init>
|
||||
<Fb_exit>{baf80adf-b0f3-4c1e-958c-6b1cb1610e8e}</Fb_exit>
|
||||
<CycleUpdate>{ff4c396c-9481-47ed-a237-b2f9054f4e68}</CycleUpdate>
|
||||
<PostCycleUpdate>{e06145cf-bc12-4403-9e2e-7beeb337c603}</PostCycleUpdate>
|
||||
<ObjectProperties />
|
||||
</Task>
|
||||
</TcPlcObject>
|
||||
89
SchedulerTest.sln
Normal file
89
SchedulerTest.sln
Normal file
@@ -0,0 +1,89 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# TcXaeShell Solution File, Format Version 11.00
|
||||
VisualStudioVersion = 17.10.35827.194
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "SchedulerTest", "SchedulerTest.tsproj", "{499C0D3C-2952-40F2-B5CC-1C48D904BF27}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|TwinCAT OS (ARMV7-A) = Debug|TwinCAT OS (ARMV7-A)
|
||||
Debug|TwinCAT OS (ARMV7-M) = Debug|TwinCAT OS (ARMV7-M)
|
||||
Debug|TwinCAT OS (ARMV8-A) = Debug|TwinCAT OS (ARMV8-A)
|
||||
Debug|TwinCAT OS (x64) = Debug|TwinCAT OS (x64)
|
||||
Debug|TwinCAT OS (x64-E) = Debug|TwinCAT OS (x64-E)
|
||||
Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64)
|
||||
Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86)
|
||||
Release|TwinCAT OS (ARMV7-A) = Release|TwinCAT OS (ARMV7-A)
|
||||
Release|TwinCAT OS (ARMV7-M) = Release|TwinCAT OS (ARMV7-M)
|
||||
Release|TwinCAT OS (ARMV8-A) = Release|TwinCAT OS (ARMV8-A)
|
||||
Release|TwinCAT OS (x64) = Release|TwinCAT OS (x64)
|
||||
Release|TwinCAT OS (x64-E) = Release|TwinCAT OS (x64-E)
|
||||
Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64)
|
||||
Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86)
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (ARMV7-A).ActiveCfg = Debug|TwinCAT OS (ARMV7-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (ARMV7-A).Build.0 = Debug|TwinCAT OS (ARMV7-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (ARMV7-M).ActiveCfg = Debug|TwinCAT OS (ARMV7-M)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (ARMV7-M).Build.0 = Debug|TwinCAT OS (ARMV7-M)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (ARMV8-A).ActiveCfg = Debug|TwinCAT OS (ARMV8-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (ARMV8-A).Build.0 = Debug|TwinCAT OS (ARMV8-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (x64-E).ActiveCfg = Debug|TwinCAT OS (x64-E)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT OS (x64-E).Build.0 = Debug|TwinCAT OS (x64-E)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (ARMV7-A).ActiveCfg = Release|TwinCAT OS (ARMV7-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (ARMV7-A).Build.0 = Release|TwinCAT OS (ARMV7-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (ARMV7-M).ActiveCfg = Release|TwinCAT OS (ARMV7-M)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (ARMV7-M).Build.0 = Release|TwinCAT OS (ARMV7-M)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (ARMV8-A).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (ARMV8-A).Build.0 = Release|TwinCAT OS (ARMV8-A)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (x64-E).ActiveCfg = Release|TwinCAT OS (x64-E)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT OS (x64-E).Build.0 = Release|TwinCAT OS (x64-E)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
|
||||
{499C0D3C-2952-40F2-B5CC-1C48D904BF27}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (ARMV7-A).ActiveCfg = Debug|TwinCAT OS (ARMV7-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (ARMV7-A).Build.0 = Debug|TwinCAT OS (ARMV7-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (ARMV7-M).ActiveCfg = Debug|TwinCAT OS (ARMV7-M)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (ARMV7-M).Build.0 = Debug|TwinCAT OS (ARMV7-M)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (ARMV8-A).ActiveCfg = Debug|TwinCAT OS (ARMV8-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (ARMV8-A).Build.0 = Debug|TwinCAT OS (ARMV8-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (x64-E).ActiveCfg = Debug|TwinCAT OS (x64-E)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT OS (x64-E).Build.0 = Debug|TwinCAT OS (x64-E)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (ARMV7-A).ActiveCfg = Release|TwinCAT OS (ARMV7-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (ARMV7-A).Build.0 = Release|TwinCAT OS (ARMV7-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (ARMV7-M).ActiveCfg = Release|TwinCAT OS (ARMV7-M)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (ARMV7-M).Build.0 = Release|TwinCAT OS (ARMV7-M)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (ARMV8-A).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (ARMV8-A).Build.0 = Release|TwinCAT OS (ARMV8-A)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (x64-E).ActiveCfg = Release|TwinCAT OS (x64-E)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT OS (x64-E).Build.0 = Release|TwinCAT OS (x64-E)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
|
||||
{8D001BCC-646B-4E7A-A1FD-61EFD5111463}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {52D93877-B896-462B-8981-856AFD035737}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
15
SchedulerTest.tsproj
Normal file
15
SchedulerTest.tsproj
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20">
|
||||
<Project ProjectGUID="{499C0D3C-2952-40F2-B5CC-1C48D904BF27}" Target64Bit="true" ShowHideConfigurations="#x6">
|
||||
<System>
|
||||
<Tasks>
|
||||
<Task Id="3" Priority="20" CycleTime="100000" AmsPort="350" AdtTasks="true">
|
||||
<Name>PlcTask</Name>
|
||||
</Task>
|
||||
</Tasks>
|
||||
</System>
|
||||
<Plc>
|
||||
<Project File="PLC.xti"/>
|
||||
</Plc>
|
||||
</Project>
|
||||
</TcSmProject>
|
||||
21
_Config/PLC/PLC Instance.xti
Normal file
21
_Config/PLC/PLC Instance.xti
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CTComPlcObjDef">
|
||||
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" XtvPath="PLC\PLC Instance.xtv">
|
||||
<Name>__FILENAME__</Name>
|
||||
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
||||
<Contexts>
|
||||
<Context>
|
||||
<Id>0</Id>
|
||||
<Name>PlcTask</Name>
|
||||
<ManualConfig>
|
||||
<OTCID>#x02010030</OTCID>
|
||||
</ManualConfig>
|
||||
<Priority>20</Priority>
|
||||
<CycleTime>10000000</CycleTime>
|
||||
</Context>
|
||||
</Contexts>
|
||||
<TaskPouOids>
|
||||
<TaskPouOid Prio="20" OTCID="#x08502001"/>
|
||||
</TaskPouOids>
|
||||
</Instance>
|
||||
</TcSmItem>
|
||||
6
_Config/PLC/PLC.xti
Normal file
6
_Config/PLC/PLC.xti
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CNestedPlcProjDef">
|
||||
<Project GUID="{8D001BCC-646B-4E7A-A1FD-61EFD5111463}" Name="PLC" PrjFilePath="..\..\PLC\PLC.plcproj" TmcFilePath="..\..\PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" SymbolicMapping="true">
|
||||
<Instance File="PLC Instance.xti"/>
|
||||
</Project>
|
||||
</TcSmItem>
|
||||
Reference in New Issue
Block a user