First test

This commit is contained in:
2025-11-03 13:07:07 +01:00
parent c6674a5842
commit 8b0251687e
22 changed files with 485 additions and 0 deletions

View File

@@ -0,0 +1,149 @@
<?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>{4e62d9e7-436c-457d-8dc4-82d2fef91c96}</ProjectGuid>
<SubObjectsSortedByName>true</SubObjectsSortedByName>
<DownloadApplicationInfo>true</DownloadApplicationInfo>
<WriteProductVersion>false</WriteProductVersion>
<GenerateTpy>false</GenerateTpy>
<Name>PLC</Name>
<ProgramVersion>3.1.4026.19</ProgramVersion>
<Application>{7cc9c530-510c-48e6-a294-2e6b5e6fa820}</Application>
<TypeSystem>{951d7a0c-817c-4013-8204-ecd29ee0162e}</TypeSystem>
<Implicit_Task_Info>{e6d3915d-876b-4120-9e42-92be330ed750}</Implicit_Task_Info>
<Implicit_KindOfTask>{86bdbf68-2971-41b8-9b27-17e052a7f55d}</Implicit_KindOfTask>
<Implicit_Jitter_Distribution>{173a046e-fc1b-4ea3-9ec8-0d52397c403c}</Implicit_Jitter_Distribution>
<LibraryReferences>{c870d3c5-a637-481e-9586-ab8eaa6f8f36}</LibraryReferences>
</PropertyGroup>
<ItemGroup>
<Compile Include="PlcTask.TcTTO">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\FB_Machine.TcPOU">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\MAIN.TcPOU">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Folder Include="DUTs" />
<Folder Include="GVLs" />
<Folder Include="VISUs" />
<Folder Include="POUs" />
</ItemGroup>
<ItemGroup>
<PlaceholderReference Include="SLM_Base">
<DefaultResolution>SLM_Base, * (Nikon SLM Solutions)</DefaultResolution>
<Namespace>SLM_Base</Namespace>
</PlaceholderReference>
<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_EventLogger">
<DefaultResolution>Tc3_EventLogger, * (Beckhoff Automation GmbH)</DefaultResolution>
<Namespace>Tc3_EventLogger</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">"&lt;ProjectRoot&gt;"</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>{246001F4-279D-43AC-B241-948EB31120E1}</v>
<o>
<v n="Name">"{246001F4-279D-43AC-B241-948EB31120E1}"</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>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>False</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>{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>

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="FB_Machine" Id="{2a7d0c64-8fe2-4a47-820b-42d0ca475bdf}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Machine EXTENDS FB_ModuleBase
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
// Debug tags
_xRaiseError : BOOL;
_xRaiseWarning : BOOL;
// Alarms
_fbError : FB_TcAlarm;
_fbWarning : FB_TcAlarm;
// Helper
_xFirstCycle : BOOL := TRUE;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF _xFirstCycle THEN
_xFirstCycle := FALSE;
_fbError.CreateEx(stEventEntry := TC_EVENTS.TestAlarms.TestError, FALSE, NULL);
_fbWarning.CreateEx(stEventEntry := TC_EVENTS.TestAlarms.TestWarning, FALSE, NULL);
END_IF
// ==============
// SLM_BASE stuff
// ==============
// ==============
// Error handling
// ==============
IF _xRaiseError AND (NOT _fbError.bRaised) THEN
_fbError.Raise(0);
END_IF
IF _fbError.bRaised AND (NOT _xRaiseError) THEN
_fbError.Clear(0, FALSE);
END_IF
// ==============
// Warning handling
// ==============
IF _xRaiseWarning AND (NOT _fbWarning.bRaised) THEN
_fbWarning.Raise(0);
END_IF
IF _fbWarning.bRaised AND (NOT _xRaiseWarning) THEN
_fbWarning.Clear(0, FALSE);
END_IF]]></ST>
</Implementation>
<Method Name="HandleError" Id="{a110de09-0389-4020-aba6-4f381a626cfb}">
<Declaration><![CDATA[METHOD HandleError : SLM_Base.E_ReturnCode
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="HandleSignals" Id="{bd53d3b3-4cc9-43e1-81da-f4f9f4a8e439}">
<Declaration><![CDATA[METHOD HandleSignals : SLM_Base.E_ReturnCode
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="InitialOP" Id="{9006096c-4c67-4231-b0b0-02f92f5119b5}">
<Declaration><![CDATA[METHOD InitialOP : SLM_Base.E_ReturnCode
]]></Declaration>
<Implementation>
<ST><![CDATA[InitialOP := E_ReturnCode.SUCCESS;]]></ST>
</Implementation>
</Method>
<Method Name="SetConfig" Id="{8a7c676f-fdbb-44cc-a84d-1ccc592972a9}">
<Declaration><![CDATA[(*! @summary Sets config for this entity*)
METHOD SetConfig
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="MAIN" Id="{c66c285f-4cfe-4893-8066-e22fe681dd3f}" SpecialFunc="None">
<Declaration><![CDATA[PROGRAM MAIN
VAR
_fbMachine : FB_Machine(0, 'Machine');
// Startup state machine
_iState : INT := 0;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _iState OF
0:
IF IsSuccessful(_fbMachine.InitialOP()) THEN
_fbMachine.CyclicOP();
_iState := 10;
END_IF
10:
_fbMachine.CyclicOP();
END_CASE]]></ST>
</Implementation>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<Task Name="PlcTask" Id="{739c9490-40b0-4fe2-b19c-ac870a301f9d}">
<!--CycleTime in micro seconds.-->
<CycleTime>10000</CycleTime>
<Priority>20</Priority>
<PouCall>
<Name>MAIN</Name>
</PouCall>
<TaskFBGuid>{a83be5e0-d5cf-4aec-b38e-29e42c090d19}</TaskFBGuid>
<Fb_init>{4deed5d2-49a0-440e-8d82-d09251814781}</Fb_init>
<Fb_exit>{fec05c77-54d5-4195-ac02-ecdaaad52f09}</Fb_exit>
<CycleUpdate>{7536800f-d7c6-464d-a9c4-0b4ee7a1d592}</CycleUpdate>
<PostCycleUpdate>{6dbfee29-f644-435d-b6e8-122b6f086f52}</PostCycleUpdate>
<ObjectProperties />
</Task>
</TcPlcObject>