Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions RAPID/SERVER.mod
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -340,23 +343,31 @@ 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};
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;
! bufferTargets{BUFFER_POS} := cartesianTarget;
! bufferSpeeds{BUFFER_POS} := currentSpeed;
! bufferSpeeds{BUFFER_POS} := newSpeed;
! ENDIF
IF BUFFER_LEFT > 0 THEN
writePos := writePos+1;
IF writePos > MAX_BUFFER THEN
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);
Expand Down
6 changes: 3 additions & 3 deletions abb_node/packages/abb_communications/abb.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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 += "#"

Expand Down