commit b35746eab0fe157a9b091a5d3e254ecb4a674008 Author: m.heisig Date: Mon Feb 16 21:52:38 2026 +0100 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..850f680 --- /dev/null +++ b/.gitignore @@ -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 diff --git a/PLC/PLC.plcproj b/PLC/PLC.plcproj new file mode 100644 index 0000000..6ad7914 --- /dev/null +++ b/PLC/PLC.plcproj @@ -0,0 +1,202 @@ + + + + 1.0.0.0 + 2.0 + {8d001bcc-646b-4e7a-a1fd-61efd5111463} + true + true + false + false + PLC + 3.1.4026.20 + {be2ccb83-367c-408a-8224-3f532c11e28a} + {92bce27b-dcfc-428a-88ab-80d87ffe8045} + {7b80be63-816a-4c93-8d2e-3e443140c3ad} + {283143d9-1600-4cb8-9d03-5b352f239e18} + {c6989e8a-54be-4e7a-bf6f-351e3a5ccef1} + {c5c6b994-f2a1-4a71-b657-f282007c0cd2} + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + true + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + + + + + + + + + + + + Tc2_Standard, * (Beckhoff Automation GmbH) + Tc2_Standard + + + Tc2_System, * (Beckhoff Automation GmbH) + Tc2_System + + + Tc3_Module, * (Beckhoff Automation GmbH) + Tc3_Module + true + + + + + Content + + + + + + + + "<ProjectRoot>" + + {192FAD59-8248-4824-A8DE-9177C94C195A} + + "{192FAD59-8248-4824-A8DE-9177C94C195A}" + + + + {29BD8D0C-3586-4548-BB48-497B9A01693F} + + "{29BD8D0C-3586-4548-BB48-497B9A01693F}" + + Metrics + + "Metrics" + + + + NamingConventions + + "NamingConventions" + + + + Rules + + "Rules" + + + + + + + {40450F57-0AA3-4216-96F3-5444ECB29763} + + "{40450F57-0AA3-4216-96F3-5444ECB29763}" + + + + {8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6} + + "{8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6}" + + + WriteLineIDs + True + + + {8F99A816-E488-41E4-9FA3-846536012284} + + "{8F99A816-E488-41E4-9FA3-846536012284}" + + + DisabledWarningIds + 410,5410 + + + {eeeeeeee-3909-4298-8022-501ac3238667} + + "{eeeeeeee-3909-4298-8022-501ac3238667}" + + + + {F66C7017-BDD8-4114-926C-81D6D687E35F} + + "{F66C7017-BDD8-4114-926C-81D6D687E35F}" + + + CalcActiveTransOnly + True + + + + + + + + System.Boolean + System.Collections.Hashtable + {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} + System.String + + + + + \ No newline at end of file diff --git a/PLC/PLC.tmc b/PLC/PLC.tmc new file mode 100644 index 0000000..1f4d9cb --- /dev/null +++ b/PLC/PLC.tmc @@ -0,0 +1 @@ +ST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296I_Product64PVOID__getP_CurrNodeIDUINT16property__getP_ResultBOOL8property__setP_CurrNodeIDP_CurrNodeIDUINT16property__setP_ResultP_ResultBOOL8propertyTcPlcInterfaceTypeI_Station64PVOID__getP_AvailableBOOL8property__getP_BusyBOOL8property__getP_CapabilitiesDWORD32property__getP_HasErrorBOOL8property__getP_ResultUINT16propertyM_InsertProductBOOL8fbProductI_Product64M_RemoveProductI_Product64TcPlcInterfaceTypeFB_Scheduler768_aiStationsI_Station01064064_uiStationCountUINT167040M_RegisterfbStationI_Station64M_ClearStationsPouTypeFunctionBlockFB_StationBase320I_Station_xAvailableBOOL8128_xBusyBOOL8136_xDoneBOOL8144_xErrorBOOL8152_dwCapabilitiesDWORD32160_uiResultUINT16192_fbProductI_Product64256__getP_CapabilitiesDWORD32P_CapabilitiesDWORD32property__getP_ResultUINT16P_ResultUINT16property__getP_BusyBOOL8P_BusyBOOL8property__getP_HasErrorBOOL8P_HasErrorBOOL8propertyM_RemoveProductI_Product64M_InsertProductBOOL8fbProductI_Product64__getP_AvailableBOOL8P_AvailableBOOL8propertyPouTypeFunctionBlockFB_Input320FB_StationBasePouTypeFunctionBlockFB_Etcher320FB_StationBasePouTypeFunctionBlockFB_HVTest320FB_StationBasePouTypeFunctionBlockFB_Output320FB_StationBasePouTypeFunctionBlockE_TransitCond16INTALWAYS0RESULT_OK1RESULT_NIO2qualified_onlystrictto_stringgenerate_implicit_init_functionST_Transition32eConditionE_TransitCond160uiNextNodeIDUINT1616ST_RecipeNode416uiNodeIDUINT160dwReqCapDWORD3232uiTransCntUINT1664astTransitionsST_Transition01032080ST_Recipe4224uiRecipeIDUINT160uiStartNodeUINT16160uiNodeCntUINT16320astNodesST_RecipeNode010416064EPlcPersistentStatus8USINT012PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224PersistentStatusEPlcPersistentStatus8232TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024PlcTaskSystemInfo1024ObjIdOTCID320CycleTimeUDINT3232PriorityUINT1664AdsPortUINT1680CycleCountUDINT3296DcTaskTimeLINT64128LastExecTimeUDINT32192FirstCycleBOOL8224CycleTimeExceededBOOL8232InCallAfterOutputUpdateBOOL8240RTViolationBOOL8248TaskNameSTRING(63)512512_Implicit_KindOfTask16INT_implicit_cyclic0_implicit_event1_implicit_external2_implicit_freewheeling3signature_flag256hidegenerate_implicit_init_function_Implicit_Jitter_Distribution48wRangeMaxWORD160wCountJitterNegWORD1616wCountJitterPosWORD1632signature_flag256hide_Implicit_Task_Info896dwVersionDWORD320pszNameSTRING(80)6464nPriorityINT16128KindOf_Implicit_KindOfTask16144bWatchdogBOOL8160bProfilingTaskBOOL8168dwEventFunctionPointerBYTE64192pszExternalEventSTRING(80)64256dwTaskEntryFunctionPointerBYTE64320dwWatchdogSensitivityDWORD32384dwIntervalDWORD32416dwWatchdogTimeDWORD32448dwLastCycleTimeDWORD32480dwAverageCycleTimeDWORD32512dwMaxCycleTimeDWORD32544dwMinCycleTimeDWORD32576diJitterDINT32608diJitterMinDINT32640diJitterMaxDINT32672dwCycleCountDWORD32704wTaskStatusWORD16736wNumOfJitterDistributionsWORD16752pJitterDistribution_Implicit_Jitter_Distribution64768bWithinSPSTimeSlicingBOOL8832byDummyBYTE8840bShouldBlockBOOL8848bActiveBOOL8856dwIECCycleCountDWORD32864signature_flag256hideFB_NIO320FB_StationBasePouTypeFunctionBlockMAIN_fbSchedulerFB_Scheduler768_xInitDoneBOOL8_fbInputFB_Input320_fbEtcherFB_Etcher320_fbHVTestFB_HVTest320_fbOutputFB_Output320_stRecipeSimpleST_Recipe4224_fbNIOFB_NIO320A_InitTwinCAT_PreventOnlineChangeGvlWriteLineIDsBOOL8truePlcProfilerActiveBOOL8falsePlcProfilerConfigChecksumSTRING(64)520linkalwaysGVL_SchedulerMAX_RECIPE_TRANSITIONSUINT1610MAX_RECIPE_NODESUINT1610MAX_STATIONSUINT1610qualified_onlyPLC{08500001-0000-0000-F000-000000000064}0PlcTask#x02010030DeviceLog FilterUDINT#x08508045DeviceLog Filter000000003PlcTask Internal010616832Global_Version.stLibVersion_Tc2_Standard288ST_LibVersion.iMajor3.iMinor4.iBuild5.iRevision0.nFlags1.sVersion3.4.5.0const_non_replacedTcVarGlobal3072000Global_Version.stLibVersion_Tc2_System288ST_LibVersion.iMajor3.iMinor10.iBuild1.iRevision0.nFlags1.sVersion3.10.1.0const_non_replacedTcVarGlobal3072288Global_Version.stLibVersion_Tc3_Module288ST_LibVersion.iMajor3.iMinor4.iBuild5.iRevision0.nFlags1.sVersion3.4.5.0const_non_replacedTcVarGlobal3072576MAIN._fbScheduler768FB_Scheduler3101568MAIN._xInitDone8BOOL3102336TwinCAT_PreventOnlineChangeGvl.WriteLineIDs8BOOLtrueTcVarGlobal3102344TwinCAT_PreventOnlineChangeGvl.PlcProfilerActive8BOOLfalseTcVarGlobal3102352GVL_Scheduler.MAX_RECIPE_TRANSITIONS16UINT10TcVarGlobal3102384MAIN._fbInput320FB_Input3102400MAIN._fbEtcher320FB_Etcher3102720MAIN._fbHVTest320FB_HVTest3103040MAIN._fbOutput320FB_Output3103360MAIN._stRecipeSimple4224ST_Recipe3103680TwinCAT_PreventOnlineChangeGvl.PlcProfilerConfigChecksum520STRING(64)TcVarGlobal3108000GVL_Scheduler.MAX_RECIPE_NODES16UINT10TcVarGlobal3108528GVL_Scheduler.MAX_STATIONS16UINT10TcVarGlobal3108544TwinCAT_SystemInfoVarList._AppInfo2048PlcAppSystemInfono_initTcVarGlobal3108864TwinCAT_SystemInfoVarList._TaskInfo1024PlcTaskSystemInfo11no_initTcVarGlobal3110912TwinCAT_SystemInfoVarList._TaskPouOid_PlcTask32OTCIDno_initTcVarGlobal3111936TwinCAT_SystemInfoVarList._TaskOid_PlcTask32OTCIDno_initTcVarGlobal3111968TwinCAT_SystemInfoVarList.__PlcTask896_Implicit_Task_Info.dwVersion2TcContextNamePlcTaskTcVarGlobal3112000MAIN._fbNIO320FB_NIO3152832ApplicationNamePort_851ChangeDate2026-02-16T17:39:15DataID{14db9a6a-0000-0000-0000-000000000000}GeneratedCodeSize61440GlobalDataSize16384UTF8EncodedStringsfalse \ No newline at end of file diff --git a/PLC/POUs/MAIN.TcPOU b/PLC/POUs/MAIN.TcPOU new file mode 100644 index 0000000..1089768 --- /dev/null +++ b/PLC/POUs/MAIN.TcPOU @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/DUTs/E_TransitCond.TcDUT b/PLC/POUs/Scheduler/DUTs/E_TransitCond.TcDUT new file mode 100644 index 0000000..2decbda --- /dev/null +++ b/PLC/POUs/Scheduler/DUTs/E_TransitCond.TcDUT @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/DUTs/ST_Recipe.TcDUT b/PLC/POUs/Scheduler/DUTs/ST_Recipe.TcDUT new file mode 100644 index 0000000..9a34c6e --- /dev/null +++ b/PLC/POUs/Scheduler/DUTs/ST_Recipe.TcDUT @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/DUTs/ST_RecipeNode.TcDUT b/PLC/POUs/Scheduler/DUTs/ST_RecipeNode.TcDUT new file mode 100644 index 0000000..44b241f --- /dev/null +++ b/PLC/POUs/Scheduler/DUTs/ST_RecipeNode.TcDUT @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/DUTs/ST_Transition.TcDUT b/PLC/POUs/Scheduler/DUTs/ST_Transition.TcDUT new file mode 100644 index 0000000..4df5db4 --- /dev/null +++ b/PLC/POUs/Scheduler/DUTs/ST_Transition.TcDUT @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/GVLs/GVL_Scheduler.TcGVL b/PLC/POUs/Scheduler/GVLs/GVL_Scheduler.TcGVL new file mode 100644 index 0000000..bd4cc00 --- /dev/null +++ b/PLC/POUs/Scheduler/GVLs/GVL_Scheduler.TcGVL @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/ITFs/I_Product.TcIO b/PLC/POUs/Scheduler/ITFs/I_Product.TcIO new file mode 100644 index 0000000..277987e --- /dev/null +++ b/PLC/POUs/Scheduler/ITFs/I_Product.TcIO @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/ITFs/I_Station.TcIO b/PLC/POUs/Scheduler/ITFs/I_Station.TcIO new file mode 100644 index 0000000..a472466 --- /dev/null +++ b/PLC/POUs/Scheduler/ITFs/I_Station.TcIO @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/ITFs/I_Transport.TcIO b/PLC/POUs/Scheduler/ITFs/I_Transport.TcIO new file mode 100644 index 0000000..34f239d --- /dev/null +++ b/PLC/POUs/Scheduler/ITFs/I_Transport.TcIO @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/POUs/FB_Product.TcPOU b/PLC/POUs/Scheduler/POUs/FB_Product.TcPOU new file mode 100644 index 0000000..8020b4f --- /dev/null +++ b/PLC/POUs/Scheduler/POUs/FB_Product.TcPOU @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/POUs/FB_Scheduler.TcPOU b/PLC/POUs/Scheduler/POUs/FB_Scheduler.TcPOU new file mode 100644 index 0000000..75469db --- /dev/null +++ b/PLC/POUs/Scheduler/POUs/FB_Scheduler.TcPOU @@ -0,0 +1,108 @@ + + + + + + 0 THEN + // _aiStations[_uiNextAvailStation].M_Reserve(); + END_IF + END_IF +END_FOR]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/POUs/FB_StationBase.TcPOU b/PLC/POUs/Scheduler/POUs/FB_StationBase.TcPOU new file mode 100644 index 0000000..0df4cac --- /dev/null +++ b/PLC/POUs/Scheduler/POUs/FB_StationBase.TcPOU @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + 0 AND _fbProduct = 0 THEN + _fbProduct := fbProduct; + M_InsertProduct := TRUE; +ELSE + M_InsertProduct := FALSE; +END_IF]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Scheduler/POUs/FB_TransportBase.TcPOU b/PLC/POUs/Scheduler/POUs/FB_TransportBase.TcPOU new file mode 100644 index 0000000..c95ec50 --- /dev/null +++ b/PLC/POUs/Scheduler/POUs/FB_TransportBase.TcPOU @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Stations/FB_Etcher.TcPOU b/PLC/POUs/Stations/FB_Etcher.TcPOU new file mode 100644 index 0000000..d2a6512 --- /dev/null +++ b/PLC/POUs/Stations/FB_Etcher.TcPOU @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Stations/FB_HVTest.TcPOU b/PLC/POUs/Stations/FB_HVTest.TcPOU new file mode 100644 index 0000000..ccbeb06 --- /dev/null +++ b/PLC/POUs/Stations/FB_HVTest.TcPOU @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Stations/FB_Input.TcPOU b/PLC/POUs/Stations/FB_Input.TcPOU new file mode 100644 index 0000000..d6026ce --- /dev/null +++ b/PLC/POUs/Stations/FB_Input.TcPOU @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Stations/FB_NIO.TcPOU b/PLC/POUs/Stations/FB_NIO.TcPOU new file mode 100644 index 0000000..e98e907 --- /dev/null +++ b/PLC/POUs/Stations/FB_NIO.TcPOU @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/PLC/POUs/Stations/FB_Output.TcPOU b/PLC/POUs/Stations/FB_Output.TcPOU new file mode 100644 index 0000000..c0231de --- /dev/null +++ b/PLC/POUs/Stations/FB_Output.TcPOU @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/PLC/PlcTask.TcTTO b/PLC/PlcTask.TcTTO new file mode 100644 index 0000000..e169d9b --- /dev/null +++ b/PLC/PlcTask.TcTTO @@ -0,0 +1,17 @@ + + + + + 10000 + 20 + + MAIN + + {a1469927-56f4-418f-bb57-6711c95cc7e9} + {567fbfcf-cd16-4b21-a304-9eee787f3b0f} + {baf80adf-b0f3-4c1e-958c-6b1cb1610e8e} + {ff4c396c-9481-47ed-a237-b2f9054f4e68} + {e06145cf-bc12-4403-9e2e-7beeb337c603} + + + \ No newline at end of file diff --git a/SchedulerTest.sln b/SchedulerTest.sln new file mode 100644 index 0000000..3c8abaa --- /dev/null +++ b/SchedulerTest.sln @@ -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 diff --git a/SchedulerTest.tsproj b/SchedulerTest.tsproj new file mode 100644 index 0000000..c5ed8cd --- /dev/null +++ b/SchedulerTest.tsproj @@ -0,0 +1,15 @@ + + + + + + + PlcTask + + + + + + + + diff --git a/_Config/PLC/PLC Instance.xti b/_Config/PLC/PLC Instance.xti new file mode 100644 index 0000000..82f9731 --- /dev/null +++ b/_Config/PLC/PLC Instance.xti @@ -0,0 +1,21 @@ + + + + __FILENAME__ + {08500001-0000-0000-F000-000000000064} + + + 0 + PlcTask + + #x02010030 + + 20 + 10000000 + + + + + + + diff --git a/_Config/PLC/PLC.xti b/_Config/PLC/PLC.xti new file mode 100644 index 0000000..081921b --- /dev/null +++ b/_Config/PLC/PLC.xti @@ -0,0 +1,6 @@ + + + + + +