@@ -35,7 +36,7 @@
@if (Entry.Plc.documentation._automat.Status.Cyclic == (ushort)eAxoTaskState.Busy)
{
-
+
}
@@ -46,15 +47,15 @@
-
+
+
+
+
+
+
@code
{
- protected override void OnInitialized()
- {
- base.OnInitialized();
- }
-
public override void ConfigurePolling()
{
this.StartPolling(Entry.Plc.documentation._automat.Status);
diff --git a/src/inspectors/app/ix-blazor/AXOpen.Inspectors.blazor/Program.cs b/src/inspectors/app/ix-blazor/AXOpen.Inspectors.blazor/Program.cs
index 018889e50..9ee14e660 100644
--- a/src/inspectors/app/ix-blazor/AXOpen.Inspectors.blazor/Program.cs
+++ b/src/inspectors/app/ix-blazor/AXOpen.Inspectors.blazor/Program.cs
@@ -96,6 +96,7 @@ public static List
CreateRoles()
new Role(can_run_automat_mode),
new Role(can_run_service_mode),
new Role(can_skip_steps_in_sequence),
+ new Role(can_attempt_repair)
};
return roles;
@@ -107,6 +108,7 @@ public static List CreateRoles()
public const string process_settings_access = nameof(process_settings_access);
public const string process_traceability_access = nameof(process_traceability_access);
public const string can_skip_steps_in_sequence = nameof(can_skip_steps_in_sequence);
+ public const string can_attempt_repair = nameof(can_attempt_repair);
}
diff --git a/src/inspectors/app/src/Documentation/DocumentationContext.st b/src/inspectors/app/src/Documentation/DocumentationContext.st
index 494c1f119..4410a4244 100644
--- a/src/inspectors/app/src/Documentation/DocumentationContext.st
+++ b/src/inspectors/app/src/Documentation/DocumentationContext.st
@@ -1,26 +1,23 @@
+USING AXOpen.Core;
{S7.extern=ReadWrite}
CLASS DocumentationContext EXTENDS AXOpen.Core.AxoContext
VAR PUBLIC
-
_startInspection : BOOL := FALSE;
- _automat: AutomatSequence;
- _inspectors : Inspectors;
-
+ _automat: AutomatSequence;
+ _inspectors : Inspectors;
+ _rootObject : AxoObject;
END_VAR
- METHOD PROTECTED OVERRIDE Main
- _inspectors.Initialize(THIS);
-
- _automat.Initialize(THIS);
- _automat.Run(THIS);
+ METHOD PROTECTED OVERRIDE Main
+ _rootObject.InitializeWithContext(THIS);
+ _automat.Initialize(_rootObject);
+ _automat.Run(_rootObject);
_automat.Execute();
IF _startInspection THEN
_automat.Invoke();
- END_IF;
-
-
+ END_IF;
END_METHOD
END_CLASS
@@ -31,17 +28,11 @@ END_CLASS
CLASS PUBLIC AutomatSequence
EXTENDS AXOpen.Core.AxoSequencerContainer
VAR PUBLIC
- Steps : ARRAY[0..50] OF AxoStep;
- _digitalInspector: AXOpen.Inspectors.AxoDigitalInspector;
- _analogueInspector: AXOpen.Inspectors.AxoAnalogueInspector;
- _dataInspector: AXOpen.Inspectors.AxoDataInspector;
-
-
- _digitalInspectorDialog : AXOpen.Inspectors.AxoInspectorDialog;
- _analogueInspectorDialog : AXOpen.Inspectors.AxoInspectorDialog;
- _dataInspectorDialog : AXOpen.Inspectors.AxoInspectorDialog;
-
+ _continue : BOOL := FALSE;
+ Steps : ARRAY[0..50] OF AxoStep;
+ _inspector: AXOpen.Inspectors.AxoInspector;
+
_inspectionResult: BOOL;
_inspectionValue: LREAL;
_inspectionData: STRING;
@@ -50,15 +41,11 @@ CLASS PUBLIC AutomatSequence
_analogueInspectorData : AXOpen.Inspectors.AxoAnalogueInspectorData;
_dataInspectorData: AXOpen.Inspectors.AxoDataInspectorData;
-
_comprehensiveResult: AXOpen.Inspectors.AxoComprehensiveResult;
END_VAR
- VAR PRIVATE
-
- END_VAR
METHOD OVERRIDE Main
-
+
THIS.SequenceMode := eAxoSequenceMode#Cyclic;
IF (Steps[0].Execute(THIS, TRUE, 'Move vertical cyclinder down.')) THEN
@@ -85,7 +72,7 @@ CLASS PUBLIC AutomatSequence
IF (Steps[20].Execute(THIS, TRUE, 'RETRY STEP 90')) THEN
-
+
IF(Steps[20].Duration > T#2000ms) THEN
THIS.MoveNext();
END_IF;
@@ -95,24 +82,50 @@ CLASS PUBLIC AutomatSequence
//
IF (Steps[30].Execute(THIS, TRUE, 'Example Digital inspection')) THEN
-
+ _inspector.Inspect(THIS,REF(_digitalInspectorData),_inspectionResult);
//
- _digitalInspector.WithCoordinator(THIS).Inspect(THIS,REF(_digitalInspectorData),_inspectionResult).UpdateComprehensiveResult(_comprehensiveResult).OnFail().CarryOn();
+ // _inspector.WithCoordinator(THIS)
+ // .Inspect(THIS,REF(_digitalInspectorData),_inspectionResult)
+ // .UpdateComprehensiveResult(_comprehensiveResult)
+ // .OnFail()
+ // .CarryOn();
+ ;
//
+ END_IF;
+
+ IF (Steps[31].Execute(THIS, TRUE, 'debug')) THEN
+ IF _continue THEN
+ _continue := FALSE;
+ THIS.MoveNext();
END_IF;
+ END_IF;
IF (Steps[35].Execute(THIS, TRUE, 'Example Analog inspection')) THEN
- // _analogueInspector.WithCoordinator(THIS).Inspect(THIS,_inspectionValue).UpdateComprehensiveResult(_comprehensiveResult).OnFail().CarryOn();
- _analogueInspector.WithCoordinator(THIS).Inspect(THIS,REF(_analogueInspectorData), _inspectionValue).UpdateComprehensiveResult(_comprehensiveResult).OnFail().CarryOn();
+ _inspector.WithCoordinator(THIS)
+ .Inspect(THIS,REF(_analogueInspectorData), _inspectionValue)
+ .UpdateComprehensiveResult(_comprehensiveResult)
+ .OnFail()
+ .CarryOn();
END_IF;
//
+ IF (Steps[36].Execute(THIS, TRUE, 'debug')) THEN
+ IF _continue THEN
+ _continue := FALSE;
+ THIS.MoveNext();
+ END_IF;
+ END_IF;
+
IF (Steps[40].Execute(THIS, TRUE, 'Example Data inspection')) THEN
//
- _dataInspector.WithCoordinator(THIS).Inspect(THIS,REF(_dataInspectorData),_inspectionData).UpdateComprehensiveResult(_comprehensiveResult).OnFail().Dialog(Steps[20], Steps[45]);
+ _inspector.WithCoordinator(THIS)
+ .Inspect(THIS,REF(_dataInspectorData),_inspectionData)
+ .UpdateComprehensiveResult(_comprehensiveResult)
+ .OnFail()
+ .Dialog(Steps[20], Steps[45]);
//
END_IF;
@@ -124,7 +137,6 @@ CLASS PUBLIC AutomatSequence
END_IF;
-
THIS.Close(Steps[50]);
END_METHOD
END_CLASS
diff --git a/src/inspectors/app/src/Sandbox/SandboxContext.st b/src/inspectors/app/src/Sandbox/SandboxContext.st
index 5cd31bcbe..88eea1629 100644
--- a/src/inspectors/app/src/Sandbox/SandboxContext.st
+++ b/src/inspectors/app/src/Sandbox/SandboxContext.st
@@ -2,16 +2,12 @@ USING AXOpen.Core;
{S7.extern=ReadWrite}
CLASS SandboxContext EXTENDS AXOpen.Core.AxoContext
VAR PUBLIC
-
_startInspection : BOOL := FALSE;
-
- _inspectors : Inspectors;
-
+ _inspectors : Inspectors;
END_VAR
-
METHOD PROTECTED OVERRIDE Main
- _inspectors.Initialize(THIS);
+ _inspectors.InitializeWithContext(THIS);
IF _startInspection THEN
_inspectors.Run();
@@ -24,8 +20,11 @@ END_CLASS
{S7.extern=ReadWrite}
CLASS Inspectors EXTENDS AXOpen.Core.AxoObject
VAR PUBLIC
+ {#ix-set:AttributeName = "<#Digital Inspector Example#>"}
_digitalInspector: AXOpen.Inspectors.AxoDigitalInspector;
+ {#ix-set:AttributeName = "<#Analog Inspector Example#>"}
_analogueInspector: AXOpen.Inspectors.AxoAnalogueInspector;
+ {#ix-set:AttributeName = "<#Data Inspector Example#>"}
_dataInspector: AXOpen.Inspectors.AxoDataInspector;
_inspectionResult: BOOL;
diff --git a/src/inspectors/app/src/program.st b/src/inspectors/app/src/program.st
index c28fd4853..09b425a56 100644
--- a/src/inspectors/app/src/program.st
+++ b/src/inspectors/app/src/program.st
@@ -13,6 +13,7 @@ PROGRAM MyProgram
VAR_TEMP
END_VAR
+
sandbox.InjectRtc(S71500Rtc);
sandbox.InjectRtm(S71500Rtm);
sandbox.Run();
diff --git a/src/inspectors/ctrl/test/AxoAnalogueInspectorTests.st b/src/inspectors/ctrl/test/AxoAnalogueInspectorTests.st
index c531e0139..7b9de8eca 100644
--- a/src/inspectors/ctrl/test/AxoAnalogueInspectorTests.st
+++ b/src/inspectors/ctrl/test/AxoAnalogueInspectorTests.st
@@ -55,7 +55,7 @@ NAMESPACE AXOpen.Inspectors.AxoInspector_Tests
METHOD PRIVATE Initialize
_context.InjectRtc(_rtcMock);
_context.InjectRtm(_rtmMock);
- _sequencer.Initialize(_context);
+ _sequencer.InitializeWithContext(_context);
_analogueInspectorData.FailTime := T#10s;
_analogueInspectorData.PassTime := T#2s;
diff --git a/src/inspectors/ctrl/test/AxoDataInspectorTests.st b/src/inspectors/ctrl/test/AxoDataInspectorTests.st
index 91a443cc0..7734110d9 100644
--- a/src/inspectors/ctrl/test/AxoDataInspectorTests.st
+++ b/src/inspectors/ctrl/test/AxoDataInspectorTests.st
@@ -53,7 +53,7 @@ NAMESPACE AXOpen.Inspectors.AxoInspector_Tests
METHOD PRIVATE Initialize
_context.InjectRtc(_rtcMock);
_context.InjectRtm(_rtmMock);
- _sequencer.Initialize(_context);
+ _sequencer.InitializeWithContext(_context);
_dataInspectorData.FailTime := T#10s;
_dataInspectorData.PassTime := T#2s;
diff --git a/src/inspectors/ctrl/test/AxoDigitalInspectorTests.st b/src/inspectors/ctrl/test/AxoDigitalInspectorTests.st
index 63d944846..46860b010 100644
--- a/src/inspectors/ctrl/test/AxoDigitalInspectorTests.st
+++ b/src/inspectors/ctrl/test/AxoDigitalInspectorTests.st
@@ -61,7 +61,7 @@ NAMESPACE AXOpen.Inspectors.AxoInspector_Tests
METHOD PRIVATE Initialize
_context.InjectRtc(_rtcMock);
_context.InjectRtm(_rtmMock);
- _sequencer.Initialize(_context);
+ _sequencer.InitializeWithContext(_context);
_digitalInspectorData.FailTime := T#10s;
_digitalInspectorData.PassTime := T#2s;
diff --git a/src/io/ctrl/src/AxoIoComponent.st b/src/io/ctrl/src/AxoIoComponent.st
index 95b28e7e9..a4fb51b10 100644
--- a/src/io/ctrl/src/AxoIoComponent.st
+++ b/src/io/ctrl/src/AxoIoComponent.st
@@ -39,18 +39,18 @@ NAMESPACE AXOpen.Io
THIS.Execute(hwID);
END_METHOD
- ///
- /// Runs tasks and logic of this component.
- /// >[!IMPORTANT] This method must or one of its overloads be called cyclically.
- ///
- METHOD PUBLIC Run
- VAR_INPUT
- parent : IAxoContext;
- hwID : WORD;
- END_VAR
- THIS.Initialize(parent);
- THIS.Execute(hwID);
- END_METHOD
+ // ///
+ // /// Runs tasks and logic of this component.
+ // /// >[!IMPORTANT] This method must or one of its overloads be called cyclically.
+ // ///
+ // METHOD PUBLIC Run
+ // VAR_INPUT
+ // parent : IAxoContext;
+ // hwID : WORD;
+ // END_VAR
+ // THIS.Initialize(parent);
+ // THIS.Execute(hwID);
+ // END_METHOD
METHOD PRIVATE Execute
VAR_INPUT
diff --git a/src/probers/ctrl/src/Probers/AxoProber.st b/src/probers/ctrl/src/Probers/AxoProber.st
index 852593fb4..7d6fda456 100644
--- a/src/probers/ctrl/src/Probers/AxoProber.st
+++ b/src/probers/ctrl/src/Probers/AxoProber.st
@@ -23,13 +23,13 @@ NAMESPACE AXOpen.Probers
THIS.Run();
END_METHOD
- METHOD PUBLIC Run
- VAR_INPUT
- Context : IAxoContext;
- END_VAR
- THIS.Initialize(Context);
- THIS.Run();
- END_METHOD
+ // METHOD PUBLIC Run
+ // VAR_INPUT
+ // Context : IAxoContext;
+ // END_VAR
+ // THIS.Initialize(Context);
+ // THIS.Run();
+ // END_METHOD
METHOD PROTECTED ABSTRACT Test
@@ -57,13 +57,13 @@ NAMESPACE AXOpen.Probers
THIS.Run();
END_METHOD
- METHOD PUBLIC Run
- VAR_INPUT
- Context : IAxoContext;
- END_VAR
- THIS.Initialize(Context);
- THIS.Run();
- END_METHOD
+ // METHOD PUBLIC Run
+ // VAR_INPUT
+ // Context : IAxoContext;
+ // END_VAR
+ // THIS.Initialize(Context);
+ // THIS.Run();
+ // END_METHOD
METHOD PROTECTED ABSTRACT Test : BOOL
diff --git a/src/template.axolibrary/app/src/Documentation/Component_1.st b/src/template.axolibrary/app/src/Documentation/Component_1.st
index 9c5ac50e2..61e2a16ee 100644
--- a/src/template.axolibrary/app/src/Documentation/Component_1.st
+++ b/src/template.axolibrary/app/src/Documentation/Component_1.st
@@ -21,7 +21,7 @@ NAMESPACE Template.Axolibrary
METHOD PUBLIC Run
VAR_INPUT
- parent : IAxoContext;
+ parent : IAxoObject;
END_VAR
THIS.Initialize(parent);
diff --git a/src/template.axolibrary/app/src/Documentation/Component_2.st b/src/template.axolibrary/app/src/Documentation/Component_2.st
index 0031a07db..fa0a203a8 100644
--- a/src/template.axolibrary/app/src/Documentation/Component_2.st
+++ b/src/template.axolibrary/app/src/Documentation/Component_2.st
@@ -21,7 +21,7 @@ NAMESPACE Template.Axolibrary
METHOD PUBLIC Run
VAR_INPUT
- parent : IAxoContext;
+ parent : IAxoObject;
END_VAR
THIS.Initialize(parent);
diff --git a/src/template.axolibrary/app/src/Documentation/DocumentationContext.st b/src/template.axolibrary/app/src/Documentation/DocumentationContext.st
index 5a258bf6b..905ebcfa6 100644
--- a/src/template.axolibrary/app/src/Documentation/DocumentationContext.st
+++ b/src/template.axolibrary/app/src/Documentation/DocumentationContext.st
@@ -2,13 +2,15 @@ NAMESPACE Template.Axolibrary
{S7.extern=ReadWrite}
CLASS DocumentationContext EXTENDS AXOpen.Core.AxoContext
VAR PUBLIC
- componentOne : Template.Axolibrary.Component_1;
- componentTwo : Template.Axolibrary.Component_2;
+ rootObject : AxoObject;
+ componentOne : Template.Axolibrary.Component_1;
+ componentTwo : Template.Axolibrary.Component_2;
END_VAR
METHOD PROTECTED OVERRIDE Main
- componentOne.Run(THIS);
- componentTwo.Run(THIS);
+ rootObject.InitializeWithContext(THIS);
+ componentOne.Run(rootObject);
+ componentTwo.Run(rootObject);
END_METHOD
END_CLASS
END_NAMESPACE
\ No newline at end of file
diff --git a/src/template.axolibrary/ctrl/src/TemplateComponent.st b/src/template.axolibrary/ctrl/src/TemplateComponent.st
index 1299de268..dd3b19d88 100644
--- a/src/template.axolibrary/ctrl/src/TemplateComponent.st
+++ b/src/template.axolibrary/ctrl/src/TemplateComponent.st
@@ -179,64 +179,64 @@ NAMESPACE Template.Axolibrary
END_METHOD
- ///
- /// Runs tasks and logic of this component.
- /// >[!IMPORTANT] This method must or one of its overloads be called cyclically.
- ///
- METHOD PUBLIC Run
- VAR_INPUT
- parent : IAxoContext;
- hwID : WORD;
- homeSensor : REF_TO BOOL;
- workSensor : REF_TO BOOL;
- moveHomeSignal : REF_TO BOOL;
- moveWorkSignal : REF_TO BOOL;
- END_VAR
-
- THIS.Initialize(parent);
-
- THIS.Open();
-
- Messenger.Serve(THIS);
- Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError);
- Messenger.ActivateOnCondition(ULINT#701,hwID = WORD#0, eAxoMessageCategory#ProgrammingError);
- Messenger.ActivateOnCondition(ULINT#702,homeSensor = NULL, eAxoMessageCategory#ProgrammingError);
- Messenger.ActivateOnCondition(ULINT#703,workSensor = NULL, eAxoMessageCategory#ProgrammingError);
- Messenger.ActivateOnCondition(ULINT#704,moveHomeSignal = NULL, eAxoMessageCategory#ProgrammingError);
- Messenger.ActivateOnCondition(ULINT#705,moveWorkSignal = NULL, eAxoMessageCategory#ProgrammingError);
+ // ///
+ // /// Runs tasks and logic of this component.
+ // /// >[!IMPORTANT] This method must or one of its overloads be called cyclically.
+ // ///
+ // METHOD PUBLIC Run
+ // VAR_INPUT
+ // parent : IAxoContext;
+ // hwID : WORD;
+ // homeSensor : REF_TO BOOL;
+ // workSensor : REF_TO BOOL;
+ // moveHomeSignal : REF_TO BOOL;
+ // moveWorkSignal : REF_TO BOOL;
+ // END_VAR
+
+ // THIS.Initialize(parent);
+
+ // THIS.Open();
+
+ // Messenger.Serve(THIS);
+ // Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError);
+ // Messenger.ActivateOnCondition(ULINT#701,hwID = WORD#0, eAxoMessageCategory#ProgrammingError);
+ // Messenger.ActivateOnCondition(ULINT#702,homeSensor = NULL, eAxoMessageCategory#ProgrammingError);
+ // Messenger.ActivateOnCondition(ULINT#703,workSensor = NULL, eAxoMessageCategory#ProgrammingError);
+ // Messenger.ActivateOnCondition(ULINT#704,moveHomeSignal = NULL, eAxoMessageCategory#ProgrammingError);
+ // Messenger.ActivateOnCondition(ULINT#705,moveWorkSignal = NULL, eAxoMessageCategory#ProgrammingError);
- IF parent = NULL THEN
- Status.Error.Id := UINT#700;
- RETURN;
- ELSIF hwID = WORD#0 THEN
- Status.Error.Id := UINT#701;
- RETURN;
- ELSIF homeSensor = NULL THEN
- Status.Error.Id := UINT#702;
- RETURN;
- ELSIF workSensor = NULL THEN
- Status.Error.Id := UINT#703;
- RETURN;
- ELSIF moveHomeSignal = NULL THEN
- Status.Error.Id := UINT#704;
- RETURN;
- ELSIF moveWorkSignal = NULL THEN
- Status.Error.Id := UINT#705;
- RETURN;
- END_IF;
-
- Inputs.Status.HomeSensor := homeSensor^;
- Inputs.Status.WorkSensor := workSensor^;
- _hwId := hwID;
-
- THIS.Execute();
-
- moveHomeSignal^ := Outputs.Control.MoveHomeSignal;
- moveWorkSignal^ := Outputs.Control.MoveWorkSignal;
-
- THIS.Close();
-
- END_METHOD
+ // IF parent = NULL THEN
+ // Status.Error.Id := UINT#700;
+ // RETURN;
+ // ELSIF hwID = WORD#0 THEN
+ // Status.Error.Id := UINT#701;
+ // RETURN;
+ // ELSIF homeSensor = NULL THEN
+ // Status.Error.Id := UINT#702;
+ // RETURN;
+ // ELSIF workSensor = NULL THEN
+ // Status.Error.Id := UINT#703;
+ // RETURN;
+ // ELSIF moveHomeSignal = NULL THEN
+ // Status.Error.Id := UINT#704;
+ // RETURN;
+ // ELSIF moveWorkSignal = NULL THEN
+ // Status.Error.Id := UINT#705;
+ // RETURN;
+ // END_IF;
+
+ // Inputs.Status.HomeSensor := homeSensor^;
+ // Inputs.Status.WorkSensor := workSensor^;
+ // _hwId := hwID;
+
+ // THIS.Execute();
+
+ // moveHomeSignal^ := Outputs.Control.MoveHomeSignal;
+ // moveWorkSignal^ := Outputs.Control.MoveWorkSignal;
+
+ // THIS.Close();
+
+ // END_METHOD
METHOD PRIVATE Execute
diff --git a/src/template.axolibrary/ctrl/test/CylinderTests.st b/src/template.axolibrary/ctrl/test/CylinderTests.st
index 31f47e3dc..1a68a40e1 100644
--- a/src/template.axolibrary/ctrl/test/CylinderTests.st
+++ b/src/template.axolibrary/ctrl/test/CylinderTests.st
@@ -12,23 +12,42 @@ NAMESPACE Template.Axolibrary.Tests
{TestFixture}
{S7.extern=ReadWrite}
CLASS CylinderTests
- VAR
- context : TestContext;
- cylinder : TemplateComponent;
+ VAR PROTECTED
+ _context : TestContext;
+ _rootObject : MockAxoObject;
+ _cylinder : TemplateComponent;
_homeSensor : BOOL;
_workSensor : BOOL;
_moveHomeSignal : BOOL;
_moveWorkSignal : BOOL;
_done : BOOL;
- END_VAR
+ END_VAR
+
+ VAR PRIVATE
+ _contextClean : TestContext;
+ _rtc : AXOpen.Core.Dummies.MockAxoRtc;
+ _rtm : AXOpen.Core.Dummies.MockAxoRtm;
+ END_VAR
+
+ {TestSetup}
+ METHOD PUBLIC TestSetup
+ _context := _contextClean;
+ _rootObject.InitializeWithContext(_context);
+ _rtm.SetElapsed(LTIME#2s);
+ _context.InjectRtm(_rtm);
+ _rtc.SetNowUTC(LDATE_AND_TIME#2012-01-12-15:58:12.123);
+ _context.InjectRtc(_rtc);
+ _rootObject.InitializeWithContext(_context);
+ END_METHOD
+
{Test}
METHOD PUBLIC MoveHome
WHILE _done DO
- context.Open();
- _done := Cylinder.MoveToHome().IsDone();
- cylinder.Run(context, WORD#64, REF(_homeSensor), REF(_workSensor), REF(_moveHomeSignal), REF(_moveWorkSignal));
+ _context.Open();
+ _done := _cylinder.MoveToHome().IsDone();
+ _cylinder.Run(_rootObject, WORD#64, REF(_homeSensor), REF(_workSensor), REF(_moveHomeSignal), REF(_moveWorkSignal));
AxUnit.Assert.Equal(_moveHomeSignal, _moveHomeSignal);
- context.Close();
+ _context.Close();
END_WHILE;
END_METHOD
END_CLASS