From f13b3253c24e353949f68fba4a91a193d9909112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Seidel?= Date: Wed, 13 Mar 2024 16:49:28 +0100 Subject: [PATCH 1/5] performance optimization - stop process on falling edge --- src/ProcessControl/ProcessHandling.st | 2 +- test/Process/TestProcess.st | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ProcessControl/ProcessHandling.st b/src/ProcessControl/ProcessHandling.st index 2418207..2032fd5 100644 --- a/src/ProcessControl/ProcessHandling.st +++ b/src/ProcessControl/ProcessHandling.st @@ -47,7 +47,7 @@ NAMESPACE Simatic.Ax.Process /// edge of the machine clock. METHOD PROTECTED ProcessFinished : BOOL - IF (machineClock.QRis() AND _processStarted) THEN + IF (machineClock.QFal() AND _processStarted) THEN ProcessFinished := TRUE; _processStarted := FALSE; RETURN; diff --git a/test/Process/TestProcess.st b/test/Process/TestProcess.st index 4ae2649..018f65d 100644 --- a/test/Process/TestProcess.st +++ b/test/Process/TestProcess.st @@ -10,7 +10,7 @@ NAMESPACE Simatic.Ax.Process p : ProcessHandler; pStateLess : ProcessHandler; risingSignalMock : BinSignalRisingEdgeMock; - fallingSignalMock : BinSignalRisingEdgeMock; + fallingSignalMock : BinSignalFallingEdgeMock; END_VAR {TestSetup} @@ -20,8 +20,8 @@ NAMESPACE Simatic.Ax.Process END_METHOD {Test} - METHOD PUBLIC Process_Finished_OnRisingEdgeOfMachineClock - p.machineClock := risingSignalMock; + METHOD PUBLIC Process_Finished_OnFallingEdgeOfMachineClock // Change to falling edge + p.machineClock := fallingSignalMock; p.Start(); AxUnit.Assert.Equal(actual := p.GetState(), expected := ProcessState#Fill); p.Execute(); From 657a56f2d5007289ef25c57215f764917a53fa6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Seidel?= Date: Wed, 13 Mar 2024 16:59:38 +0100 Subject: [PATCH 2/5] do something --- test/Process/TestProcess.st | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Process/TestProcess.st b/test/Process/TestProcess.st index 018f65d..5a7dc1a 100644 --- a/test/Process/TestProcess.st +++ b/test/Process/TestProcess.st @@ -20,8 +20,8 @@ NAMESPACE Simatic.Ax.Process END_METHOD {Test} - METHOD PUBLIC Process_Finished_OnFallingEdgeOfMachineClock // Change to falling edge - p.machineClock := fallingSignalMock; + METHOD PUBLIC Process_Finished_OnFallingEdgeOfMachineClock + p.machineClock := risingSignalMock; p.Start(); AxUnit.Assert.Equal(actual := p.GetState(), expected := ProcessState#Fill); p.Execute(); From acc6c134d54f436acf3efa91f62b99bc1f8f18b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Seidel?= Date: Wed, 13 Mar 2024 17:01:37 +0100 Subject: [PATCH 3/5] comment test --- test/Process/TestProcess.st | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Process/TestProcess.st b/test/Process/TestProcess.st index 5a7dc1a..9fb2d91 100644 --- a/test/Process/TestProcess.st +++ b/test/Process/TestProcess.st @@ -19,8 +19,8 @@ NAMESPACE Simatic.Ax.Process p.TimeProvider := timeProvider; END_METHOD - {Test} - METHOD PUBLIC Process_Finished_OnFallingEdgeOfMachineClock + {Test} // This test checks the finished process on rising edge of the next clock signal + METHOD PUBLIC Process_Finished_OnRisingEdgeOfMachineClock p.machineClock := risingSignalMock; p.Start(); AxUnit.Assert.Equal(actual := p.GetState(), expected := ProcessState#Fill); From c66766995ebb1ed94377f3db9812a8bdcc5d523a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Seidel?= Date: Wed, 13 Mar 2024 17:21:33 +0100 Subject: [PATCH 4/5] with rising edge --- src/ProcessControl/ProcessHandling.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProcessControl/ProcessHandling.st b/src/ProcessControl/ProcessHandling.st index 2032fd5..2418207 100644 --- a/src/ProcessControl/ProcessHandling.st +++ b/src/ProcessControl/ProcessHandling.st @@ -47,7 +47,7 @@ NAMESPACE Simatic.Ax.Process /// edge of the machine clock. METHOD PROTECTED ProcessFinished : BOOL - IF (machineClock.QFal() AND _processStarted) THEN + IF (machineClock.QRis() AND _processStarted) THEN ProcessFinished := TRUE; _processStarted := FALSE; RETURN; From a122460d749257d324d0dbf0cf5ee086969dba4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Seidel?= Date: Wed, 13 Mar 2024 17:38:23 +0100 Subject: [PATCH 5/5] performance optimization with falling edge --- src/ProcessControl/ProcessHandling.st | 2 +- test/Process/TestProcess.st | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ProcessControl/ProcessHandling.st b/src/ProcessControl/ProcessHandling.st index 2418207..2032fd5 100644 --- a/src/ProcessControl/ProcessHandling.st +++ b/src/ProcessControl/ProcessHandling.st @@ -47,7 +47,7 @@ NAMESPACE Simatic.Ax.Process /// edge of the machine clock. METHOD PROTECTED ProcessFinished : BOOL - IF (machineClock.QRis() AND _processStarted) THEN + IF (machineClock.QFal() AND _processStarted) THEN ProcessFinished := TRUE; _processStarted := FALSE; RETURN; diff --git a/test/Process/TestProcess.st b/test/Process/TestProcess.st index 9fb2d91..843d49f 100644 --- a/test/Process/TestProcess.st +++ b/test/Process/TestProcess.st @@ -19,9 +19,9 @@ NAMESPACE Simatic.Ax.Process p.TimeProvider := timeProvider; END_METHOD - {Test} // This test checks the finished process on rising edge of the next clock signal - METHOD PUBLIC Process_Finished_OnRisingEdgeOfMachineClock - p.machineClock := risingSignalMock; + {Test} // This test checks the finished process on falling edge of the next clock signal + METHOD PUBLIC Process_Finished_OnfallingEdgeOfMachineClock // change to falling edge + p.machineClock := fallingSignalMock; p.Start(); AxUnit.Assert.Equal(actual := p.GetState(), expected := ProcessState#Fill); p.Execute();