From ea525c4f49eb4b719f4702c29f875f5cf7cbc082 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Fri, 9 Aug 2019 15:08:12 +0200 Subject: [PATCH 01/83] Add a STARTUP and SHUTDOWN action to MAIN SHUTDOWN saves the current act pos of all axes and a bit to indicate whether the axes is moving. STARTUP checks all axes to see if they are incremental and not moving at previous shutdown and opt-in for value restore. If all are true then position is restored. UPS reference library from Beckhoff also added for the saving of values at shutdown. Might need to be modified as this one is specific for the particular CPU. --- solution/tc_project_app/POUs/MAIN.TcPOU | 142 +++++++++++++++++- solution/tc_project_app/tc_mca_std_lib | 2 +- .../tc_project_app/tc_project_app.plcproj | 4 + 3 files changed, 143 insertions(+), 5 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 1b367f8..f7387cc 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,5 +1,5 @@  - + - eSUPS_PowerFailure THEN + (* next cycles of powerfailure *) + (* skip regular code execution for the remaining cycles of the powerfailure/writing of persistent data/quick shutdown ... *) + RETURN; +END_IF + +PROG(); AXES(); ERROR();]]> @@ -106,8 +130,110 @@ fbEL1808( //]]> + + + + + + + + , + ReadMode:= E_READMODE.READMODE_ONCE); +END_FOR + +FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i]( + Axis:= gvl.axes[i].Axis, + Execute:= , + Position:= iPositionAtShutdown[i]); +END_FOR + +IF bColdstartDone = FALSE THEN + CASE iStartup OF + 0: // First cycle + IF NOT bColdstartDone THEN + iStartup:=iStartup+1; + iretry:=0; + END_IF + 1: // Read Enc Ref Sys - incremental or absolute + bExecuteReadEncRefSys:=TRUE; + iStartup:=iStartup+1; + tmrRetry(in:=FALSE); + 2: // Check if Enc Ref Sys has been read for all axis -> if not read again + tmrRetry(in:=TRUE, pt:=T#100MS); + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = FALSE THEN + IF tmrretry.Q THEN + bExecuteReadEncRefSys:=FALSE; + iStartup:=iStartup-1; + iRetry:=iRetry+1; + END_IF + RETURN; + ELSE + iStartup:=iStartup+1; + EXIT; + END_IF + END_FOR + 3: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) THEN + IF gvl.axes[i].config.iRestorePosition=2 THEN + gvl.axes[i].config.nHomeSeq:=15; + gvl.axes[i].control.eCommand:=10; + //Doesn't work yet because you can only home to zero position + //gvl.axes[i].config.######:=iPositionAtShutdown[i]; + END_IF + END_IF + END_FOR + iStartup:=iStartup+1; + 4: // Execute position restore with or without bHome set + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value = 0 THEN + CASE GVL.axes[i].config.iRestorePosition OF + 1: fbRestorePosition[i].Execute:=TRUE; + 2: gvl.axes[i].control.bExecute:=TRUE; + END_CASE + END_IF + END_FOR + iStartup:=iStartup+1; + 5: // Check set position or direct homing is finished on axes that were opt-in + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value = 0 THEN + CASE gvl.axes[i].config.iRestorePosition OF + 1: + IF NOT fbRestorePosition[i].Done THEN + RETURN; + END_IF + 2: + IF NOT gvl.axes[i].status.bHomed THEN + RETURN; + END_IF + END_CASE + END_IF + END_FOR + iStartup:=iStartup+1; + 6: // Reset set position FBs and Finish + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i].Execute:=FALSE; + END_FOR + bColdstartDone:=TRUE; + END_CASE +END_IF]]> + + + + + @@ -140,5 +266,13 @@ fbEL1808( + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index f2b1862..32b87da 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit f2b186273119f71345ff25367b3145b07dfa66f4 +Subproject commit 32b87da57e91d57eaebbf927638554641a37c6b9 diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index 903cef5..6c2d7b0 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -308,6 +308,10 @@ Tc2_Standard, * (Beckhoff Automation GmbH) Tc2_Standard + + Tc2_SUPS, * (Beckhoff Automation GmbH) + Tc2_SUPS + Tc2_System, * (Beckhoff Automation GmbH) Tc2_System From 80380cbcd14ebf830a5c5c92445fec120c64ba4f Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Mon, 12 Aug 2019 15:55:16 +0200 Subject: [PATCH 02/83] Add action call of action STARTUP( ) to MAIN --- solution/solution.tsproj | 3 --- solution/tc_project_app/POUs/MAIN.TcPOU | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 9224788..b64b221 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1172,7 +1172,4 @@ External Setpoint Generation: - - - diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index f7387cc..2c8e8a8 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,5 +1,5 @@  - + eSUPS_PowerFailure THEN RETURN; END_IF +STARTUP(); PROG(); AXES(); ERROR();]]> @@ -232,6 +233,7 @@ END_IF]]> + From 1fd4d9bad6c3dbd8151b2bc31f4502de3d14c614 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 4 Dec 2019 14:09:59 +0100 Subject: [PATCH 03/83] Fix white-space danage --- solution/tc_project_app/POUs/MAIN.TcPOU | 222 ++++++++++++------------ solution/tc_project_app/tc_mca_std_lib | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 261f7c0..43b2f96 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -26,47 +26,47 @@ VAR //bOutput28 AT %Q*: BOOL:= TRUE; (******Error Handling********) - fbErrorSystem: FB_ErrorSystem; - aFbAxesError: ARRAY [1..gvl_app.axisNum] OF FB_NC_Error; - - //fbEL1018 : EL1018; - //fbEL2808 : EL2808; - //fbEL5101 : EL5101; - //fbEL9505 : EL9505; - //fbEL1252 : EL1252; - //fbEL9410 : EL9410; - //fbEL7037 : EL7037; - //fbEK1110 : EK1110; - + fbErrorSystem: FB_ErrorSystem; + aFbAxesError: ARRAY [1..gvl_app.axisNum] OF FB_NC_Error; + + //fbEL1018 : EL1018; + //fbEL2808 : EL2808; + //fbEL5101 : EL5101; + //fbEL9505 : EL9505; + //fbEL1252 : EL1252; + //fbEL9410 : EL9410; + //fbEL7037 : EL7037; + //fbEK1110 : EK1110; + (******Startup, Shutdown and UPS********) - iStartup : UINT := 0; - bColdstartDone : BOOL := FALSE; - bExecuteReadEncRefSys : BOOL := TRUE; - tmrRetry : TON; - iRetry : INT; - fbReadEncRefSys : ARRAY [1..gvl_app.axisNum] OF MC_ReadParameter; - fbUPS : FB_S_UPS_CX51x0; - eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; - fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; + iStartup : UINT := 0; + bColdstartDone : BOOL := FALSE; + bExecuteReadEncRefSys : BOOL := TRUE; + tmrRetry : TON; + iRetry : INT; + fbReadEncRefSys : ARRAY [1..gvl_app.axisNum] OF MC_ReadParameter; + fbUPS : FB_S_UPS_CX51x0; + eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; + fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; END_VAR VAR PERSISTENT - iPositionAtShutdown : ARRAY [1..gvl_app.axisNum] OF LREAL; - bMovingAtShutdown : ARRAY [1..gvl_app.axisNum] OF BOOL; + iPositionAtShutdown : ARRAY [1..gvl_app.axisNum] OF LREAL; + bMovingAtShutdown : ARRAY [1..gvl_app.axisNum] OF BOOL; END_VAR ]]> eSUPS_PowerFailure THEN - (* next cycles of powerfailure *) - (* skip regular code execution for the remaining cycles of the powerfailure/writing of persistent data/quick shutdown ... *) - RETURN; + (* next cycles of powerfailure *) + (* skip regular code execution for the remaining cycles of the powerfailure/writing of persistent data/quick shutdown ... *) + RETURN; END_IF STARTUP(); @@ -135,99 +135,99 @@ fbEL1808( - , - ReadMode:= E_READMODE.READMODE_ONCE); + , + ReadMode:= E_READMODE.READMODE_ONCE); END_FOR FOR i:=1 TO gvl_app.axisNum DO - fbRestorePosition[i]( - Axis:= gvl.axes[i].Axis, - Execute:= , - Position:= iPositionAtShutdown[i]); + fbRestorePosition[i]( + Axis:= gvl.axes[i].Axis, + Execute:= , + Position:= iPositionAtShutdown[i]); END_FOR IF bColdstartDone = FALSE THEN - CASE iStartup OF - 0: // First cycle - IF NOT bColdstartDone THEN - iStartup:=iStartup+1; - iretry:=0; - END_IF - 1: // Read Enc Ref Sys - incremental or absolute - bExecuteReadEncRefSys:=TRUE; - iStartup:=iStartup+1; - tmrRetry(in:=FALSE); - 2: // Check if Enc Ref Sys has been read for all axis -> if not read again - tmrRetry(in:=TRUE, pt:=T#100MS); - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Valid = FALSE THEN - IF tmrretry.Q THEN - bExecuteReadEncRefSys:=FALSE; - iStartup:=iStartup-1; - iRetry:=iRetry+1; - END_IF - RETURN; - ELSE - iStartup:=iStartup+1; - EXIT; - END_IF - END_FOR - 3: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) THEN - IF gvl.axes[i].config.iRestorePosition=2 THEN - gvl.axes[i].config.nHomeSeq:=15; - gvl.axes[i].control.eCommand:=10; - //Doesn't work yet because you can only home to zero position - //gvl.axes[i].config.######:=iPositionAtShutdown[i]; - END_IF - END_IF - END_FOR - iStartup:=iStartup+1; - 4: // Execute position restore with or without bHome set - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value = 0 THEN - CASE GVL.axes[i].config.iRestorePosition OF - 1: fbRestorePosition[i].Execute:=TRUE; - 2: gvl.axes[i].control.bExecute:=TRUE; - END_CASE - END_IF - END_FOR - iStartup:=iStartup+1; - 5: // Check set position or direct homing is finished on axes that were opt-in - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value = 0 THEN - CASE gvl.axes[i].config.iRestorePosition OF - 1: - IF NOT fbRestorePosition[i].Done THEN - RETURN; - END_IF - 2: - IF NOT gvl.axes[i].status.bHomed THEN - RETURN; - END_IF - END_CASE - END_IF - END_FOR - iStartup:=iStartup+1; - 6: // Reset set position FBs and Finish - FOR i:=1 TO gvl_app.axisNum DO - fbRestorePosition[i].Execute:=FALSE; - END_FOR - bColdstartDone:=TRUE; - END_CASE + CASE iStartup OF + 0: // First cycle + IF NOT bColdstartDone THEN + iStartup:=iStartup+1; + iretry:=0; + END_IF + 1: // Read Enc Ref Sys - incremental or absolute + bExecuteReadEncRefSys:=TRUE; + iStartup:=iStartup+1; + tmrRetry(in:=FALSE); + 2: // Check if Enc Ref Sys has been read for all axis -> if not read again + tmrRetry(in:=TRUE, pt:=T#100MS); + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = FALSE THEN + IF tmrretry.Q THEN + bExecuteReadEncRefSys:=FALSE; + iStartup:=iStartup-1; + iRetry:=iRetry+1; + END_IF + RETURN; + ELSE + iStartup:=iStartup+1; + EXIT; + END_IF + END_FOR + 3: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) THEN + IF gvl.axes[i].config.iRestorePosition=2 THEN + gvl.axes[i].config.nHomeSeq:=15; + gvl.axes[i].control.eCommand:=10; + //Doesn't work yet because you can only home to zero position + //gvl.axes[i].config.######:=iPositionAtShutdown[i]; + END_IF + END_IF + END_FOR + iStartup:=iStartup+1; + 4: // Execute position restore with or without bHome set + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value = 0 THEN + CASE GVL.axes[i].config.iRestorePosition OF + 1: fbRestorePosition[i].Execute:=TRUE; + 2: gvl.axes[i].control.bExecute:=TRUE; + END_CASE + END_IF + END_FOR + iStartup:=iStartup+1; + 5: // Check set position or direct homing is finished on axes that were opt-in + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value = 0 THEN + CASE gvl.axes[i].config.iRestorePosition OF + 1: + IF NOT fbRestorePosition[i].Done THEN + RETURN; + END_IF + 2: + IF NOT gvl.axes[i].status.bHomed THEN + RETURN; + END_IF + END_CASE + END_IF + END_FOR + iStartup:=iStartup+1; + 6: // Reset set position FBs and Finish + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i].Execute:=FALSE; + END_FOR + bColdstartDone:=TRUE; + END_CASE END_IF]]> diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index ab99f8c..0bca79b 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit ab99f8caafe634de4ebfb327f8cf1ebe53228514 +Subproject commit 0bca79b3b4357b07024050e65514caa9365afabf From 5d0116f27c0e507ff2bca403a4aa2d6fa58be4e0 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 4 Dec 2019 14:44:49 +0100 Subject: [PATCH 04/83] Add comment plus variable name consistency fix --- solution/tc_project_app/POUs/MAIN.TcPOU | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 43b2f96..1ac000c 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,5 +1,5 @@  - + Date: Wed, 4 Dec 2019 14:50:58 +0100 Subject: [PATCH 05/83] White space fix --- solution/tc_project_app/POUs/MAIN.TcPOU | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 1ac000c..730c49b 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -49,13 +49,11 @@ VAR eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; - END_VAR VAR PERSISTENT iPositionAtShutdown : ARRAY [1..gvl_app.axisNum] OF LREAL; bMovingAtShutdown : ARRAY [1..gvl_app.axisNum] OF BOOL; -END_VAR -]]> +END_VAR]]> Date: Wed, 4 Dec 2019 15:09:05 +0100 Subject: [PATCH 06/83] Change iStartup case to eStartup Change int to enum for better readability --- solution/tc_project_app/POUs/MAIN.TcPOU | 39 ++++++++++++------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 730c49b..24397d4 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -39,8 +39,8 @@ VAR //fbEK1110 : EK1110; (******Startup, Shutdown and UPS********) - iStartup : UINT := 0; // First cycle of the PLC after being reset/power cycled - bColdstartDone : BOOL := FALSE; + eStartUp: (coldStart, readEncRefSys, checkRead, checkFeedbackType, executePosRestore, checkFinished, finsishSetPosition); + bColdstartDone : BOOL := FALSE; // First cycle of the PLC after being reset/power cycled bExecuteReadEncRefSys : BOOL := TRUE; tmrRetry : TON; iRetry : INT; @@ -157,44 +157,42 @@ FOR i:=1 TO gvl_app.axisNum DO END_FOR IF bColdstartDone = FALSE THEN - CASE iStartup OF - 0: // First cycle + CASE eStartUp OF + coldStart: // First cycle IF NOT bColdstartDone THEN - iStartup:=iStartup+1; + eStartUp:=eStartUp+1; iRetry:=0; END_IF - 1: // Read Enc Ref Sys - incremental or absolute + readEncRefSys: // Read Enc Ref Sys - incremental or absolute bExecuteReadEncRefSys:=TRUE; - iStartup:=iStartup+1; + eStartUp:=eStartUp+1; tmrRetry(in:=FALSE); - 2: // Check if Enc Ref Sys has been read for all axis -> if not read again + checkRead: // Check if Enc Ref Sys has been read for all axis -> if not read again tmrRetry(in:=TRUE, pt:=T#100MS); FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = FALSE THEN IF tmrretry.Q THEN bExecuteReadEncRefSys:=FALSE; - iStartup:=iStartup-1; + eStartUp:=eStartUp-1; iRetry:=iRetry+1; END_IF RETURN; ELSE - iStartup:=iStartup+1; + eStartUp:=eStartUp+1; EXIT; END_IF END_FOR - 3: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore + checkFeedbackType: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) THEN IF gvl.axes[i].config.iRestorePosition=2 THEN gvl.axes[i].config.nHomeSeq:=15; gvl.axes[i].control.eCommand:=10; - //Doesn't work yet because you can only home to zero position - //gvl.axes[i].config.######:=iPositionAtShutdown[i]; END_IF END_IF END_FOR - iStartup:=iStartup+1; - 4: // Execute position restore with or without bHome set + eStartUp:=eStartUp+1; + executePosRestore: // Execute position restore with or without bHome set FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN CASE GVL.axes[i].config.iRestorePosition OF @@ -203,8 +201,8 @@ IF bColdstartDone = FALSE THEN END_CASE END_IF END_FOR - iStartup:=iStartup+1; - 5: // Check set position or direct homing is finished on axes that were opt-in + eStartUp:=eStartUp+1; + checkFinished: // Check set position or direct homing is finished on axes that were opt-in FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN CASE gvl.axes[i].config.iRestorePosition OF @@ -219,8 +217,8 @@ IF bColdstartDone = FALSE THEN END_CASE END_IF END_FOR - iStartup:=iStartup+1; - 6: // Reset set position FBs and Finish + eStartUp:=eStartUp+1; + finsishSetPosition: // Reset set position FBs and Finish FOR i:=1 TO gvl_app.axisNum DO fbRestorePosition[i].Execute:=FALSE; END_FOR @@ -272,7 +270,8 @@ END_IF]]> - + + From 1e8ecb1f6b03872204bfb6ff47a59f5fb02af7d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Wed, 4 Dec 2019 16:11:52 +0100 Subject: [PATCH 07/83] Remove and ignore solution/TrialLicense.tclrs Trial-licenses should not be part of any Git - they experire and soon and cause a lot of merge-conflicts. Remove solution/TrialLicense.tclrs and ignore it in .gitignore (keep .gitignore sorted) --- .gitignore | 25 +++++++++++++------------ solution/TrialLicense.tclrs | 2 -- 2 files changed, 13 insertions(+), 14 deletions(-) delete mode 100644 solution/TrialLicense.tclrs diff --git a/.gitignore b/.gitignore index 2d1ca8d..5853ffd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,18 @@ + +*.bak +*.pyc +*.suo +*.tmc +*.tpy +*.~u +*~ +.#* +.epics.* +\#*# _Boot/ _CompileInfo/ _Libraries/ +logs.0* +solution/TrialLicense.tclrs tools/linux/ADS/ tools/linux/getADSState/getADSState.bin -logs.0* -.epics.* -*.bak -*.~u -*.pyc -*.tpy -*.suo -*~ -.#* -\#*# -*.tmc - diff --git a/solution/TrialLicense.tclrs b/solution/TrialLicense.tclrs deleted file mode 100644 index 1132474..0000000 --- a/solution/TrialLicense.tclrs +++ /dev/null @@ -1,2 +0,0 @@ - -{52C4A619-551C-008A-DE5B-87C2D878314F}2019-06-20T07:59:002019-06-28T00:00:00440abbbe2f39181db097f16818237251fd1f2d0718115982971343370c9a4a58093f0af3461229dc88336bf779b68022b904abbf9339ebd5a3e73111bf8d2758177c4fbb82aa1b3482b71fef6f7a9b6300970484803798af4d353c784fdefb7b5accab29d326173225fc71fddd9406080470ea2f8a3f68bb26df6c0e7ff7fe974254b232fbf8028e90b2ac13c20814290951e328ff7dbfc8165a7725f2ab3fedde40703fef94b94eb878dd5405b279dd070c783c8c962192b0fcdc7877841ccd04669fa108e4a857081bc8c510cc8548b38d441e6c1199c59d543223ab5453adfbb6e5133d1ac99c0d8608066a000a15787944e475d15e777e111450f531be85{4C256767-E6E6-4AF5-BD68-9F7ABAD0C200}TC3 ADSTC1000{3FF18E97-7754-401B-93FB-70544DE28A13}TC3 IOTC1100{66689887-CCBD-452C-AC9A-039D997C6E66}TC3 PLCTC1200{A19036CF-A53B-4E3A-99FF-023EF5C4798B}TC3 NC PTP Axis10{520DE751-9DB6-47CB-8240-BD5C466E7E64}TC3 NC PTPTF5000{3EBB9639-5FF3-42B6-8847-35C70DC013C8}TC3 TCP/IPTF6310 From 3331756998de93375b1715e217edb87d84887d64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Wed, 4 Dec 2019 16:14:59 +0100 Subject: [PATCH 08/83] Remove and ignore UpgradeLog.htm UpgradeLog.htm should not be under Git, so remove it and ignore it forever. --- .gitignore | 1 + UpgradeLog.htm | Bin 36656 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100644 UpgradeLog.htm diff --git a/.gitignore b/.gitignore index 5853ffd..8f8c117 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ *~ .#* .epics.* +UpgradeLog.htm \#*# _Boot/ _CompileInfo/ diff --git a/UpgradeLog.htm b/UpgradeLog.htm deleted file mode 100644 index 103b560f2c69d2625e27fc190d00ae9e10fbbf9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36656 zcmeI5c~cunlZX4?-H81T8nf@1S%w>9?0G#C++Ymmw(&6G0K_3~BXQ2W`_Xsz`BhR> zcT2R?;;_9#D5O5BDl029E3c|<{qO($Gx{MKiQY%U(PFd`%|@e9A=-&5(LuBy{Tls8 z^zV^swDT!MvK+#Ql`ONW%@lV42Fd}hRJ(t}0=D9lN?1WZb^zC_8pndW)O^a>ntx?n37NU4- z$x*U}IN#}N8%E+$nd?i3->=lJ)g}$YUw20TMT;SDEdoK3>LLBi)s`DWfqRmI0$*{v z1irc|Qn~?^B^A0~09I$N-X-hmHxI^t=Bn+-xekRlqCH1z&96iHeGSGf(OA@b{q2i> zX$rRHf@I?48e%uPz`kQmLKNLa(RMhn=H}`?R1&_=q6MhEO}RL*gcLrD#HmHWP~@jPn>uH3zfS3^tn;pL?V9;=j%IBOaS9v^#5D0cW#} z1vdgwtOZNfef{m>T2^$Qu@)I!J`L74zXINrxhHM+;`RrO4LhKFXh`3%fAqjTp8Nb|`TJ7OHNY?{-W;~QL?6)tlp z|2*z_gn1me5uaP#(ZC(%R)Beb9QM*vOYgk6(L04GoPQlDzYj_5b@G!fiDkTw^=oSz zmor&wmB~LZU{54@$4KN+w0kX)nrHF?WbyOMWbdQO zv3V6_#XLD-BhOr(W4^i6>>N-uXVzDeyU$0FpG8lKZRH#7If<4(EBOspF25|VJ%S_$ z{AAx+u)w`&)*dYV=p)fop8Ptr6SaaL>g`cJ-=cB@>*4)N#d5)KDl{_z7gct z;YoQbK7w{NPh39shLei4Y$(n;Zjy8Lsp~yWJLaRVm+ETIK^$xjR$Qw|aupp*8bT~7 z3v~CHSj&qr>o&#=w{PBAo?qH5)A9}u8}FqF%s(h_lzmfPIas`qeXQ+KC~{NQG!94d zqjn{yWnPnw)F+*-mdEYmK3Q4wngmDjpfC{!lD>-7SJvJ<^yg@^5c@vozSm63>syvo z-jKD^JG<<+v}){A z?a_vHnx1Q4v76k4U%Rohyz39ma>LIcujjm$vsvIX7+R;-IFxTUohQ#KNRc$Ct|U?7 zsAlAv^MXSi`AJ)pyuw@k2gm$6uLTInRe(5_k3DPF&=>Ml^JzLSGe)2G7!Bpiza)>Y zd6-Wk@5=k6ZZ!US4W}#bSxfhwb9L!t!1FQA;k+8KC8YtAeLprwZAAI_*(~h`ou)6a z@^6|>BhO2{j+@pC$l?Yc^EXDBr-G{7O402j2sI}uQ+6b)&IiZwLl=!~XVx4gZ=*Gi zlT@vT=bUyvX{S<P5oYbPg<>!&5Wc8uuz{AU<`J*$?THdjA`3UE>wk{7t zb5S`{l_tHM1E&Mc4_SA$j*#jOYE4qxXH`OcV%ZV1gWBz*{a&)Wf-6dDM%o&<@~4VF zyyf+^4{3nx35_OP8}9-ggp7M%_X7^{v(tW1mT zyUDBHyj&Y?e`k*9^AULajCdKy$~|c}l&C7rrla;*s-&I$aMpJ}doq*yZt`ZtuW!+z zEwt7SEoqq+Xi%MDZ>LOFTyzt^Z69dsH9l+H3+0{6cI~SA#X%B1gwxMJUf^7wmF2%h z*%tPX{^Bx*^0r!{KY-mV0mTR%sR+!TVH<*z1@jlxN~!77%mUNnGYPNukUIV!&dKuBgQWud>j~Bnb<-C4}rQzKl_|%)U&jir{*kUS?9VB%q}Q9f^&kdor%kiJL|x2 z1NJ*=Y*BBTvoa$-qTN22u2XZAyHns_1j0M&j{y4x{l8`0yOdne@)f<0(6Y_p`xbmg z7;O(D_(G4nv>l*_Qy}*tJKA+N1;%Q1!1)fNy@0Cy@J+k6xA~mW%M@(|UwY;x5H`SN z5-4LpS!5i$w3y+nmv1M(OVIqBku7ld6~AlHZwGjnz*(lo68LWccZXUNKwSXh2TDG= zQA$pR!AM;F0*-r7U=ci)fi*{sPmZgfI6nekQSb{eE`Yks?-leIqU?~?E70wfK9_*l zP1z`X(wbUxX_*3V#Tq?6c@p2dC*dV0DWy*yg*>I( zJfUyZqZmRPCq0TXntu@swu0RsMgtDdD544kh%q)^lY$WYx55umXIoIquVM52boGXa)=pIe$g} zYA2m6Tn^F9JJcFS=l9U-EAD&({sFj60%3}ebbiU%w|*dAVmtb&JIGlD`_P45SmJk> z+H;I{#o3=3Y~loPUQkj5mb{%39PMTFJDlsjJnnbYo?$c^*(sPFf!7K&kY^;%?GygS zCf^=#c+VJmIX?nM8|7~uU8X5fi^zu==BE85L-JpN*;(!|CU~)#;G$a267vxba zfY}AT4bZ#ypJmJCp)UhjzS9dZTA{B=o`h2Dk;le0Ysr&2riZcM$v&R!cm=6?$_V)A zJ1GyfG6G5Yd9vT%pZ!)u+=W(*X9SMXoD1m4IcEiAUoOzOifLt=F46glZHKvyDG0O`vJ@ zB;YxkcOQ)}3)qLPn4`rgJr?O{2n#mM`2}?@(dJXs+2PJGXR;U{-CUk?cCiopHp&PT z%_(j@#ZJl_QCxV*=Zf(i(f=-GS6J2=ptsRxko#?D1Vz~w*qmiB(VA8nn(bjdUSL&b z!RZV*{fupeGi5=9sUq=y>P&K!HQM7!@cQXPHb>dBL*SfJ<0Fucs8gYQ6MD|kViRg~ zGnO-VZ-N#ok(FNrMjO2z&`Nk#82K)6E*Vb+S_|qfcx+OpJd)!2BInAkEKxE8^d;I{ zg6SINL$r{!+oh)~%CGOdo+ZM_v02Q8G`97f|&CoWx0e-aMjx3@a-S zV;ckfq#n#;`=8?5zh|aA$j*~Z{Qhj>5IQ|=6ThI1mBCy>iz-V#k5(K*_w_kj@qz0> z?n^5Vy5DIurs64CIpqV_(V@NAkzus0;#1`Xl^<2yT0zTSqSsf@wrkX_U`a|YCergb zAGk9@-68bzC|0Y4rr$>Ao?#87l{bK`9H=suqm(QY>M%*buFf900u!Yk3L2 zisqKV>Xg<+2fLeA3-l|CqgeO@HM9q5iV==be~kKVl*r;$fHFhb4m~VGk4`MAtdcwi z<&kGOD(BltxmGYPuvY6}QU;e-+)@1ve)rw+6ph{_TVIo%AVt*9#sy*h|Iq zThx=yz5tqHZ$)tO8niN^DD4wtR9;)r-Y4$$^AU~oc8(PwD<}Ta^{QNh?p=YUo_;u^ zuK}nw4*q2zU2%Bj7JWtX|3eU5t9 zjIaBQ+Imte{*D*5s$Dnh?Il_Mh3)d!Ox1d5g}I~Mm-SmrptX*mxYl6R!mmsFqgJmq z-)$9IGeW+pC}3;Zp+)*#D4lRovZVXxZYPbczWZk$((CW(_O>E#>(cto8jEOdPq4?w zKgO7}S|8Rr-Z;FIcU#HZ6rw-*CNWd)QdvhEZz~*2@AZ1-GCqaqUv=_6S(u9otqDqX zFcxWkt(t2c*i-zcObXQZC*$0>t&i5|Ioy(NFs?s$eA7G#QkAA^y{wmIxo(?roAjlu zf;@HYaIB_<_PYiu=s6GJBd%=1bMY>VzWM2r-Jd9whdSEbsW;fzDDR6_cN=kfrb!yU z?x?eQm^E6{dyB}cqD;+L+XrcTdbA@~`?uElYIaL&haEkBpQd*1NJpuqW{GrP&}({* zSH6_wQ%^Bym%Db!NE>A1t!zS4|40LRJQsmsdxW)%K)nxv-OM%Q)|)==I`8%Lg=t4g z;Xd}(k5$^RS{CG$SD0~e?Ps_NVeZN~|#*M^6XO$qCz{(SeE$Wuj`DckoYE92>30LL_5zk}}|>@G734N_aNIIlg@9_!~&H1CdX;ZzHc-?*QYGtbX#JPMAh_Vxxn z<*5B?&BD=Wvb33}r;gcn(`shd$u7;pqgr#BN2@hd?bkWNi`P5wM7botO}oUkSGJC9 zWWM^Dnxwi()|39KtrN25-Tmt?&!JlL?sh$zJ@3>m@BDuZJz78$OBYv<_2D#ZQu2e| zviFy2PHNwbybH}nz2mFZ*(T+2WSz6;U|j3i`3db5Lu!wNJRz-Z=zS86!^ze?jc6~c zlcl9<;TnAHY)zYuUskW?aViecn|-`j8237Bd5k_skdA50l?cq_2@F5W2zDUKPx6)WmalH0y4 zDJMQc(Hj{;)Dqqlk%ZA0wqB3heta+EW=lGe43F_&H)mydX*mBBt>PQ4GG2XuXGHDf z`3Cv@1h3o4eXjDmivRovzI-cnYt{LK{rW#ezd0DcQL9!R59c$rRP$$7dzIf+Apgiy zfUD7evipA(+4^s^)+!RRia+%Sko7cx)|RuiL*QRybgL~<9jTe!>NKjd+on4t1J8+n z^vvgutGflp&%pghet&gGs$4n9t*Gi38w`~3hViu27o+rQc44I7c%_2wbn$`M=y+gkZn6)X^ zNX{t_HqUEfqvuy__2Y!KF1_dC98Fxn%6vO`O*jp?*#KVI{LAKk7U!#Hr=I!Ie5;o& zNJ_xdEPb3=8hldA;8=tge-`%njkKrV4^wt>Cf=Uc)dpTW=FJ`5-(1Yr@6uR}X;M!y zy`4xl+}?DfXOy)jV4l6axHGQexlf~0SS!t@tNcO5+Tw(Ke*J3oQvVFH&y`jjf}QiL z7TL2}W7Ow_nkc^m&fGkTwU8qfD`1^C3tmNGlq@nQdaqE_ir zqeD;4KGSc2v0k;dYwJ+LQ}SoW9e3>Hj-A=6SQ@)or{}$271p%kmQ(#C>j}$xaJ34q z9jzX_YKT^&KCH0kuABicUaLOLEA(EXkpN zhe{I5QKT}w>r6LNUx+rnOo^Lt}6M)7NLV^nNnUbnRJ?{jj;GQFb{Pe!TI~<%N~ZB4qO*$!}rP|6q6s zdhJo>lhNdxQ0^|HY1t8;>3esR#Wb`IBtY3=&7IwEN_KAJkmT{Ma`>(C-*k|2?|P?> zJS07ns3%4B6t(<3VP3!1-DIRbe6O{#FzsLz`;6d8w!8-Yy1Hc{WtSvLvYYlM!1`WZ zy8Xg+OTkH(nVmGqW;MMv$!k43z)<^wza^{ou$oD`!DQc+71h7v$tP+yd!gtq>5bSf zpkyX4z8~-xr(wElTHYYPI`dwz@zcb zvC0lx^{f8VaZNHtRTfXRP<9eQtbhrRY*|JJT6Ikj4fT;ep6e;T5# ztp4J0#XS7e|6>VfAD@W&@dzmCKPSg4FHboydCciZDe0@<9@ix6*-Q+vnD^v0x;RCX z{+x{?MC)1O_oJ=0^Nqy@dHI{fG{hF7^X-20ZFE-eNiA1S%|UNHYfF$Xy}yXybF8wC3g*o3;0)`Z}Lde5!ywke70 zAP;({q@K84Wqmp5h*h4Kl5jYdJ<)RK~~-~Eo1dtG%9uV zAw9{V?bK36=f32yKGnYs$y{JQ#Md2@a#%h4X0O+LEQdCN}KQBG{`uVN<)VtnONoW5&c6tYia;837)Xtvd$ZY3h zd_Q=L%O}QjJLxedAxIXhv)Xxg%r=|NzRe zof%D2QnXX{=n}rz+dagsFjw{Tr);5iRyQwMUP|)u)b?P=Ww%2?>yA%R0X--r{4bof1f;K From 4ca1f6e110f02a750ade7c81b75cce98bfcc57b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Wed, 4 Dec 2019 16:30:58 +0100 Subject: [PATCH 09/83] Normalize all line endings to LF in the repo Change the CRLF strategie: All (nearly all) files have LF in the repo, and CRLF in the working tree. When we started, all files had been commited "as is". Now it is more and more disturbing that Git shows "^M" in git diff when a line was added or chenged. To avoid this, store all files in the repo with LF. To normalzie existing repos for a crate, run: Step 1) (unless you have done that already) git remote add tc_generic_structure https://bitbucket.org/europeanspallationsource/tc_generic_structure.git Step 2) git fetch tc_generic_structure Step 3) (master below may be integration) git merge tc_generic_structure/master -X renormalize --- .gitattributes | 10 +- bitbucket-pipelines.yml | 22 +- solution.sln | 144 +- solution/Licenses/ReadMe_licenses.txt | 8 +- solution/_Config/NC/1.xml | 4 +- solution/solution.tsproj | 2250 ++++++++--------- solution/tc_project_app/GVLs/GVL_APP.TcGVL | 26 +- solution/tc_project_app/GlobalTextList.TcGTLO | 556 ++-- solution/tc_project_app/POUs/MAIN.TcPOU | 286 +-- solution/tc_project_app/PlcTask.TcTTO | 30 +- .../Visualization Manager.TcVMO | 1134 ++++----- .../tc_project_app/tc_project_app.plcproj | 804 +++--- twincat_version_manager.py | 80 +- 13 files changed, 2676 insertions(+), 2678 deletions(-) diff --git a/.gitattributes b/.gitattributes index d697d2e..a1aec5e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,8 +1,6 @@ # end of line conversion CLRF -- LF -# Default is no conversion (follow Visual Studio) -* -text +# Default is auto +* text=auto # -.gitattributes text -.gitignore text - - +# Shell scripts must be line feed +*.sh text eol=lf diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index d47cd1d..7c786ab 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -1,11 +1,11 @@ -image: python:3.7.3 -options: - max-time: 1 -pipelines: - default: - - step: - script: - - git submodule update --init - - git submodule - - python twincat_version_manager.py - - python check_fix_white_space.py +image: python:3.7.3 +options: + max-time: 1 +pipelines: + default: + - step: + script: + - git submodule update --init + - git submodule + - python twincat_version_manager.py + - python check_fix_white_space.py diff --git a/solution.sln b/solution.sln index 976e55d..9459e68 100644 --- a/solution.sln +++ b/solution.sln @@ -1,72 +1,72 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "solution", "solution\solution.tsproj", "{9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7) - Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2) - Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64) - Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86) - Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7) - Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2) - Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64) - Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86) - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) - {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "solution", "solution\solution.tsproj", "{9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7) + Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2) + Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64) + Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86) + Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7) + Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2) + Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64) + Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86) + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) + {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/solution/Licenses/ReadMe_licenses.txt b/solution/Licenses/ReadMe_licenses.txt index 79e6b36..1cc9be8 100644 --- a/solution/Licenses/ReadMe_licenses.txt +++ b/solution/Licenses/ReadMe_licenses.txt @@ -1,5 +1,5 @@ -Copy and paste in this folder the licenses contained inside the Beckhoff CPU in the path: - -C:\TwinCAT\3.1\Target\License - +Copy and paste in this folder the licenses contained inside the Beckhoff CPU in the path: + +C:\TwinCAT\3.1\Target\License + Thank you \ No newline at end of file diff --git a/solution/_Config/NC/1.xml b/solution/_Config/NC/1.xml index 02118c9..7447a9f 100644 --- a/solution/_Config/NC/1.xml +++ b/solution/_Config/NC/1.xml @@ -1,2 +1,2 @@ - -1mm15001500225015000150000130000000303010060020002000true5false0.1false100true2falsefalse000false10.010truefalsefalse5510.0001103600false21677721500.010.1false0false0false000falsetrue0false0false0104857500false005false1-1165535#x000000000.1002200101100000000.01211100001361291330false110111true5false010000.10.1false0.10.50.10000.10.100.50000false0.010112010.001 + +1mm15001500225015000150000130000000303010060020002000true5false0.1false100true2falsefalse000false10.010truefalsefalse5510.0001103600false21677721500.010.1false0false0false000falsetrue0false0false0104857500false005false1-1165535#x000000000.1002200101100000000.01211100001361291330false110111true5false010000.10.1false0.10.50.10000.10.100.50000false0.010112010.001 diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 729ffe6..45bd716 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,1125 +1,1125 @@ - - - - - NCTOPLC_AXIS_REF_STATE - 32 - - Operational - BIT - 1 - 0 - - - Homed - BIT - 1 - 1 - - - NotMoving - BIT - 1 - 2 - - - InPositionArea - BIT - 1 - 3 - - - InTargetPosition - BIT - 1 - 4 - - - Protected - BIT - 1 - 5 - - - ErrorPropagationDelayed - BIT - 1 - 6 - - - HasBeenStopped - BIT - 1 - 7 - - - HasJob - BIT - 1 - 8 - - - PositiveDirection - BIT - 1 - 9 - - - NegativeDirection - BIT - 1 - 10 - - - HomingBusy - BIT - 1 - 11 - - - ConstantVelocity - BIT - 1 - 12 - - - Compensating - BIT - 1 - 13 - - - ExtSetPointGenEnabled - BIT - 1 - 14 - - - PhasingActive - BIT - 1 - 15 - - - ExternalLatchValid - BIT - 1 - 16 - - - NewTargetPos - BIT - 1 - 17 - - - ContinuousMotion - BIT - 1 - 19 - - - ControlLoopClosed - BIT - 1 - 20 - - - CamTableQueued - BIT - 1 - 21 - - - CamDataQueued - BIT - 1 - 22 - - - CamScalingPending - BIT - 1 - 23 - - - CmdBuffered - BIT - 1 - 24 - - - PTPmode - BIT - 1 - 25 - - - SoftLimitMinExceeded - BIT - 1 - 26 - - - SoftLimitMaxExceeded - BIT - 1 - 27 - - - DriveDeviceError - BIT - 1 - 28 - - - MotionCommandsLocked - BIT - 1 - 29 - - - IoDataInvalid - BIT - 1 - 30 - - - Error - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_OPMODE - 32 - - OpModePosAreaMonitoring - BIT - 1 - 0 - - - OpModeTargetPosMonitoring - BIT - 1 - 1 - - - OpModeLoop - BIT - 1 - 2 - - - OpModeMotionMonitoring - BIT - 1 - 3 - - - OpModePEHTimeMonitoring - BIT - 1 - 4 - - - OpModeBacklashCompensation - BIT - 1 - 5 - - - OpModeDelayedErrorReaction - BIT - 1 - 6 - - - OpModeModulo - BIT - 1 - 7 - - - OpModeSimulationAxis - BIT - 1 - 8 - - - OpModePosLagMonitoring - BIT - 1 - 16 - - - OpModeVeloLagMonitoring - BIT - 1 - 17 - - - OpModeSoftLimitMinMonitoring - BIT - 1 - 18 - - - OpModeSoftLimitMaxMonitoring - BIT - 1 - 19 - - - OpModePosCorrection - BIT - 1 - 20 - - - OpModeAllowSlaveCommands - BIT - 1 - 21 - - - OpModeAllowExtSetAxisCommands - BIT - 1 - 22 - - - ApplicationRequest - BIT - 1 - 23 - - - - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - - AvoidingCollision - BIT - 1 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_STATE2 - 32 - - Value - DWORD - 32 - 0 - - - Flags - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - 8 - - CamActivationPending - BIT - 1 - 0 - - - CamDeactivationPending - BIT - 1 - 1 - - - CamActive - BIT - 1 - 2 - - - CamDataQueued - BIT - 1 - 6 - - - CamScalingPending - BIT - 1 - 7 - - - - UINTARR8 - 128 - UINT - - 0 - 8 - - - - NCTOPLC_AXIS_REF - 2048 - - StateDWord - NCTOPLC_AXIS_REF_STATE - 32 - 0 - - - ErrorCode - UDINT - 32 - 32 - - - AxisState - UDINT - - 32 - 64 - - - AxisModeConfirmation - UDINT - 32 - 96 - - - HomingState - UDINT - - 32 - 128 - - - CoupleState - UDINT - - 32 - 160 - - - SvbEntries - UDINT - 32 - 192 - - - SafEntries - UDINT - 32 - 224 - - - AxisId - UDINT - 32 - 256 - - - OpModeDWord - NCTOPLC_AXIS_REF_OPMODE - 32 - 288 - - - ActPos - LREAL - 64 - 320 - - - ModuloActPos - LREAL - 64 - 384 - - - ActiveControlLoopIndex - UINT - 16 - 448 - - - ControlLoopIndex - UINT - 16 - 464 - - - ModuloActTurns - DINT - 32 - 480 - - - ActVelo - LREAL - 64 - 512 - - - PosDiff - LREAL - 64 - 576 - - - SetPos - LREAL - 64 - 640 - - - SetVelo - LREAL - 64 - 704 - - - SetAcc - LREAL - 64 - 768 - - - TargetPos - LREAL - 64 - 832 - - - ModuloSetPos - LREAL - 64 - 896 - - - ModuloSetTurns - DINT - 32 - 960 - - - CmdNo - UINT - 16 - 992 - - - CmdState - UINT - 16 - 1008 - - - SetJerk - LREAL - 64 - 1024 - - - SetTorque - LREAL - 64 - 1088 - - - ActTorque - LREAL - 64 - 1152 - - - StateDWord2 - NCTOPLC_AXIS_REF_STATE2 - 32 - 1216 - - - StateDWord3 - DWORD - 32 - 1248 - - - TouchProbeState - DWORD - 32 - 1280 - - - TouchProbeCounter - DWORD - 32 - 1312 - - - CamCouplingState - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - - 0 - 8 - - 64 - 1344 - - - CamCouplingTableID - UINTARR8 - 128 - 1408 - - - ActTorqueDerivative - LREAL - 64 - 1536 - - - SetTorqueDerivative - LREAL - 64 - 1600 - - - ActPosWithoutPosCorrection - LREAL - 64 - 1792 - - - ActAcc - LREAL - 64 - 1856 - - - DcTimeStamp - UDINT - 32 - 1920 - - - - NcStructType - 2 - - - - - NCAXLESTRUCT_TOPLC - - - NCAXLESTRUCT_TOPLC2 - - - NCAXLESTRUCT_TOPLC3 - - - NCAXLESTRUCT_TOPLC4 - - - - - - - - - - - - - - PLCTONC_AXIS_REF_CTRL - 32 - - Enable - BIT - 1 - 0 - - - FeedEnablePlus - BIT - 1 - 1 - - - FeedEnableMinus - BIT - 1 - 2 - - - HomingSensor - BIT - 1 - 5 - - - AcceptBlockedDrive - BIT - 1 - 8 - - - PlcDebugFlag - BIT - 1 - 30 - - - NcDebugFlag - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - PLCTONC_AXIS_REF - 1024 - - ControlDWord - PLCTONC_AXIS_REF_CTRL - 32 - 0 - - - Override - UDINT - 32 - 32 - - - AxisModeRequest - UDINT - 32 - 64 - - - AxisModeDWord - UDINT - 32 - 96 - - - AxisModeLReal - LREAL - 64 - 128 - - - PositionCorrection - LREAL - 64 - 192 - - - ExtSetPos - LREAL - 64 - 256 - - - ExtSetVelo - LREAL - 64 - 320 - - - ExtSetAcc - LREAL - 64 - 384 - - - ExtSetDirection - DINT - 32 - 448 - - - ExtControllerOutput - LREAL - 64 - 512 - - - GearRatio1 - LREAL - 64 - 576 - - - GearRatio2 - LREAL - 64 - 640 - - - GearRatio3 - LREAL - 64 - 704 - - - GearRatio4 - LREAL - 64 - 768 - - - MapState - BOOL - 8 - 832 - - - PlcCycleControl - BYTE - 8 - 840 - - - PlcCycleCount - BYTE - 8 - 848 - - - - NcStructType - 1 - - - - - NCAXLESTRUCT_FROMPLC3 - - - - - - - - - {3EBB9639-5FF3-42B6-8847-35C70DC013C8} - - - - - PlcTaskCom - - - PlcTask - - - - - - - tc_epicscommodule Instance - {08500001-0000-0000-F000-000000000064} - - - - - - - - tc_project_app Instance - {08500001-0000-0000-F000-000000000064} - - PlcTask Inputs - - GVL.axes[1].inputs.bLimitFwd - - BOOL - - - GVL.axes[1].inputs.bLimitBwd - - BOOL - - - GVL.axes[1].inputs.bHomeSensor - - BOOL - - - GVL.axes[1].inputs.bEncLAtch - - BOOL - - - GVL.axes[1].Axis.NcToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - - - - GVL.axes[2].inputs.bLimitFwd - - BOOL - - - GVL.axes[2].inputs.bLimitBwd - - BOOL - - - GVL.axes[2].inputs.bHomeSensor - - BOOL - - - GVL.axes[2].inputs.bEncLAtch - - BOOL - - - GVL.axes[2].Axis.NcToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - - - - GVL.axes[3].inputs.bLimitFwd - - BOOL - - - GVL.axes[3].inputs.bLimitBwd - - BOOL - - - GVL.axes[3].inputs.bHomeSensor - - BOOL - - - GVL.axes[3].inputs.bEncLAtch - - BOOL - - - GVL.axes[3].Axis.NcToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - - - - - PlcTask Outputs - - MAIN.bOutput1 - - BOOL - - - GVL.axes[1].Axis.PlcToNc - PLCTONC_AXIS_REF - - - GVL.axes[2].Axis.PlcToNc - PLCTONC_AXIS_REF - - - GVL.axes[3].Axis.PlcToNc - PLCTONC_AXIS_REF - - - - - - - - - - + + + + + NCTOPLC_AXIS_REF_STATE + 32 + + Operational + BIT + 1 + 0 + + + Homed + BIT + 1 + 1 + + + NotMoving + BIT + 1 + 2 + + + InPositionArea + BIT + 1 + 3 + + + InTargetPosition + BIT + 1 + 4 + + + Protected + BIT + 1 + 5 + + + ErrorPropagationDelayed + BIT + 1 + 6 + + + HasBeenStopped + BIT + 1 + 7 + + + HasJob + BIT + 1 + 8 + + + PositiveDirection + BIT + 1 + 9 + + + NegativeDirection + BIT + 1 + 10 + + + HomingBusy + BIT + 1 + 11 + + + ConstantVelocity + BIT + 1 + 12 + + + Compensating + BIT + 1 + 13 + + + ExtSetPointGenEnabled + BIT + 1 + 14 + + + PhasingActive + BIT + 1 + 15 + + + ExternalLatchValid + BIT + 1 + 16 + + + NewTargetPos + BIT + 1 + 17 + + + ContinuousMotion + BIT + 1 + 19 + + + ControlLoopClosed + BIT + 1 + 20 + + + CamTableQueued + BIT + 1 + 21 + + + CamDataQueued + BIT + 1 + 22 + + + CamScalingPending + BIT + 1 + 23 + + + CmdBuffered + BIT + 1 + 24 + + + PTPmode + BIT + 1 + 25 + + + SoftLimitMinExceeded + BIT + 1 + 26 + + + SoftLimitMaxExceeded + BIT + 1 + 27 + + + DriveDeviceError + BIT + 1 + 28 + + + MotionCommandsLocked + BIT + 1 + 29 + + + IoDataInvalid + BIT + 1 + 30 + + + Error + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_OPMODE + 32 + + OpModePosAreaMonitoring + BIT + 1 + 0 + + + OpModeTargetPosMonitoring + BIT + 1 + 1 + + + OpModeLoop + BIT + 1 + 2 + + + OpModeMotionMonitoring + BIT + 1 + 3 + + + OpModePEHTimeMonitoring + BIT + 1 + 4 + + + OpModeBacklashCompensation + BIT + 1 + 5 + + + OpModeDelayedErrorReaction + BIT + 1 + 6 + + + OpModeModulo + BIT + 1 + 7 + + + OpModeSimulationAxis + BIT + 1 + 8 + + + OpModePosLagMonitoring + BIT + 1 + 16 + + + OpModeVeloLagMonitoring + BIT + 1 + 17 + + + OpModeSoftLimitMinMonitoring + BIT + 1 + 18 + + + OpModeSoftLimitMaxMonitoring + BIT + 1 + 19 + + + OpModePosCorrection + BIT + 1 + 20 + + + OpModeAllowSlaveCommands + BIT + 1 + 21 + + + OpModeAllowExtSetAxisCommands + BIT + 1 + 22 + + + ApplicationRequest + BIT + 1 + 23 + + + + NCTOPLC_AXIS_REF_STATE2_FLAGS + 32 + + AvoidingCollision + BIT + 1 + 0 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_STATE2 + 32 + + Value + DWORD + 32 + 0 + + + Flags + NCTOPLC_AXIS_REF_STATE2_FLAGS + 32 + 0 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE + 8 + + CamActivationPending + BIT + 1 + 0 + + + CamDeactivationPending + BIT + 1 + 1 + + + CamActive + BIT + 1 + 2 + + + CamDataQueued + BIT + 1 + 6 + + + CamScalingPending + BIT + 1 + 7 + + + + UINTARR8 + 128 + UINT + + 0 + 8 + + + + NCTOPLC_AXIS_REF + 2048 + + StateDWord + NCTOPLC_AXIS_REF_STATE + 32 + 0 + + + ErrorCode + UDINT + 32 + 32 + + + AxisState + UDINT + + 32 + 64 + + + AxisModeConfirmation + UDINT + 32 + 96 + + + HomingState + UDINT + + 32 + 128 + + + CoupleState + UDINT + + 32 + 160 + + + SvbEntries + UDINT + 32 + 192 + + + SafEntries + UDINT + 32 + 224 + + + AxisId + UDINT + 32 + 256 + + + OpModeDWord + NCTOPLC_AXIS_REF_OPMODE + 32 + 288 + + + ActPos + LREAL + 64 + 320 + + + ModuloActPos + LREAL + 64 + 384 + + + ActiveControlLoopIndex + UINT + 16 + 448 + + + ControlLoopIndex + UINT + 16 + 464 + + + ModuloActTurns + DINT + 32 + 480 + + + ActVelo + LREAL + 64 + 512 + + + PosDiff + LREAL + 64 + 576 + + + SetPos + LREAL + 64 + 640 + + + SetVelo + LREAL + 64 + 704 + + + SetAcc + LREAL + 64 + 768 + + + TargetPos + LREAL + 64 + 832 + + + ModuloSetPos + LREAL + 64 + 896 + + + ModuloSetTurns + DINT + 32 + 960 + + + CmdNo + UINT + 16 + 992 + + + CmdState + UINT + 16 + 1008 + + + SetJerk + LREAL + 64 + 1024 + + + SetTorque + LREAL + 64 + 1088 + + + ActTorque + LREAL + 64 + 1152 + + + StateDWord2 + NCTOPLC_AXIS_REF_STATE2 + 32 + 1216 + + + StateDWord3 + DWORD + 32 + 1248 + + + TouchProbeState + DWORD + 32 + 1280 + + + TouchProbeCounter + DWORD + 32 + 1312 + + + CamCouplingState + NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE + + 0 + 8 + + 64 + 1344 + + + CamCouplingTableID + UINTARR8 + 128 + 1408 + + + ActTorqueDerivative + LREAL + 64 + 1536 + + + SetTorqueDerivative + LREAL + 64 + 1600 + + + ActPosWithoutPosCorrection + LREAL + 64 + 1792 + + + ActAcc + LREAL + 64 + 1856 + + + DcTimeStamp + UDINT + 32 + 1920 + + + + NcStructType + 2 + + + + + NCAXLESTRUCT_TOPLC + + + NCAXLESTRUCT_TOPLC2 + + + NCAXLESTRUCT_TOPLC3 + + + NCAXLESTRUCT_TOPLC4 + + + + + + + + + + + + + + PLCTONC_AXIS_REF_CTRL + 32 + + Enable + BIT + 1 + 0 + + + FeedEnablePlus + BIT + 1 + 1 + + + FeedEnableMinus + BIT + 1 + 2 + + + HomingSensor + BIT + 1 + 5 + + + AcceptBlockedDrive + BIT + 1 + 8 + + + PlcDebugFlag + BIT + 1 + 30 + + + NcDebugFlag + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + + + + PLCTONC_AXIS_REF + 1024 + + ControlDWord + PLCTONC_AXIS_REF_CTRL + 32 + 0 + + + Override + UDINT + 32 + 32 + + + AxisModeRequest + UDINT + 32 + 64 + + + AxisModeDWord + UDINT + 32 + 96 + + + AxisModeLReal + LREAL + 64 + 128 + + + PositionCorrection + LREAL + 64 + 192 + + + ExtSetPos + LREAL + 64 + 256 + + + ExtSetVelo + LREAL + 64 + 320 + + + ExtSetAcc + LREAL + 64 + 384 + + + ExtSetDirection + DINT + 32 + 448 + + + ExtControllerOutput + LREAL + 64 + 512 + + + GearRatio1 + LREAL + 64 + 576 + + + GearRatio2 + LREAL + 64 + 640 + + + GearRatio3 + LREAL + 64 + 704 + + + GearRatio4 + LREAL + 64 + 768 + + + MapState + BOOL + 8 + 832 + + + PlcCycleControl + BYTE + 8 + 840 + + + PlcCycleCount + BYTE + 8 + 848 + + + + NcStructType + 1 + + + + + NCAXLESTRUCT_FROMPLC3 + + + + + + + + + {3EBB9639-5FF3-42B6-8847-35C70DC013C8} + + + + + PlcTaskCom + + + PlcTask + + + + + + + tc_epicscommodule Instance + {08500001-0000-0000-F000-000000000064} + + + + + + + + tc_project_app Instance + {08500001-0000-0000-F000-000000000064} + + PlcTask Inputs + + GVL.axes[1].inputs.bLimitFwd + + BOOL + + + GVL.axes[1].inputs.bLimitBwd + + BOOL + + + GVL.axes[1].inputs.bHomeSensor + + BOOL + + + GVL.axes[1].inputs.bEncLAtch + + BOOL + + + GVL.axes[1].Axis.NcToPlc + NCTOPLC_AXIS_REF + + AxisState + + + + HomingState + + + + CoupleState + + + + + GVL.axes[2].inputs.bLimitFwd + + BOOL + + + GVL.axes[2].inputs.bLimitBwd + + BOOL + + + GVL.axes[2].inputs.bHomeSensor + + BOOL + + + GVL.axes[2].inputs.bEncLAtch + + BOOL + + + GVL.axes[2].Axis.NcToPlc + NCTOPLC_AXIS_REF + + AxisState + + + + HomingState + + + + CoupleState + + + + + GVL.axes[3].inputs.bLimitFwd + + BOOL + + + GVL.axes[3].inputs.bLimitBwd + + BOOL + + + GVL.axes[3].inputs.bHomeSensor + + BOOL + + + GVL.axes[3].inputs.bEncLAtch + + BOOL + + + GVL.axes[3].Axis.NcToPlc + NCTOPLC_AXIS_REF + + AxisState + + + + HomingState + + + + CoupleState + + + + + + PlcTask Outputs + + MAIN.bOutput1 + + BOOL + + + GVL.axes[1].Axis.PlcToNc + PLCTONC_AXIS_REF + + + GVL.axes[2].Axis.PlcToNc + PLCTONC_AXIS_REF + + + GVL.axes[3].Axis.PlcToNc + PLCTONC_AXIS_REF + + + + + + + + + + diff --git a/solution/tc_project_app/GVLs/GVL_APP.TcGVL b/solution/tc_project_app/GVLs/GVL_APP.TcGVL index a846a85..150f4ac 100644 --- a/solution/tc_project_app/GVLs/GVL_APP.TcGVL +++ b/solution/tc_project_app/GVLs/GVL_APP.TcGVL @@ -1,14 +1,14 @@ - - - - - + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/GlobalTextList.TcGTLO b/solution/tc_project_app/GlobalTextList.TcGTLO index 859af55..1818614 100644 --- a/solution/tc_project_app/GlobalTextList.TcGTLO +++ b/solution/tc_project_app/GlobalTextList.TcGTLO @@ -1,279 +1,279 @@ - - - - - - - - - "951" - "%2.2f" - - - - "878" - "%d" - - - - "706" - "%i" - - - - "940" - "%x" - - - - "703" - "Acknowledge" - - - - "710" - "Active:" - - - - "952" - "actPos" - - - - "953" - "actVel" - - - - "110" - "AXESMAX" - - - - "107" - "axisSel" - - - - "945" - "bBusy" - - - - "950" - "bBwEnabled" - - - - "946" - "bDone" - - - - "943" - "bEnabled" - - - - "941" - "bError" - - - - "102" - "bExecute" - - - - "949" - "bFwEnabled" - - - - "297" - "bGeared" - - - - "948" - "bHomed" - - - - "947" - "bResetDone" - - - - "944" - "bWarning" - - - - "704" - "Clear All" - - - - "104" - "ENABLE" - - - - "106" - "ENABLE BW" - - - - "105" - "ENABLE FW" - - - - "109" - "English" - - - - "939" - "errID" - - - - "701" - "Error #" - - - - "705" - "Error #:" - - - - "702" - "Error Log" - - - - "707" - "Errors:" - - - - "955" - "fAcceleration" - - - - "956" - "fDeceleration" - - - - "957" - "fPosition" - - - - "708" - "Free Entries:" - - - - "954" - "fVelocity" - - - - "299" - "gearIn" - - - - "300" - "gearOut" - - - - "711" - "Inactive:" - - - - "116" - "jogBw" - - - - "117" - "jogFw" - - - - "298" - "masterGear" - - - - "111" - "moveAbsolute" - - - - "114" - "moveModulo" - - - - "113" - "moveRelative" - - - - "112" - "moveVelocity" - - - - "709" - "Overflows:" - - - - "942" - "reset" - - - - "115" - "stop" - - - - "108" - "Test Language" - - - - "103" - "toggle" - - - - - {062c6d5a-aca0-4f82-8481-8e26e8c8681e} - {d08328f1-0dac-4dfb-b105-bd18d7b5a756} - {180f93fa-c96b-483e-953c-133bc7d30e18} - - - - System.Collections.ArrayList - {63784cbb-9ba0-45e6-9d69-babf3f040511} - System.Guid - System.String - {53da1be7-ad25-47c3-b0e8-e26286dad2e0} - - - + + + + + + + + + "951" + "%2.2f" + + + + "878" + "%d" + + + + "706" + "%i" + + + + "940" + "%x" + + + + "703" + "Acknowledge" + + + + "710" + "Active:" + + + + "952" + "actPos" + + + + "953" + "actVel" + + + + "110" + "AXESMAX" + + + + "107" + "axisSel" + + + + "945" + "bBusy" + + + + "950" + "bBwEnabled" + + + + "946" + "bDone" + + + + "943" + "bEnabled" + + + + "941" + "bError" + + + + "102" + "bExecute" + + + + "949" + "bFwEnabled" + + + + "297" + "bGeared" + + + + "948" + "bHomed" + + + + "947" + "bResetDone" + + + + "944" + "bWarning" + + + + "704" + "Clear All" + + + + "104" + "ENABLE" + + + + "106" + "ENABLE BW" + + + + "105" + "ENABLE FW" + + + + "109" + "English" + + + + "939" + "errID" + + + + "701" + "Error #" + + + + "705" + "Error #:" + + + + "702" + "Error Log" + + + + "707" + "Errors:" + + + + "955" + "fAcceleration" + + + + "956" + "fDeceleration" + + + + "957" + "fPosition" + + + + "708" + "Free Entries:" + + + + "954" + "fVelocity" + + + + "299" + "gearIn" + + + + "300" + "gearOut" + + + + "711" + "Inactive:" + + + + "116" + "jogBw" + + + + "117" + "jogFw" + + + + "298" + "masterGear" + + + + "111" + "moveAbsolute" + + + + "114" + "moveModulo" + + + + "113" + "moveRelative" + + + + "112" + "moveVelocity" + + + + "709" + "Overflows:" + + + + "942" + "reset" + + + + "115" + "stop" + + + + "108" + "Test Language" + + + + "103" + "toggle" + + + + + {062c6d5a-aca0-4f82-8481-8e26e8c8681e} + {d08328f1-0dac-4dfb-b105-bd18d7b5a756} + {180f93fa-c96b-483e-953c-133bc7d30e18} + + + + System.Collections.ArrayList + {63784cbb-9ba0-45e6-9d69-babf3f040511} + System.Guid + System.String + {53da1be7-ad25-47c3-b0e8-e26286dad2e0} + + + \ No newline at end of file diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index d74f2d1..887910d 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,144 +1,144 @@ - - - - - - - - - - - - - - - , - nSelectedError=> , - pErrorSystem=> ); - - -FOR GVL.iAxis:=1 TO gvl_app.axisNum DO - aFbAxesError[gvl.iAxis](EN:=TRUE, - nNC_ErrorID:= gvl.axes[gvl.iAxis].status.nErrorID, - nNC_AxisID:=gvl.axes[gvl.iAxis].Axis.NcToPlc.AxisId, - ErrorSystem:= fbErrorSystem.pErrorSystem); -END_FOR - - - -(*call all the necessary instance (input assistance F2 or right click) according to the terminals that you have in your hardware and - add "TRUE" in the input En, the corresponding number of termianl to the iTerminal_ID and -the variable "fbErrorSystem.pErrorSystem" to the input ErrorSystem in each FB E. g. : -fbEL1808( - En:= TRUE, - iTerminal_ID:= 01, - ErrorSystem:= fbErorSystem.pErrorSystem, - EnO=> , - bError=> ); - *) - -]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + , + nSelectedError=> , + pErrorSystem=> ); + + +FOR GVL.iAxis:=1 TO gvl_app.axisNum DO + aFbAxesError[gvl.iAxis](EN:=TRUE, + nNC_ErrorID:= gvl.axes[gvl.iAxis].status.nErrorID, + nNC_AxisID:=gvl.axes[gvl.iAxis].Axis.NcToPlc.AxisId, + ErrorSystem:= fbErrorSystem.pErrorSystem); +END_FOR + + + +(*call all the necessary instance (input assistance F2 or right click) according to the terminals that you have in your hardware and + add "TRUE" in the input En, the corresponding number of termianl to the iTerminal_ID and +the variable "fbErrorSystem.pErrorSystem" to the input ErrorSystem in each FB E. g. : +fbEL1808( + En:= TRUE, + iTerminal_ID:= 01, + ErrorSystem:= fbErorSystem.pErrorSystem, + EnO=> , + bError=> ); + *) + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO index 98d1faf..0763afe 100644 --- a/solution/tc_project_app/PlcTask.TcTTO +++ b/solution/tc_project_app/PlcTask.TcTTO @@ -1,16 +1,16 @@ - - - - - 1000 - 20 - - MAIN - - {26d89752-95b4-4b52-80c0-c79242bc34d7} - {137c4fd1-c794-4dee-a041-b4fea1d22866} - {2478772d-357b-433f-886f-15340bef9bdf} - {c16ee410-277f-45f0-a92e-1ec5f87024b9} - {291eb57a-f9a9-4722-b7d3-fd700e5db288} - + + + + + 1000 + 20 + + MAIN + + {26d89752-95b4-4b52-80c0-c79242bc34d7} + {137c4fd1-c794-4dee-a041-b4fea1d22866} + {2478772d-357b-433f-886f-15340bef9bdf} + {c16ee410-277f-45f0-a92e-1ec5f87024b9} + {291eb57a-f9a9-4722-b7d3-fd700e5db288} + \ No newline at end of file diff --git a/solution/tc_project_app/Visualization Manager.TcVMO b/solution/tc_project_app/Visualization Manager.TcVMO index 83b1ee8..e63f527 100644 --- a/solution/tc_project_app/Visualization Manager.TcVMO +++ b/solution/tc_project_app/Visualization Manager.TcVMO @@ -1,568 +1,568 @@ - - - - - - - Undefined - - - "MainVisu" - false - false - AutoDetect - 2000 - 2000 - false - 50000 - 400000 - false - false - true - "Default, 3.1.5.0 (Beckhoff Automation GmbH)" - 100 - "" - "VisuDialogs.Numpad" - "VisuDialogs.Keypad" - "VisuDialogs.TextinputWithLimits" - false - false - true - true - false - "VisuUserManagement.VUM_Login" - "VisuUserManagement.VUM_ChangePassword" - "VisuUserManagement.VUM_UserManagement" - {00000000-0000-0000-0000-000000000000} - {00000000-0000-0000-0000-000000000000} - true - true - false - "" - - - - FB_Init - c98701bd-1e9f-450a-a2a8-a2474d536f2e - FB_Reinit - 5b6e372a-a69d-40e8-aef7-f470b7c53d95 - FB_Exit - 0be1b9ab-e8eb-4b33-b803-109abb46bde4 - - "NotImportant" - {aa8b7e42-e967-427f-8f2e-f00f9d706470} - - - - 7 - 4096 - "1002 0004" - "1.0.0.4" - {cb73a13e-6ccc-4bc6-8859-f5aa98bb116b} - - - true - 48 - "0" - - - true - 49 - "1" - - - true - 50 - "2" - - - true - 51 - "3" - - - true - 52 - "4" - - - true - 53 - "5" - - - true - 54 - "6" - - - true - 55 - "7" - - - true - 56 - "8" - - - true - 57 - "9" - - - true - 65 - "A" - - - true - 107 - "ADDITION" - - - true - 66 - "B" - - - true - 8 - "BACKSPACE" - - - true - 67 - "C" - - - true - 110 - "COMMA" - - - true - 68 - "D" - - - true - 46 - "DELETE" - - - true - 111 - "DIVIDE" - - - true - 40 - "DOWN" - - - true - 69 - "E" - - - true - 35 - "END" - - - true - 27 - "ESCAPE" - - - true - 70 - "F" - - - true - 112 - "F1" - - - true - 121 - "F10" - - - true - 122 - "F11" - - - true - 123 - "F12" - - - true - 113 - "F2" - - - true - 114 - "F3" - - - true - 115 - "F4" - - - true - 116 - "F5" - - - true - 117 - "F6" - - - true - 118 - "F7" - - - true - 119 - "F8" - - - true - 120 - "F9" - - - true - 71 - "G" - - - true - 72 - "H" - - - true - 36 - "HOME" - - - true - 73 - "I" - - - true - 45 - "INSERT" - - - true - 74 - "J" - - - true - 75 - "K" - - - true - 76 - "L" - - - true - 37 - "LEFT" - - - true - 77 - "M" - - - true - 106 - "MULTIPLY" - - - true - 78 - "N" - - - true - 96 - "NUM0" - - - true - 97 - "NUM1" - - - true - 98 - "NUM2" - - - true - 99 - "NUM3" - - - true - 100 - "NUM4" - - - true - 101 - "NUM5" - - - true - 102 - "NUM6" - - - true - 103 - "NUM7" - - - true - 104 - "NUM8" - - - true - 105 - "NUM9" - - - true - 79 - "O" - - - true - 80 - "P" - - - true - 19 - "PAUSE" - - - true - 42 - "PRINT" - - - true - 81 - "Q" - - - true - 82 - "R" - - - true - 13 - "RETURN_KEY" - - - true - 39 - "RIGHT" - - - true - 83 - "S" - - - true - 32 - "SPACE" - - - true - 109 - "SUBTRACT" - - - true - 84 - "T" - - - true - 9 - "TAB" - - - true - 85 - "U" - - - true - 38 - "UP" - - - true - 86 - "V" - - - true - 87 - "W" - - - true - 88 - "X" - - - true - 89 - "Y" - - - true - 90 - "Z" - - - - - - 481037385728L - 549755813887L - 481037385728L - 549754765312L - 1048576L - - - - - ExecuteLooseCapture - 4e2884cd-dc97-4120-914c-87a83e618f1f - ExecuteMouseUp - 57eea9a5-15d9-4269-bb8d-9fee5420cdb2 - Init - e61a0910-39b6-4bcc-9a64-fcab62230628 - FB_Exit - e6e1ea47-0811-4b03-9888-d0564361e0d6 - ExecuteMouseDblClick - a517a0ac-170b-4df4-b289-55dcb57628ed - GetElementInfo - f64cb89f-3016-4fba-85f5-02efcd4282c1 - ExecuteMouseDown - 94bab392-b395-4c03-9d0e-5738d11bd021 - FB_Reinit - 97933c03-0169-4afe-ac83-de892204e120 - Initialize - 6946d6e0-129f-4425-b8b0-ef98281a99e9 - ExecuteMouseMove - 58fc221c-be14-4e34-871e-a118f8ba9539 - ExecuteDialogClosed - f08d08b6-e70c-4bef-a136-38845bd246d8 - ExecuteKeyUp - 7403635b-2725-4f00-93d4-e0dd125959de - ExecuteKeyDown - 9649ecda-3794-4d6b-a8a7-71e528d9d170 - abstrGetDefaultCursor - 25718998-50a9-408d-8b3f-20a55e2cc784 - ExecuteMouseEnter - 569205fa-533b-4fc2-8d51-21ccab693305 - ExecuteMouseLeave - 3bacea68-55b4-4764-928e-e69910299932 - FB_Init - f37e1250-9b48-45ca-810e-c192ea9440ec - ExecuteMouseClick - cd348bda-7eaf-4dfe-8c4b-bf9b71e5b10c - - "NotImportant" - {073ee466-cf0a-4c8b-ba92-64f671516699} - - - - true - true - - - - - {925c2b24-84d1-469a-954d-7af8b99219ef} - {f905b871-af16-47c5-a6ef-0a0918a8b009} - {d3706fa7-8257-48b3-af0a-cab0afb4dc49} - {4d5d9e0c-fa46-4312-abcd-ab81ecde84e1} - {00a84c7a-9a31-408b-860a-9d896efbd842} - {3ef700b6-44e8-4cfc-b6e0-26bfef38c2b6} - {e2123cf7-55c2-43c4-8135-f70e23d789b6} - {b7fab3e5-7354-42a4-bdf2-bc53461ec63c} - {967863f2-ccef-44e4-a545-05cbd9acb6be} - {f97c4870-0a84-4b7b-9cfd-0059a20bebbd} - {81498829-8b99-4474-8196-a48127c8e5d4} - {71bfd0df-7f34-4abc-b3b9-84bad2430630} - {6695a96b-387d-4f98-b9f1-09dab5b7c483} - {5fe53f14-f5a7-4173-9e2b-538b7d89379a} - {09c26f6e-e9b1-4455-a763-8dfd243af668} - {48451f3d-75f9-48ba-acdb-82d62e000f26} - {8214e061-c2ef-40f5-b519-acfed1ca1cca} - {97cdf6c7-053d-4364-abf2-f17c232375c1} - {30af51e2-0f28-4c98-bb4e-6c7a4ef6b64e} - {9e20996c-a8e0-4843-9524-9317ce5fc512} - {9d656f8b-b228-46a1-8204-ecc426d69d24} - {0a915a90-ba73-4abc-b7c3-f5acec9f952a} - {0dedbb39-c60c-476d-aa88-36e50d09fdfc} - {9dd59c98-b565-4e32-8873-d0c41e452b61} - {43ba7f16-75cc-4157-b401-5b6df597b0b4} - {ccfc9bcc-edea-480a-ac07-0c05646a5eda} - {5531e874-67e5-49bb-abdc-7ac83b125a33} - {398fdf90-7db7-4f59-b7ca-c68fb5513e2e} - {c21922fc-3c9f-4927-affe-3857961c67c0} - {b435091b-c53f-4ea3-9ed5-223f402a82e7} - {2acce1aa-45b9-434d-bd0d-05676ddde292} - {7e796d60-07e9-4daf-b8ad-e42e285dae85} - - - - System.Collections.ArrayList - System.Boolean - {7df88604-7ac5-4e36-91c4-55e4fdad3e68} - {11a86981-4b02-4f98-b432-96e385cb41b7} - {c91fc5aa-1e38-43b2-9a05-c52cc5d7f5b6} - {40d6dd8d-dfd0-493a-8e29-c9a35e1e6539} - System.Guid - {6b108d46-58af-4e41-a3f4-174d8f160cc4} - System.Int32 - System.Int64 - System.String - {19611221-ebd3-4607-86d2-9822fbe84c30} - {c37fe731-4f69-4d98-82fe-4f9aefbe200d} - {997fedbb-1888-4256-b61c-2933d8056bfd} - {4d3fdb8f-ab50-4c35-9d3a-d4bb9bb9a628} - {ec9b2ec6-92a2-4856-be72-7866fb274c64} - - - + + + + + + + Undefined + + + "MainVisu" + false + false + AutoDetect + 2000 + 2000 + false + 50000 + 400000 + false + false + true + "Default, 3.1.5.0 (Beckhoff Automation GmbH)" + 100 + "" + "VisuDialogs.Numpad" + "VisuDialogs.Keypad" + "VisuDialogs.TextinputWithLimits" + false + false + true + true + false + "VisuUserManagement.VUM_Login" + "VisuUserManagement.VUM_ChangePassword" + "VisuUserManagement.VUM_UserManagement" + {00000000-0000-0000-0000-000000000000} + {00000000-0000-0000-0000-000000000000} + true + true + false + "" + + + + FB_Init + c98701bd-1e9f-450a-a2a8-a2474d536f2e + FB_Reinit + 5b6e372a-a69d-40e8-aef7-f470b7c53d95 + FB_Exit + 0be1b9ab-e8eb-4b33-b803-109abb46bde4 + + "NotImportant" + {aa8b7e42-e967-427f-8f2e-f00f9d706470} + + + + 7 + 4096 + "1002 0004" + "1.0.0.4" + {cb73a13e-6ccc-4bc6-8859-f5aa98bb116b} + + + true + 48 + "0" + + + true + 49 + "1" + + + true + 50 + "2" + + + true + 51 + "3" + + + true + 52 + "4" + + + true + 53 + "5" + + + true + 54 + "6" + + + true + 55 + "7" + + + true + 56 + "8" + + + true + 57 + "9" + + + true + 65 + "A" + + + true + 107 + "ADDITION" + + + true + 66 + "B" + + + true + 8 + "BACKSPACE" + + + true + 67 + "C" + + + true + 110 + "COMMA" + + + true + 68 + "D" + + + true + 46 + "DELETE" + + + true + 111 + "DIVIDE" + + + true + 40 + "DOWN" + + + true + 69 + "E" + + + true + 35 + "END" + + + true + 27 + "ESCAPE" + + + true + 70 + "F" + + + true + 112 + "F1" + + + true + 121 + "F10" + + + true + 122 + "F11" + + + true + 123 + "F12" + + + true + 113 + "F2" + + + true + 114 + "F3" + + + true + 115 + "F4" + + + true + 116 + "F5" + + + true + 117 + "F6" + + + true + 118 + "F7" + + + true + 119 + "F8" + + + true + 120 + "F9" + + + true + 71 + "G" + + + true + 72 + "H" + + + true + 36 + "HOME" + + + true + 73 + "I" + + + true + 45 + "INSERT" + + + true + 74 + "J" + + + true + 75 + "K" + + + true + 76 + "L" + + + true + 37 + "LEFT" + + + true + 77 + "M" + + + true + 106 + "MULTIPLY" + + + true + 78 + "N" + + + true + 96 + "NUM0" + + + true + 97 + "NUM1" + + + true + 98 + "NUM2" + + + true + 99 + "NUM3" + + + true + 100 + "NUM4" + + + true + 101 + "NUM5" + + + true + 102 + "NUM6" + + + true + 103 + "NUM7" + + + true + 104 + "NUM8" + + + true + 105 + "NUM9" + + + true + 79 + "O" + + + true + 80 + "P" + + + true + 19 + "PAUSE" + + + true + 42 + "PRINT" + + + true + 81 + "Q" + + + true + 82 + "R" + + + true + 13 + "RETURN_KEY" + + + true + 39 + "RIGHT" + + + true + 83 + "S" + + + true + 32 + "SPACE" + + + true + 109 + "SUBTRACT" + + + true + 84 + "T" + + + true + 9 + "TAB" + + + true + 85 + "U" + + + true + 38 + "UP" + + + true + 86 + "V" + + + true + 87 + "W" + + + true + 88 + "X" + + + true + 89 + "Y" + + + true + 90 + "Z" + + + + + + 481037385728L + 549755813887L + 481037385728L + 549754765312L + 1048576L + + + + + ExecuteLooseCapture + 4e2884cd-dc97-4120-914c-87a83e618f1f + ExecuteMouseUp + 57eea9a5-15d9-4269-bb8d-9fee5420cdb2 + Init + e61a0910-39b6-4bcc-9a64-fcab62230628 + FB_Exit + e6e1ea47-0811-4b03-9888-d0564361e0d6 + ExecuteMouseDblClick + a517a0ac-170b-4df4-b289-55dcb57628ed + GetElementInfo + f64cb89f-3016-4fba-85f5-02efcd4282c1 + ExecuteMouseDown + 94bab392-b395-4c03-9d0e-5738d11bd021 + FB_Reinit + 97933c03-0169-4afe-ac83-de892204e120 + Initialize + 6946d6e0-129f-4425-b8b0-ef98281a99e9 + ExecuteMouseMove + 58fc221c-be14-4e34-871e-a118f8ba9539 + ExecuteDialogClosed + f08d08b6-e70c-4bef-a136-38845bd246d8 + ExecuteKeyUp + 7403635b-2725-4f00-93d4-e0dd125959de + ExecuteKeyDown + 9649ecda-3794-4d6b-a8a7-71e528d9d170 + abstrGetDefaultCursor + 25718998-50a9-408d-8b3f-20a55e2cc784 + ExecuteMouseEnter + 569205fa-533b-4fc2-8d51-21ccab693305 + ExecuteMouseLeave + 3bacea68-55b4-4764-928e-e69910299932 + FB_Init + f37e1250-9b48-45ca-810e-c192ea9440ec + ExecuteMouseClick + cd348bda-7eaf-4dfe-8c4b-bf9b71e5b10c + + "NotImportant" + {073ee466-cf0a-4c8b-ba92-64f671516699} + + + + true + true + + + + + {925c2b24-84d1-469a-954d-7af8b99219ef} + {f905b871-af16-47c5-a6ef-0a0918a8b009} + {d3706fa7-8257-48b3-af0a-cab0afb4dc49} + {4d5d9e0c-fa46-4312-abcd-ab81ecde84e1} + {00a84c7a-9a31-408b-860a-9d896efbd842} + {3ef700b6-44e8-4cfc-b6e0-26bfef38c2b6} + {e2123cf7-55c2-43c4-8135-f70e23d789b6} + {b7fab3e5-7354-42a4-bdf2-bc53461ec63c} + {967863f2-ccef-44e4-a545-05cbd9acb6be} + {f97c4870-0a84-4b7b-9cfd-0059a20bebbd} + {81498829-8b99-4474-8196-a48127c8e5d4} + {71bfd0df-7f34-4abc-b3b9-84bad2430630} + {6695a96b-387d-4f98-b9f1-09dab5b7c483} + {5fe53f14-f5a7-4173-9e2b-538b7d89379a} + {09c26f6e-e9b1-4455-a763-8dfd243af668} + {48451f3d-75f9-48ba-acdb-82d62e000f26} + {8214e061-c2ef-40f5-b519-acfed1ca1cca} + {97cdf6c7-053d-4364-abf2-f17c232375c1} + {30af51e2-0f28-4c98-bb4e-6c7a4ef6b64e} + {9e20996c-a8e0-4843-9524-9317ce5fc512} + {9d656f8b-b228-46a1-8204-ecc426d69d24} + {0a915a90-ba73-4abc-b7c3-f5acec9f952a} + {0dedbb39-c60c-476d-aa88-36e50d09fdfc} + {9dd59c98-b565-4e32-8873-d0c41e452b61} + {43ba7f16-75cc-4157-b401-5b6df597b0b4} + {ccfc9bcc-edea-480a-ac07-0c05646a5eda} + {5531e874-67e5-49bb-abdc-7ac83b125a33} + {398fdf90-7db7-4f59-b7ca-c68fb5513e2e} + {c21922fc-3c9f-4927-affe-3857961c67c0} + {b435091b-c53f-4ea3-9ed5-223f402a82e7} + {2acce1aa-45b9-434d-bd0d-05676ddde292} + {7e796d60-07e9-4daf-b8ad-e42e285dae85} + + + + System.Collections.ArrayList + System.Boolean + {7df88604-7ac5-4e36-91c4-55e4fdad3e68} + {11a86981-4b02-4f98-b432-96e385cb41b7} + {c91fc5aa-1e38-43b2-9a05-c52cc5d7f5b6} + {40d6dd8d-dfd0-493a-8e29-c9a35e1e6539} + System.Guid + {6b108d46-58af-4e41-a3f4-174d8f160cc4} + System.Int32 + System.Int64 + System.String + {19611221-ebd3-4607-86d2-9822fbe84c30} + {c37fe731-4f69-4d98-82fe-4f9aefbe200d} + {997fedbb-1888-4256-b61c-2933d8056bfd} + {4d3fdb8f-ab50-4c35-9d3a-d4bb9bb9a628} + {ec9b2ec6-92a2-4856-be72-7866fb274c64} + + + \ No newline at end of file diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index 903cef5..ac7a216 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -1,403 +1,403 @@ - - - - 1.0.0.0 - 2.0 - {fb261665-fd20-4bf2-97f8-2854c82b752d} - True - tc_project_app - 3.1.4022.6 - {047dee04-c246-47b2-8ccc-a15e36987c43} - {ae4eb5ee-6030-47a6-bf35-5a6afd9efeeb} - {5ef19bd0-aca2-493f-b2a1-89e363647697} - {f52f0efe-1be1-4600-94a9-9aa59fdf8e4e} - {26d08e27-a705-49a9-95de-a3a0b6ea049c} - {577f21c4-8eb2-4f2c-a24e-4c3f62ca96d2} - true - - - - Code - - - Code - true - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - Visualization Manager.TcVMO - - - Code - - - Code - Visualization Manager.TcVMO - - - Code - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VisuElemMeter, 3.5.10.0 (System) - VisuElemMeter - true - 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - - - VisuElems, 3.5.10.20 (System) - VisuElems - true - 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - - - VisuElemsSpecialControls, 3.5.10.0 (System) - VisuElemsSpecialControls - true - 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - - - VisuElemsWinControls, 3.5.10.20 (System) - VisuElemsWinControls - true - 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - - - VisuElemTextEditor, 3.5.10.10 (System) - VisuElemTextEditor - true - 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - - - visuinputs, 3.5.10.0 (system) - visuinputs - true - 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - - - VisuNativeControl, 3.5.10.0 (System) - VisuNativeControl - true - 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - - - Tc2_EtherCAT, * (Beckhoff Automation GmbH) - Tc2_EtherCAT - - - Tc2_MC2, * (Beckhoff Automation GmbH) - Tc2_MC2 - - - Tc2_Standard, * (Beckhoff Automation GmbH) - Tc2_Standard - - - Tc2_System, * (Beckhoff Automation GmbH) - Tc2_System - - - Tc2_Utilities, * (Beckhoff Automation GmbH) - Tc2_Utilities - - - Tc3_MC2_AdvancedHoming, * (Beckhoff Automation GmbH) - Tc3_MC2_AdvancedHoming - - - Tc3_Module, * (Beckhoff Automation GmbH) - Tc3_Module - - - VisuDialogs, * (System) - VisuDialogs - - - - - Content - - - - - - - - "<ProjectRoot>" - - {192FAD59-8248-4824-A8DE-9177C94C195A} - - "{192FAD59-8248-4824-A8DE-9177C94C195A}" - - - - {246001F4-279D-43AC-B241-948EB31120E1} - - "{246001F4-279D-43AC-B241-948EB31120E1}" - - - UnicodeStrings - False - - - {29BD8D0C-3586-4548-BB48-497B9A01693F} - - "{29BD8D0C-3586-4548-BB48-497B9A01693F}" - - Rules - - "Rules" - - - - - - - {8F99A816-E488-41E4-9FA3-846536012284} - - "{8F99A816-E488-41E4-9FA3-846536012284}" - - - - {40450F57-0AA3-4216-96F3-5444ECB29763} - - "{40450F57-0AA3-4216-96F3-5444ECB29763}" - - - ActiveVisuExtensionsLength - 0 - ActiveVisuProfile - "IR0whWr8bwfyBwAAHf+pawAAAABVAgAADnffSgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgAyAC4AMQAwAAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUdgBpAHMAdQBpAG4AcAB1AHQAcwAXDHMAeQBzAHQAZQBtABgYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGSZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABoIYgBvAG8AbAAbIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAcTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAdHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAeFFAAbAB1AGcAaQBuAEcAdQBpAGQAHxZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIEhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAhFFUAcABkAGEAdABlAEkAbgBmAG8AIkx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AIw5VAHAAZABhAHQAZQBzACRMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACVMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACYWTwBiAGoAZQBjAHQAcwBUAHkAcABlACdUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKBBMAGkAYgBUAGkAdABsAGUAKRRMAGkAYgBDAG8AbQBwAGEAbgB5ACoeVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMAKzhTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACwSdgBpAHMAdQBlAGwAZQBtAHMALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAMAAAAFAAAACgAAACgAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAKAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAKAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0W0A8BLRfQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQQAAADQDQEtGNAPAS0Q0BkarQFFGxwB0AAcGgJFHQsEAwAAAAUAAAAKAAAAAAAAANAeHy0g0CEiGgJFIyQC0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60AAAAA0AMBLSfQKAEtEdApAS0Q0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60BAAAA0AMBLSfQKAEtEdApAS0QmiorAUUAAQLQAAEtLNAAAS0X0AAfLS3QLi8aA9AwC60BAAAA0DELrRMAAADQMhqtANAzLxoD0DALrQIAAADQMQutAwAAANAyGq0A0DQarQDQNRqtAA==" - - - - - - - - System.Boolean - System.Collections.Hashtable - System.Int32 - {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} - System.String - - - - + + + + 1.0.0.0 + 2.0 + {fb261665-fd20-4bf2-97f8-2854c82b752d} + True + tc_project_app + 3.1.4022.6 + {047dee04-c246-47b2-8ccc-a15e36987c43} + {ae4eb5ee-6030-47a6-bf35-5a6afd9efeeb} + {5ef19bd0-aca2-493f-b2a1-89e363647697} + {f52f0efe-1be1-4600-94a9-9aa59fdf8e4e} + {26d08e27-a705-49a9-95de-a3a0b6ea049c} + {577f21c4-8eb2-4f2c-a24e-4c3f62ca96d2} + true + + + + Code + + + Code + true + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + Visualization Manager.TcVMO + + + Code + + + Code + Visualization Manager.TcVMO + + + Code + + + Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VisuElemMeter, 3.5.10.0 (System) + VisuElemMeter + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElems, 3.5.10.20 (System) + VisuElems + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElemsSpecialControls, 3.5.10.0 (System) + VisuElemsSpecialControls + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElemsWinControls, 3.5.10.20 (System) + VisuElemsWinControls + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElemTextEditor, 3.5.10.10 (System) + VisuElemTextEditor + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + visuinputs, 3.5.10.0 (system) + visuinputs + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuNativeControl, 3.5.10.0 (System) + VisuNativeControl + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + Tc2_EtherCAT, * (Beckhoff Automation GmbH) + Tc2_EtherCAT + + + Tc2_MC2, * (Beckhoff Automation GmbH) + Tc2_MC2 + + + Tc2_Standard, * (Beckhoff Automation GmbH) + Tc2_Standard + + + Tc2_System, * (Beckhoff Automation GmbH) + Tc2_System + + + Tc2_Utilities, * (Beckhoff Automation GmbH) + Tc2_Utilities + + + Tc3_MC2_AdvancedHoming, * (Beckhoff Automation GmbH) + Tc3_MC2_AdvancedHoming + + + Tc3_Module, * (Beckhoff Automation GmbH) + Tc3_Module + + + VisuDialogs, * (System) + VisuDialogs + + + + + Content + + + + + + + + "<ProjectRoot>" + + {192FAD59-8248-4824-A8DE-9177C94C195A} + + "{192FAD59-8248-4824-A8DE-9177C94C195A}" + + + + {246001F4-279D-43AC-B241-948EB31120E1} + + "{246001F4-279D-43AC-B241-948EB31120E1}" + + + UnicodeStrings + False + + + {29BD8D0C-3586-4548-BB48-497B9A01693F} + + "{29BD8D0C-3586-4548-BB48-497B9A01693F}" + + Rules + + "Rules" + + + + + + + {8F99A816-E488-41E4-9FA3-846536012284} + + "{8F99A816-E488-41E4-9FA3-846536012284}" + + + + {40450F57-0AA3-4216-96F3-5444ECB29763} + + "{40450F57-0AA3-4216-96F3-5444ECB29763}" + + + ActiveVisuExtensionsLength + 0 + ActiveVisuProfile + "IR0whWr8bwfyBwAAHf+pawAAAABVAgAADnffSgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgAyAC4AMQAwAAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUdgBpAHMAdQBpAG4AcAB1AHQAcwAXDHMAeQBzAHQAZQBtABgYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGSZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABoIYgBvAG8AbAAbIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAcTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAdHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAeFFAAbAB1AGcAaQBuAEcAdQBpAGQAHxZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIEhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAhFFUAcABkAGEAdABlAEkAbgBmAG8AIkx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AIw5VAHAAZABhAHQAZQBzACRMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACVMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACYWTwBiAGoAZQBjAHQAcwBUAHkAcABlACdUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKBBMAGkAYgBUAGkAdABsAGUAKRRMAGkAYgBDAG8AbQBwAGEAbgB5ACoeVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMAKzhTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACwSdgBpAHMAdQBlAGwAZQBtAHMALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAMAAAAFAAAACgAAACgAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAKAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAKAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0W0A8BLRfQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQQAAADQDQEtGNAPAS0Q0BkarQFFGxwB0AAcGgJFHQsEAwAAAAUAAAAKAAAAAAAAANAeHy0g0CEiGgJFIyQC0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60AAAAA0AMBLSfQKAEtEdApAS0Q0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60BAAAA0AMBLSfQKAEtEdApAS0QmiorAUUAAQLQAAEtLNAAAS0X0AAfLS3QLi8aA9AwC60BAAAA0DELrRMAAADQMhqtANAzLxoD0DALrQIAAADQMQutAwAAANAyGq0A0DQarQDQNRqtAA==" + + + + + + + + System.Boolean + System.Collections.Hashtable + System.Int32 + {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} + System.String + + + + \ No newline at end of file diff --git a/twincat_version_manager.py b/twincat_version_manager.py index 3483331..5de2274 100644 --- a/twincat_version_manager.py +++ b/twincat_version_manager.py @@ -1,40 +1,40 @@ -import glob -import xml.etree.ElementTree as ET - -VERSION_TAGS = {"**/*.Tc*": "ProductVersion", "**/*.tsproj": "TcVersion"} -CORRECT_VERSION = "3.1.4024.0" - - -def check_versions(): - """ - Checks the Twincat version used to create a file. - It assumes that the version is stored as an attribute on the top element of the file, the attribute names are - listed in VERSION_TAGS. - :return: A dictionary of incorrect files and their version numbers - """ - incorrect_files = dict() - for file_path, version_attrib in VERSION_TAGS.items(): - found_files = glob.glob(file_path, recursive=True) - if not found_files: - raise IOError("ERROR: No files of type {} found".format(file_path)) - for file in found_files: - tree = ET.parse(file) - try: - found_version = tree.getroot().attrib[version_attrib] - if found_version != CORRECT_VERSION: - incorrect_files[file] = found_version - except KeyError: - print("WARNING: No version found for {}".format(file)) - return incorrect_files - - -if __name__ == "__main__": - try: - incorrect_files = check_versions() - for file, version in incorrect_files.items(): - print("ERROR: {} has incorrect version {}, expected version {}".format(file, version, CORRECT_VERSION)) - if incorrect_files: - exit(1) - except IOError as e: - print(e) # Likely no files found - exit(2) +import glob +import xml.etree.ElementTree as ET + +VERSION_TAGS = {"**/*.Tc*": "ProductVersion", "**/*.tsproj": "TcVersion"} +CORRECT_VERSION = "3.1.4024.0" + + +def check_versions(): + """ + Checks the Twincat version used to create a file. + It assumes that the version is stored as an attribute on the top element of the file, the attribute names are + listed in VERSION_TAGS. + :return: A dictionary of incorrect files and their version numbers + """ + incorrect_files = dict() + for file_path, version_attrib in VERSION_TAGS.items(): + found_files = glob.glob(file_path, recursive=True) + if not found_files: + raise IOError("ERROR: No files of type {} found".format(file_path)) + for file in found_files: + tree = ET.parse(file) + try: + found_version = tree.getroot().attrib[version_attrib] + if found_version != CORRECT_VERSION: + incorrect_files[file] = found_version + except KeyError: + print("WARNING: No version found for {}".format(file)) + return incorrect_files + + +if __name__ == "__main__": + try: + incorrect_files = check_versions() + for file, version in incorrect_files.items(): + print("ERROR: {} has incorrect version {}, expected version {}".format(file, version, CORRECT_VERSION)) + if incorrect_files: + exit(1) + except IOError as e: + print(e) # Likely no files found + exit(2) From bfe373e93251b14e6d2772b5d7c767fede72474a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Fri, 6 Dec 2019 10:52:48 +0100 Subject: [PATCH 10/83] .gitattributes: CRLF for all files that need them Improvements of the CRLF handling: When a file is checked out on a drive shared with Linux or MacOS, those OS have different default line endings. Windows uses CRLF, and Linux/Mac use LF. To be able to checkout files under Linux/Mac and to get the same result, mark all known file types with eol=CRLF --- .gitattributes | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) mode change 100644 => 100755 .gitattributes diff --git a/.gitattributes b/.gitattributes old mode 100644 new mode 100755 index a1aec5e..31f31e7 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,18 @@ # end of line conversion CLRF -- LF # Default is auto * text=auto -# -# Shell scripts must be line feed + +# Hidden .git files: CRLF for convenience +.gitattributes text eol=crlf +.gitignore text eol=crlf + +# Shell scripts must be LF *.sh text eol=lf + +# Tc files must be CRLF +*.plcproj text eol=crlf +*.Tc* text eol=crlf +*.tsproj text eol=crlf +*.txt text eol=crlf +*.xml text eol=crlf +*.xti text eol=crlf From 619331cc28c446e5c4094ba3ab6af24d2cfac97a Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 11:11:08 +0100 Subject: [PATCH 11/83] After white space fix? --- solution/solution.tsproj | 134 +++++++++++++++++++++++++++------------ 1 file changed, 92 insertions(+), 42 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 729ffe6..32519b0 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,5 +1,5 @@ - + NCTOPLC_AXIS_REF_STATE @@ -411,7 +411,8 @@ AxisState UDINT - + +]]> + 32 64 @@ -438,7 +440,8 @@ External Setpoint Generation: HomingState UDINT - + +]]> + 32 128 CoupleState UDINT - + +]]> + 32 160 @@ -684,13 +690,13 @@ External Setpoint Generation: NCAXLESTRUCT_TOPLC4 - + - + - + @@ -873,7 +879,7 @@ External Setpoint Generation: - + @@ -907,22 +913,30 @@ External Setpoint Generation: PlcTask Inputs GVL.axes[1].inputs.bLimitFwd - + + + BOOL GVL.axes[1].inputs.bLimitBwd - + + + BOOL GVL.axes[1].inputs.bHomeSensor - + + + BOOL GVL.axes[1].inputs.bEncLAtch - + + + BOOL @@ -930,7 +944,8 @@ External Setpoint Generation: NCTOPLC_AXIS_REF AxisState - + +]]> + HomingState - + +]]> + CoupleState - + +]]> + GVL.axes[2].inputs.bLimitFwd - + + + BOOL GVL.axes[2].inputs.bLimitBwd - + + + BOOL GVL.axes[2].inputs.bHomeSensor - + + + BOOL GVL.axes[2].inputs.bEncLAtch - + + + BOOL @@ -993,7 +1021,8 @@ External Setpoint Generation: NCTOPLC_AXIS_REF AxisState - + +]]> + HomingState - + +]]> + CoupleState - + +]]> + GVL.axes[3].inputs.bLimitFwd - + + + BOOL GVL.axes[3].inputs.bLimitBwd - + + + BOOL GVL.axes[3].inputs.bHomeSensor - + + + BOOL GVL.axes[3].inputs.bEncLAtch - + + + BOOL @@ -1056,7 +1098,8 @@ External Setpoint Generation: NCTOPLC_AXIS_REF AxisState - + +]]> + HomingState - + +]]> + CoupleState - + +]]> + @@ -1099,7 +1147,9 @@ External Setpoint Generation: PlcTask Outputs MAIN.bOutput1 - + + + BOOL From bbfe0ab3e9577cd3ee9c38738d98bd31e8d162c2 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 11:54:52 +0100 Subject: [PATCH 12/83] Commit after updating TwinCAT No code changes modified: solution.sln modified: solution/solution.tsproj modified: solution/tc_project_app/tc_project_app.plcproj --- solution.sln | 32 ++--- solution/solution.tsproj | 134 ++++++------------ .../tc_project_app/tc_project_app.plcproj | 39 ++--- 3 files changed, 78 insertions(+), 127 deletions(-) diff --git a/solution.sln b/solution.sln index 976e55d..1bff69d 100644 --- a/solution.sln +++ b/solution.sln @@ -33,22 +33,6 @@ Global {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) - {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) @@ -65,6 +49,22 @@ Global {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) + {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 32519b0..fd7ee71 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,5 +1,5 @@ - - + + NCTOPLC_AXIS_REF_STATE @@ -411,8 +411,7 @@ AxisState UDINT - - - +]]> 32 64 @@ -440,8 +438,7 @@ External Setpoint Generation: HomingState UDINT - - - +]]> 32 128 CoupleState UDINT - - - +]]> 32 160 @@ -690,13 +684,13 @@ External Setpoint Generation: NCAXLESTRUCT_TOPLC4 - + - + - + @@ -913,30 +907,22 @@ External Setpoint Generation: PlcTask Inputs GVL.axes[1].inputs.bLimitFwd - - - + BOOL GVL.axes[1].inputs.bLimitBwd - - - + BOOL GVL.axes[1].inputs.bHomeSensor - - - + BOOL GVL.axes[1].inputs.bEncLAtch - - - + BOOL @@ -944,8 +930,7 @@ External Setpoint Generation: NCTOPLC_AXIS_REF AxisState - - - +]]> HomingState - - - +]]> CoupleState - - - +]]> GVL.axes[2].inputs.bLimitFwd - - - + BOOL GVL.axes[2].inputs.bLimitBwd - - - + BOOL GVL.axes[2].inputs.bHomeSensor - - - + BOOL GVL.axes[2].inputs.bEncLAtch - - - + BOOL @@ -1021,8 +993,7 @@ External Setpoint Generation: NCTOPLC_AXIS_REF AxisState - - - +]]> HomingState - - - +]]> CoupleState - - - +]]> GVL.axes[3].inputs.bLimitFwd - - - + BOOL GVL.axes[3].inputs.bLimitBwd - - - + BOOL GVL.axes[3].inputs.bHomeSensor - - - + BOOL GVL.axes[3].inputs.bEncLAtch - - - + BOOL @@ -1098,8 +1056,7 @@ External Setpoint Generation: NCTOPLC_AXIS_REF AxisState - - - +]]> HomingState - - - +]]> CoupleState - - - +]]> @@ -1147,9 +1099,7 @@ External Setpoint Generation: PlcTask Outputs MAIN.bOutput1 - - - + BOOL diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index 6c2d7b0..802e8b9 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -14,6 +14,7 @@ {26d08e27-a705-49a9-95de-a3a0b6ea049c} {577f21c4-8eb2-4f2c-a24e-4c3f62ca96d2} true + false @@ -255,43 +256,43 @@ - VisuElemMeter, 3.5.10.0 (System) + VisuElemMeter, 3.5.13.0 (System) VisuElemMeter true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElems, 3.5.10.20 (System) + VisuElems, 3.5.13.21 (System) VisuElems true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElemsSpecialControls, 3.5.10.0 (System) + VisuElemsSpecialControls, 3.5.13.0 (System) VisuElemsSpecialControls true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElemsWinControls, 3.5.10.20 (System) + VisuElemsWinControls, 3.5.13.20 (System) VisuElemsWinControls true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElemTextEditor, 3.5.10.10 (System) + VisuElemTextEditor, 3.5.13.0 (System) VisuElemTextEditor true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - visuinputs, 3.5.10.0 (system) + visuinputs, 3.5.13.0 (system) visuinputs true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuNativeControl, 3.5.10.0 (System) + VisuNativeControl, 3.5.13.0 (System) VisuNativeControl true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae @@ -341,8 +342,8 @@ - - + + "<ProjectRoot>" {192FAD59-8248-4824-A8DE-9177C94C195A} @@ -387,21 +388,21 @@ ActiveVisuExtensionsLength 0 ActiveVisuProfile - "IR0whWr8bwfyBwAAHf+pawAAAABVAgAADnffSgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgAyAC4AMQAwAAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUdgBpAHMAdQBpAG4AcAB1AHQAcwAXDHMAeQBzAHQAZQBtABgYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGSZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABoIYgBvAG8AbAAbIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAcTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAdHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAeFFAAbAB1AGcAaQBuAEcAdQBpAGQAHxZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIEhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAhFFUAcABkAGEAdABlAEkAbgBmAG8AIkx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AIw5VAHAAZABhAHQAZQBzACRMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACVMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACYWTwBiAGoAZQBjAHQAcwBUAHkAcABlACdUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKBBMAGkAYgBUAGkAdABsAGUAKRRMAGkAYgBDAG8AbQBwAGEAbgB5ACoeVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMAKzhTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACwSdgBpAHMAdQBlAGwAZQBtAHMALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAMAAAAFAAAACgAAACgAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAKAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAKAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0W0A8BLRfQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQQAAADQDQEtGNAPAS0Q0BkarQFFGxwB0AAcGgJFHQsEAwAAAAUAAAAKAAAAAAAAANAeHy0g0CEiGgJFIyQC0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60AAAAA0AMBLSfQKAEtEdApAS0Q0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60BAAAA0AMBLSfQKAEtEdApAS0QmiorAUUAAQLQAAEtLNAAAS0X0AAfLS3QLi8aA9AwC60BAAAA0DELrRMAAADQMhqtANAzLxoD0DALrQIAAADQMQutAwAAANAyGq0A0DQarQDQNRqtAA==" + "IR0whWr8bwfwBwAAhiaVXgAAAABVAgAAWdTSaQAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4AMAAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAFQAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAFQAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA=" - - - System.Boolean - System.Collections.Hashtable - System.Int32 - {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} - System.String - - + + + System.Boolean + System.Collections.Hashtable + System.Int32 + {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} + System.String + + \ No newline at end of file From 0772b525ab201a53dc1c9182ae337d352b34a158 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 11:59:42 +0100 Subject: [PATCH 13/83] Update MAIN.TcPOU for TwinCAT version Open MAIN.TcPOU in TwinCAT, add one line, delete it, save it. TwinCAT updates the TwinCAT version number to 3.1.4024.0. No code changes. --- solution/tc_project_app/POUs/MAIN.TcPOU | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 24397d4..8eee2a5 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,5 +1,5 @@  - + Date: Mon, 9 Dec 2019 12:04:08 +0100 Subject: [PATCH 14/83] Fix whitespace damage in MAIN.TcPOU --- solution/tc_project_app/POUs/MAIN.TcPOU | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 8eee2a5..5c22cd3 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -39,7 +39,7 @@ VAR //fbEK1110 : EK1110; (******Startup, Shutdown and UPS********) - eStartUp: (coldStart, readEncRefSys, checkRead, checkFeedbackType, executePosRestore, checkFinished, finsishSetPosition); + eStartUp: (coldStart, readEncRefSys, checkRead, checkFeedbackType, executePosRestore, checkFinished, finsishSetPosition); bColdstartDone : BOOL := FALSE; // First cycle of the PLC after being reset/power cycled bExecuteReadEncRefSys : BOOL := TRUE; tmrRetry : TON; From a9dea34c41bcbcda2dda2d0028dd5d86afa1c034 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 12:25:01 +0100 Subject: [PATCH 15/83] Capitalise variable names of eStartUp No code changes --- solution/tc_project_app/POUs/MAIN.TcPOU | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 5c22cd3..4545be0 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -39,7 +39,7 @@ VAR //fbEK1110 : EK1110; (******Startup, Shutdown and UPS********) - eStartUp: (coldStart, readEncRefSys, checkRead, checkFeedbackType, executePosRestore, checkFinished, finsishSetPosition); + eStartUp: (ColdStart, ReadEncRefSys, CheckRead, CheckFeedbackType, ExecutePosRestore, CheckFinished, FinsishSetPosition); bColdstartDone : BOOL := FALSE; // First cycle of the PLC after being reset/power cycled bExecuteReadEncRefSys : BOOL := TRUE; tmrRetry : TON; @@ -158,16 +158,16 @@ END_FOR IF bColdstartDone = FALSE THEN CASE eStartUp OF - coldStart: // First cycle + ColdStart: // First cycle IF NOT bColdstartDone THEN eStartUp:=eStartUp+1; iRetry:=0; END_IF - readEncRefSys: // Read Enc Ref Sys - incremental or absolute + ReadEncRefSys: // Read Enc Ref Sys - incremental or absolute bExecuteReadEncRefSys:=TRUE; eStartUp:=eStartUp+1; tmrRetry(in:=FALSE); - checkRead: // Check if Enc Ref Sys has been read for all axis -> if not read again + CheckRead: // Check if Enc Ref Sys has been read for all axis -> if not read again tmrRetry(in:=TRUE, pt:=T#100MS); FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = FALSE THEN @@ -182,7 +182,7 @@ IF bColdstartDone = FALSE THEN EXIT; END_IF END_FOR - checkFeedbackType: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore + CheckFeedbackType: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) THEN IF gvl.axes[i].config.iRestorePosition=2 THEN @@ -192,7 +192,7 @@ IF bColdstartDone = FALSE THEN END_IF END_FOR eStartUp:=eStartUp+1; - executePosRestore: // Execute position restore with or without bHome set + ExecutePosRestore: // Execute position restore with or without bHome set FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN CASE GVL.axes[i].config.iRestorePosition OF @@ -202,7 +202,7 @@ IF bColdstartDone = FALSE THEN END_IF END_FOR eStartUp:=eStartUp+1; - checkFinished: // Check set position or direct homing is finished on axes that were opt-in + CheckFinished: // Check set position or direct homing is finished on axes that were opt-in FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN CASE gvl.axes[i].config.iRestorePosition OF @@ -218,7 +218,7 @@ IF bColdstartDone = FALSE THEN END_IF END_FOR eStartUp:=eStartUp+1; - finsishSetPosition: // Reset set position FBs and Finish + FinsishSetPosition: // Reset set position FBs and Finish FOR i:=1 TO gvl_app.axisNum DO fbRestorePosition[i].Execute:=FALSE; END_FOR From 97f4607b7cb3e2543ba671b145cba948b7abeb31 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 13:17:30 +0100 Subject: [PATCH 16/83] Scan the bus --- solution/solution.tsproj | 3186 +++++++++++++++++++++++++++++++++++--- 1 file changed, 3012 insertions(+), 174 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index fd7ee71..fb02273 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,6 +1,622 @@ + + UINTARR2 + 32 + UINT + + 0 + 2 + + + [%u, %u] + [0] + [1] + + + 0x%08x [%u, %u] + . + [0] + [1] + + + 0x%08x (%u) + . + . + + + + NCENCODERSTRUCT_IN2B + 320 + + nDataIn1 + UINTARR2 + 32 + 0 + + + nDataIn2 + UINTARR2 + 32 + 32 + + + nState1 + USINT + 8 + 64 + + + nState2 + USINT + 8 + 72 + + + nState3 + USINT + 8 + 80 + + + nState4 + USINT + + 8 + 88 + + + nDataIn3 + UINTARR2 + 32 + 96 + + + nDataIn4 + UINTARR2 + 32 + 128 + + + nDataIn5 + UINTARR2 + 32 + 160 + + + nDataIn6 + UINTARR2 + 32 + 192 + + + nState5 + USINT + 8 + 224 + + + nState6 + USINT + 8 + 232 + + + nState7 + USINT + 8 + 240 + + + nState8 + USINT + 8 + 248 + + + nDcInputTime + DINT + 32 + 256 + + + nDataIn7 + UINTARR2 + 32 + 288 + + + + NCENCODERSTRUCT_IN + + 96 + + + + + + NCENCODERSTRUCT_OUT2 + 320 + + nDataOut1 + UINTARR2 + 32 + 0 + + + nDataOut2 + UINTARR2 + 32 + 32 + + + nCtrl1 + USINT + 8 + 64 + + + nCtrl2 + USINT + 8 + 72 + + + nCtrl3 + USINT + 8 + 80 + + + nCtrl4 + USINT + 8 + 88 + + + nDataOut3 + UINTARR2 + 32 + 96 + + + nDataOut4 + UINTARR2 + 32 + 128 + + + nDataOut5 + UINTARR2 + 32 + 160 + + + nDataOut6 + UINTARR2 + 32 + 192 + + + nCtrl5 + USINT + 8 + 224 + + + nCtrl6 + USINT + 8 + 232 + + + nCtrl7 + USINT + 8 + 240 + + + nCtrl8 + USINT + 8 + 248 + + + + NCENCODERSTRUCT_OUT + + 96 + + + + + + NCDRIVESTRUCT_IN2 + 320 + + nDataIn1 + UINTARR2 + 32 + 0 + + + nDataIn2 + UINTARR2 + 32 + 32 + + + nState1 + USINT + 8 + 64 + + + nState2 + USINT + 8 + 72 + + + nState3 + USINT + 8 + 80 + + + nState4 + USINT + + 8 + 88 + + + nDataIn3 + UINTARR2 + 32 + 96 + + + nDataIn4 + UINTARR2 + 32 + 128 + + + nDataIn5 + UINTARR2 + 32 + 160 + + + nDataIn6 + UINTARR2 + 32 + 192 + + + nState5 + USINT + 8 + 224 + + + nState6 + USINT + 8 + 232 + + + nState7 + USINT + 8 + 240 + + + nState8 + USINT + 8 + 248 + + + nDcOutputTime + DINT + 32 + 256 + + + + NCDRIVESTRUCT_IN + + 96 + + + + + + NCDRIVESTRUCT_OUT2 + 320 + + nDataOut1 + UINTARR2 + 32 + 0 + + + nDataOut2 + UINTARR2 + 32 + 32 + + + nCtrl1 + USINT + 8 + 64 + + + nCtrl2 + USINT + 8 + 72 + + + nCtrl3 + USINT + 8 + 80 + + + nCtrl4 + USINT + 8 + 88 + + + nDataOut3 + UINTARR2 + 32 + 96 + + + nDataOut4 + UINTARR2 + 32 + 128 + + + nDataOut5 + UINTARR2 + 32 + 160 + + + nDataOut6 + UINTARR2 + 32 + 192 + + + nCtrl5 + USINT + 8 + 224 + + + nCtrl6 + USINT + 8 + 232 + + + nCtrl7 + USINT + 8 + 240 + + + nCtrl8 + USINT + 8 + 248 + + + + NCDRIVESTRUCT_OUT + + 96 + + + + + + PLCTONC_AXIS_REF_CTRL + 32 + + Enable + BIT + 1 + 0 + + + FeedEnablePlus + BIT + 1 + 1 + + + FeedEnableMinus + BIT + 1 + 2 + + + HomingSensor + BIT + 1 + 5 + + + AcceptBlockedDrive + BIT + 1 + 8 + + + PlcDebugFlag + BIT + 1 + 30 + + + NcDebugFlag + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + + + + PLCTONC_AXIS_REF + 1024 + + ControlDWord + PLCTONC_AXIS_REF_CTRL + 32 + 0 + + + Override + UDINT + 32 + 32 + + + AxisModeRequest + UDINT + 32 + 64 + + + AxisModeDWord + UDINT + 32 + 96 + + + AxisModeLReal + LREAL + 64 + 128 + + + PositionCorrection + LREAL + 64 + 192 + + + ExtSetPos + LREAL + 64 + 256 + + + ExtSetVelo + LREAL + 64 + 320 + + + ExtSetAcc + LREAL + 64 + 384 + + + ExtSetDirection + DINT + 32 + 448 + + + ExtControllerOutput + LREAL + 64 + 512 + + + GearRatio1 + LREAL + 64 + 576 + + + GearRatio2 + LREAL + 64 + 640 + + + GearRatio3 + LREAL + 64 + 704 + + + GearRatio4 + LREAL + 64 + 768 + + + MapState + BOOL + 8 + 832 + + + PlcCycleControl + BYTE + 8 + 840 + + + PlcCycleCount + BYTE + 8 + 848 + + + + NcStructType + 1 + + + + + NCAXLESTRUCT_FROMPLC3 + + + NCTOPLC_AXIS_REF_STATE 32 @@ -695,184 +1311,104 @@ External Setpoint Generation: - PLCTONC_AXIS_REF_CTRL - 32 - - Enable - BIT - 1 - 0 - - - FeedEnablePlus - BIT - 1 - 1 - - - FeedEnableMinus - BIT - 1 - 2 - - - HomingSensor - BIT - 1 - 5 - - - AcceptBlockedDrive - BIT - 1 - 8 - - - PlcDebugFlag - BIT - 1 - 30 - - - NcDebugFlag - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - + ARRAY [0..0] OF BYTE + 8 + BYTE + + 0 + 1 + - PLCTONC_AXIS_REF - 1024 - - ControlDWord - PLCTONC_AXIS_REF_CTRL - 32 - 0 - - - Override - UDINT - 32 - 32 - - - AxisModeRequest - UDINT - 32 - 64 - - - AxisModeDWord - UDINT - 32 - 96 - - - AxisModeLReal - LREAL - 64 - 128 - - - PositionCorrection - LREAL - 64 - 192 - - - ExtSetPos - LREAL - 64 - 256 - - - ExtSetVelo - LREAL - 64 - 320 - - - ExtSetAcc - LREAL - 64 - 384 - - - ExtSetDirection - DINT - 32 - 448 - - - ExtControllerOutput - LREAL - 64 - 512 - - - GearRatio1 - LREAL - 64 - 576 - - - GearRatio2 - LREAL - 64 - 640 - - - GearRatio3 - LREAL - 64 - 704 - - - GearRatio4 - LREAL - 64 - 768 - - - MapState - BOOL - 8 - 832 - - - PlcCycleControl - BYTE - 8 - 840 - - - PlcCycleCount - BYTE - 8 - 848 - - - - NcStructType - 1 - - - - - NCAXLESTRUCT_FROMPLC3 - - + ARRAY [0..3] OF BIT + 4 + BIT + + 0 + 4 + + + + ARRAY [0..5] OF BIT + 6 + BIT + + 0 + 6 + + + + ARRAY [0..1] OF BYTE + 16 + BYTE + + 0 + 2 + + + + ARRAY [0..1] OF BIT + 2 + BIT + + 0 + 2 + + + + ARRAY [0..0] OF BIT + 1 + BIT + + 0 + 1 + + + + ARRAY [0..2] OF BIT + 3 + BIT + + 0 + 3 + + + + ARRAY [0..11] OF BIT + 12 + BIT + + 0 + 12 + + + + ARRAY [0..13] OF BIT + 14 + BIT + + 0 + 14 + + + + ARRAY [0..12] OF BIT + 13 + BIT + + 0 + 13 + + + 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ff808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff + 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000120b0000120b00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff + 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000000000ff00ffff00ffff00ff000000ff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ff000000ff00ff000000ff00ff000000ff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff000000000000ff00ff000000000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff + 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff + 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c00000000000000000000000000000000000000000000000ffc0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080 + 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff + @@ -889,6 +1425,457 @@ External Setpoint Generation: + + + + NC-Task 1 SAF + + Inputs + + + Outputs + + + Image + + + + NC-Task 1 SVB + + + Axis 1 + + + + + + + + + Inputs + + In + NCENCODERSTRUCT_IN2B + 1024 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + nDataIn7 + + + + + Outputs + + Out + NCENCODERSTRUCT_OUT2 + 2048 + + nDataOut1 + + + nDataOut2 + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + + Inputs + + In + NCDRIVESTRUCT_IN2 + 1344 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + + + Outputs + + Out + NCDRIVESTRUCT_OUT2 + 2368 + + nDataOut1 + + + nDataOut2 + + + nCtrl2 + + + + nCtrl3 + + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + + Inputs + + FromPlc + PLCTONC_AXIS_REF + + + + Outputs + + ToPlc + NCTOPLC_AXIS_REF + + AxisState + + + + HomingState + + + + CoupleState + + + + + + + Axis 2 + + + + + + + + + Inputs + + In + NCENCODERSTRUCT_IN2B + 2688 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + nDataIn7 + + + + + Outputs + + Out + NCENCODERSTRUCT_OUT2 + 4736 + + nDataOut1 + + + nDataOut2 + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + + Inputs + + In + NCDRIVESTRUCT_IN2 + 3008 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + + + Outputs + + Out + NCDRIVESTRUCT_OUT2 + 5056 + + nDataOut1 + + + nDataOut2 + + + nCtrl2 + + + + nCtrl3 + + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + + Inputs + + FromPlc + PLCTONC_AXIS_REF + 1664 + + + + Outputs + + ToPlc + NCTOPLC_AXIS_REF + 2688 + + AxisState + + + + HomingState + + + + CoupleState + + + + + + + @@ -1121,5 +2108,1856 @@ External Setpoint Generation: + + + Device 1 (EtherCAT) + + +
-801112064
+ 131072 + 8192 + 0 + 3 + 0 + 5612 + 20480 + +
0
+ 4096 + 256 + 2 + 0 + 1 +
+ + 498694182 + 1 + 256 + +
+
+ + Image + + + Term 1 (EK1200) + 1000 + + + Term 2 (EL1018) + 7 + + 001001000000010004000000000000000100001000010000 + 0000000000000000001000010100000002000000000000000000000000000000 + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + + Term 3 (EL2808) + 1001 + + 000f01004400010003000000010001000100000f44090000 + 0000000000000000000f00020100000001000000000000000000000000000000 + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + BIT + + + + + + Term 4 (EL5101) + 1002 + + 001830002600010001000000300030003000001826010000 + 801830002200010002000000300030003000801822010000 + 001004002400010003000000000000000300001024010000 + 001106002000010004000000000000000500001120010000 + 0000000000000000001000020100000001000000000000000000000000000000 + 0000000000000000001100010100000002000000000000000000000000000000 + 00000000000000000d0800010100000003000000000000000000000000000000 + 0010f400f410f400 + 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000020030100000000000000000000000000000000000000000000000000000000000000 + 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000000000000000000000000020030100000000000000000001000000000000000000000000000000000000000000 + + #x1a01 + #x1a03 + #x1a04 + #x1a05 + #x1a06 + #x1a07 + #x1a08 + + USINT + + + UINT + + + UINT + + + + #x1a00 + #x1a03 + #x1a04 + #x1a05 + #x1a06 + #x1a07 + #x1a08 + + USINT + + + ARRAY [0..0] OF BYTE + + + UINT + + + UINT + + + + #x1a03 + #x1a04 + #x1a05 + #x1a06 + #x1a07 + #x1a08 + + UDINT + + + UINT + + + UINT + + + + #x1a04 + #x1a00 + #x1a01 + #x1a02 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + UINT + + + UINT + + + + #x1a03 + #x1a00 + #x1a01 + #x1a02 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + UDINT + + + UDINT + + + + #x1a00 + #x1a01 + #x1a02 + #x1a06 + + UDINT + + + + #x1a00 + #x1a01 + #x1a02 + #x1a05 + + UDINT + + + + #x1a08 + #x1a00 + #x1a01 + #x1a02 + + ULINT + + + + #x1a07 + #x1a00 + #x1a01 + #x1a02 + + UDINT + + + + #x1601 + #x1602 + #x1603 + + USINT + + + UINT + + + + #x1600 + #x1602 + #x1603 + + USINT + + + ARRAY [0..0] OF BYTE + + + UINT + + + + #x1603 + #x1600 + #x1601 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..3] OF BIT + + + ARRAY [0..0] OF BYTE + + + UINT + + + + #x1602 + #x1600 + #x1601 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..3] OF BIT + + + ARRAY [0..0] OF BYTE + + + UDINT + + + + + + + + Term 5 (EL5101) + 1002 + + 001830002600010001000000300030003000001826010000 + 801830002200010002000000300030003000801822010000 + 001004002400010003000000000000000300001024010000 + 001106002000010004000000000000000500001120010000 + 0000000000000000001000020100000001000000000000000000000000000000 + 0000000000000000001100010100000002000000000000000000000000000000 + 00000000000000000d0800010100000003000000000000000000000000000000 + 0010f400f410f400 + 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000020030100000000000000000000000000000000000000000000000000000000000000 + 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000000000000000000000000020030100000000000000000001000000000000000000000000000000000000000000 + + #x1a01 + #x1a03 + #x1a04 + #x1a05 + #x1a06 + #x1a07 + #x1a08 + + USINT + + + UINT + + + UINT + + + + #x1a00 + #x1a03 + #x1a04 + #x1a05 + #x1a06 + #x1a07 + #x1a08 + + USINT + + + ARRAY [0..0] OF BYTE + + + UINT + + + UINT + + + + #x1a03 + #x1a04 + #x1a05 + #x1a06 + #x1a07 + #x1a08 + + UDINT + + + UINT + + + UINT + + + + #x1a04 + #x1a00 + #x1a01 + #x1a02 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + UINT + + + UINT + + + + #x1a03 + #x1a00 + #x1a01 + #x1a02 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + UDINT + + + UDINT + + + + #x1a00 + #x1a01 + #x1a02 + #x1a06 + + UDINT + + + + #x1a00 + #x1a01 + #x1a02 + #x1a05 + + UDINT + + + + #x1a08 + #x1a00 + #x1a01 + #x1a02 + + ULINT + + + + #x1a07 + #x1a00 + #x1a01 + #x1a02 + + UDINT + + + + #x1601 + #x1602 + #x1603 + + USINT + + + UINT + + + + #x1600 + #x1602 + #x1603 + + USINT + + + ARRAY [0..0] OF BYTE + + + UINT + + + + #x1603 + #x1600 + #x1601 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..3] OF BIT + + + ARRAY [0..0] OF BYTE + + + UINT + + + + #x1602 + #x1600 + #x1601 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..3] OF BIT + + + ARRAY [0..0] OF BYTE + + + UDINT + + + + + + + + Term 6 (EL9505) + 1003 + + 001001000000010004000000000000000000001000000000 + 0000000000000000001000010100000002000000000000000000000000000000 + + + BIT + + + BIT + + + + + + Term 7 (EL1252-0050) + 7 + + 001001002000010004000000000000000100001022010000 + ae0922000000000004000000000000000000ae0900040000 + 100900000000000004000000000000000000100900040000 + 0000000000000000001000010100000002000000060000000000000000000000 + 0000000000000000ae0900010100000002000000060000000100000000000000 + 0000000000000000100900010000000002000000060000000200000000000000 + 0001000000000000000000000000000000000000000000000000000000000000 + 44634c617463680000000000000000004443204c617463682053657474696e6773000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000 + + + BIT + + + + + BIT + + + ARRAY [0..5] OF BIT + + + + + #x1a11 + #x1a12 + #x1a13 + #x1a16 + + USINT + + + USINT + + + + #x1a10 + #x1a12 + #x1a13 + #x1a16 + + USINT + + + ARRAY [0..0] OF BYTE + + + UDINT + + + + #x1a10 + #x1a11 + #x1a13 + #x1a16 + + USINT + + + ARRAY [0..0] OF BYTE + + + ULINT + + + ULINT + + + + #x1a10 + #x1a11 + #x1a12 + #x1a16 + + USINT + + + USINT + + + ULINT + + + ULINT + + + ULINT + + + ULINT + + + + #x1a15 + + UDINT + + + + #x1a14 + + ULINT + + + + #x1a10 + #x1a11 + #x1a12 + #x1a13 + + ARRAY [0..1] OF BYTE + + + ULINT + + + ULINT + + + ULINT + + + ULINT + + + + + + + + Term 8 (EL7037) + 1004 + + 001080002600010001000000400080008000001026010000 + 801080002200010002000000400080008000801022010000 + 001108002400010003000000000000000800001124010000 + 801108002000010004000000000000000800801120010000 + 0000000000000000001100020100000001000000000000000000000000000000 + 0000000000000000801100010100000002000000000000000000000000000000 + 00000000000000000d0800010100000003000000000000000000000000000000 + 0010f400f410f400 + 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000 + 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000130000 + 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000 + + #x1a01 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..1] OF BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + UINT + + + UINT + + + + #x1a00 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..1] OF BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + UDINT + + + UDINT + + + + + UDINT + + + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..2] OF BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + + + UINT + + + UINT + + + + + INT + + + + #x1a07 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BYTE + + + + #x1a06 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BYTE + + + UDINT + + + INT + + + UDINT + + + + + UDINT + + + + + UDINT + + + + + DINT + + + + #x1601 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..11] OF BIT + + + UINT + + + + #x1600 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..11] OF BIT + + + UDINT + + + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BYTE + + + BIT + + + ARRAY [0..3] OF BIT + + + + #x1604 + #x1605 + #x1606 + + UDINT + + + + #x1603 + #x1605 + #x1606 + + INT + + + + #x1603 + #x1604 + #x1606 + + BIT + + + BIT + + + ARRAY [0..13] OF BIT + + + UDINT + + + + #x1603 + #x1604 + #x1605 + + BIT + + + BIT + + + ARRAY [0..13] OF BIT + + + UDINT + + + INT + + + UINT + + + UINT + + + UINT + + + + #x1603 + #x1604 + #x1605 + + ARRAY [0..1] OF BIT + + + BIT + + + ARRAY [0..12] OF BIT + + + UDINT + + + INT + + + UINT + + + UINT + + + UINT + + + + + + + + + Term 9 (EL7037) + 1004 + + 001080002600010001000000400080008000001026010000 + 801080002200010002000000400080008000801022010000 + 001108002400010003000000000000000800001124010000 + 801108002000010004000000000000000800801120010000 + 0000000000000000001100020100000001000000000000000000000000000000 + 0000000000000000801100010100000002000000000000000000000000000000 + 00000000000000000d0800010100000003000000000000000000000000000000 + 0010f400f410f400 + 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000 + 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000130000 + 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000 + + #x1a01 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..1] OF BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + UINT + + + UINT + + + + #x1a00 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..1] OF BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + UDINT + + + UDINT + + + + + UDINT + + + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..2] OF BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BIT + + + BIT + + + + + UINT + + + UINT + + + + + INT + + + + #x1a07 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BYTE + + + + #x1a06 + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BYTE + + + UDINT + + + INT + + + UDINT + + + + + UDINT + + + + + UDINT + + + + + DINT + + + + #x1601 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..11] OF BIT + + + UINT + + + + #x1600 + + BIT + + + BIT + + + BIT + + + BIT + + + ARRAY [0..11] OF BIT + + + UDINT + + + + + BIT + + + BIT + + + BIT + + + ARRAY [0..0] OF BYTE + + + BIT + + + ARRAY [0..3] OF BIT + + + + #x1604 + #x1605 + #x1606 + + UDINT + + + + #x1603 + #x1605 + #x1606 + + INT + + + + #x1603 + #x1604 + #x1606 + + BIT + + + BIT + + + ARRAY [0..13] OF BIT + + + UDINT + + + + #x1603 + #x1604 + #x1605 + + BIT + + + BIT + + + ARRAY [0..13] OF BIT + + + UDINT + + + INT + + + UINT + + + UINT + + + UINT + + + + #x1603 + #x1604 + #x1605 + + ARRAY [0..1] OF BIT + + + BIT + + + ARRAY [0..12] OF BIT + + + UDINT + + + INT + + + UINT + + + UINT + + + UINT + + + + + + + + + Term 10 (EL9011) + 1005 + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
From 82c00f9999c76febfa4e47db7dd1274a1c58463f Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 13:19:38 +0100 Subject: [PATCH 17/83] Link PLC axes 1 & 2 to motion axes 1 & 2 --- solution/solution.tsproj | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index fb02273..8d9467c 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -3959,5 +3959,15 @@ External Setpoint Generation: + + + + + + + + + +
From d36efd414d76ccb4247a0a71201755f9d1e87141 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 13:25:06 +0100 Subject: [PATCH 18/83] Create bOutput5 for axis 2 switches --- solution/solution.tsproj | 8 ++++++++ solution/tc_project_app/POUs/MAIN.TcPOU | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 8d9467c..7be7a3b 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -2101,6 +2101,13 @@ External Setpoint Generation: GVL.axes[3].Axis.PlcToNc PLCTONC_AXIS_REF + + MAIN.bOutput5 + + BOOL + @@ -3871,6 +3878,7 @@ External Setpoint Generation:
+ diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 4545be0..ff1b15c 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -14,7 +14,7 @@ VAR //bOutput2 AT %Q*: BOOL:= TRUE; //bOutput3 AT %Q*: BOOL:= TRUE; //bOutput4 AT %Q*: BOOL:= TRUE; - //bOutput5 AT %Q*: BOOL:= TRUE; + bOutput5 AT %Q*: BOOL:= TRUE; //bOutput6 AT %Q*: BOOL:= TRUE; //bOutput7 AT %Q*: BOOL:= TRUE; //bOutput8 AT %Q*: BOOL:= TRUE; From 5fe5abbbf335830311e73319a743aaf9ed430e33 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 13:27:22 +0100 Subject: [PATCH 19/83] Link bOutput1 and bOutput5 to hardware --- solution/solution.tsproj | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 7be7a3b..a53dc4d 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -2146,6 +2146,9 @@ bOutput4 AT %Q*: BOOL:= TRUE;]]> Image + + Image-2 + Term 1 (EK1200) 1000 @@ -3968,6 +3971,10 @@ bOutput4 AT %Q*: BOOL:= TRUE;]]> + + + + From c8775e5ae5e0ff0f6b21dd9f7e38441de7a5cc73 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 13:29:28 +0100 Subject: [PATCH 20/83] Create bOutput 2,3,6,7 for switches in MAIN.TcPOU modified: solution/solution.tsproj modified: solution/tc_project_app/POUs/MAIN.TcPOU --- solution/solution.tsproj | 21 ++++++++++++++++++--- solution/tc_project_app/POUs/MAIN.TcPOU | 8 ++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index a53dc4d..a2dbbe9 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -2101,11 +2101,25 @@ External Setpoint Generation: GVL.axes[3].Axis.PlcToNc PLCTONC_AXIS_REF + + MAIN.bOutput2 + BOOL + + + MAIN.bOutput3 + BOOL + MAIN.bOutput5 - + + BOOL + + + MAIN.bOutput6 + BOOL + + + MAIN.bOutput7 BOOL @@ -3880,6 +3894,7 @@ bOutput4 AT %Q*: BOOL:= TRUE;]]> + diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index ff1b15c..eac19ba 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -11,12 +11,12 @@ VAR (******Outputs: Power for Limit switches and Home Sensors (every 4th output)********) bOutput1 AT %Q*: BOOL:= TRUE; - //bOutput2 AT %Q*: BOOL:= TRUE; - //bOutput3 AT %Q*: BOOL:= TRUE; + bOutput2 AT %Q*: BOOL:= TRUE; + bOutput3 AT %Q*: BOOL:= TRUE; //bOutput4 AT %Q*: BOOL:= TRUE; bOutput5 AT %Q*: BOOL:= TRUE; - //bOutput6 AT %Q*: BOOL:= TRUE; - //bOutput7 AT %Q*: BOOL:= TRUE; + bOutput6 AT %Q*: BOOL:= TRUE; + bOutput7 AT %Q*: BOOL:= TRUE; //bOutput8 AT %Q*: BOOL:= TRUE; //bOutput9 AT %Q*: BOOL:= TRUE; //bOutput13 AT %Q*: BOOL:= TRUE; From 8b2779fe61e9bda2d33602495792a5f849734061 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 13:32:10 +0100 Subject: [PATCH 21/83] Link boutput 2,3,6,7 to the hardware --- solution/solution.tsproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index a2dbbe9..47e214b 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -3988,7 +3988,11 @@ External Setpoint Generation: + + + + From f36a636a4e815a17da413b818cc9e13a0d1069b2 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 14:05:32 +0100 Subject: [PATCH 22/83] Link hardware inputs to bLimitFwd, bLimitBwd, bLimitHome Done for both axis 1 and 2. --- solution/solution.tsproj | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 47e214b..dd61ed2 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -3986,6 +3986,14 @@ External Setpoint Generation: + + + + + + + + From b7ae38ad86d85fd6062639646df3b935bcdde9bc Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 14:16:51 +0100 Subject: [PATCH 23/83] Change link of encoder for axis 1 and 2 to hardware terminals --- solution/solution.tsproj | 58 ++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index dd61ed2..c90b569 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -3898,6 +3898,33 @@ External Setpoint Generation: + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3918,6 +3945,10 @@ External Setpoint Generation: + + + + @@ -3925,12 +3956,16 @@ External Setpoint Generation: + + + + @@ -3940,8 +3975,6 @@ External Setpoint Generation: - - @@ -3962,27 +3995,6 @@ External Setpoint Generation: - - - - - - - - - - - - - - - - - - - - - From 35eb7a5261c5f680ea7e02c130414146a425a65e Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 14:30:44 +0100 Subject: [PATCH 24/83] Change encoder scaling factor to num=60 and den=1000 Done for axis 1 and 2 --- solution/solution.tsproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index c90b569..d567ed2 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1448,7 +1448,7 @@ External Setpoint Generation: - + @@ -1663,7 +1663,7 @@ External Setpoint Generation: - + From 173400e7f0769b877fbef6d793e102a24e01eeb5 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 14:41:16 +0100 Subject: [PATCH 25/83] Change Reference Velocity to 600 Changed for axis 1 and 2 --- solution/solution.tsproj | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index d567ed2..afa0b59 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1320,7 +1320,7 @@ External Setpoint Generation: - ARRAY [0..3] OF BIT + ARRAY [0..3] OF BIT 4 BIT @@ -1347,7 +1347,7 @@ External Setpoint Generation: - ARRAY [0..1] OF BIT + ARRAY [0..1] OF BIT 2 BIT @@ -1356,7 +1356,7 @@ External Setpoint Generation: - ARRAY [0..0] OF BIT + ARRAY [0..0] OF BIT 1 BIT @@ -1374,7 +1374,7 @@ External Setpoint Generation: - ARRAY [0..11] OF BIT + ARRAY [0..11] OF BIT 12 BIT @@ -1383,7 +1383,7 @@ External Setpoint Generation: - ARRAY [0..13] OF BIT + ARRAY [0..13] OF BIT 14 BIT @@ -1392,7 +1392,7 @@ External Setpoint Generation: - ARRAY [0..12] OF BIT + ARRAY [0..12] OF BIT 13 BIT @@ -1516,7 +1516,7 @@ External Setpoint Generation: - + @@ -1731,7 +1731,7 @@ External Setpoint Generation: - + @@ -2089,18 +2089,6 @@ External Setpoint Generation: BOOL - - GVL.axes[1].Axis.PlcToNc - PLCTONC_AXIS_REF - - - GVL.axes[2].Axis.PlcToNc - PLCTONC_AXIS_REF - - - GVL.axes[3].Axis.PlcToNc - PLCTONC_AXIS_REF - MAIN.bOutput2 BOOL @@ -2122,6 +2110,18 @@ External Setpoint Generation: MAIN.bOutput7 BOOL + + GVL.axes[1].Axis.PlcToNc + PLCTONC_AXIS_REF + + + GVL.axes[2].Axis.PlcToNc + PLCTONC_AXIS_REF + + + GVL.axes[3].Axis.PlcToNc + PLCTONC_AXIS_REF + From 57aa137e4ee8a95224a04f7d6420eee5c11e7ffe Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 14:43:50 +0100 Subject: [PATCH 26/83] Change encoder scaling factor denominator to 2000 Done for axis 1 and 2 --- solution/solution.tsproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index afa0b59..0caf110 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1448,7 +1448,7 @@ External Setpoint Generation: - + @@ -1663,7 +1663,7 @@ External Setpoint Generation: - + From dd4cfbe34b681380efadcb5e23505d36fddc450e Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 14:49:00 +0100 Subject: [PATCH 27/83] Set dynamic parameters for Axis 1 and 2 --- solution/solution.tsproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 0caf110..4c7b791 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1445,6 +1445,8 @@ External Setpoint Generation: Axis 1 + + @@ -1660,6 +1662,8 @@ External Setpoint Generation: Axis 2 + + From ad48a4c1612c4080d6241ac2c148556bbb932e6b Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 14:57:14 +0100 Subject: [PATCH 28/83] Invert encoder counting direction on axis 2 --- solution/solution.tsproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 4c7b791..eb8fc85 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1667,7 +1667,7 @@ External Setpoint Generation: - + From f59a9dfccf1219e351978ab784c2f706a0c0b735 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 9 Dec 2019 15:02:05 +0100 Subject: [PATCH 29/83] Invert motor polarity for axis 1 --- solution/solution.tsproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index eb8fc85..7551415 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1517,9 +1517,10 @@ External Setpoint Generation: - + + 6 Inputs From c6cac2ce7c48257948b05c8bd8edcdffc22ca02f Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 10 Dec 2019 10:26:57 +0100 Subject: [PATCH 30/83] Set monitoring parameters E.g. position lag, target position etc. Done for axis 1 and 2. --- solution/solution.tsproj | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 7551415..fdf33f8 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1447,7 +1447,14 @@ External Setpoint Generation: + + + 22 + 19 + 16 + 18 + 23 @@ -1520,7 +1527,6 @@ External Setpoint Generation: - 6 Inputs @@ -1603,6 +1609,7 @@ Drive Status 4 (manually linked): + @@ -1665,7 +1672,14 @@ External Setpoint Generation: + + + 22 + 19 + 16 + 18 + 23 @@ -1820,6 +1834,7 @@ Drive Status 4 (manually linked): + From c49d1d0fafe7adb2f568d060e5505c161a2d43c2 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 10 Dec 2019 10:37:08 +0100 Subject: [PATCH 31/83] Increase homing and jog speeds For axis 1 and 2 --- solution/solution.tsproj | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index fdf33f8..b3bdc09 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1446,15 +1446,10 @@ External Setpoint Generation: Axis 1 - + - 22 - 19 - 16 - 18 - 23 @@ -1671,15 +1666,10 @@ External Setpoint Generation: Axis 2 - + - 22 - 19 - 16 - 18 - 23 From d88816156a1b4a983322a883e1dfe8349ab47da8 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 10 Dec 2019 11:37:34 +0100 Subject: [PATCH 32/83] Change to variable in axis struct for restore of incremental enc values on lose of power Change iPositionRestore to ePosition restore. Change from int to enum. --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 0bca79b..4d01140 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 0bca79b3b4357b07024050e65514caa9365afabf +Subproject commit 4d01140cfac01aa1603fbc8d6614698569f6fbd5 From f7906d265a2cad8a629684a64c4a3a1cb6f981cb Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 10 Dec 2019 11:39:00 +0100 Subject: [PATCH 33/83] Readability change, make case statements easier to read No code changes --- solution/tc_project_app/POUs/MAIN.TcPOU | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index eac19ba..070885c 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -74,7 +74,9 @@ ERROR();]]>
- @@ -185,7 +188,7 @@ IF bColdstartDone = FALSE THEN CheckFeedbackType: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) THEN - IF gvl.axes[i].config.iRestorePosition=2 THEN + IF gvl.axes[i].config.eRestorePosition=2 THEN gvl.axes[i].config.nHomeSeq:=15; gvl.axes[i].control.eCommand:=10; END_IF @@ -195,9 +198,9 @@ IF bColdstartDone = FALSE THEN ExecutePosRestore: // Execute position restore with or without bHome set FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN - CASE GVL.axes[i].config.iRestorePosition OF - 1: fbRestorePosition[i].Execute:=TRUE; - 2: gvl.axes[i].control.bExecute:=TRUE; + CASE GVL.axes[i].config.eRestorePosition OF + 1: fbRestorePosition[i].Execute:=TRUE; + 2: gvl.axes[i].control.bExecute:=TRUE; END_CASE END_IF END_FOR @@ -205,12 +208,12 @@ IF bColdstartDone = FALSE THEN CheckFinished: // Check set position or direct homing is finished on axes that were opt-in FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN - CASE gvl.axes[i].config.iRestorePosition OF - 1: + CASE gvl.axes[i].config.eRestorePosition OF + 1: IF NOT fbRestorePosition[i].Done THEN RETURN; END_IF - 2: + 2: IF NOT gvl.axes[i].status.bHomed THEN RETURN; END_IF @@ -236,6 +239,8 @@ END_IF]]> + + @@ -263,6 +268,7 @@ END_IF]]> + From dbd145ed687dbfc04d78c96753ff881dd97ca27c Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 10 Dec 2019 12:49:37 +0100 Subject: [PATCH 34/83] Add DUT RestorePosition in tc_mca_std_lib Also adjusted code in MAIN.STARTUP to adapt to the new type variable instead of the int previously. --- solution/tc_project_app/POUs/MAIN.TcPOU | 15 ++++++----- solution/tc_project_app/tc_mca_std_lib | 2 +- .../tc_project_app/tc_project_app.plcproj | 25 +++++++++++-------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 070885c..5eba679 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -74,8 +74,8 @@ ERROR();]]> - - - + diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 4d01140..9e31e77 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 4d01140cfac01aa1603fbc8d6614698569f6fbd5 +Subproject commit 9e31e77d29dd6c4156bdbaf8d34e774eee53748c diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index 802e8b9..10ff279 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -30,6 +30,9 @@ Code + + Code + Code @@ -342,8 +345,8 @@ - - + + "<ProjectRoot>" {192FAD59-8248-4824-A8DE-9177C94C195A} @@ -394,15 +397,15 @@ - - - System.Boolean - System.Collections.Hashtable - System.Int32 - {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} - System.String - - + + + System.Boolean + System.Collections.Hashtable + System.Int32 + {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} + System.String + + \ No newline at end of file From ac37748fbe6375a0675101f2fc1dad6509297cba Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 10 Dec 2019 13:27:05 +0100 Subject: [PATCH 35/83] Add comments to MAIN.STARTUP Slight tidy of code but no structural changes. --- solution/tc_project_app/POUs/MAIN.TcPOU | 67 +++++++++++++++++++------ 1 file changed, 51 insertions(+), 16 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 5eba679..b2e3e5b 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -143,7 +143,20 @@ END_FOR]]> - ReadMode:= E_READMODE.READMODE_ONCE); END_FOR +// Cycle through set position function blocks for each axis +// Only axes with RestorePosition=RestoreWithoutHome (mode 1) will be utilised FOR i:=1 TO gvl_app.axisNum DO fbRestorePosition[i]( Axis:= gvl.axes[i].Axis, @@ -159,19 +174,21 @@ FOR i:=1 TO gvl_app.axisNum DO Position:= iPositionAtShutdown[i]); END_FOR +// Upon startup bColdStartDone will be set to FALSE, after the following initialisation it is set to TRUE +// and should stay TRUE for the rest of the time the PLC is operational, thus this routine should only be completed once IF bColdstartDone = FALSE THEN CASE eStartUp OF - ColdStart: // First cycle + ColdStart: // First cycle of the PLC, do nothing just give one cycle for variables to initialise IF NOT bColdstartDone THEN eStartUp:=eStartUp+1; iRetry:=0; END_IF - ReadEncRefSys: // Read Enc Ref Sys - incremental or absolute + ReadEncRefSys: // Exectute the function blocks to read the encoder reference system (inc or abs) bExecuteReadEncRefSys:=TRUE; eStartUp:=eStartUp+1; tmrRetry(in:=FALSE); - CheckRead: // Check if Enc Ref Sys has been read for all axis -> if not read again - tmrRetry(in:=TRUE, pt:=T#100MS); + CheckRead: // Check encoder reference system has been read for all axis -> if not read again + tmrRetry(in:=TRUE, pt:=T#100MS); // Timer gives the axis enough PLC cycles to initialise FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = FALSE THEN IF tmrretry.Q THEN @@ -185,17 +202,15 @@ IF bColdstartDone = FALSE THEN EXIT; END_IF END_FOR - CheckFeedbackType: // Check if axis is incremental, opt-in/restore home and not moving at shutdown -> if so restore + CheckFeedbackType: // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) THEN - IF gvl.axes[i].config.eRestorePosition=2 THEN - gvl.axes[i].config.nHomeSeq:=15; - gvl.axes[i].control.eCommand:=10; - END_IF + IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) AND gvl.axes[i].config.eRestorePosition=2 THEN + gvl.axes[i].config.nHomeSeq:=15; + gvl.axes[i].control.eCommand:=10; END_IF END_FOR eStartUp:=eStartUp+1; - ExecutePosRestore: // Execute position restore with or without bHome set + ExecutePosRestore: // Execute position restore using either fbRestorePosition or normal direct homing (depending on mode) FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN CASE GVL.axes[i].config.eRestorePosition OF @@ -205,7 +220,7 @@ IF bColdstartDone = FALSE THEN END_IF END_FOR eStartUp:=eStartUp+1; - CheckFinished: // Check set position or direct homing is finished on axes that were opt-in + CheckFinished: // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value = 0 THEN CASE gvl.axes[i].config.eRestorePosition OF @@ -221,7 +236,7 @@ IF bColdstartDone = FALSE THEN END_IF END_FOR eStartUp:=eStartUp+1; - FinsishSetPosition: // Reset set position FBs and Finish + FinsishSetPosition: // Remove execute = TRUE for fbRestorePosition FOR i:=1 TO gvl_app.axisNum DO fbRestorePosition[i].Execute:=FALSE; END_FOR @@ -275,8 +290,28 @@ END_IF]]> - - + + + + + + + + + + + + + + + + + + + + + +
From 80e4ea356ee474dd3aea3ae8ed74a3f38ec7af9c Mon Sep 17 00:00:00 2001 From: aaronlong Date: Tue, 10 Dec 2019 14:44:21 +0000 Subject: [PATCH 36/83] Submodule update: tc_mca_std_lib --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index ce9f69f..f6f8849 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit ce9f69ffdc2ac817ced936189f4550b65235025d +Subproject commit f6f8849393a463e2ce1bca7548e916838ebc4a82 From 090fbd03eb2d65f0f86c0f4fb24032822fb629a6 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 10 Dec 2019 16:48:34 +0100 Subject: [PATCH 37/83] Lots of changes in MAIN.STARTUP Changes to the way the code checks whether the enc type is valid. Added a parameter to the axis struct for setting a homing value other than 0. --- solution/tc_project_app/POUs/MAIN.TcPOU | 126 +++++++++++++++++++----- solution/tc_project_app/tc_mca_std_lib | 2 +- 2 files changed, 105 insertions(+), 23 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index b2e3e5b..c6e0484 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -39,7 +39,7 @@ VAR //fbEK1110 : EK1110; (******Startup, Shutdown and UPS********) - eStartUp: (ColdStart, ReadEncRefSys, CheckRead, CheckFeedbackType, ExecutePosRestore, CheckFinished, FinsishSetPosition); + eStartUp: (ColdStart, ReadAxisFeedbackType, CheckReadDone, PrepareToRestore, ExecuteRestore, CheckRestore, FinishRestore); bColdstartDone : BOOL := FALSE; // First cycle of the PLC after being reset/power cycled bExecuteReadEncRefSys : BOOL := TRUE; tmrRetry : TON; @@ -49,6 +49,7 @@ VAR eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; + counter: INT; END_VAR VAR PERSISTENT iPositionAtShutdown : ARRAY [1..gvl_app.axisNum] OF LREAL; @@ -174,45 +175,68 @@ FOR i:=1 TO gvl_app.axisNum DO Position:= iPositionAtShutdown[i]); END_FOR -// Upon startup bColdStartDone will be set to FALSE, after the following initialisation it is set to TRUE +// Timer required so the FBs for all axes can process before checking. +tmrRetry(in:=, pt:=T#200MS); + +// Upon startup bColdStartDone will be set to FALSE, after the following initialisation it is set to TRUE // and should stay TRUE for the rest of the time the PLC is operational, thus this routine should only be completed once IF bColdstartDone = FALSE THEN CASE eStartUp OF - ColdStart: // First cycle of the PLC, do nothing just give one cycle for variables to initialise + + ColdStart: + // First cycle of the PLC, do nothing just give one cycle for variables to initialise IF NOT bColdstartDone THEN eStartUp:=eStartUp+1; iRetry:=0; END_IF - ReadEncRefSys: // Exectute the function blocks to read the encoder reference system (inc or abs) + + ReadAxisFeedbackType: + // Exectute the function blocks to read the encoder reference system (inc or abs) bExecuteReadEncRefSys:=TRUE; eStartUp:=eStartUp+1; - tmrRetry(in:=FALSE); - CheckRead: // Check encoder reference system has been read for all axis -> if not read again - tmrRetry(in:=TRUE, pt:=T#100MS); // Timer gives the axis enough PLC cycles to initialise + tmrRetry(in:=TRUE); + + CheckReadDone: + // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time + // If fbReadEncRefSys not started then go back a step + IF tmrretry.Q THEN FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = FALSE THEN - IF tmrretry.Q THEN + IF fbReadEncRefSys[i].Busy = TRUE THEN + // Exit MAIN.STARTUP Action and wait till next cycle, needs to cycle through whole program in order for data to update + RETURN; + ELSE + // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. + // If it gets here it means .valid=FALSE, .error=FALSE and .busy=FALSE which indicateds the FB probably hasn't started + // and thus needs to see a rising edge. Set execute to low and go back a step in the CASE. bExecuteReadEncRefSys:=FALSE; + tmrRetry(in:=TRUE); eStartUp:=eStartUp-1; iRetry:=iRetry+1; + RETURN; END_IF - RETURN; - ELSE - eStartUp:=eStartUp+1; - EXIT; END_IF END_FOR - CheckFeedbackType: // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home + // If the code gets here all axes either have .valid=TRUE or .ERROR=TRUE + // We disregard errors so that the whole program isn't held up, if there is an error on a axis the value is not restored + eStartUp:=eStartUp+1; + END_IF + + PrepareToRestore: + // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) AND gvl.axes[i].config.eRestorePosition=2 THEN + gvl.axes[i].control.eCommand:=MotionFunctions.Home; gvl.axes[i].config.nHomeSeq:=15; - gvl.axes[i].control.eCommand:=10; + gvl.axes[i].config.fHomePosition:=iPositionAtShutdown[i]; END_IF END_FOR eStartUp:=eStartUp+1; - ExecutePosRestore: // Execute position restore using either fbRestorePosition or normal direct homing (depending on mode) + + ExecuteRestore: + // Execute position restore using either mode 1: fbRestorePosition or mode 2: normal direct homing (depending on mode) FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value = 0 THEN + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN CASE GVL.axes[i].config.eRestorePosition OF RestorePosition.RestoreWithoutHome: fbRestorePosition[i].Execute:=TRUE; RestorePosition.RestoreWithHome: gvl.axes[i].control.bExecute:=TRUE; @@ -220,9 +244,13 @@ IF bColdstartDone = FALSE THEN END_IF END_FOR eStartUp:=eStartUp+1; - CheckFinished: // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in + + CheckRestore: + // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in + // Nothing actually happens if the restore is not done, the code just returns from here each cycle and the + // bColdStartDone will never get set to TRUE FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value = 0 THEN + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN CASE gvl.axes[i].config.eRestorePosition OF RestorePosition.RestoreWithoutHome: IF NOT fbRestorePosition[i].Done THEN @@ -236,11 +264,13 @@ IF bColdstartDone = FALSE THEN END_IF END_FOR eStartUp:=eStartUp+1; - FinsishSetPosition: // Remove execute = TRUE for fbRestorePosition + + FinishRestore: // Remove execute = TRUE for fbRestorePosition FOR i:=1 TO gvl_app.axisNum DO fbRestorePosition[i].Execute:=FALSE; END_FOR bColdstartDone:=TRUE; + END_CASE END_IF]]> @@ -306,12 +336,64 @@ END_IF]]> + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 9e31e77..c2d649c 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 9e31e77d29dd6c4156bdbaf8d34e774eee53748c +Subproject commit c2d649c2b1e35e4b6d38fc9d179bfce10568d1ae From 534a318269a6c26de61c0851609bb6dd43f1df79 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 13:35:50 +0100 Subject: [PATCH 38/83] Remove timer tmrRetry from MAIN.STARTUP No longer required in the restore position state machine code. If the read parameter function block isn't successful it will go back a set in the case statement and try again. The read parameter function block, fbReadEncRefSys, reads the type of axis either inc or abs. --- solution/tc_project_app/POUs/MAIN.TcPOU | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index c6e0484..a8867bd 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -42,14 +42,12 @@ VAR eStartUp: (ColdStart, ReadAxisFeedbackType, CheckReadDone, PrepareToRestore, ExecuteRestore, CheckRestore, FinishRestore); bColdstartDone : BOOL := FALSE; // First cycle of the PLC after being reset/power cycled bExecuteReadEncRefSys : BOOL := TRUE; - tmrRetry : TON; iRetry : INT; fbReadEncRefSys : ARRAY [1..gvl_app.axisNum] OF MC_ReadParameter; fbUPS : FB_S_UPS_CX51x0; eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; - - counter: INT; + END_VAR VAR PERSISTENT iPositionAtShutdown : ARRAY [1..gvl_app.axisNum] OF LREAL; @@ -175,9 +173,6 @@ FOR i:=1 TO gvl_app.axisNum DO Position:= iPositionAtShutdown[i]); END_FOR -// Timer required so the FBs for all axes can process before checking. -tmrRetry(in:=, pt:=T#200MS); - // Upon startup bColdStartDone will be set to FALSE, after the following initialisation it is set to TRUE // and should stay TRUE for the rest of the time the PLC is operational, thus this routine should only be completed once IF bColdstartDone = FALSE THEN @@ -194,12 +189,10 @@ IF bColdstartDone = FALSE THEN // Exectute the function blocks to read the encoder reference system (inc or abs) bExecuteReadEncRefSys:=TRUE; eStartUp:=eStartUp+1; - tmrRetry(in:=TRUE); CheckReadDone: // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time // If fbReadEncRefSys not started then go back a step - IF tmrretry.Q THEN FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = FALSE THEN IF fbReadEncRefSys[i].Busy = TRUE THEN @@ -210,7 +203,6 @@ IF bColdstartDone = FALSE THEN // If it gets here it means .valid=FALSE, .error=FALSE and .busy=FALSE which indicateds the FB probably hasn't started // and thus needs to see a rising edge. Set execute to low and go back a step in the CASE. bExecuteReadEncRefSys:=FALSE; - tmrRetry(in:=TRUE); eStartUp:=eStartUp-1; iRetry:=iRetry+1; RETURN; @@ -220,7 +212,6 @@ IF bColdstartDone = FALSE THEN // If the code gets here all axes either have .valid=TRUE or .ERROR=TRUE // We disregard errors so that the whole program isn't held up, if there is an error on a axis the value is not restored eStartUp:=eStartUp+1; - END_IF PrepareToRestore: // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home @@ -336,8 +327,6 @@ END_IF]]> - - @@ -349,12 +338,11 @@ END_IF]]> - + - @@ -363,7 +351,6 @@ END_IF]]> - @@ -372,7 +359,6 @@ END_IF]]> - From 480f4098bbee20114c6691f9cc4bb4f5f32b5776 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 13:54:19 +0100 Subject: [PATCH 39/83] Moved the cycle through of the read parameter fbs inside if statement Motivation: after the position restore code has executed successfully there is no point running any of the code again and wasting PLC cycles. Thus the first step in the MAIN.STARTUP is a check whether the code has been completed or not. If it is has completed successfully ignore everything else. --- solution/tc_project_app/POUs/MAIN.TcPOU | 229 ++++++++++++------------ 1 file changed, 111 insertions(+), 118 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index a8867bd..a6f6a9a 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -40,7 +40,7 @@ VAR (******Startup, Shutdown and UPS********) eStartUp: (ColdStart, ReadAxisFeedbackType, CheckReadDone, PrepareToRestore, ExecuteRestore, CheckRestore, FinishRestore); - bColdstartDone : BOOL := FALSE; // First cycle of the PLC after being reset/power cycled + bPositionRestoreDone : BOOL := FALSE; bExecuteReadEncRefSys : BOOL := TRUE; iRetry : INT; fbReadEncRefSys : ARRAY [1..gvl_app.axisNum] OF MC_ReadParameter; @@ -153,116 +153,114 @@ END_FOR]]> // Note from Beckhoff: "A maximum of 1 MB persistent data can be reliably saved over the entire service life." ///######################################################### -// Cycle through function blocks that read the encoder reference system i.e. whether axis is incremental or absolute -// Result stored in Value, 0=Inc 1=Abs, execute set during the case statement -FOR i:=1 TO gvl_app.axisNum DO - fbReadEncRefSys[i]( - Axis:= gvl.axes[i].Axis, - Enable:= bExecuteReadEncRefSys, - ParameterNumber:= MC_AxisParameter.AxisEncoderReferenceSystem, - Value=>, - ReadMode:= E_READMODE.READMODE_ONCE); -END_FOR +// Upon startup bPositionRestoreDone will be set to FALSE, after successfully completing the following code it will be set TRUE +// and should stay TRUE for the rest of the time the PLC is operational, thus this routine should only be completed once. +IF bPositionRestoreDone = FALSE THEN -// Cycle through set position function blocks for each axis -// Only axes with RestorePosition=RestoreWithoutHome (mode 1) will be utilised -FOR i:=1 TO gvl_app.axisNum DO - fbRestorePosition[i]( - Axis:= gvl.axes[i].Axis, - Execute:= , - Position:= iPositionAtShutdown[i]); -END_FOR + // Cycle through function blocks that read the encoder reference system i.e. whether axis is incremental or absolute + // Result stored in Value, 0=Inc 1=Abs, execute set during the case statement + FOR i:=1 TO gvl_app.axisNum DO + fbReadEncRefSys[i]( + Axis:= gvl.axes[i].Axis, + Enable:= bExecuteReadEncRefSys, + ParameterNumber:= MC_AxisParameter.AxisEncoderReferenceSystem, + Value=>, + ReadMode:= E_READMODE.READMODE_ONCE); + END_FOR + + // Cycle through set position function blocks for each axis + // Only axes with RestorePosition=RestoreWithoutHome (mode 1) will be utilised + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i]( + Axis:= gvl.axes[i].Axis, + Execute:= , + Position:= iPositionAtShutdown[i]); + END_FOR -// Upon startup bColdStartDone will be set to FALSE, after the following initialisation it is set to TRUE -// and should stay TRUE for the rest of the time the PLC is operational, thus this routine should only be completed once -IF bColdstartDone = FALSE THEN CASE eStartUp OF - - ColdStart: - // First cycle of the PLC, do nothing just give one cycle for variables to initialise - IF NOT bColdstartDone THEN - eStartUp:=eStartUp+1; - iRetry:=0; - END_IF - - ReadAxisFeedbackType: - // Exectute the function blocks to read the encoder reference system (inc or abs) - bExecuteReadEncRefSys:=TRUE; - eStartUp:=eStartUp+1; - - CheckReadDone: - // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time - // If fbReadEncRefSys not started then go back a step - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Valid = FALSE THEN - IF fbReadEncRefSys[i].Busy = TRUE THEN - // Exit MAIN.STARTUP Action and wait till next cycle, needs to cycle through whole program in order for data to update - RETURN; - ELSE - // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. - // If it gets here it means .valid=FALSE, .error=FALSE and .busy=FALSE which indicateds the FB probably hasn't started - // and thus needs to see a rising edge. Set execute to low and go back a step in the CASE. - bExecuteReadEncRefSys:=FALSE; - eStartUp:=eStartUp-1; - iRetry:=iRetry+1; - RETURN; - END_IF - END_IF - END_FOR - // If the code gets here all axes either have .valid=TRUE or .ERROR=TRUE - // We disregard errors so that the whole program isn't held up, if there is an error on a axis the value is not restored - eStartUp:=eStartUp+1; - - PrepareToRestore: - // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) AND gvl.axes[i].config.eRestorePosition=2 THEN - gvl.axes[i].control.eCommand:=MotionFunctions.Home; - gvl.axes[i].config.nHomeSeq:=15; - gvl.axes[i].config.fHomePosition:=iPositionAtShutdown[i]; - END_IF - END_FOR - eStartUp:=eStartUp+1; - - ExecuteRestore: - // Execute position restore using either mode 1: fbRestorePosition or mode 2: normal direct homing (depending on mode) - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN - CASE GVL.axes[i].config.eRestorePosition OF - RestorePosition.RestoreWithoutHome: fbRestorePosition[i].Execute:=TRUE; - RestorePosition.RestoreWithHome: gvl.axes[i].control.bExecute:=TRUE; - END_CASE - END_IF - END_FOR - eStartUp:=eStartUp+1; - - CheckRestore: - // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in - // Nothing actually happens if the restore is not done, the code just returns from here each cycle and the - // bColdStartDone will never get set to TRUE - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN - CASE gvl.axes[i].config.eRestorePosition OF - RestorePosition.RestoreWithoutHome: - IF NOT fbRestorePosition[i].Done THEN - RETURN; - END_IF - RestorePosition.RestoreWithHome: - IF NOT gvl.axes[i].status.bHomed THEN - RETURN; - END_IF - END_CASE - END_IF - END_FOR - eStartUp:=eStartUp+1; - - FinishRestore: // Remove execute = TRUE for fbRestorePosition - FOR i:=1 TO gvl_app.axisNum DO - fbRestorePosition[i].Execute:=FALSE; - END_FOR - bColdstartDone:=TRUE; - - END_CASE + ColdStart: + // First cycle of the PLC, do nothing just give one cycle for variables to initialise + IF NOT bPositionRestoreDone THEN + eStartUp:=eStartUp+1; + iRetry:=0; + END_IF + + ReadAxisFeedbackType: + // Exectute the FUNCTION blocks TO read the encoder REFERENCE system (inc OR ABS) + bExecuteReadEncRefSys:=TRUE; + eStartUp:=eStartUp+1; + + CheckReadDone: + // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time + // If fbReadEncRefSys not started then go back a step + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = FALSE THEN + IF fbReadEncRefSys[i].Busy = TRUE THEN + // Exit MAIN.STARTUP Action and wait till next cycle, needs to cycle through whole program in order for data to update + RETURN; + ELSE + // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. + // If the code gets here it means .valid=FALSE and .busy=FALSE which indicateds the FB probably hasn't started + // and thus needs to see a rising edge. Set execute to low and go back a step in the CASE. + bExecuteReadEncRefSys:=FALSE; + eStartUp:=eStartUp-1; + iRetry:=iRetry+1; // counter used for troubleshooting to see how many cycles it takes before fbReadEncRefSys function blocks are read correctly + RETURN; + END_IF + END_IF + END_FOR + // If the code gets here all axes either have .valid=TRUE for all axes + eStartUp:=eStartUp+1; + + PrepareToRestore: + // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) AND gvl.axes[i].config.eRestorePosition=2 THEN + gvl.axes[i].control.eCommand:=MotionFunctions.Home; + gvl.axes[i].config.nHomeSeq:=15; + gvl.axes[i].config.fHomePosition:=iPositionAtShutdown[i]; + END_IF + END_FOR + eStartUp:=eStartUp+1; + + ExecuteRestore: + // Execute position restore using either mode 1: fbRestorePosition or mode 2: normal direct homing (depending on mode) + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN + CASE GVL.axes[i].config.eRestorePosition OF + RestorePosition.RestoreWithoutHome: fbRestorePosition[i].Execute:=TRUE; + RestorePosition.RestoreWithHome: gvl.axes[i].control.bExecute:=TRUE; + END_CASE + END_IF + END_FOR + eStartUp:=eStartUp+1; + + CheckRestore: + // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in + // Nothing actually happens if the restore is not done, the code just returns from here each cycle and the + // bPositionRestoreDone will never get set to TRUE + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN + CASE gvl.axes[i].config.eRestorePosition OF + RestorePosition.RestoreWithoutHome: + IF NOT fbRestorePosition[i].Done THEN + RETURN; + END_IF + RestorePosition.RestoreWithHome: + IF NOT gvl.axes[i].status.bHomed THEN + RETURN; + END_IF + END_CASE + END_IF + END_FOR + eStartUp:=eStartUp+1; + + FinishRestore: // Remove execute = TRUE for fbRestorePosition + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i].Execute:=FALSE; + END_FOR + bPositionRestoreDone:=TRUE; + END_CASE END_IF]]> @@ -320,6 +318,9 @@ END_IF]]> + + + @@ -327,12 +328,7 @@ END_IF]]> - - - - - - + @@ -357,7 +353,6 @@ END_IF]]> - @@ -377,9 +372,7 @@ END_IF]]> - - - + From 83f1b66c9b5121f37f60649ec89f5d8bff2c552b Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 13:57:26 +0100 Subject: [PATCH 40/83] Fix white space damage --- solution/tc_project_app/POUs/MAIN.TcPOU | 202 ++++++++++++------------ 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index a6f6a9a..4008f18 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -47,7 +47,7 @@ VAR fbUPS : FB_S_UPS_CX51x0; eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; - + END_VAR VAR PERSISTENT iPositionAtShutdown : ARRAY [1..gvl_app.axisNum] OF LREAL; @@ -157,110 +157,110 @@ END_FOR]]> // and should stay TRUE for the rest of the time the PLC is operational, thus this routine should only be completed once. IF bPositionRestoreDone = FALSE THEN - // Cycle through function blocks that read the encoder reference system i.e. whether axis is incremental or absolute + // Cycle through function blocks that read the encoder reference system i.e. whether axis is incremental or absolute // Result stored in Value, 0=Inc 1=Abs, execute set during the case statement - FOR i:=1 TO gvl_app.axisNum DO - fbReadEncRefSys[i]( - Axis:= gvl.axes[i].Axis, - Enable:= bExecuteReadEncRefSys, - ParameterNumber:= MC_AxisParameter.AxisEncoderReferenceSystem, - Value=>, - ReadMode:= E_READMODE.READMODE_ONCE); - END_FOR + FOR i:=1 TO gvl_app.axisNum DO + fbReadEncRefSys[i]( + Axis:= gvl.axes[i].Axis, + Enable:= bExecuteReadEncRefSys, + ParameterNumber:= MC_AxisParameter.AxisEncoderReferenceSystem, + Value=>, + ReadMode:= E_READMODE.READMODE_ONCE); + END_FOR - // Cycle through set position function blocks for each axis - // Only axes with RestorePosition=RestoreWithoutHome (mode 1) will be utilised - FOR i:=1 TO gvl_app.axisNum DO - fbRestorePosition[i]( - Axis:= gvl.axes[i].Axis, - Execute:= , - Position:= iPositionAtShutdown[i]); - END_FOR + // Cycle through set position function blocks for each axis + // Only axes with RestorePosition=RestoreWithoutHome (mode 1) will be utilised + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i]( + Axis:= gvl.axes[i].Axis, + Execute:= , + Position:= iPositionAtShutdown[i]); + END_FOR CASE eStartUp OF - ColdStart: - // First cycle of the PLC, do nothing just give one cycle for variables to initialise - IF NOT bPositionRestoreDone THEN - eStartUp:=eStartUp+1; - iRetry:=0; - END_IF - - ReadAxisFeedbackType: - // Exectute the FUNCTION blocks TO read the encoder REFERENCE system (inc OR ABS) - bExecuteReadEncRefSys:=TRUE; - eStartUp:=eStartUp+1; - - CheckReadDone: - // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time - // If fbReadEncRefSys not started then go back a step - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Valid = FALSE THEN - IF fbReadEncRefSys[i].Busy = TRUE THEN - // Exit MAIN.STARTUP Action and wait till next cycle, needs to cycle through whole program in order for data to update - RETURN; - ELSE - // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. - // If the code gets here it means .valid=FALSE and .busy=FALSE which indicateds the FB probably hasn't started - // and thus needs to see a rising edge. Set execute to low and go back a step in the CASE. - bExecuteReadEncRefSys:=FALSE; - eStartUp:=eStartUp-1; - iRetry:=iRetry+1; // counter used for troubleshooting to see how many cycles it takes before fbReadEncRefSys function blocks are read correctly - RETURN; - END_IF - END_IF - END_FOR - // If the code gets here all axes either have .valid=TRUE for all axes - eStartUp:=eStartUp+1; - - PrepareToRestore: - // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) AND gvl.axes[i].config.eRestorePosition=2 THEN - gvl.axes[i].control.eCommand:=MotionFunctions.Home; - gvl.axes[i].config.nHomeSeq:=15; - gvl.axes[i].config.fHomePosition:=iPositionAtShutdown[i]; - END_IF - END_FOR - eStartUp:=eStartUp+1; - - ExecuteRestore: - // Execute position restore using either mode 1: fbRestorePosition or mode 2: normal direct homing (depending on mode) - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN - CASE GVL.axes[i].config.eRestorePosition OF - RestorePosition.RestoreWithoutHome: fbRestorePosition[i].Execute:=TRUE; - RestorePosition.RestoreWithHome: gvl.axes[i].control.bExecute:=TRUE; - END_CASE - END_IF - END_FOR - eStartUp:=eStartUp+1; - - CheckRestore: - // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in - // Nothing actually happens if the restore is not done, the code just returns from here each cycle and the - // bPositionRestoreDone will never get set to TRUE - FOR i:=1 TO gvl_app.axisNum DO - IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN - CASE gvl.axes[i].config.eRestorePosition OF - RestorePosition.RestoreWithoutHome: - IF NOT fbRestorePosition[i].Done THEN - RETURN; - END_IF - RestorePosition.RestoreWithHome: - IF NOT gvl.axes[i].status.bHomed THEN - RETURN; - END_IF - END_CASE - END_IF - END_FOR - eStartUp:=eStartUp+1; - - FinishRestore: // Remove execute = TRUE for fbRestorePosition - FOR i:=1 TO gvl_app.axisNum DO - fbRestorePosition[i].Execute:=FALSE; - END_FOR - bPositionRestoreDone:=TRUE; - END_CASE + ColdStart: + // First cycle of the PLC, do nothing just give one cycle for variables to initialise + IF NOT bPositionRestoreDone THEN + eStartUp:=eStartUp+1; + iRetry:=0; + END_IF + + ReadAxisFeedbackType: + // Exectute the FUNCTION blocks TO read the encoder REFERENCE system (inc OR ABS) + bExecuteReadEncRefSys:=TRUE; + eStartUp:=eStartUp+1; + + CheckReadDone: + // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time + // If fbReadEncRefSys not started then go back a step + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = FALSE THEN + IF fbReadEncRefSys[i].Busy = TRUE THEN + // Exit MAIN.STARTUP Action and wait till next cycle, needs to cycle through whole program in order for data to update + RETURN; + ELSE + // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. + // If the code gets here it means .valid=FALSE and .busy=FALSE which indicateds the FB probably hasn't started + // and thus needs to see a rising edge. Set execute to low and go back a step in the CASE. + bExecuteReadEncRefSys:=FALSE; + eStartUp:=eStartUp-1; + iRetry:=iRetry+1; // counter used for troubleshooting to see how many cycles it takes before fbReadEncRefSys function blocks are read correctly + RETURN; + END_IF + END_IF + END_FOR + // If the code gets here all axes either have .valid=TRUE for all axes + eStartUp:=eStartUp+1; + + PrepareToRestore: + // Prepare to home for axes that opt in for mode 2 RestoreWithHome i.e. normal direct home + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Value=0 AND NOT(bMovingAtShutdown[i]) AND gvl.axes[i].config.eRestorePosition=2 THEN + gvl.axes[i].control.eCommand:=MotionFunctions.Home; + gvl.axes[i].config.nHomeSeq:=15; + gvl.axes[i].config.fHomePosition:=iPositionAtShutdown[i]; + END_IF + END_FOR + eStartUp:=eStartUp+1; + + ExecuteRestore: + // Execute position restore using either mode 1: fbRestorePosition or mode 2: normal direct homing (depending on mode) + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN + CASE GVL.axes[i].config.eRestorePosition OF + RestorePosition.RestoreWithoutHome: fbRestorePosition[i].Execute:=TRUE; + RestorePosition.RestoreWithHome: gvl.axes[i].control.bExecute:=TRUE; + END_CASE + END_IF + END_FOR + eStartUp:=eStartUp+1; + + CheckRestore: + // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in + // Nothing actually happens if the restore is not done, the code just returns from here each cycle and the + // bPositionRestoreDone will never get set to TRUE + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN + CASE gvl.axes[i].config.eRestorePosition OF + RestorePosition.RestoreWithoutHome: + IF NOT fbRestorePosition[i].Done THEN + RETURN; + END_IF + RestorePosition.RestoreWithHome: + IF NOT gvl.axes[i].status.bHomed THEN + RETURN; + END_IF + END_CASE + END_IF + END_FOR + eStartUp:=eStartUp+1; + + FinishRestore: // Remove execute = TRUE for fbRestorePosition + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i].Execute:=FALSE; + END_FOR + bPositionRestoreDone:=TRUE; + END_CASE END_IF]]> From df44dd3b825777953c0dab7cf42d9d224b64a60e Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 14:28:54 +0100 Subject: [PATCH 41/83] Bug fix: add additional check in MAIN.SHUTDOWN gvl.axes[i].Axis.Status.Moving doesn't seem to work if the axis isn't enabled. Therefore added a check to see whether gvl.axes[i].Axis.NcToPlc.ActVelo <> 0. If it's non-zero then don't restore the encoder value on restart. MAIN.SHUTDOWN also added to the normal operation cycle, this is to allow restart after a "Reset Cold" command in Visual Studio, otherwise the only time position is restored is an actual lose of power. It might be also useful when a user restarts the PLC program manually. Also modified a few comments in MAIN.STARTUP. --- solution/tc_project_app/POUs/MAIN.TcPOU | 38 ++++++++++++++++++------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 4008f18..0485dbc 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -69,7 +69,8 @@ END_IF STARTUP(); PROG(); AXES(); -ERROR();]]> +ERROR(); +SHUTDOWN();]]> @@ -136,7 +137,12 @@ fbEL1808( 0 THEN + bMovingAtShutdown[i]:=TRUE; + ELSE + bMovingAtShutdown[i]:=FALSE; + END_IF + bMovingAtShutdown[i]:=bMovingAtShutdown[i] OR gvl.axes[i].Axis.Status.Moving; END_FOR]]> @@ -145,6 +151,7 @@ END_FOR]]> if busy then continue with PLC cycle and check again next time - // If fbReadEncRefSys not started then go back a step + // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time. + // If fbReadEncRefSys not started then go back a step. + // If any axes result in an error the code will get stuck here, this happens if gvl_app.axisNum is not set correctly FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = FALSE THEN IF fbReadEncRefSys[i].Busy = TRUE THEN // Exit MAIN.STARTUP Action and wait till next cycle, needs to cycle through whole program in order for data to update RETURN; ELSE - // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. - // If the code gets here it means .valid=FALSE and .busy=FALSE which indicateds the FB probably hasn't started - // and thus needs to see a rising edge. Set execute to low and go back a step in the CASE. + // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. If the code gets here it means + // .valid=FALSE and .busy=FALSE which indicateds the FB probably hasn't started and thus needs to see a rising edge. + // Set execute to low, Exit MAIN.STARTUP and go back a step in the CASE statement. bExecuteReadEncRefSys:=FALSE; eStartUp:=eStartUp-1; iRetry:=iRetry+1; // counter used for troubleshooting to see how many cycles it takes before fbReadEncRefSys function blocks are read correctly @@ -238,7 +246,7 @@ IF bPositionRestoreDone = FALSE THEN CheckRestore: // Check mode 1: fbRestorePosition or mode 2: direct homing is finished on axes that were opt-in // Nothing actually happens if the restore is not done, the code just returns from here each cycle and the - // bPositionRestoreDone will never get set to TRUE + // bPositionRestoreDone will never get set to TRUE and will take up cycle time FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 THEN CASE gvl.axes[i].config.eRestorePosition OF @@ -271,6 +279,7 @@ END_IF]]> + @@ -305,13 +314,18 @@ END_IF]]> - + + + + + + @@ -339,13 +353,15 @@ END_IF]]> + - + + From 10ef1a594d2cfaef8c914ff97d553ef595628af2 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 15:02:11 +0100 Subject: [PATCH 42/83] Remove MAIN.SHUTDOWN from ordinary PLC cycle This created a problem in that MAIN.STARTUP wasn't working correctly because it takes a couple of cycles to complete and MAIN.SHUTDOWN was overriding the values stored after a power loss. Thus the restore won't work for a user cold reset. It can be catered for by adding it back into the ordinary PLC cycle but only executing if bPositionRestoreDone is set. --- solution/tc_project_app/POUs/MAIN.TcPOU | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 0485dbc..ac81a90 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -69,13 +69,12 @@ END_IF STARTUP(); PROG(); AXES(); -ERROR(); -SHUTDOWN();]]> +ERROR();]]> - - From a9d5e51ac0274ee638857f9b01cd62e0ff9d3289 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 15:17:59 +0100 Subject: [PATCH 43/83] Added saving of position values throughout the normal PLC cycle Added a check in MAIN.SHUTDOWN that makes sure the restore has been done first before starting to save values again. Probably should change the name from MAIN.SHUTDOWN to MAIN.SAVEVALUES or something. --- solution/tc_project_app/POUs/MAIN.TcPOU | 41 +++++++++++++------------ 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index ac81a90..d460284 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -69,19 +69,17 @@ END_IF STARTUP(); PROG(); AXES(); -ERROR();]]> +ERROR(); +SHUTDOWN();]]> - +END_FOR]]> @@ -134,15 +132,17 @@ fbEL1808( - 0 THEN - bMovingAtShutdown[i]:=TRUE; - ELSE - bMovingAtShutdown[i]:=FALSE; - END_IF - bMovingAtShutdown[i]:=bMovingAtShutdown[i] OR gvl.axes[i].Axis.Status.Moving; -END_FOR]]> + 0 THEN + bMovingAtShutdown[i]:=TRUE; + ELSE + bMovingAtShutdown[i]:=FALSE; + END_IF + bMovingAtShutdown[i]:=bMovingAtShutdown[i] OR gvl.axes[i].Axis.Status.Moving; + END_FOR +END_IF]]> @@ -278,6 +278,7 @@ END_IF]]> + @@ -285,9 +286,6 @@ END_IF]]> - - - @@ -312,12 +310,15 @@ END_IF]]> - + + + + From 3b633b1487cc34083a8713826f67280e3317e55c Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 15:22:36 +0100 Subject: [PATCH 44/83] Changes in tc_mca_std_lib No changes in tc_general_struct in this commit --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index c2d649c..3f32143 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit c2d649c2b1e35e4b6d38fc9d179bfce10568d1ae +Subproject commit 3f321432524300a35e0c00298b7d5758799bba0b From f2d73d013f423eb385fa3e1b294d196e9c46b7e0 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 11 Dec 2019 15:24:00 +0100 Subject: [PATCH 45/83] Fix whitespace damage No code changes --- solution/tc_project_app/POUs/MAIN.TcPOU | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index d460284..e3f3ab0 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -133,15 +133,15 @@ fbEL1808( 0 THEN - bMovingAtShutdown[i]:=TRUE; - ELSE - bMovingAtShutdown[i]:=FALSE; - END_IF - bMovingAtShutdown[i]:=bMovingAtShutdown[i] OR gvl.axes[i].Axis.Status.Moving; - END_FOR + FOR i:=1 TO gvl_app.axisNum DO + iPositionAtShutdown[i]:=gvl.axes[i].Axis.NcToPlc.ActPos; + IF gvl.axes[i].Axis.NcToPlc.ActVelo <> 0 THEN + bMovingAtShutdown[i]:=TRUE; + ELSE + bMovingAtShutdown[i]:=FALSE; + END_IF + bMovingAtShutdown[i]:=bMovingAtShutdown[i] OR gvl.axes[i].Axis.Status.Moving; + END_FOR END_IF]]> From f1063b56d74029e815841f9600d26eca5b1116f0 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Fri, 13 Dec 2019 13:41:25 +0100 Subject: [PATCH 46/83] Change names of MAIN.STARTUP and MAIN.SHUTDOWN Change to MAIN.RESTORE_POSITIONS and MAIN.STORE_PERSISTENT Bug fix: add check in MAIN.RESTORE_POSITIONS to check whether an axis was moving at shutdown. Variable name changes to acommodate moving the persistent variables from MAIN to a DUT in the generic structure. --- solution/tc_project_app/POUs/MAIN.TcPOU | 76 ++++++++++++------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index e3f3ab0..32e029d 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -48,10 +48,6 @@ VAR eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; -END_VAR -VAR PERSISTENT - iPositionAtShutdown : ARRAY [1..gvl_app.axisNum] OF LREAL; - bMovingAtShutdown : ARRAY [1..gvl_app.axisNum] OF BOOL; END_VAR]]> IF eGlobalSUpsState = eSUPS_PowerFailure THEN (* first cycle of powerfailure *) (* execute code that should only be done once with each powerfailure, i.e. increase powerfailure counter *) - SHUTDOWN(); + STORE_PERSISTENT(); ELSIF eGlobalSUpsState > eSUPS_PowerFailure THEN (* next cycles of powerfailure *) (* skip regular code execution for the remaining cycles of the powerfailure/writing of persistent data/quick shutdown ... *) RETURN; END_IF -STARTUP(); +RESTORE_POSITIONS(); PROG(); AXES(); ERROR(); -SHUTDOWN();]]> +STORE_PERSISTENT();]]> @@ -130,22 +126,7 @@ fbEL1808( //]]> - - - 0 THEN - bMovingAtShutdown[i]:=TRUE; - ELSE - bMovingAtShutdown[i]:=FALSE; - END_IF - bMovingAtShutdown[i]:=bMovingAtShutdown[i] OR gvl.axes[i].Axis.Status.Moving; - END_FOR -END_IF]]> - - - + + + + + + 0 THEN + axesPersistent[i].bMovingAtShutdown:=TRUE; + ELSE + axesPersistent[i].bMovingAtShutdown:=FALSE; + END_IF + axesPersistent[i].bMovingAtShutdown:=axesPersistent[i].bMovingAtShutdown OR gvl.axes[i].Axis.Status.Moving; + END_FOR END_IF]]> @@ -309,18 +305,7 @@ END_IF]]> - - - - - - - - - - - - + @@ -390,5 +375,16 @@ END_IF]]> + + + + + + + + + + +
\ No newline at end of file From 5570b03fad57547f80b09d1e079efe336e92fd9f Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Fri, 13 Dec 2019 13:44:16 +0100 Subject: [PATCH 47/83] Changes inside tc_mca_std_lib Moved persistent variables from MAIN to a new struct in the generic_structure called ST_AxisPersistent --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 3f32143..38d1c94 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 3f321432524300a35e0c00298b7d5758799bba0b +Subproject commit 38d1c94f93c33fa7a955ff805fab8cbc4e4af79a From e000543a7f51bb17c7902d9656dd7618fef9855f Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Fri, 13 Dec 2019 13:45:50 +0100 Subject: [PATCH 48/83] Add ST_AxisPersistent.TcDUT to generic structure --- solution/tc_project_app/tc_project_app.plcproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index 10ff279..b81a859 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -45,6 +45,9 @@ Code + + Code + Code From 3e28bfd79a00437bba3d581d9eafd5bdf404b5e6 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Fri, 13 Dec 2019 13:55:04 +0100 Subject: [PATCH 49/83] Not sure what is changed Maybe carriage return --- solution.sln | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/solution.sln b/solution.sln index 1bff69d..976e55d 100644 --- a/solution.sln +++ b/solution.sln @@ -33,22 +33,6 @@ Global {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) - {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) @@ -65,6 +49,22 @@ Global {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) + {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From c68218106e15cde4c8ee741a93b2fe4aae34a61d Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Fri, 13 Dec 2019 14:35:31 +0100 Subject: [PATCH 50/83] Delete the NC folder under _Config folder There was some Axis infomation and this branch should not have HW. I delete the folder and the content Delete _Config/NC --- solution/_Config/NC/1.xml | 2 -- solution/tc_epicscommodule | 2 +- solution/tc_project_app/tc_mca_std_lib | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 solution/_Config/NC/1.xml diff --git a/solution/_Config/NC/1.xml b/solution/_Config/NC/1.xml deleted file mode 100644 index 7447a9f..0000000 --- a/solution/_Config/NC/1.xml +++ /dev/null @@ -1,2 +0,0 @@ - -1mm15001500225015000150000130000000303010060020002000true5false0.1false100true2falsefalse000false10.010truefalsefalse5510.0001103600false21677721500.010.1false0false0false000falsetrue0false0false0104857500false005false1-1165535#x000000000.1002200101100000000.01211100001361291330false110111true5false010000.10.1false0.10.50.10000.10.100.50000false0.010112010.001 diff --git a/solution/tc_epicscommodule b/solution/tc_epicscommodule index e746bc4..3794bb7 160000 --- a/solution/tc_epicscommodule +++ b/solution/tc_epicscommodule @@ -1 +1 @@ -Subproject commit e746bc4b801554a2af3cc5432f9374ffc9fbd82b +Subproject commit 3794bb7a9801d08901fe8efcf3e103582b5d7e2c diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index f6f8849..c74a21a 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit f6f8849393a463e2ce1bca7548e916838ebc4a82 +Subproject commit c74a21a99d2749be86a12e4406bbfcfbb3618841 From 29f11a6db0e52d675679ee143ba5ff8c6b890380 Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Fri, 13 Dec 2019 14:45:20 +0100 Subject: [PATCH 51/83] Rebuild solution after deletting the NC folder and content --- solution/solution.tsproj | 2 +- .../tc_project_app/tc_project_app.plcproj | 38 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index c28cc38..2804539 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,4 +1,4 @@ - + diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index ac7a216..da0625a 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -255,43 +255,43 @@ - VisuElemMeter, 3.5.10.0 (System) + VisuElemMeter, 3.5.13.0 (System) VisuElemMeter true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElems, 3.5.10.20 (System) + VisuElems, 3.5.13.21 (System) VisuElems true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElemsSpecialControls, 3.5.10.0 (System) + VisuElemsSpecialControls, 3.5.13.0 (System) VisuElemsSpecialControls true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElemsWinControls, 3.5.10.20 (System) + VisuElemsWinControls, 3.5.13.20 (System) VisuElemsWinControls true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuElemTextEditor, 3.5.10.10 (System) + VisuElemTextEditor, 3.5.13.0 (System) VisuElemTextEditor true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - visuinputs, 3.5.10.0 (system) + visuinputs, 3.5.13.0 (system) visuinputs true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae - VisuNativeControl, 3.5.10.0 (System) + VisuNativeControl, 3.5.13.0 (System) VisuNativeControl true 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae @@ -337,8 +337,8 @@ - - + + "<ProjectRoot>" {192FAD59-8248-4824-A8DE-9177C94C195A} @@ -383,21 +383,21 @@ ActiveVisuExtensionsLength 0 ActiveVisuProfile - "IR0whWr8bwfyBwAAHf+pawAAAABVAgAADnffSgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgAyAC4AMQAwAAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUdgBpAHMAdQBpAG4AcAB1AHQAcwAXDHMAeQBzAHQAZQBtABgYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGSZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABoIYgBvAG8AbAAbIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAcTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAdHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAeFFAAbAB1AGcAaQBuAEcAdQBpAGQAHxZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIEhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAhFFUAcABkAGEAdABlAEkAbgBmAG8AIkx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AIw5VAHAAZABhAHQAZQBzACRMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACVMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACYWTwBiAGoAZQBjAHQAcwBUAHkAcABlACdUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKBBMAGkAYgBUAGkAdABsAGUAKRRMAGkAYgBDAG8AbQBwAGEAbgB5ACoeVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMAKzhTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACwSdgBpAHMAdQBlAGwAZQBtAHMALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAMAAAAFAAAACgAAACgAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAKAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAKAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0W0A8BLRfQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQQAAADQDQEtGNAPAS0Q0BkarQFFGxwB0AAcGgJFHQsEAwAAAAUAAAAKAAAAAAAAANAeHy0g0CEiGgJFIyQC0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60AAAAA0AMBLSfQKAEtEdApAS0Q0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60BAAAA0AMBLSfQKAEtEdApAS0QmiorAUUAAQLQAAEtLNAAAS0X0AAfLS3QLi8aA9AwC60BAAAA0DELrRMAAADQMhqtANAzLxoD0DALrQIAAADQMQutAwAAANAyGq0A0DQarQDQNRqtAA==" + "IR0whWr8bwfwBwAAhiaVXgAAAABVAgAAWdTSaQAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4AMAAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAFQAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAFQAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA=" - - - System.Boolean - System.Collections.Hashtable - System.Int32 - {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} - System.String - - + + + System.Boolean + System.Collections.Hashtable + System.Int32 + {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} + System.String + + \ No newline at end of file From 094480f0406dc4252209e82bf7e91e8ab271c9e3 Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Fri, 13 Dec 2019 15:21:12 +0100 Subject: [PATCH 52/83] Update submodules to latest versions to pass the white space test --- solution/tc_epicscommodule | 2 +- solution/tc_project_app/tc_mca_std_lib | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/tc_epicscommodule b/solution/tc_epicscommodule index 3794bb7..a13d6bb 160000 --- a/solution/tc_epicscommodule +++ b/solution/tc_epicscommodule @@ -1 +1 @@ -Subproject commit 3794bb7a9801d08901fe8efcf3e103582b5d7e2c +Subproject commit a13d6bb6221ab2fbe8fa8f7f2345ca8cd791f8d1 diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index c74a21a..f6f8849 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit c74a21a99d2749be86a12e4406bbfcfbb3618841 +Subproject commit f6f8849393a463e2ce1bca7548e916838ebc4a82 From 5743a135132d18b1de846e5bc9a1c964f0899dff Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 17 Dec 2019 10:27:25 +0100 Subject: [PATCH 53/83] Remove mode 2 from iRestoreCode Issues found regarding overiding of .config params in the axis struct. Also doubts about whether it would actually be used. --- solution/tc_project_app/POUs/MAIN.TcPOU | 68 +++++++------------------ 1 file changed, 18 insertions(+), 50 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 32e029d..9bb1040 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -39,7 +39,7 @@ VAR //fbEK1110 : EK1110; (******Startup, Shutdown and UPS********) - eStartUp: (ColdStart, ReadAxisFeedbackType, CheckReadDone, PrepareToRestore, ExecuteRestore, CheckRestore, FinishRestore); + eStartUp: (ColdStart, ReadAxisFeedbackType, CheckReadDone, ExecuteRestore, CheckRestore, FinishRestore); bPositionRestoreDone : BOOL := FALSE; bExecuteReadEncRefSys : BOOL := TRUE; iRetry : INT; @@ -70,10 +70,7 @@ STORE_PERSISTENT();]]> - @@ -129,14 +126,13 @@ fbEL1808( - - @@ -311,9 +284,8 @@ END_IF]]> - - - + + @@ -354,23 +326,19 @@ END_IF]]> - - - - - - - - - + + + - + + + From 5d5ee5f4adb149353336f7d5de52eb966b91319c Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 17 Dec 2019 10:33:57 +0100 Subject: [PATCH 54/83] Add latest commit for tc_mca_std_lib --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 38d1c94..015b771 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 38d1c94f93c33fa7a955ff805fab8cbc4e4af79a +Subproject commit 015b77129b1568a44172f723835a3a939592854d From e36d4bcab30d2d30211cf545709e452df694ebb5 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 17 Dec 2019 10:37:24 +0100 Subject: [PATCH 55/83] Change comment --- solution/tc_project_app/POUs/MAIN.TcPOU | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 9bb1040..add0d67 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -169,7 +169,7 @@ IF bPositionRestoreDone = FALSE THEN END_IF ReadAxisFeedbackType: - // Exectute the FUNCTION blocks to read the encoder reference system (0=inc OR 1=ABS) + // Exectute the function blocks to read the encoder reference system (0=inc OR 1=ABS) bExecuteReadEncRefSys:=TRUE; eStartUp:=eStartUp+1; From 1c9d8f3b6b0097a77f59d88b8b89ea609670bee3 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 17 Dec 2019 14:46:55 +0100 Subject: [PATCH 56/83] Remove mode 2 from position restore It was decided in a code review that mode 2 wasn't doing exactly as we wanted and that it probably wasn't required, at least for now. Changes to logic so that the position restore is only done after a power cycle and not a download, reset cold or reset origin. --- solution/tc_project_app/POUs/MAIN.TcPOU | 93 ++++++++++++++++--------- 1 file changed, 59 insertions(+), 34 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index add0d67..de4615c 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -39,15 +39,20 @@ VAR //fbEK1110 : EK1110; (******Startup, Shutdown and UPS********) - eStartUp: (ColdStart, ReadAxisFeedbackType, CheckReadDone, ExecuteRestore, CheckRestore, FinishRestore); - bPositionRestoreDone : BOOL := FALSE; - bExecuteReadEncRefSys : BOOL := TRUE; - iRetry : INT; - fbReadEncRefSys : ARRAY [1..gvl_app.axisNum] OF MC_ReadParameter; fbUPS : FB_S_UPS_CX51x0; eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; + eStartUp: (ColdStart, ReadAxisFeedbackType, CheckReadDone, ExecuteRestore, CheckRestore, FinishRestore); + bPositionRestoreDone : BOOL := FALSE; + bRestoreExecute : BOOL := FALSE; + bExecuteReadEncRefSys : BOOL := FALSE; + iRetry : INT; + fbReadEncRefSys : ARRAY [1..gvl_app.axisNum] OF MC_ReadParameter; fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; +END_VAR + +VAR PERSISTENT + bRestoreOnStartup : BOOL; END_VAR]]> IF eGlobalSUpsState = eSUPS_PowerFailure THEN (* first cycle of powerfailure *) (* execute code that should only be done once with each powerfailure, i.e. increase powerfailure counter *) + bRestoreOnStartup:=TRUE; STORE_PERSISTENT(); + RETURN; ELSIF eGlobalSUpsState > eSUPS_PowerFailure THEN (* next cycles of powerfailure *) (* skip regular code execution for the remaining cycles of the powerfailure/writing of persistent data/quick shutdown ... *) @@ -65,12 +72,12 @@ END_IF RESTORE_POSITIONS(); PROG(); AXES(); -ERROR(); -STORE_PERSISTENT();]]> +ERROR();]]> - @@ -130,15 +137,22 @@ fbEL1808( // It checks the type of axis, 0=incremental, and that the axis was stationary at shut down. // Because 0 equates to incremental we also need to check that the data is valid, otherwise by default it would restore all axes. // By default an axis will not restore the position unless it is set to opt-in, i.e. gvl.axes[i].config.eRestorePosition is non-zero. +// This needs to be initialised somewhere in TwinCAT code otherwise it will not be available at start up. +// A restore will only be performed on a loss of power, this code shouldn't make any changes on a reset cold, a rest origin or a download. // There is a enum to allow for different types of restore modes, currently only one is implemented. // 0 'DontRestore' // 1 'RestoreWithoutHome' -restores the position using a set position fb and does not set the home bit in the axis struct. // Note from Beckhoff: "A maximum of 1 MB persistent data can be reliably saved over the entire service life." ///######################################################### +IF bRestoreOnStartup THEN + bRestoreOnStartup:=FALSE; + bRestoreExecute:=TRUE; +END_IF + // Upon startup bPositionRestoreDone will be set to FALSE, after successfully completing the following code it will be set TRUE // and should stay TRUE for the rest of the time the PLC is operational, thus this routine should only be completed once. -IF bPositionRestoreDone = FALSE THEN +IF bRestoreExecute AND NOT bPositionRestoreDone THEN // Cycle through function blocks that read the encoder reference system i.e. whether axis is incremental or absolute // Result stored in Value, 0=Inc 1=Abs, execute set during the case statement @@ -152,7 +166,6 @@ IF bPositionRestoreDone = FALSE THEN END_FOR // Cycle through set position function blocks for each axis - // Only axes with RestorePosition=RestoreWithoutHome (mode 1) will be utilised FOR i:=1 TO gvl_app.axisNum DO fbRestorePosition[i]( Axis:= gvl.axes[i].Axis, @@ -200,7 +213,9 @@ IF bPositionRestoreDone = FALSE THEN // Execute position restore by setting fbRestorePosition.execute = TRUE FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 AND NOT(axesPersistent[i].bMovingAtShutdown) THEN - fbRestorePosition[i].Execute:=TRUE; + IF GVL.axes[i].config.eRestorePosition = RestorePosition.RestoreWithoutHome THEN + fbRestorePosition[i].Execute:=TRUE; + END_IF END_IF END_FOR eStartUp:=eStartUp+1; @@ -211,47 +226,49 @@ IF bPositionRestoreDone = FALSE THEN // bPositionRestoreDone will never get set to TRUE and will take up cycle time FOR i:=1 TO gvl_app.axisNum DO IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 AND NOT(axesPersistent[i].bMovingAtShutdown) THEN - IF NOT fbRestorePosition[i].Done THEN + IF GVL.axes[i].config.eRestorePosition = RestorePosition.RestoreWithoutHome THEN + IF NOT fbRestorePosition[i].Done THEN RETURN; + END_IF END_IF END_IF END_FOR eStartUp:=eStartUp+1; - FinishRestore: // Remove execute = TRUE for fbRestorePosition + FinishRestore: + // Remove execute = TRUE for fbRestorePosition FOR i:=1 TO gvl_app.axisNum DO fbRestorePosition[i].Execute:=FALSE; END_FOR bPositionRestoreDone:=TRUE; + bRestoreExecute:=FALSE; END_CASE END_IF]]> - 0 THEN - axesPersistent[i].bMovingAtShutdown:=TRUE; - ELSE - axesPersistent[i].bMovingAtShutdown:=FALSE; - END_IF - axesPersistent[i].bMovingAtShutdown:=axesPersistent[i].bMovingAtShutdown OR gvl.axes[i].Axis.Status.Moving; - END_FOR -END_IF]]> + 0 THEN + axesPersistent[i].bMovingAtShutdown:=TRUE; + ELSE + axesPersistent[i].bMovingAtShutdown:=FALSE; + END_IF + axesPersistent[i].bMovingAtShutdown:=axesPersistent[i].bMovingAtShutdown OR gvl.axes[i].Axis.Status.Moving; +END_FOR]]> - + - + @@ -283,11 +300,16 @@ END_IF]]> - + + + + + + @@ -295,9 +317,7 @@ END_IF]]> - - - + @@ -330,21 +350,27 @@ END_IF]]> - + + + + - + + + + + - @@ -352,7 +378,6 @@ END_IF]]> -
\ No newline at end of file From 4a59909ff173ce8fbd280c6bb3f323056475abdd Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 17 Dec 2019 14:49:07 +0100 Subject: [PATCH 57/83] Update to latest commit in tc_mca_std_lib Commented out mode 2 in position restore --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 015b771..6cc8df2 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 015b77129b1568a44172f723835a3a939592854d +Subproject commit 6cc8df2396955e4daa5ebbeb58e8551e0dda1b21 From b61bf93b529b96128b112fff030b0057833c7846 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Tue, 17 Dec 2019 14:54:20 +0100 Subject: [PATCH 58/83] Remove hardware and rebuild Change axisNum to 2 --- solution/_Config/NC/1.xml | 2 - solution/solution.tsproj | 3327 +------------------- solution/tc_project_app/GVLs/GVL_APP.TcGVL | 2 +- solution/tc_project_app/POUs/MAIN.TcPOU | 14 +- 4 files changed, 181 insertions(+), 3164 deletions(-) delete mode 100644 solution/_Config/NC/1.xml diff --git a/solution/_Config/NC/1.xml b/solution/_Config/NC/1.xml deleted file mode 100644 index 02118c9..0000000 --- a/solution/_Config/NC/1.xml +++ /dev/null @@ -1,2 +0,0 @@ - -1mm15001500225015000150000130000000303010060020002000true5false0.1false100true2falsefalse000false10.010truefalsefalse5510.0001103600false21677721500.010.1false0false0false000falsetrue0false0false0104857500false005false1-1165535#x000000000.1002200101100000000.01211100001361291330false110111true5false010000.10.1false0.10.50.10000.10.100.50000false0.010112010.001 diff --git a/solution/solution.tsproj b/solution/solution.tsproj index b3bdc09..c43bbbd 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,622 +1,6 @@ - - UINTARR2 - 32 - UINT - - 0 - 2 - - - [%u, %u] - [0] - [1] - - - 0x%08x [%u, %u] - . - [0] - [1] - - - 0x%08x (%u) - . - . - - - - NCENCODERSTRUCT_IN2B - 320 - - nDataIn1 - UINTARR2 - 32 - 0 - - - nDataIn2 - UINTARR2 - 32 - 32 - - - nState1 - USINT - 8 - 64 - - - nState2 - USINT - 8 - 72 - - - nState3 - USINT - 8 - 80 - - - nState4 - USINT - - 8 - 88 - - - nDataIn3 - UINTARR2 - 32 - 96 - - - nDataIn4 - UINTARR2 - 32 - 128 - - - nDataIn5 - UINTARR2 - 32 - 160 - - - nDataIn6 - UINTARR2 - 32 - 192 - - - nState5 - USINT - 8 - 224 - - - nState6 - USINT - 8 - 232 - - - nState7 - USINT - 8 - 240 - - - nState8 - USINT - 8 - 248 - - - nDcInputTime - DINT - 32 - 256 - - - nDataIn7 - UINTARR2 - 32 - 288 - - - - NCENCODERSTRUCT_IN - - 96 - - - - - - NCENCODERSTRUCT_OUT2 - 320 - - nDataOut1 - UINTARR2 - 32 - 0 - - - nDataOut2 - UINTARR2 - 32 - 32 - - - nCtrl1 - USINT - 8 - 64 - - - nCtrl2 - USINT - 8 - 72 - - - nCtrl3 - USINT - 8 - 80 - - - nCtrl4 - USINT - 8 - 88 - - - nDataOut3 - UINTARR2 - 32 - 96 - - - nDataOut4 - UINTARR2 - 32 - 128 - - - nDataOut5 - UINTARR2 - 32 - 160 - - - nDataOut6 - UINTARR2 - 32 - 192 - - - nCtrl5 - USINT - 8 - 224 - - - nCtrl6 - USINT - 8 - 232 - - - nCtrl7 - USINT - 8 - 240 - - - nCtrl8 - USINT - 8 - 248 - - - - NCENCODERSTRUCT_OUT - - 96 - - - - - - NCDRIVESTRUCT_IN2 - 320 - - nDataIn1 - UINTARR2 - 32 - 0 - - - nDataIn2 - UINTARR2 - 32 - 32 - - - nState1 - USINT - 8 - 64 - - - nState2 - USINT - 8 - 72 - - - nState3 - USINT - 8 - 80 - - - nState4 - USINT - - 8 - 88 - - - nDataIn3 - UINTARR2 - 32 - 96 - - - nDataIn4 - UINTARR2 - 32 - 128 - - - nDataIn5 - UINTARR2 - 32 - 160 - - - nDataIn6 - UINTARR2 - 32 - 192 - - - nState5 - USINT - 8 - 224 - - - nState6 - USINT - 8 - 232 - - - nState7 - USINT - 8 - 240 - - - nState8 - USINT - 8 - 248 - - - nDcOutputTime - DINT - 32 - 256 - - - - NCDRIVESTRUCT_IN - - 96 - - - - - - NCDRIVESTRUCT_OUT2 - 320 - - nDataOut1 - UINTARR2 - 32 - 0 - - - nDataOut2 - UINTARR2 - 32 - 32 - - - nCtrl1 - USINT - 8 - 64 - - - nCtrl2 - USINT - 8 - 72 - - - nCtrl3 - USINT - 8 - 80 - - - nCtrl4 - USINT - 8 - 88 - - - nDataOut3 - UINTARR2 - 32 - 96 - - - nDataOut4 - UINTARR2 - 32 - 128 - - - nDataOut5 - UINTARR2 - 32 - 160 - - - nDataOut6 - UINTARR2 - 32 - 192 - - - nCtrl5 - USINT - 8 - 224 - - - nCtrl6 - USINT - 8 - 232 - - - nCtrl7 - USINT - 8 - 240 - - - nCtrl8 - USINT - 8 - 248 - - - - NCDRIVESTRUCT_OUT - - 96 - - - - - - PLCTONC_AXIS_REF_CTRL - 32 - - Enable - BIT - 1 - 0 - - - FeedEnablePlus - BIT - 1 - 1 - - - FeedEnableMinus - BIT - 1 - 2 - - - HomingSensor - BIT - 1 - 5 - - - AcceptBlockedDrive - BIT - 1 - 8 - - - PlcDebugFlag - BIT - 1 - 30 - - - NcDebugFlag - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - PLCTONC_AXIS_REF - 1024 - - ControlDWord - PLCTONC_AXIS_REF_CTRL - 32 - 0 - - - Override - UDINT - 32 - 32 - - - AxisModeRequest - UDINT - 32 - 64 - - - AxisModeDWord - UDINT - 32 - 96 - - - AxisModeLReal - LREAL - 64 - 128 - - - PositionCorrection - LREAL - 64 - 192 - - - ExtSetPos - LREAL - 64 - 256 - - - ExtSetVelo - LREAL - 64 - 320 - - - ExtSetAcc - LREAL - 64 - 384 - - - ExtSetDirection - DINT - 32 - 448 - - - ExtControllerOutput - LREAL - 64 - 512 - - - GearRatio1 - LREAL - 64 - 576 - - - GearRatio2 - LREAL - 64 - 640 - - - GearRatio3 - LREAL - 64 - 704 - - - GearRatio4 - LREAL - 64 - 768 - - - MapState - BOOL - 8 - 832 - - - PlcCycleControl - BYTE - 8 - 840 - - - PlcCycleCount - BYTE - 8 - 848 - - - - NcStructType - 1 - - - - - NCAXLESTRUCT_FROMPLC3 - - - NCTOPLC_AXIS_REF_STATE 32 @@ -1311,104 +695,184 @@ External Setpoint Generation: - ARRAY [0..0] OF BYTE - 8 - BYTE - - 0 - 1 - + PLCTONC_AXIS_REF_CTRL + 32 + + Enable + BIT + 1 + 0 + + + FeedEnablePlus + BIT + 1 + 1 + + + FeedEnableMinus + BIT + 1 + 2 + + + HomingSensor + BIT + 1 + 5 + + + AcceptBlockedDrive + BIT + 1 + 8 + + + PlcDebugFlag + BIT + 1 + 30 + + + NcDebugFlag + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + - ARRAY [0..3] OF BIT - 4 - BIT - - 0 - 4 - - - - ARRAY [0..5] OF BIT - 6 - BIT - - 0 - 6 - - - - ARRAY [0..1] OF BYTE - 16 - BYTE - - 0 - 2 - - - - ARRAY [0..1] OF BIT - 2 - BIT - - 0 - 2 - - - - ARRAY [0..0] OF BIT - 1 - BIT - - 0 - 1 - - - - ARRAY [0..2] OF BIT - 3 - BIT - - 0 - 3 - - - - ARRAY [0..11] OF BIT - 12 - BIT - - 0 - 12 - - - - ARRAY [0..13] OF BIT - 14 - BIT - - 0 - 14 - - - - ARRAY [0..12] OF BIT - 13 - BIT - - 0 - 13 - + PLCTONC_AXIS_REF + 1024 + + ControlDWord + PLCTONC_AXIS_REF_CTRL + 32 + 0 + + + Override + UDINT + 32 + 32 + + + AxisModeRequest + UDINT + 32 + 64 + + + AxisModeDWord + UDINT + 32 + 96 + + + AxisModeLReal + LREAL + 64 + 128 + + + PositionCorrection + LREAL + 64 + 192 + + + ExtSetPos + LREAL + 64 + 256 + + + ExtSetVelo + LREAL + 64 + 320 + + + ExtSetAcc + LREAL + 64 + 384 + + + ExtSetDirection + DINT + 32 + 448 + + + ExtControllerOutput + LREAL + 64 + 512 + + + GearRatio1 + LREAL + 64 + 576 + + + GearRatio2 + LREAL + 64 + 640 + + + GearRatio3 + LREAL + 64 + 704 + + + GearRatio4 + LREAL + 64 + 768 + + + MapState + BOOL + 8 + 832 + + + PlcCycleControl + BYTE + 8 + 840 + + + PlcCycleCount + BYTE + 8 + 848 + + + + NcStructType + 1 + + + + + NCAXLESTRUCT_FROMPLC3 + + - - 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ff808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ff0000c00000c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff - 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000120b0000120b00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff0000ff0000ff0000ff0000ff0000ff0000ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff - 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000000000ff00ffff00ffff00ff000000ff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ff000000ff00ff000000ff00ff000000ff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff000000000000ff00ff000000000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff - 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff - 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c00000000000000000000000000000000000000000000000ffc0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080 - 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff - @@ -1425,467 +889,6 @@ External Setpoint Generation: - - - - NC-Task 1 SAF - - Inputs - - - Outputs - - - Image - - - - NC-Task 1 SVB - - - Axis 1 - - - - - - - - - - - - - Inputs - - In - NCENCODERSTRUCT_IN2B - 1024 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - nDataIn7 - - - - - Outputs - - Out - NCENCODERSTRUCT_OUT2 - 2048 - - nDataOut1 - - - nDataOut2 - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - - Inputs - - In - NCDRIVESTRUCT_IN2 - 1344 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - - - Outputs - - Out - NCDRIVESTRUCT_OUT2 - 2368 - - nDataOut1 - - - nDataOut2 - - - nCtrl2 - - - - nCtrl3 - - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - - - Inputs - - FromPlc - PLCTONC_AXIS_REF - - - - Outputs - - ToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - - - - - - Axis 2 - - - - - - - - - - - - - Inputs - - In - NCENCODERSTRUCT_IN2B - 2688 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - nDataIn7 - - - - - Outputs - - Out - NCENCODERSTRUCT_OUT2 - 4736 - - nDataOut1 - - - nDataOut2 - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - - Inputs - - In - NCDRIVESTRUCT_IN2 - 3008 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - - - Outputs - - Out - NCDRIVESTRUCT_OUT2 - 5056 - - nDataOut1 - - - nDataOut2 - - - nCtrl2 - - - - nCtrl3 - - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - - - Inputs - - FromPlc - PLCTONC_AXIS_REF - 1664 - - - - Outputs - - ToPlc - NCTOPLC_AXIS_REF - 2688 - - AxisState - - - - HomingState - - - - CoupleState - - - - - - - @@ -2025,69 +1028,6 @@ External Setpoint Generation: 1: axis is a master axis 2: axis is master and slave 3: axis is a slave axis -]]> - - - - GVL.axes[3].inputs.bLimitFwd - - BOOL - - - GVL.axes[3].inputs.bLimitBwd - - BOOL - - - GVL.axes[3].inputs.bHomeSensor - - BOOL - - - GVL.axes[3].inputs.bEncLAtch - - BOOL - - - GVL.axes[3].Axis.NcToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - @@ -2099,27 +1039,6 @@ External Setpoint Generation: BOOL - - MAIN.bOutput2 - BOOL - - - MAIN.bOutput3 - BOOL - - - MAIN.bOutput5 - - BOOL - - - MAIN.bOutput6 - BOOL - - - MAIN.bOutput7 - BOOL - GVL.axes[1].Axis.PlcToNc PLCTONC_AXIS_REF @@ -2128,10 +1047,6 @@ External Setpoint Generation: GVL.axes[2].Axis.PlcToNc PLCTONC_AXIS_REF - - GVL.axes[3].Axis.PlcToNc - PLCTONC_AXIS_REF - @@ -2139,1899 +1054,5 @@ External Setpoint Generation: - - - Device 1 (EtherCAT) - - -
-801112064
- 131072 - 8192 - 0 - 3 - 0 - 5612 - 20480 - -
0
- 4096 - 256 - 2 - 0 - 1 -
- - 498694182 - 1 - 256 - -
-
- - Image - - - Image-2 - - - Term 1 (EK1200) - 1000 - - - Term 2 (EL1018) - 7 - - 001001000000010004000000000000000100001000010000 - 0000000000000000001000010100000002000000000000000000000000000000 - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - - Term 3 (EL2808) - 1001 - - 000f01004400010003000000010001000100000f44090000 - 0000000000000000000f00020100000001000000000000000000000000000000 - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - BIT - - - - - - Term 4 (EL5101) - 1002 - - 001830002600010001000000300030003000001826010000 - 801830002200010002000000300030003000801822010000 - 001004002400010003000000000000000300001024010000 - 001106002000010004000000000000000500001120010000 - 0000000000000000001000020100000001000000000000000000000000000000 - 0000000000000000001100010100000002000000000000000000000000000000 - 00000000000000000d0800010100000003000000000000000000000000000000 - 0010f400f410f400 - 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000020030100000000000000000000000000000000000000000000000000000000000000 - 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000000000000000000000000020030100000000000000000001000000000000000000000000000000000000000000 - - #x1a01 - #x1a03 - #x1a04 - #x1a05 - #x1a06 - #x1a07 - #x1a08 - - USINT - - - UINT - - - UINT - - - - #x1a00 - #x1a03 - #x1a04 - #x1a05 - #x1a06 - #x1a07 - #x1a08 - - USINT - - - ARRAY [0..0] OF BYTE - - - UINT - - - UINT - - - - #x1a03 - #x1a04 - #x1a05 - #x1a06 - #x1a07 - #x1a08 - - UDINT - - - UINT - - - UINT - - - - #x1a04 - #x1a00 - #x1a01 - #x1a02 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - UINT - - - UINT - - - - #x1a03 - #x1a00 - #x1a01 - #x1a02 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - UDINT - - - UDINT - - - - #x1a00 - #x1a01 - #x1a02 - #x1a06 - - UDINT - - - - #x1a00 - #x1a01 - #x1a02 - #x1a05 - - UDINT - - - - #x1a08 - #x1a00 - #x1a01 - #x1a02 - - ULINT - - - - #x1a07 - #x1a00 - #x1a01 - #x1a02 - - UDINT - - - - #x1601 - #x1602 - #x1603 - - USINT - - - UINT - - - - #x1600 - #x1602 - #x1603 - - USINT - - - ARRAY [0..0] OF BYTE - - - UINT - - - - #x1603 - #x1600 - #x1601 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..3] OF BIT - - - ARRAY [0..0] OF BYTE - - - UINT - - - - #x1602 - #x1600 - #x1601 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..3] OF BIT - - - ARRAY [0..0] OF BYTE - - - UDINT - - - - - - - - Term 5 (EL5101) - 1002 - - 001830002600010001000000300030003000001826010000 - 801830002200010002000000300030003000801822010000 - 001004002400010003000000000000000300001024010000 - 001106002000010004000000000000000500001120010000 - 0000000000000000001000020100000001000000000000000000000000000000 - 0000000000000000001100010100000002000000000000000000000000000000 - 00000000000000000d0800010100000003000000000000000000000000000000 - 0010f400f410f400 - 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000020030100000000000000000000000000000000000000000000000000000000000000 - 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000000000000000000000000020030100000000000000000001000000000000000000000000000000000000000000 - - #x1a01 - #x1a03 - #x1a04 - #x1a05 - #x1a06 - #x1a07 - #x1a08 - - USINT - - - UINT - - - UINT - - - - #x1a00 - #x1a03 - #x1a04 - #x1a05 - #x1a06 - #x1a07 - #x1a08 - - USINT - - - ARRAY [0..0] OF BYTE - - - UINT - - - UINT - - - - #x1a03 - #x1a04 - #x1a05 - #x1a06 - #x1a07 - #x1a08 - - UDINT - - - UINT - - - UINT - - - - #x1a04 - #x1a00 - #x1a01 - #x1a02 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - UINT - - - UINT - - - - #x1a03 - #x1a00 - #x1a01 - #x1a02 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - UDINT - - - UDINT - - - - #x1a00 - #x1a01 - #x1a02 - #x1a06 - - UDINT - - - - #x1a00 - #x1a01 - #x1a02 - #x1a05 - - UDINT - - - - #x1a08 - #x1a00 - #x1a01 - #x1a02 - - ULINT - - - - #x1a07 - #x1a00 - #x1a01 - #x1a02 - - UDINT - - - - #x1601 - #x1602 - #x1603 - - USINT - - - UINT - - - - #x1600 - #x1602 - #x1603 - - USINT - - - ARRAY [0..0] OF BYTE - - - UINT - - - - #x1603 - #x1600 - #x1601 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..3] OF BIT - - - ARRAY [0..0] OF BYTE - - - UINT - - - - #x1602 - #x1600 - #x1601 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..3] OF BIT - - - ARRAY [0..0] OF BYTE - - - UDINT - - - - - - - - Term 6 (EL9505) - 1003 - - 001001000000010004000000000000000000001000000000 - 0000000000000000001000010100000002000000000000000000000000000000 - - - BIT - - - BIT - - - - - - Term 7 (EL1252-0050) - 7 - - 001001002000010004000000000000000100001022010000 - ae0922000000000004000000000000000000ae0900040000 - 100900000000000004000000000000000000100900040000 - 0000000000000000001000010100000002000000060000000000000000000000 - 0000000000000000ae0900010100000002000000060000000100000000000000 - 0000000000000000100900010000000002000000060000000200000000000000 - 0001000000000000000000000000000000000000000000000000000000000000 - 44634c617463680000000000000000004443204c617463682053657474696e6773000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000 - - - BIT - - - - - BIT - - - ARRAY [0..5] OF BIT - - - - - #x1a11 - #x1a12 - #x1a13 - #x1a16 - - USINT - - - USINT - - - - #x1a10 - #x1a12 - #x1a13 - #x1a16 - - USINT - - - ARRAY [0..0] OF BYTE - - - UDINT - - - - #x1a10 - #x1a11 - #x1a13 - #x1a16 - - USINT - - - ARRAY [0..0] OF BYTE - - - ULINT - - - ULINT - - - - #x1a10 - #x1a11 - #x1a12 - #x1a16 - - USINT - - - USINT - - - ULINT - - - ULINT - - - ULINT - - - ULINT - - - - #x1a15 - - UDINT - - - - #x1a14 - - ULINT - - - - #x1a10 - #x1a11 - #x1a12 - #x1a13 - - ARRAY [0..1] OF BYTE - - - ULINT - - - ULINT - - - ULINT - - - ULINT - - - - - - - - Term 8 (EL7037) - 1004 - - 001080002600010001000000400080008000001026010000 - 801080002200010002000000400080008000801022010000 - 001108002400010003000000000000000800001124010000 - 801108002000010004000000000000000800801120010000 - 0000000000000000001100020100000001000000000000000000000000000000 - 0000000000000000801100010100000002000000000000000000000000000000 - 00000000000000000d0800010100000003000000000000000000000000000000 - 0010f400f410f400 - 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000 - 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000130000 - 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000 - - #x1a01 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..1] OF BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - UINT - - - UINT - - - - #x1a00 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..1] OF BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - UDINT - - - UDINT - - - - - UDINT - - - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..2] OF BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - - - UINT - - - UINT - - - - - INT - - - - #x1a07 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BYTE - - - - #x1a06 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BYTE - - - UDINT - - - INT - - - UDINT - - - - - UDINT - - - - - UDINT - - - - - DINT - - - - #x1601 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..11] OF BIT - - - UINT - - - - #x1600 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..11] OF BIT - - - UDINT - - - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BYTE - - - BIT - - - ARRAY [0..3] OF BIT - - - - #x1604 - #x1605 - #x1606 - - UDINT - - - - #x1603 - #x1605 - #x1606 - - INT - - - - #x1603 - #x1604 - #x1606 - - BIT - - - BIT - - - ARRAY [0..13] OF BIT - - - UDINT - - - - #x1603 - #x1604 - #x1605 - - BIT - - - BIT - - - ARRAY [0..13] OF BIT - - - UDINT - - - INT - - - UINT - - - UINT - - - UINT - - - - #x1603 - #x1604 - #x1605 - - ARRAY [0..1] OF BIT - - - BIT - - - ARRAY [0..12] OF BIT - - - UDINT - - - INT - - - UINT - - - UINT - - - UINT - - - - - - - - - Term 9 (EL7037) - 1004 - - 001080002600010001000000400080008000001026010000 - 801080002200010002000000400080008000801022010000 - 001108002400010003000000000000000800001124010000 - 801108002000010004000000000000000800801120010000 - 0000000000000000001100020100000001000000000000000000000000000000 - 0000000000000000801100010100000002000000000000000000000000000000 - 00000000000000000d0800010100000003000000000000000000000000000000 - 0010f400f410f400 - 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000 - 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000130000 - 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000 - - #x1a01 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..1] OF BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - UINT - - - UINT - - - - #x1a00 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..1] OF BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - UDINT - - - UDINT - - - - - UDINT - - - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..2] OF BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BIT - - - BIT - - - - - UINT - - - UINT - - - - - INT - - - - #x1a07 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BYTE - - - - #x1a06 - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BYTE - - - UDINT - - - INT - - - UDINT - - - - - UDINT - - - - - UDINT - - - - - DINT - - - - #x1601 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..11] OF BIT - - - UINT - - - - #x1600 - - BIT - - - BIT - - - BIT - - - BIT - - - ARRAY [0..11] OF BIT - - - UDINT - - - - - BIT - - - BIT - - - BIT - - - ARRAY [0..0] OF BYTE - - - BIT - - - ARRAY [0..3] OF BIT - - - - #x1604 - #x1605 - #x1606 - - UDINT - - - - #x1603 - #x1605 - #x1606 - - INT - - - - #x1603 - #x1604 - #x1606 - - BIT - - - BIT - - - ARRAY [0..13] OF BIT - - - UDINT - - - - #x1603 - #x1604 - #x1605 - - BIT - - - BIT - - - ARRAY [0..13] OF BIT - - - UDINT - - - INT - - - UINT - - - UINT - - - UINT - - - - #x1603 - #x1604 - #x1605 - - ARRAY [0..1] OF BIT - - - BIT - - - ARRAY [0..12] OF BIT - - - UDINT - - - INT - - - UINT - - - UINT - - - UINT - - - - - - - - - Term 10 (EL9011) - 1005 - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/solution/tc_project_app/GVLs/GVL_APP.TcGVL b/solution/tc_project_app/GVLs/GVL_APP.TcGVL index a846a85..e4fc2d1 100644 --- a/solution/tc_project_app/GVLs/GVL_APP.TcGVL +++ b/solution/tc_project_app/GVLs/GVL_APP.TcGVL @@ -7,7 +7,7 @@ VAR_GLOBAL END_VAR VAR_GLOBAL CONSTANT - axisNum : UINT:=3; + axisNum : UINT:=2; //axisCoupleMax : UINT:=4; END_VAR]]> diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index de4615c..9ce3259 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -11,12 +11,12 @@ VAR (******Outputs: Power for Limit switches and Home Sensors (every 4th output)********) bOutput1 AT %Q*: BOOL:= TRUE; - bOutput2 AT %Q*: BOOL:= TRUE; - bOutput3 AT %Q*: BOOL:= TRUE; + //bOutput2 AT %Q*: BOOL:= TRUE; + //bOutput3 AT %Q*: BOOL:= TRUE; //bOutput4 AT %Q*: BOOL:= TRUE; - bOutput5 AT %Q*: BOOL:= TRUE; - bOutput6 AT %Q*: BOOL:= TRUE; - bOutput7 AT %Q*: BOOL:= TRUE; + //bOutput5 AT %Q*: BOOL:= TRUE; + //bOutput6 AT %Q*: BOOL:= TRUE; + //bOutput7 AT %Q*: BOOL:= TRUE; //bOutput8 AT %Q*: BOOL:= TRUE; //bOutput9 AT %Q*: BOOL:= TRUE; //bOutput13 AT %Q*: BOOL:= TRUE; @@ -76,8 +76,7 @@ ERROR();]]> - @@ -268,7 +267,6 @@ END_FOR]]> - From 646085d03ba59d60f401d85a827edf30503dfdb6 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 18 Dec 2019 10:57:49 +0100 Subject: [PATCH 59/83] Update tc_mca_std_lib to latest version --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 6cc8df2..bb5b855 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 6cc8df2396955e4daa5ebbeb58e8551e0dda1b21 +Subproject commit bb5b8551125ca198a4b28e94bdcc250714e4dc43 From 200ff88e6f92b502082d80d7514fdca7d0df77f2 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 18 Dec 2019 15:26:33 +0100 Subject: [PATCH 60/83] Update to latest commit of tc_mca_std_lib --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index bb5b855..ec2882f 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit bb5b8551125ca198a4b28e94bdcc250714e4dc43 +Subproject commit ec2882fe47273a9d10aebf779aea3fe360b7c7e8 From 4af4094855829f2e76c96f2eb5463ec3e2027634 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Mon, 16 Dec 2019 16:18:12 +0100 Subject: [PATCH 61/83] Change PLC cycle time to 10ms --- solution/tc_project_app/PlcTask.TcTTO | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO index 0763afe..3a043d2 100644 --- a/solution/tc_project_app/PlcTask.TcTTO +++ b/solution/tc_project_app/PlcTask.TcTTO @@ -2,8 +2,8 @@ - 1000 - 20 + 10000 + 4 MAIN From f360d382a178a02655d378a38916e49381d19467 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 18 Dec 2019 16:33:53 +0100 Subject: [PATCH 62/83] Update to latest commit of tc_mca_std_lib Remove variable fHomePosition which was defined twice --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index ec2882f..852ea37 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit ec2882fe47273a9d10aebf779aea3fe360b7c7e8 +Subproject commit 852ea37aa8d1aadfe0f2b84fd462c1f30aadd492 From 91b18c6e734620a3d99b7abede557b28a4880d64 Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Wed, 18 Dec 2019 16:44:53 +0100 Subject: [PATCH 63/83] Change TC2_MC library version to 3.3.28 No jogging error with this library version --- solution/tc_project_app/tc_project_app.plcproj | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index d9d9c93..b5d34ae 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -6,7 +6,7 @@ {fb261665-fd20-4bf2-97f8-2854c82b752d} True tc_project_app - 3.1.4022.6 + 3.1.4023.0 {047dee04-c246-47b2-8ccc-a15e36987c43} {ae4eb5ee-6030-47a6-bf35-5a6afd9efeeb} {5ef19bd0-aca2-493f-b2a1-89e363647697} @@ -14,7 +14,6 @@ {26d08e27-a705-49a9-95de-a3a0b6ea049c} {577f21c4-8eb2-4f2c-a24e-4c3f62ca96d2} true - false @@ -345,6 +344,11 @@ Content + + + Tc2_MC2, 3.3.28.0 (Beckhoff Automation GmbH) + + From 0532cb9214476394890d8cbda7c7a4b878838fd1 Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Wed, 18 Dec 2019 17:16:49 +0100 Subject: [PATCH 64/83] Remove PLCTask1 from solution --- solution/tc_project_app/PlcTask.TcTTO | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO index 3a043d2..0763afe 100644 --- a/solution/tc_project_app/PlcTask.TcTTO +++ b/solution/tc_project_app/PlcTask.TcTTO @@ -2,8 +2,8 @@ - 10000 - 4 + 1000 + 20 MAIN From 6e0735106d0df0d01dc8406967b8a80d9adbbf0e Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Wed, 18 Dec 2019 17:19:00 +0100 Subject: [PATCH 65/83] Change PLCtask cycle time to 10ms --- solution/solution.tsproj | 2 +- solution/tc_project_app/PlcTask.TcTTO | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 3d1f5a3..f74cba4 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -884,7 +884,7 @@ External Setpoint Generation: PlcTaskCom - + PlcTask diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO index 0763afe..b5badec 100644 --- a/solution/tc_project_app/PlcTask.TcTTO +++ b/solution/tc_project_app/PlcTask.TcTTO @@ -2,7 +2,7 @@ - 1000 + 10000 20 MAIN From 7ee4fae5ada51cdfb0ec1792ce69955057643f4f Mon Sep 17 00:00:00 2001 From: aaronlong Date: Tue, 24 Dec 2019 10:08:59 +0000 Subject: [PATCH 66/83] Added tcUNIT, including helper functions and app test folder, to generic structure --- .../tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU | 20 ++ .../tcUNIT/common/FB_tcUNIT_common.TcPOU | 187 ++++++++++++++++++ .../tcUNIT/common/tcUNIT_GVL.TcGVL | 28 +++ .../tc_project_app/tc_project_app.tmcRefac | 15 ++ 4 files changed, 250 insertions(+) create mode 100644 solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU create mode 100644 solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU create mode 100644 solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL create mode 100644 solution/tc_project_app/tc_project_app.tmcRefac diff --git a/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU b/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU new file mode 100644 index 0000000..ccb726d --- /dev/null +++ b/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU b/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU new file mode 100644 index 0000000..e59f78a --- /dev/null +++ b/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL b/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL new file mode 100644 index 0000000..3b89d11 --- /dev/null +++ b/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tc_project_app.tmcRefac b/solution/tc_project_app/tc_project_app.tmcRefac new file mode 100644 index 0000000..d6415b5 --- /dev/null +++ b/solution/tc_project_app/tc_project_app.tmcRefac @@ -0,0 +1,15 @@ + + + + + TCUNIT_RUN + tcUNIT_STD_LIB_1 + tcUNIT_APP_RUN + + + PrepareMove + motionStrategy + eMotionStrategy + + + \ No newline at end of file From 13dc7a0ba1748a71c2067f1f92547cf5849a235a Mon Sep 17 00:00:00 2001 From: aaronlong Date: Tue, 24 Dec 2019 10:11:14 +0000 Subject: [PATCH 67/83] Revert "Added tcUNIT, including helper functions and app test folder, to generic structure" This reverts commit 7ee4fae5ada51cdfb0ec1792ce69955057643f4f. Should have been pushed to a branch for review first --- .../tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU | 20 -- .../tcUNIT/common/FB_tcUNIT_common.TcPOU | 187 ------------------ .../tcUNIT/common/tcUNIT_GVL.TcGVL | 28 --- .../tc_project_app/tc_project_app.tmcRefac | 15 -- 4 files changed, 250 deletions(-) delete mode 100644 solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU delete mode 100644 solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU delete mode 100644 solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL delete mode 100644 solution/tc_project_app/tc_project_app.tmcRefac diff --git a/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU b/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU deleted file mode 100644 index ccb726d..0000000 --- a/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU b/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU deleted file mode 100644 index e59f78a..0000000 --- a/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL b/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL deleted file mode 100644 index 3b89d11..0000000 --- a/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/solution/tc_project_app/tc_project_app.tmcRefac b/solution/tc_project_app/tc_project_app.tmcRefac deleted file mode 100644 index d6415b5..0000000 --- a/solution/tc_project_app/tc_project_app.tmcRefac +++ /dev/null @@ -1,15 +0,0 @@ - - - - - TCUNIT_RUN - tcUNIT_STD_LIB_1 - tcUNIT_APP_RUN - - - PrepareMove - motionStrategy - eMotionStrategy - - - \ No newline at end of file From 1079229ffb7948f452ddd2b3b5515f9300a066db Mon Sep 17 00:00:00 2001 From: Simon-Cooper <39404307+Simon-Cooper@users.noreply.github.com> Date: Fri, 7 Feb 2020 10:17:46 +0000 Subject: [PATCH 68/83] ALLOW LOCAL SIMULATIONS TO BYBASS UPS CHECK Add CHECK_UPS action to house monitoring of the UPS global status Modify RESTORE_POSITIONS state machine to remove numerical enumeration usage Add device identity functionblock to check whether local simulation or CX Add POSITION RECOVERY action to check device type and determine whether to run position restore and ups checking Add solution/_Config/ folder to gitignore to remove NC and IO --- .gitignore | 1 + solution/solution.tsproj | 129 ++++++++---------------- solution/tc_project_app/POUs/MAIN.TcPOU | 73 +++++++++----- 3 files changed, 91 insertions(+), 112 deletions(-) diff --git a/.gitignore b/.gitignore index 8f8c117..cab1dc8 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ logs.0* solution/TrialLicense.tclrs tools/linux/ADS/ tools/linux/getADSState/getADSState.bin +_Config/ diff --git a/solution/solution.tsproj b/solution/solution.tsproj index f74cba4..5dd70ed 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,8 +1,8 @@ - + - NCTOPLC_AXIS_REF_STATE + NCTOPLC_AXIS_REF_STATE 32 Operational @@ -112,6 +112,12 @@ 1 17 + + IsDriveLimitActive + BIT + 1 + 18 + ContinuousMotion BIT @@ -199,6 +205,11 @@ 16#%08X + + + {4C3FC5AC-D5AA-44C6-AC5A-159774BA0F6D} + + NCTOPLC_AXIS_REF_OPMODE @@ -394,11 +405,11 @@ - NCTOPLC_AXIS_REF + NCTOPLC_AXIS_REF 2048 StateDWord - NCTOPLC_AXIS_REF_STATE + NCTOPLC_AXIS_REF_STATE 32 0 @@ -646,6 +657,18 @@ External Setpoint Generation: 64 1600 + + AbsPhasingPos + LREAL + 64 + 1664 + + + TorqueOffset + LREAL + 64 + 1728 + ActPosWithoutPosCorrection LREAL @@ -692,6 +715,9 @@ External Setpoint Generation: + + + @@ -873,7 +899,7 @@ External Setpoint Generation: - + @@ -889,6 +915,9 @@ External Setpoint Generation: + + + @@ -927,46 +956,7 @@ External Setpoint Generation: GVL.axes[1].Axis.NcToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - + NCTOPLC_AXIS_REF GVL.axes[2].inputs.bLimitFwd @@ -990,46 +980,7 @@ External Setpoint Generation: GVL.axes[2].Axis.NcToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - + NCTOPLC_AXIS_REF @@ -1055,4 +1006,12 @@ External Setpoint Generation: + + + + + + + + diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index f81cabd..5eebc02 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,5 +1,5 @@  - + - + + + + + + + + + + eSUPS_PowerFailure THEN +ELSIF eGlobalSUpsState <> eSUPS_PowerOK THEN (* next cycles of powerfailure *) (* skip regular code execution for the remaining cycles of the powerfailure/writing of persistent data/quick shutdown ... *) RETURN; -END_IF - -RESTORE_POSITIONS(); -PROG(); -AXES(); -ERROR();]]> - - - - +END_IF]]> @@ -121,6 +126,15 @@ fbEL1808( ]]> + + + '0') THEN + CHECK_UPS(); + RESTORE_POSITIONS(); +END_IF]]> + + - + if busy then continue with PLC cycle and check again next time. @@ -199,14 +213,14 @@ IF bRestoreExecute AND NOT bPositionRestoreDone THEN // .valid=FALSE and .busy=FALSE which indicateds the FB probably hasn't started and thus needs to see a rising edge. // Set execute to low, Exit MAIN.STARTUP and go back a step in the CASE statement. bExecuteReadEncRefSys:=FALSE; - eStartUp:=eStartUp-1; + eStartUp:=ReadAxisFeedbackType; iRetry:=iRetry+1; // counter used for troubleshooting to see how many cycles it takes before fbReadEncRefSys function blocks are read correctly RETURN; END_IF END_IF END_FOR // If the code gets here all axes either have .valid=TRUE for all axes - eStartUp:=eStartUp+1; + eStartUp:= ExecuteRestore; ExecuteRestore: // Execute position restore by setting fbRestorePosition.execute = TRUE @@ -217,7 +231,7 @@ IF bRestoreExecute AND NOT bPositionRestoreDone THEN END_IF END_IF END_FOR - eStartUp:=eStartUp+1; + eStartUp:= CheckRestore; CheckRestore: // Check the set position fbs are finished @@ -232,7 +246,7 @@ IF bRestoreExecute AND NOT bPositionRestoreDone THEN END_IF END_IF END_FOR - eStartUp:=eStartUp+1; + eStartUp:= FinishRestore; FinishRestore: // Remove execute = TRUE for fbRestorePosition @@ -245,7 +259,7 @@ IF bRestoreExecute AND NOT bPositionRestoreDone THEN END_IF]]> - + - - - - + @@ -271,6 +282,10 @@ END_FOR]]> + + + + @@ -287,6 +302,10 @@ END_FOR]]> + + + + From bcbc791fe1c96ad5e5ee7d3f89ff0542c5c17f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 10 Feb 2020 10:39:51 +0100 Subject: [PATCH 69/83] Add solution/_Config/NC/NC.xti The NC.xti file is needed for the PLC NC task. So we re-add it here. --- solution/_Config/NC/NC.xti | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 solution/_Config/NC/NC.xti diff --git a/solution/_Config/NC/NC.xti b/solution/_Config/NC/NC.xti new file mode 100644 index 0000000..759c7a3 --- /dev/null +++ b/solution/_Config/NC/NC.xti @@ -0,0 +1,20 @@ + + + + + NC-Task 1 SAF + + Inputs + + + Outputs + + + Image + + + + NC-Task 1 SVB + + + From 5c19425abcf8d9d6fa746d0f03b297f059ff987c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 10 Feb 2020 10:42:26 +0100 Subject: [PATCH 70/83] Partly ignore solution/_Config/ We need NC/nc.xti to be able to run the NC PLC task. So don't ignore it. But ignore all IO and Axes. --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index cab1dc8..63a08bd 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ logs.0* solution/TrialLicense.tclrs tools/linux/ADS/ tools/linux/getADSState/getADSState.bin -_Config/ +_Config/NC/Axes +_Config/IO From b522fe177e0bbc8d54d67fe57e5bc5ff55bef52d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 10 Feb 2020 10:44:25 +0100 Subject: [PATCH 71/83] fix whitespace damage --- solution/tc_project_app/POUs/MAIN.TcPOU | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 5eebc02..2c922e6 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -48,7 +48,7 @@ VAR iRetry : INT; fbReadEncRefSys : ARRAY [1..gvl_app.axisNum] OF MC_ReadParameter; fbRestorePosition : ARRAY [1..GVL_app.axisNum] OF MC_SetPosition; - fbGetDeviceIdentification : FB_GetDeviceIdentification; + fbGetDeviceIdentification : FB_GetDeviceIdentification; END_VAR @@ -130,8 +130,8 @@ fbEL1808( '0') THEN - CHECK_UPS(); - RESTORE_POSITIONS(); + CHECK_UPS(); + RESTORE_POSITIONS(); END_IF]]> From b914a2f62ad9b004ad7c9cfb6d2b2e09a4038c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 10 Feb 2020 10:51:12 +0100 Subject: [PATCH 72/83] Initial number of axes is 0 Change axisNum in GVL_APP to 0 --- solution/tc_project_app/GVLs/GVL_APP.TcGVL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/GVLs/GVL_APP.TcGVL b/solution/tc_project_app/GVLs/GVL_APP.TcGVL index 9e800ab..e125049 100644 --- a/solution/tc_project_app/GVLs/GVL_APP.TcGVL +++ b/solution/tc_project_app/GVLs/GVL_APP.TcGVL @@ -7,7 +7,7 @@ VAR_GLOBAL END_VAR VAR_GLOBAL CONSTANT - axisNum : UINT:=2; + axisNum : UINT:=0; //axisCoupleMax : UINT:=4; END_VAR]]> From de53c24b1569826149def478bde4d7da1290cafb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 10 Feb 2020 10:53:57 +0100 Subject: [PATCH 73/83] solution.tsproj: Remove the 2 axes, commit with TC 3.1.4024.0 --- solution/solution.tsproj | 968 +-------------------------------------- 1 file changed, 1 insertion(+), 967 deletions(-) diff --git a/solution/solution.tsproj b/solution/solution.tsproj index 5dd70ed..36de82a 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,904 +1,5 @@ - - - - NCTOPLC_AXIS_REF_STATE - 32 - - Operational - BIT - 1 - 0 - - - Homed - BIT - 1 - 1 - - - NotMoving - BIT - 1 - 2 - - - InPositionArea - BIT - 1 - 3 - - - InTargetPosition - BIT - 1 - 4 - - - Protected - BIT - 1 - 5 - - - ErrorPropagationDelayed - BIT - 1 - 6 - - - HasBeenStopped - BIT - 1 - 7 - - - HasJob - BIT - 1 - 8 - - - PositiveDirection - BIT - 1 - 9 - - - NegativeDirection - BIT - 1 - 10 - - - HomingBusy - BIT - 1 - 11 - - - ConstantVelocity - BIT - 1 - 12 - - - Compensating - BIT - 1 - 13 - - - ExtSetPointGenEnabled - BIT - 1 - 14 - - - PhasingActive - BIT - 1 - 15 - - - ExternalLatchValid - BIT - 1 - 16 - - - NewTargetPos - BIT - 1 - 17 - - - IsDriveLimitActive - BIT - 1 - 18 - - - ContinuousMotion - BIT - 1 - 19 - - - ControlLoopClosed - BIT - 1 - 20 - - - CamTableQueued - BIT - 1 - 21 - - - CamDataQueued - BIT - 1 - 22 - - - CamScalingPending - BIT - 1 - 23 - - - CmdBuffered - BIT - 1 - 24 - - - PTPmode - BIT - 1 - 25 - - - SoftLimitMinExceeded - BIT - 1 - 26 - - - SoftLimitMaxExceeded - BIT - 1 - 27 - - - DriveDeviceError - BIT - 1 - 28 - - - MotionCommandsLocked - BIT - 1 - 29 - - - IoDataInvalid - BIT - 1 - 30 - - - Error - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - {4C3FC5AC-D5AA-44C6-AC5A-159774BA0F6D} - - - - - NCTOPLC_AXIS_REF_OPMODE - 32 - - OpModePosAreaMonitoring - BIT - 1 - 0 - - - OpModeTargetPosMonitoring - BIT - 1 - 1 - - - OpModeLoop - BIT - 1 - 2 - - - OpModeMotionMonitoring - BIT - 1 - 3 - - - OpModePEHTimeMonitoring - BIT - 1 - 4 - - - OpModeBacklashCompensation - BIT - 1 - 5 - - - OpModeDelayedErrorReaction - BIT - 1 - 6 - - - OpModeModulo - BIT - 1 - 7 - - - OpModeSimulationAxis - BIT - 1 - 8 - - - OpModePosLagMonitoring - BIT - 1 - 16 - - - OpModeVeloLagMonitoring - BIT - 1 - 17 - - - OpModeSoftLimitMinMonitoring - BIT - 1 - 18 - - - OpModeSoftLimitMaxMonitoring - BIT - 1 - 19 - - - OpModePosCorrection - BIT - 1 - 20 - - - OpModeAllowSlaveCommands - BIT - 1 - 21 - - - OpModeAllowExtSetAxisCommands - BIT - 1 - 22 - - - ApplicationRequest - BIT - 1 - 23 - - - - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - - AvoidingCollision - BIT - 1 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_STATE2 - 32 - - Value - DWORD - 32 - 0 - - - Flags - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - 8 - - CamActivationPending - BIT - 1 - 0 - - - CamDeactivationPending - BIT - 1 - 1 - - - CamActive - BIT - 1 - 2 - - - CamDataQueued - BIT - 1 - 6 - - - CamScalingPending - BIT - 1 - 7 - - - - UINTARR8 - 128 - UINT - - 0 - 8 - - - - NCTOPLC_AXIS_REF - 2048 - - StateDWord - NCTOPLC_AXIS_REF_STATE - 32 - 0 - - - ErrorCode - UDINT - 32 - 32 - - - AxisState - UDINT - - 32 - 64 - - - AxisModeConfirmation - UDINT - 32 - 96 - - - HomingState - UDINT - - 32 - 128 - - - CoupleState - UDINT - - 32 - 160 - - - SvbEntries - UDINT - 32 - 192 - - - SafEntries - UDINT - 32 - 224 - - - AxisId - UDINT - 32 - 256 - - - OpModeDWord - NCTOPLC_AXIS_REF_OPMODE - 32 - 288 - - - ActPos - LREAL - 64 - 320 - - - ModuloActPos - LREAL - 64 - 384 - - - ActiveControlLoopIndex - UINT - 16 - 448 - - - ControlLoopIndex - UINT - 16 - 464 - - - ModuloActTurns - DINT - 32 - 480 - - - ActVelo - LREAL - 64 - 512 - - - PosDiff - LREAL - 64 - 576 - - - SetPos - LREAL - 64 - 640 - - - SetVelo - LREAL - 64 - 704 - - - SetAcc - LREAL - 64 - 768 - - - TargetPos - LREAL - 64 - 832 - - - ModuloSetPos - LREAL - 64 - 896 - - - ModuloSetTurns - DINT - 32 - 960 - - - CmdNo - UINT - 16 - 992 - - - CmdState - UINT - 16 - 1008 - - - SetJerk - LREAL - 64 - 1024 - - - SetTorque - LREAL - 64 - 1088 - - - ActTorque - LREAL - 64 - 1152 - - - StateDWord2 - NCTOPLC_AXIS_REF_STATE2 - 32 - 1216 - - - StateDWord3 - DWORD - 32 - 1248 - - - TouchProbeState - DWORD - 32 - 1280 - - - TouchProbeCounter - DWORD - 32 - 1312 - - - CamCouplingState - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - - 0 - 8 - - 64 - 1344 - - - CamCouplingTableID - UINTARR8 - 128 - 1408 - - - ActTorqueDerivative - LREAL - 64 - 1536 - - - SetTorqueDerivative - LREAL - 64 - 1600 - - - AbsPhasingPos - LREAL - 64 - 1664 - - - TorqueOffset - LREAL - 64 - 1728 - - - ActPosWithoutPosCorrection - LREAL - 64 - 1792 - - - ActAcc - LREAL - 64 - 1856 - - - DcTimeStamp - UDINT - 32 - 1920 - - - - NcStructType - 2 - - - - - NCAXLESTRUCT_TOPLC - - - NCAXLESTRUCT_TOPLC2 - - - NCAXLESTRUCT_TOPLC3 - - - NCAXLESTRUCT_TOPLC4 - - - - - - - - - - - - - - - - - PLCTONC_AXIS_REF_CTRL - 32 - - Enable - BIT - 1 - 0 - - - FeedEnablePlus - BIT - 1 - 1 - - - FeedEnableMinus - BIT - 1 - 2 - - - HomingSensor - BIT - 1 - 5 - - - AcceptBlockedDrive - BIT - 1 - 8 - - - PlcDebugFlag - BIT - 1 - 30 - - - NcDebugFlag - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - PLCTONC_AXIS_REF - 1024 - - ControlDWord - PLCTONC_AXIS_REF_CTRL - 32 - 0 - - - Override - UDINT - 32 - 32 - - - AxisModeRequest - UDINT - 32 - 64 - - - AxisModeDWord - UDINT - 32 - 96 - - - AxisModeLReal - LREAL - 64 - 128 - - - PositionCorrection - LREAL - 64 - 192 - - - ExtSetPos - LREAL - 64 - 256 - - - ExtSetVelo - LREAL - 64 - 320 - - - ExtSetAcc - LREAL - 64 - 384 - - - ExtSetDirection - DINT - 32 - 448 - - - ExtControllerOutput - LREAL - 64 - 512 - - - GearRatio1 - LREAL - 64 - 576 - - - GearRatio2 - LREAL - 64 - 640 - - - GearRatio3 - LREAL - 64 - 704 - - - GearRatio4 - LREAL - 64 - 768 - - - MapState - BOOL - 8 - 832 - - - PlcCycleControl - BYTE - 8 - 840 - - - PlcCycleCount - BYTE - 8 - 848 - - - - NcStructType - 1 - - - - - NCAXLESTRUCT_FROMPLC3 - - - - + @@ -932,57 +33,6 @@ External Setpoint Generation: tc_project_app Instance {08500001-0000-0000-F000-000000000064} - - PlcTask Inputs - - GVL.axes[1].inputs.bLimitFwd - - BOOL - - - GVL.axes[1].inputs.bLimitBwd - - BOOL - - - GVL.axes[1].inputs.bHomeSensor - - BOOL - - - GVL.axes[1].inputs.bEncLAtch - - BOOL - - - GVL.axes[1].Axis.NcToPlc - NCTOPLC_AXIS_REF - - - GVL.axes[2].inputs.bLimitFwd - - BOOL - - - GVL.axes[2].inputs.bLimitBwd - - BOOL - - - GVL.axes[2].inputs.bHomeSensor - - BOOL - - - GVL.axes[2].inputs.bEncLAtch - - BOOL - - - GVL.axes[2].Axis.NcToPlc - NCTOPLC_AXIS_REF - - PlcTask Outputs @@ -990,14 +40,6 @@ External Setpoint Generation: BOOL - - GVL.axes[1].Axis.PlcToNc - PLCTONC_AXIS_REF - - - GVL.axes[2].Axis.PlcToNc - PLCTONC_AXIS_REF - @@ -1006,12 +48,4 @@ External Setpoint Generation: - - - - - - - - From 06fff58f08fd4e15b51daa0dfad5858785921398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 10 Feb 2020 10:58:35 +0100 Subject: [PATCH 74/83] MAIN.TcPOU: Save with TC version 3.1.4024.0 --- solution/tc_project_app/POUs/MAIN.TcPOU | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 2c922e6..458ca9d 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,5 +1,5 @@  - + Date: Wed, 12 Feb 2020 11:56:26 +0100 Subject: [PATCH 75/83] Add check in MAIN.RESTOR_POSITIONS Add check when resetting bRestoreOnStartup flag to only reset if the UPS is OK. Otherwise during a power loss it is set and then reset before getting to the end of the PLC cycle. This was a result of moving some code that was previously in MAIN to an ACT and the RETURN command does not work the same. I believe it only returns from the current act and not the whole code. Originally it was supposed to prevent the rest of the code from executing in the event of a power failure but this is no longer the case. --- solution/tc_project_app/POUs/MAIN.TcPOU | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 458ca9d..b3bbcc1 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -6,6 +6,7 @@ VAR sVersion: STRING:='1.0.0'; i : UINT; //index variable for AXES() aFbAxes: ARRAY [1..gvl_app.axisNum] OF FB_Axis; + hmiAxisSelection : INT:=1; //Not possible to use local hmi variables for array indexes (******Outputs: Power for Limit switches and Home Sensors (every 4th output)********) @@ -158,7 +159,7 @@ END_IF]]> // Note from Beckhoff: "A maximum of 1 MB persistent data can be reliably saved over the entire service life." ///######################################################### -IF bRestoreOnStartup THEN +IF bRestoreOnStartup AND eGlobalSUpsState = eSUPS_PowerOK THEN bRestoreOnStartup:=FALSE; bRestoreExecute:=TRUE; END_IF @@ -273,7 +274,7 @@ END_FOR]]> - + From 51464ddd8716ac9c8924d2198343911e3c899072 Mon Sep 17 00:00:00 2001 From: Paul Barron Date: Wed, 12 Feb 2020 12:12:10 +0100 Subject: [PATCH 76/83] Fix whitespace damage --- solution/tc_project_app/POUs/MAIN.TcPOU | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index b3bbcc1..2621b5e 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -6,7 +6,7 @@ VAR sVersion: STRING:='1.0.0'; i : UINT; //index variable for AXES() aFbAxes: ARRAY [1..gvl_app.axisNum] OF FB_Axis; - + hmiAxisSelection : INT:=1; //Not possible to use local hmi variables for array indexes (******Outputs: Power for Limit switches and Home Sensors (every 4th output)********) From a5fa02873593c2566cecde057cd4b1e401d0216a Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Mon, 2 Mar 2020 16:07:10 +0100 Subject: [PATCH 77/83] Delete all error handling from MAIN Delete the action ERROR() Delete all the variable section for Error Handling in MAIN --- solution/tc_project_app/POUs/MAIN.TcPOU | 74 +------------------------ 1 file changed, 2 insertions(+), 72 deletions(-) diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 2621b5e..3ff0212 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -26,19 +26,6 @@ VAR //bOutput24 AT %Q*: BOOL:= TRUE; //bOutput28 AT %Q*: BOOL:= TRUE; -(******Error Handling********) - fbErrorSystem: FB_ErrorSystem; - aFbAxesError: ARRAY [1..gvl_app.axisNum] OF FB_NC_Error; - - //fbEL1018 : EL1018; - //fbEL2808 : EL2808; - //fbEL5101 : EL5101; - //fbEL9505 : EL9505; - //fbEL1252 : EL1252; - //fbEL9410 : EL9410; - //fbEL7037 : EL7037; - //fbEK1110 : EK1110; - (******Startup, Shutdown and UPS********) fbUPS : FB_S_UPS_CX51x0; eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; @@ -59,8 +46,7 @@ END_VAR]]> +AXES();]]> @@ -87,46 +73,6 @@ ELSIF eGlobalSUpsState <> eSUPS_PowerOK THEN END_IF]]> - - - , - nSelectedError=> , - pErrorSystem=> ); - - -FOR GVL.iAxis:=1 TO gvl_app.axisNum DO - aFbAxesError[gvl.iAxis](EN:=TRUE, - nNC_ErrorID:= gvl.axes[gvl.iAxis].status.nErrorID, - nNC_AxisID:=gvl.axes[gvl.iAxis].Axis.NcToPlc.AxisId, - ErrorSystem:= fbErrorSystem.pErrorSystem); -END_FOR - - - -(*call all the necessary instance (input assistance F2 or right click) according to the terminals that you have in your hardware and - add "TRUE" in the input En, the corresponding number of termianl to the iTerminal_ID and -the variable "fbErrorSystem.pErrorSystem" to the input ErrorSystem in each FB E. g. : -fbEL1808( - En:= TRUE, - iTerminal_ID:= 01, - ErrorSystem:= fbErorSystem.pErrorSystem, - EnO=> , - bError=> ); - *) - -]]> - - - + @@ -287,22 +233,6 @@ END_FOR]]> - - - - - - - - - - - - - - - - From 9e3a609823c989ef2f88bda321821bdbacb6672e Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Mon, 2 Mar 2020 16:08:34 +0100 Subject: [PATCH 78/83] Add commits in tc_mca_std_lib for deleting all the error handling files --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 852ea37..4f0c125 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 852ea37aa8d1aadfe0f2b84fd462c1f30aadd492 +Subproject commit 4f0c125af07cc4cb5e593c32de2fbd66c9e9ebd4 From e29e5a6fd02abdca78e0c40f53f2eb4294aa2c7c Mon Sep 17 00:00:00 2001 From: Federico Rojas Date: Mon, 2 Mar 2020 16:16:30 +0100 Subject: [PATCH 79/83] Delete the directories with all the error handling files. New tree structure --- .../tc_project_app/tc_project_app.plcproj | 121 ------------------ 1 file changed, 121 deletions(-) diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index b5d34ae..f8a5867 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -71,117 +71,6 @@ Code - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - Code @@ -242,18 +131,8 @@ - - - - - - - - - - From aaea8a67a33c074e14a25a03a8cc8a70603c5173 Mon Sep 17 00:00:00 2001 From: Dominic Oram Date: Mon, 2 Mar 2020 16:29:07 +0000 Subject: [PATCH 80/83] Update submodule --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 852ea37..3897755 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 852ea37aa8d1aadfe0f2b84fd462c1f30aadd492 +Subproject commit 3897755dd750917c8fbeafa3143ccdbdd35af823 From f42a22cbe0fe7af557107055d598d240ef8df7c4 Mon Sep 17 00:00:00 2001 From: kleines Date: Mon, 2 Mar 2020 17:31:50 +0100 Subject: [PATCH 81/83] deleted uncommented code in GVL_APP --- solution/tc_project_app/GVLs/GVL_APP.TcGVL | 1 - 1 file changed, 1 deletion(-) diff --git a/solution/tc_project_app/GVLs/GVL_APP.TcGVL b/solution/tc_project_app/GVLs/GVL_APP.TcGVL index e125049..c284299 100644 --- a/solution/tc_project_app/GVLs/GVL_APP.TcGVL +++ b/solution/tc_project_app/GVLs/GVL_APP.TcGVL @@ -8,7 +8,6 @@ END_VAR VAR_GLOBAL CONSTANT axisNum : UINT:=0; - //axisCoupleMax : UINT:=4; END_VAR]]> \ No newline at end of file From 597881796f656d8af937a9bc1828acf08627fea5 Mon Sep 17 00:00:00 2001 From: Dominic Oram Date: Mon, 2 Mar 2020 16:35:29 +0000 Subject: [PATCH 82/83] Update submodule --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 3897755..50d6980 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 3897755dd750917c8fbeafa3143ccdbdd35af823 +Subproject commit 50d6980aa54ae96c813081b03ace04c3d82003f6 From 71da3cce157283895458fcd5ee84ed17d0e7c699 Mon Sep 17 00:00:00 2001 From: Dominic Oram Date: Mon, 2 Mar 2020 17:12:31 +0000 Subject: [PATCH 83/83] Updated submodule --- solution/tc_project_app/tc_mca_std_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/tc_project_app/tc_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index 50d6980..85f11c0 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit 50d6980aa54ae96c813081b03ace04c3d82003f6 +Subproject commit 85f11c08bc807bda1e02aa5c635a789d355da20c