Skip to content
Snippets Groups Projects
Commit 19427d54 authored by VulcanixFR's avatar VulcanixFR
Browse files

Update Readme and Fix Latency windows

parent 9f982b6f
No related merge requests found
......@@ -130,15 +130,67 @@ class methods instead of global variables and functions.
This section describes how to deploy the data collection on a cell.
**TODO**: Finish this part, add the files to the repo
### Global variables
The following declarations must be added in the `System/$config.dat` file
on the robot KUKA workspace :
```
...
;FOLD ------DIAGNOSTIKA GLOBAL PROMENNE-------
;Program control
DECL BOOL PyRUN=FALSE
DECL BOOL PyDONE=FALSE
DECL INT PySPEED=30
DECL INT PyITER[6]
DECL BOOL PyOPEN_GRIPPER=FALSE
DECL BOOL PyCLOSE_GRIPPER=FALSE
DECL INT PyKNUCKLE
DECL REAL SPEED
;Data collection control
DECL BOOL ColRUN=FALSE
DECL BOOL ColRESET=FALSE
DECL BOOL ColBUFFER_FULL=FALSE
DECL BOOL ColKEEPING_UP=FALSE
DECL BOOL ColRESET_DONE=TRUE
DECL INT ColSAMPLING=12
DECL INT ColBUFFER_SIZE=20000
;Data communication buffers and flags
DECL INT SAMPLE_READ=772
DECL INT SAMPLE_NUMBER=772
DECL REAL __TAB_1[36]
DECL INT __PYTHON_HAS_READ=771 ;
DECL BOOL __PyResetTimer=FALSE ;
;Data collection buffers
DECL REAL ColBUFFER_TQ_A1[20000]
DECL REAL ColBUFFER_TQ_A2[20000]
DECL REAL ColBUFFER_TQ_A3[20000]
DECL REAL ColBUFFER_TQ_A4[20000]
DECL REAL ColBUFFER_TQ_A5[20000]
DECL REAL ColBUFFER_TQ_A6[20000]
DECL REAL ColBUFFER_TEMP_A1[20000]
DECL REAL ColBUFFER_TEMP_A2[20000]
DECL REAL ColBUFFER_TEMP_A3[20000]
DECL REAL ColBUFFER_TEMP_A4[20000]
DECL REAL ColBUFFER_TEMP_A5[20000]
DECL REAL ColBUFFER_TEMP_A6[20000]
DECL REAL ColBUFFER_CURR_A1[20000]
DECL REAL ColBUFFER_CURR_A2[20000]
DECL REAL ColBUFFER_CURR_A3[20000]
DECL REAL ColBUFFER_CURR_A4[20000]
DECL REAL ColBUFFER_CURR_A5[20000]
DECL REAL ColBUFFER_CURR_A6[20000]
DECL REAL ColBUFFER_TIME[20000]
DECL REAL ColBUFFER_ANALOG[20000]
DECL E6AXIS __LAST_POS_ACT
DECL E6AXIS ColBUFFER_POS_ACT[20000]
DECL E6AXIS __LAST_POS_MEAS
DECL E6AXIS ColBUFFER_POS_MEAS[20000]
;ENDFOLD
```
### `Data_collector.sub`
......
......@@ -9,6 +9,7 @@ from threading import Semaphore, Thread
from typing import List, Any
import pandas as pd
import matplotlib.pyplot as plt
import os
class MainProgram (MainWindow):
"""Wrapper for the main program. Classes are more reliable than global variables.
......@@ -20,7 +21,7 @@ class MainProgram (MainWindow):
### ---- Robots ---- ###
robot_handlers: List[KUKA_Handler] = [ None ] * 3
robot_windows = [ ]
robot_windows: List[Measure_robot] = [ ]
### ---- Sync Mechanism ---- ###
sync_done = 0
......@@ -80,9 +81,14 @@ class MainProgram (MainWindow):
"""
self.sync_done += 1
if self.sync_done == self.sync_number:
sync_number = 0
for w in self.robot_windows:
sync_number += 1 if not w.collecting_data_done else 0
if self.sync_done == sync_number:
self.sync_done = 0
self.sync_sem.release(self.sync_number)
self.sync_sem.release(sync_number)
def close (self):
"""Closes the main program
......@@ -105,6 +111,8 @@ class MainProgram (MainWindow):
# Creating the file names
file_path = values["-user_path-"] + "/" + values["-dataset_name-"]
if not os.path.exists(values["-user_path-"]):
os.mkdir(values["-user_path-"])
# Creating the windows used to collect data
self.robot_windows = [ ]
......@@ -148,13 +156,13 @@ class MainProgram (MainWindow):
"""
try:
window_latency = []
self.window_latency = []
for i in range(len(self.robot_handlers)):
r = self.robot_handlers[i]
if r is not None:
w = Measure_latency(f"Latency measurement for Robot {i + 1}")
w._poll()
window_latency.append(w)
self.window_latency.append(w)
t = Thread(target=w.measure_latency, args=[r], daemon=False)
t.start()
......
&ACCESS RVP
&COMMENT USER specified PLC program
DEF Python_Gripper ( )
;FOLD DECLARATIONS
;FOLD USER DECL
; Please insert user defined declarations
;ENDFOLD (USER DECL)
;ENDFOLD (DECLARATIONS)
;FOLD INI
;FOLD USER INIT
; Please insert user defined initialization commands
;ENDFOLD (USER INIT)
;ENDFOLD (INI)
LOOP
;FOLD USER PLC
;Make your modifications here
WAIT FOR PyOPEN_GRIPPER OR PyCLOSE_GRIPPER
IF PyOPEN_GRIPPER THEN
PULSE ( $OUT[7], true, 0.5 )
PyOPEN_GRIPPER=FALSE
ENDIF
IF PyCLOSE_GRIPPER THEN
PULSE ( $OUT[8], true, 0.5 )
PyCLOSE_GRIPPER=FALSE
ENDIF
;ENDFOLD (USER PLC)
ENDLOOP
END
;ENDFOLD
;FOLD USER SUBROUTINE
;Integrate your user defined subroutines
;ENDFOLD (USER SUBROUTINE)
\ No newline at end of file
&ACCESS RVP
&REL 8
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Diagnostika
DEFDAT _Axis_MAIN_dataset
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
DECL INT counter
DECL AXIS DOMOV={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL FDAT FP1={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
ENDDAT
\ No newline at end of file
&ACCESS RVO1
&REL 253
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEFDAT A1
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL AXIS DOMOV={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL FDAT FP1={TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL AXIS POHYB={A1 -45.0000,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
ENDDAT
&ACCESS RVO1
&REL 253
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEF A1( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
POHYB.A1 = DOMOV.A1+45
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
POHYB.A1 = DOMOV.A1-45
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
END
&ACCESS RVO1
&REL 225
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEFDAT A2
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL AXIS DOMOV={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL FDAT FP1={TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.PointName=P31; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT31; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.VelocityFieldEnabled=False; Kuka.ColDetectFieldEnabled=False; Kuka.MovementParameterFieldEnabled=False; Kuka.IsAngleEnabled=False "}
DECL AXIS POHYB={A1 0.0,A2 -135.000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL E6POS XP31={X 285.604095,Y -0.640600,Z 520.018494,A 180.000,B 66.6905289,C -180.000,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FP31={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT31={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT
&ACCESS RVO1
&REL 225
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEF A2( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
POHYB.A2 = DOMOV.A2+15
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
POHYB.A2 = DOMOV.A2-45
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
END
&ACCESS RVO1
&REL 223
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEFDAT A3
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL AXIS DOMOV={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL FDAT FP1={TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.PointName=P31; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT31; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.VelocityFieldEnabled=False; Kuka.ColDetectFieldEnabled=False; Kuka.MovementParameterFieldEnabled=False; Kuka.IsAngleEnabled=False "}
DECL AXIS POHYB={A1 0.0,A2 -90.0000,A3 60.0000,A4 0.0,A5 60.0000,A6 0.0}
ENDDAT
&ACCESS RVO1
&REL 223
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEF A3( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
POHYB.A3 = DOMOV.A3+25
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
POHYB.A3 = DOMOV.A3-30
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
END
&ACCESS RVO1
&REL 224
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEFDAT A4
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL AXIS DOMOV={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL FDAT FP1={TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.PointName=P31; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT31; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.VelocityFieldEnabled=False; Kuka.ColDetectFieldEnabled=False; Kuka.MovementParameterFieldEnabled=False; Kuka.IsAngleEnabled=False "}
DECL AXIS POHYB={A1 0.0,A2 -90.0000,A3 90.0000,A4 -50.0000,A5 60.0000,A6 0.0}
ENDDAT
&ACCESS RVO1
&REL 224
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEF A4( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
POHYB.A4 = DOMOV.A4+50
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
POHYB.A4 = DOMOV.A4-50
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
END
&ACCESS RVO1
&REL 211
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEFDAT A5
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL AXIS DOMOV={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL FDAT FP1={TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.PointName=P31; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT31; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.VelocityFieldEnabled=False; Kuka.ColDetectFieldEnabled=False; Kuka.MovementParameterFieldEnabled=False; Kuka.IsAngleEnabled=False "}
DECL AXIS POHYB={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 25.0000,A6 0.0}
ENDDAT
&ACCESS RVO1
&REL 211
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEF A5( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
POHYB.A5 = DOMOV.A5+30
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
POHYB.A5 = DOMOV.A5-35
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
END
&ACCESS RVO1
&REL 207
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEFDAT A6
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL AXIS DOMOV={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 0.0}
DECL FDAT FP1={TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.PointName=P31; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT31; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.VelocityFieldEnabled=False; Kuka.ColDetectFieldEnabled=False; Kuka.MovementParameterFieldEnabled=False; Kuka.IsAngleEnabled=False "}
DECL AXIS POHYB={A1 0.0,A2 -90.0000,A3 90.0000,A4 0.0,A5 60.0000,A6 -90.0000}
ENDDAT
&ACCESS RVO1
&REL 207
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\Diagnostika
DEF A6( )
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
POHYB.A6 = DOMOV.A6+90
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
POHYB.A6 = DOMOV.A6-90
SPTP POHYB WITH $VEL_AXIS[1] = SVEL_JOINT(PySPEED), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
END
; Global variables needed for the execution of the data collector ;
;FOLD ------DIAGNOSTIKA GLOBAL PROMENNE-------
;Program control
DECL BOOL PyRUN=FALSE
DECL BOOL PyDONE=FALSE
DECL INT PySPEED=30
DECL INT PyITER[6]
DECL BOOL PyOPEN_GRIPPER=FALSE
DECL BOOL PyCLOSE_GRIPPER=FALSE
DECL INT PyKNUCKLE
DECL REAL SPEED
;Data collection control
DECL BOOL ColRUN=FALSE
DECL BOOL ColRESET=FALSE
DECL BOOL ColBUFFER_FULL=FALSE
DECL BOOL ColKEEPING_UP=FALSE
DECL BOOL ColRESET_DONE=TRUE
DECL INT ColSAMPLING=12
DECL INT ColBUFFER_SIZE=20000
;Data communication buffers and flags
DECL INT SAMPLE_READ=772
DECL INT SAMPLE_NUMBER=772
DECL REAL __TAB_1[36]
DECL INT __PYTHON_HAS_READ=771 ;
DECL BOOL __PyResetTimer=FALSE ;
;Data collection buffers
DECL REAL ColBUFFER_TQ_A1[20000]
DECL REAL ColBUFFER_TQ_A2[20000]
DECL REAL ColBUFFER_TQ_A3[20000]
DECL REAL ColBUFFER_TQ_A4[20000]
DECL REAL ColBUFFER_TQ_A5[20000]
DECL REAL ColBUFFER_TQ_A6[20000]
DECL REAL ColBUFFER_TEMP_A1[20000]
DECL REAL ColBUFFER_TEMP_A2[20000]
DECL REAL ColBUFFER_TEMP_A3[20000]
DECL REAL ColBUFFER_TEMP_A4[20000]
DECL REAL ColBUFFER_TEMP_A5[20000]
DECL REAL ColBUFFER_TEMP_A6[20000]
DECL REAL ColBUFFER_CURR_A1[20000]
DECL REAL ColBUFFER_CURR_A2[20000]
DECL REAL ColBUFFER_CURR_A3[20000]
DECL REAL ColBUFFER_CURR_A4[20000]
DECL REAL ColBUFFER_CURR_A5[20000]
DECL REAL ColBUFFER_CURR_A6[20000]
DECL REAL ColBUFFER_TIME[20000]
DECL REAL ColBUFFER_ANALOG[20000]
DECL E6AXIS __LAST_POS_ACT
DECL E6AXIS ColBUFFER_POS_ACT[20000]
DECL E6AXIS __LAST_POS_MEAS
DECL E6AXIS ColBUFFER_POS_MEAS[20000]
;ENDFOLD
...
\ No newline at end of file
<?xml version="1.0"?>
<Trace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Time>600</Time>
<PreTrigger>0</PreTrigger>
<Basename>12_ms_v2</Basename>
<Modules>
<Module>
<Name>KRCIpo</Name>
<Rate>12000</Rate>
<Channel>500</Channel>
</Module>
<Module>
<Name>NextGenDrive#1</Name>
<Rate>12000</Rate>
<Channel>1</Channel>
<Channel>2</Channel>
<Channel>3</Channel>
<Channel>8</Channel>
<Channel>14</Channel>
<Channel>117</Channel>
<Channel>200</Channel>
<Channel>202</Channel>
</Module>
<Module>
<Name>NextGenDrive#2</Name>
<Rate>12000</Rate>
<Channel>1</Channel>
<Channel>2</Channel>
<Channel>3</Channel>
<Channel>8</Channel>
<Channel>14</Channel>
<Channel>117</Channel>
<Channel>200</Channel>
<Channel>202</Channel>
</Module>
<Module>
<Name>NextGenDrive#3</Name>
<Rate>12000</Rate>
<Channel>1</Channel>
<Channel>2</Channel>
<Channel>3</Channel>
<Channel>8</Channel>
<Channel>14</Channel>
<Channel>117</Channel>
<Channel>200</Channel>
<Channel>202</Channel>
</Module>
<Module>
<Name>NextGenDrive#4</Name>
<Rate>12000</Rate>
<Channel>1</Channel>
<Channel>2</Channel>
<Channel>3</Channel>
<Channel>8</Channel>
<Channel>14</Channel>
<Channel>117</Channel>
<Channel>200</Channel>
<Channel>202</Channel>
</Module>
<Module>
<Name>NextGenDrive#5</Name>
<Rate>12000</Rate>
<Channel>1</Channel>
<Channel>2</Channel>
<Channel>3</Channel>
<Channel>8</Channel>
<Channel>14</Channel>
<Channel>117</Channel>
<Channel>200</Channel>
<Channel>202</Channel>
</Module>
<Module>
<Name>NextGenDrive#6</Name>
<Rate>12000</Rate>
<Channel>1</Channel>
<Channel>2</Channel>
<Channel>3</Channel>
<Channel>8</Channel>
<Channel>14</Channel>
<Channel>117</Channel>
<Channel>200</Channel>
<Channel>202</Channel>
</Module>
</Modules>
<Trigger>
<ModuleName>KRCIpo</ModuleName>
<ID>1</ID>
</Trigger>
</Trace>
\ No newline at end of file
......@@ -55,6 +55,8 @@ class Measure_latency(sg.Window):
robot (KUKA_Handler): The robot handler
"""
print("Measuring latency with " + str(robot.ipAddress))
# Preparing the buffers
self.acc_time_M = np.zeros(self.N)
self.acc_time_1 = np.zeros(self.N)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment