From b58a9d352b95dbb2065ab0b1ad34b6d1ad0ce94d Mon Sep 17 00:00:00 2001 From: Paul Richter <32306396+richtepa@users.noreply.github.com> Date: Tue, 16 Sep 2025 19:41:56 +0200 Subject: [PATCH 1/3] added speed --- RAPID/SERVER.mod | 10 +++++++++- abb_node/packages/abb_communications/abb.py | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/RAPID/SERVER.mod b/RAPID/SERVER.mod index 76043a7..d42d798 100755 --- a/RAPID/SERVER.mod +++ b/RAPID/SERVER.mod @@ -345,10 +345,18 @@ PROC main() [params{4},params{5},params{6},params{7}], [0,0,0,0], externalAxis]; + + speed := params{8}; + PERS speeddata newSpeed; + if speed < 1 OR speed > 250 THEN: + newSpeed := [250, 250, 250, 250]; + ELSE + newSpeed := [speed, speed, speed, speed]; + ! IF BUFFER_POS < MAX_BUFFER THEN ! BUFFER_POS := BUFFER_POS + 1; ! bufferTargets{BUFFER_POS} := cartesianTarget; -! bufferSpeeds{BUFFER_POS} := currentSpeed; +! bufferSpeeds{BUFFER_POS} := newSpeed; ! ENDIF IF BUFFER_LEFT > 0 THEN writePos := writePos+1; diff --git a/abb_node/packages/abb_communications/abb.py b/abb_node/packages/abb_communications/abb.py index 8321b8a..4cc5952 100755 --- a/abb_node/packages/abb_communications/abb.py +++ b/abb_node/packages/abb_communications/abb.py @@ -201,12 +201,12 @@ def set_zone(self, msg += format(zone[2], "+08.4f") + " " #10 self.send(msg) #33 - def buffer_add(self, pose): + def buffer_add(self, pose, speed = 250): ''' Appends single pose to the remote buffer Move will execute at current speed (which you can change between buffer_add calls) ''' - msg = "30 " + self.format_pose(pose) + msg = "30 " + self.format_pose(pose) + " " + format(speed, "+08.2f") self.send(msg, False) def clear_buffer(self): From d6549f5d18fe16e0e1c324373dc5b65d6bd824ab Mon Sep 17 00:00:00 2001 From: Paul Richter <32306396+richtepa@users.noreply.github.com> Date: Wed, 17 Sep 2025 09:00:03 +0200 Subject: [PATCH 2/3] test/bugfixes --- RAPID/SERVER.mod | 15 +++++++++------ abb_node/packages/abb_communications/abb.py | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/RAPID/SERVER.mod b/RAPID/SERVER.mod index d42d798..2114ee0 100755 --- a/RAPID/SERVER.mod +++ b/RAPID/SERVER.mod @@ -35,7 +35,7 @@ VAR bool moveCompleted; !Set to true after finishing a Move instruction. !//Buffered move variables CONST num MAX_BUFFER := 128; -PERS bool paused := TRUE; +PERS bool paused := FALSE; PERS num BUFFER_POS; PERS num BUFFER_LEFT; PERS bool MOVING; @@ -168,6 +168,9 @@ PROC main() VAR robtarget pwobj3; VAR wobjdata cwobj; VAR num writePos := 1; + + VAR num speed := 250; + VAR speeddata newSpeed; !//Motion configuration @@ -191,7 +194,7 @@ PROC main() addString := ""; !//Wait for a command - SocketReceive clientSocket \Str:=receivedString \ReadNoOfBytes:=67 \Time:=WAIT_MAX; + SocketReceive clientSocket \Str:=receivedString \ReadNoOfBytes:=76 \Time:=WAIT_MAX; ParseMsg receivedString; !//Execution of the command @@ -340,18 +343,18 @@ PROC main() WHILE BUFFER_LOCKED DO !wait ENDWHILE - IF nParams = 7 THEN + IF nParams = 8 THEN cartesianTarget :=[[params{1},params{2},params{3}], [params{4},params{5},params{6},params{7}], [0,0,0,0], externalAxis]; speed := params{8}; - PERS speeddata newSpeed; - if speed < 1 OR speed > 250 THEN: + if speed < 1 OR speed > 250 THEN newSpeed := [250, 250, 250, 250]; ELSE newSpeed := [speed, speed, speed, speed]; + ENDIF ! IF BUFFER_POS < MAX_BUFFER THEN ! BUFFER_POS := BUFFER_POS + 1; @@ -364,7 +367,7 @@ PROC main() writePos := writePos - MAX_BUFFER; ENDIF bufferTargets{writePos} := cartesianTarget; - bufferSpeeds{writePos} := currentSpeed; + bufferSpeeds{writePos} := newSpeed; BUFFER_LEFT := BUFFER_LEFT - 1; ENDIF !addString := NumToStr(MAX_BUFFER - BUFFER_POS,2); diff --git a/abb_node/packages/abb_communications/abb.py b/abb_node/packages/abb_communications/abb.py index 4cc5952..c888b4e 100755 --- a/abb_node/packages/abb_communications/abb.py +++ b/abb_node/packages/abb_communications/abb.py @@ -257,7 +257,7 @@ def sender(self): message = msg["message"] wait_for_response = msg["wait_for_response"] - while len(message) < 66: + while len(message) < 75: message += "*" message += "#" From 62220478286f2331d4fe3273136e0473224bb341 Mon Sep 17 00:00:00 2001 From: Paul Richter <32306396+richtepa@users.noreply.github.com> Date: Thu, 18 Sep 2025 13:05:04 +0200 Subject: [PATCH 3/3] bugfixes --- abb_node/packages/abb_communications/abb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abb_node/packages/abb_communications/abb.py b/abb_node/packages/abb_communications/abb.py index c888b4e..7572ac5 100755 --- a/abb_node/packages/abb_communications/abb.py +++ b/abb_node/packages/abb_communications/abb.py @@ -206,7 +206,7 @@ def buffer_add(self, pose, speed = 250): Appends single pose to the remote buffer Move will execute at current speed (which you can change between buffer_add calls) ''' - msg = "30 " + self.format_pose(pose) + " " + format(speed, "+08.2f") + msg = "30 " + self.format_pose(pose) + format(speed, "+08.2f") + " " self.send(msg, False) def clear_buffer(self):