@kuriousdesign/machine-sdk 1.0.65 → 1.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +28 -0
- package/README.md +28 -51
- package/dist/custom-types/BaseDevice/Device.d.ts +1 -1
- package/dist/custom-types/BaseDevice/Device.js +1 -1
- package/dist/custom-types/BaseDevice/index.d.ts +1 -0
- package/dist/custom-types/BaseDevice/index.js +1 -0
- package/dist/custom-types/Devices/Conductor.js +0 -1
- package/dist/custom-types/Devices/index.d.ts +0 -2
- package/dist/custom-types/Devices/index.js +0 -2
- package/dist/custom-types/Recipe.d.ts +1 -0
- package/dist/custom-types/Recipe.js +2 -0
- package/package.json +1 -1
- package/src/abb/enums/GCs.mod +44 -44
- package/src/abb/enums/PartLocationIds.mod +13 -13
- package/src/abb/enums/RobTasks.mod +18 -18
- package/src/abb/enums/States.mod +20 -20
- package/src/abb/procs/MainModule.mod +188 -188
- package/src/abb/records/DeviceDataTypes.mod +35 -35
- package/src/custom-types/AppState.ts +115 -115
- package/src/custom-types/BaseDevice/Actions.ts +45 -45
- package/src/custom-types/BaseDevice/ApiOpcua.ts +71 -71
- package/src/custom-types/BaseDevice/Device.ts +224 -224
- package/src/custom-types/BaseDevice/DeviceCmds.ts +45 -45
- package/src/custom-types/BaseDevice/DeviceConstants.ts +9 -9
- package/src/custom-types/{Devices → BaseDevice}/DeviceTypes.ts +60 -60
- package/src/custom-types/BaseDevice/Processes.ts +38 -38
- package/src/custom-types/BaseDevice/index.ts +7 -6
- package/src/custom-types/Bridge.ts +8 -8
- package/src/custom-types/Com.ts +19 -19
- package/src/custom-types/Devices/Axis.ts +222 -222
- package/src/custom-types/Devices/Conductor.ts +14 -14
- package/src/custom-types/Devices/Pot.ts +24 -24
- package/src/custom-types/Devices/Robot.ts +208 -208
- package/src/custom-types/Devices/index.ts +3 -4
- package/src/custom-types/GlobalConstants.ts +98 -98
- package/src/custom-types/HMI.ts +52 -52
- package/src/custom-types/Machine.ts +130 -130
- package/src/custom-types/Part.ts +238 -238
- package/src/custom-types/RackData.ts +22 -22
- package/src/custom-types/Recipe.ts +250 -247
- package/src/custom-types/RecipeManagerFB.ts +10 -10
- package/src/custom-types/TaskQueue.ts +86 -86
- package/src/custom-types/UserManagerFB.ts +7 -7
- package/src/custom-types/index.ts +14 -14
- package/src/enums/Colors.ts +79 -79
- package/src/enums/DeviceId.ts +116 -116
- package/src/enums/ExtrusionType.ts +5 -5
- package/src/enums/OpcuaDatatype.ts +27 -27
- package/src/enums/Pages.ts +21 -21
- package/src/enums/States.ts +173 -173
- package/src/enums/TaskId.ts +37 -37
- package/src/enums/index.ts +9 -9
- package/src/functions/colorMapping.ts +43 -43
- package/src/functions/index.ts +2 -2
- package/src/functions/mqtt-helpers.ts +20 -20
- package/src/functions/topicMapping.ts +6 -6
- package/src/index.ts +3 -3
- package/src/plc-tags/index.ts +38 -38
- package/src/plc-tags/mqtt.ts +9 -9
- package/src/plc-tags/opcua.ts +3 -3
- package/src/styles/animations.css +15 -15
- package/tsconfig.json +13 -13
- package/dist/custom-types/Devices/Device.d.ts +0 -111
- package/dist/custom-types/Devices/Device.js +0 -108
- package/dist/custom-types/PartData.d.ts +0 -11
- package/dist/custom-types/PartData.js +0 -2
- package/dist/custom-types/RecipeData.d.ts +0 -7
- package/dist/custom-types/RecipeData.js +0 -2
- package/dist/enums/Errors.d.ts +0 -6
- package/dist/enums/Errors.js +0 -28
- package/dist/enums/Priorities.d.ts +0 -18
- package/dist/enums/Priorities.js +0 -24
- package/dist/enums/RobPositions.d.ts +0 -12
- package/dist/enums/RobPositions.js +0 -16
- package/dist/enums/Warnings.d.ts +0 -6
- package/dist/enums/Warnings.js +0 -18
- /package/dist/custom-types/{Devices → BaseDevice}/DeviceTypes.d.ts +0 -0
- /package/dist/custom-types/{Devices → BaseDevice}/DeviceTypes.js +0 -0
|
@@ -1,208 +1,208 @@
|
|
|
1
|
-
// {attribute 'qualified_only'}
|
|
2
|
-
// {attribute 'strict'}
|
|
3
|
-
// TYPE RobWaypoints :
|
|
4
|
-
// (
|
|
5
|
-
// NONE := 0, //do not remove or change this
|
|
6
|
-
// HOME := 1, //identifier for the robot's home position
|
|
7
|
-
// FIXTURE_LEFT_PERCH := 2, //identifier for the fixture perch position
|
|
8
|
-
// FIXTURE_RIGHT_PERCH := 3, //identifier for the fixture perch position
|
|
9
|
-
// TOOL_PERCH :=4
|
|
10
|
-
// );
|
|
11
|
-
// END_TYPE
|
|
12
|
-
|
|
13
|
-
export enum RobWaypoints {
|
|
14
|
-
NONE = 0,
|
|
15
|
-
HOME = 1,
|
|
16
|
-
FIXTURE_LEFT_PERCH = 2,
|
|
17
|
-
FIXTURE_RIGHT_PERCH = 3,
|
|
18
|
-
TOOL_PERCH = 4
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function robotWaypointToString(waypoint: RobWaypoints): string {
|
|
22
|
-
switch (waypoint) {
|
|
23
|
-
case RobWaypoints.NONE:
|
|
24
|
-
return 'None';
|
|
25
|
-
case RobWaypoints.HOME:
|
|
26
|
-
return 'Home';
|
|
27
|
-
case RobWaypoints.FIXTURE_LEFT_PERCH:
|
|
28
|
-
return 'Fixture Left Perch';
|
|
29
|
-
case RobWaypoints.FIXTURE_RIGHT_PERCH:
|
|
30
|
-
return 'Fixture Right Perch';
|
|
31
|
-
case RobWaypoints.TOOL_PERCH:
|
|
32
|
-
return 'Tool Perch';
|
|
33
|
-
default:
|
|
34
|
-
return 'Unknown';
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// {attribute 'qualified_only'}
|
|
39
|
-
// {attribute 'strict'}
|
|
40
|
-
// TYPE RobTools :
|
|
41
|
-
// (
|
|
42
|
-
// NONE := 0, //do not remove or change this
|
|
43
|
-
// WEIGHING_GRIPPER := 1, //identifier for the weighing gripper tool
|
|
44
|
-
// APPLICATOR := 2, //identifier for the applicator tool
|
|
45
|
-
// CAMERA := 3 //identifier for the camera tool
|
|
46
|
-
// );
|
|
47
|
-
// END_TYPE
|
|
48
|
-
|
|
49
|
-
export enum RobTools {
|
|
50
|
-
NONE = 0,
|
|
51
|
-
WEIGHING_GRIPPER = 1,
|
|
52
|
-
APPLICATOR = 2,
|
|
53
|
-
CAMERA = 3
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function robotToolToString(tool: RobTools): string {
|
|
57
|
-
switch (tool) {
|
|
58
|
-
case RobTools.NONE:
|
|
59
|
-
return 'None';
|
|
60
|
-
case RobTools.WEIGHING_GRIPPER:
|
|
61
|
-
return 'Weighing Gripper';
|
|
62
|
-
case RobTools.APPLICATOR:
|
|
63
|
-
return 'Applicator';
|
|
64
|
-
case RobTools.CAMERA:
|
|
65
|
-
return 'Camera';
|
|
66
|
-
default:
|
|
67
|
-
return 'Unknown';
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// {attribute 'qualified_only'}
|
|
72
|
-
// {attribute 'strict'}
|
|
73
|
-
// TYPE RobTasks :
|
|
74
|
-
// (
|
|
75
|
-
// NONE := 0, //do not remove or change this
|
|
76
|
-
// RETRIEVE_TOOL := 1, //param0: toolId (identifier from Tools enum specifying which tool to retrieve, e.g., WEIGHING_GRIPPER, APPLICATOR, CAMERA), checks for tool presence; if missing, moves to "Home" and signals fault
|
|
77
|
-
// RETURN_TOOL := 2, //param0: toolId (identifier from Tools enum specifying which tool to return to the tool rack)
|
|
78
|
-
// GO_TO_WAYPOINT := 3, //param0: positionId (identifier from Positions enum specifying the target waypoint, e.g., FIXTURE_PERCH, HOME), moves robot to the specified position
|
|
79
|
-
// GRIP_PART := 4, //param0: partId (identifier of the part to grip, e.g., part 1), performs a diagonal lift (½" up, ½" away from fixed clamp side) for clearance
|
|
80
|
-
// SAMPLE_WEIGHT := 5, //param0: sampleCount (number of weight samples, e.g., XX), param1: sampleDuration (duration in seconds, e.g., 2), waits briefly then records average weight over the period
|
|
81
|
-
// REPOSITION_AND_RELEASE_PART := 6, //no params: moves back ¼" toward fixed clamp, down ¼", opens gripper to drop tube onto false bottom, returns to perch position
|
|
82
|
-
// REMOVE_FALSE_BOTTOMS := 7, //no params: removes false bottoms from the fixture(s)
|
|
83
|
-
// HOME_SQUEEGEE_MOTOR := 8, //no params: homes the squeegee motor while moving to fixture perch position
|
|
84
|
-
// WIPE_APPLICATOR := 9, //no params: cleans the applicator (detailed cleaning procedure TBD)
|
|
85
|
-
// PERFORM_APPLICATION_TASK := 10, //param0: tubeId (identifier of the tube to process, e.g., tube 1), applies the task to the specified tube
|
|
86
|
-
// INSERT_FALSE_BOTTOMS := 11, //no params: slides false bottoms back into place in the fixture(s)
|
|
87
|
-
// TAKE_IMAGES := 12 //param0: tubeList (list of tube IDs to image), captures images and sends to HMI for display (most recent as large image, others in album view)
|
|
88
|
-
// );
|
|
89
|
-
// END_TYPE
|
|
90
|
-
|
|
91
|
-
export const RobTasks = {
|
|
92
|
-
NONE: 0,
|
|
93
|
-
RETRIEVE_TOOL: 1,
|
|
94
|
-
RETURN_TOOL: 2,
|
|
95
|
-
GO_TO_WAYPOINT: 3,
|
|
96
|
-
GRIP_PART: 4,
|
|
97
|
-
SAMPLE_WEIGHT: 5,
|
|
98
|
-
REPOSITION_AND_RELEASE_PART: 6,
|
|
99
|
-
REMOVE_FALSE_BOTTOMS: 7,
|
|
100
|
-
HOME_SQUEEGEE_MOTOR: 8,
|
|
101
|
-
WIPE_APPLICATOR: 9,
|
|
102
|
-
PERFORM_APPLICATION_TASK: 10,
|
|
103
|
-
INSERT_FALSE_BOTTOMS: 11,
|
|
104
|
-
TAKE_IMAGES: 12
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
export function robotTaskToString(task: number): string {
|
|
108
|
-
switch (task) {
|
|
109
|
-
case RobTasks.NONE:
|
|
110
|
-
return 'None';
|
|
111
|
-
case RobTasks.RETRIEVE_TOOL:
|
|
112
|
-
return 'Retrieve Tool';
|
|
113
|
-
case RobTasks.RETURN_TOOL:
|
|
114
|
-
return 'Return Tool';
|
|
115
|
-
case RobTasks.GO_TO_WAYPOINT:
|
|
116
|
-
return 'Go To Waypoint';
|
|
117
|
-
case RobTasks.GRIP_PART:
|
|
118
|
-
return 'Grip Part';
|
|
119
|
-
case RobTasks.SAMPLE_WEIGHT:
|
|
120
|
-
return 'Sample Weight';
|
|
121
|
-
case RobTasks.REPOSITION_AND_RELEASE_PART:
|
|
122
|
-
return 'Reposition And Release Part';
|
|
123
|
-
case RobTasks.REMOVE_FALSE_BOTTOMS:
|
|
124
|
-
return 'Remove False Bottoms';
|
|
125
|
-
case RobTasks.HOME_SQUEEGEE_MOTOR:
|
|
126
|
-
return 'Home Squeegee Motor';
|
|
127
|
-
case RobTasks.WIPE_APPLICATOR:
|
|
128
|
-
return 'Wipe Applicator';
|
|
129
|
-
case RobTasks.PERFORM_APPLICATION_TASK:
|
|
130
|
-
return 'Perform Application Task';
|
|
131
|
-
case RobTasks.INSERT_FALSE_BOTTOMS:
|
|
132
|
-
return 'Insert False Bottoms';
|
|
133
|
-
case RobTasks.TAKE_IMAGES:
|
|
134
|
-
return 'Take Images';
|
|
135
|
-
default:
|
|
136
|
-
return 'Unknown';
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
// TYPE RobSts :
|
|
142
|
-
// STRUCT
|
|
143
|
-
// Cfg:DeviceTemplateCfg; //read-only, references _cfg
|
|
144
|
-
// ActiveToolId:INT;
|
|
145
|
-
// ActualWaypoint:INT;
|
|
146
|
-
// TargetWaypoint:INT;
|
|
147
|
-
// ActualZone:INT;
|
|
148
|
-
// WaypointPlan: RobWaypointPlan;
|
|
149
|
-
// SqueegeeIsCalibrated:BOOL; //required once per job
|
|
150
|
-
// SqueegeeIsHomed:BOOL; //required after every tool change
|
|
151
|
-
// END_STRUCT
|
|
152
|
-
// END_TYPE
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
// TYPE RobWaypointPlan :
|
|
156
|
-
// STRUCT
|
|
157
|
-
// Cnt:INT;
|
|
158
|
-
// activeIndex:INT;
|
|
159
|
-
// list:ARRAY[0..RobConstants.MOVE_PLAN_LEN -1] OF INT;
|
|
160
|
-
// END_STRUCT
|
|
161
|
-
// END_TYPE
|
|
162
|
-
|
|
163
|
-
export interface RobWaypointPlan {
|
|
164
|
-
cnt: number;
|
|
165
|
-
activeIndex: number;
|
|
166
|
-
list: number[];
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
export interface RobCfg {
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
export interface RobSts {
|
|
174
|
-
cfg: RobCfg;
|
|
175
|
-
activeToolId: number;
|
|
176
|
-
actualWaypoint: number;
|
|
177
|
-
targetWaypoint: number;
|
|
178
|
-
actualZone: number;
|
|
179
|
-
waypointPlan: RobWaypointPlan;
|
|
180
|
-
squeegeeIsCalibrated: boolean;
|
|
181
|
-
squeegeeIsHomed: boolean;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
export interface RobDataDEPRECATED {
|
|
185
|
-
zone: RobZoneData;
|
|
186
|
-
pos: RobWaypoints;
|
|
187
|
-
dest: RobWaypoints;
|
|
188
|
-
cartesian: RobPositionData;
|
|
189
|
-
//taskReq: TaskId; //incoming task request
|
|
190
|
-
//taskData: TaskData;
|
|
191
|
-
recipeOffsets: RobPositionData[];
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
export interface RobPositionData {
|
|
195
|
-
x: number;
|
|
196
|
-
y: number;
|
|
197
|
-
z: number;
|
|
198
|
-
wdeg: number;
|
|
199
|
-
pdeg: number;
|
|
200
|
-
rdeg: number;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
export interface RobZoneData {
|
|
204
|
-
cncHorzShuttle: boolean;
|
|
205
|
-
waypointShuttle: boolean; //Joint moves, wrist is holding parts upright and at a distance that allows robot to rotate about J1 without fear of collision, basically just moving J1
|
|
206
|
-
dcsNoGo: boolean;
|
|
207
|
-
outsideOfCnc: boolean;
|
|
208
|
-
}
|
|
1
|
+
// {attribute 'qualified_only'}
|
|
2
|
+
// {attribute 'strict'}
|
|
3
|
+
// TYPE RobWaypoints :
|
|
4
|
+
// (
|
|
5
|
+
// NONE := 0, //do not remove or change this
|
|
6
|
+
// HOME := 1, //identifier for the robot's home position
|
|
7
|
+
// FIXTURE_LEFT_PERCH := 2, //identifier for the fixture perch position
|
|
8
|
+
// FIXTURE_RIGHT_PERCH := 3, //identifier for the fixture perch position
|
|
9
|
+
// TOOL_PERCH :=4
|
|
10
|
+
// );
|
|
11
|
+
// END_TYPE
|
|
12
|
+
|
|
13
|
+
export enum RobWaypoints {
|
|
14
|
+
NONE = 0,
|
|
15
|
+
HOME = 1,
|
|
16
|
+
FIXTURE_LEFT_PERCH = 2,
|
|
17
|
+
FIXTURE_RIGHT_PERCH = 3,
|
|
18
|
+
TOOL_PERCH = 4
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function robotWaypointToString(waypoint: RobWaypoints): string {
|
|
22
|
+
switch (waypoint) {
|
|
23
|
+
case RobWaypoints.NONE:
|
|
24
|
+
return 'None';
|
|
25
|
+
case RobWaypoints.HOME:
|
|
26
|
+
return 'Home';
|
|
27
|
+
case RobWaypoints.FIXTURE_LEFT_PERCH:
|
|
28
|
+
return 'Fixture Left Perch';
|
|
29
|
+
case RobWaypoints.FIXTURE_RIGHT_PERCH:
|
|
30
|
+
return 'Fixture Right Perch';
|
|
31
|
+
case RobWaypoints.TOOL_PERCH:
|
|
32
|
+
return 'Tool Perch';
|
|
33
|
+
default:
|
|
34
|
+
return 'Unknown';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// {attribute 'qualified_only'}
|
|
39
|
+
// {attribute 'strict'}
|
|
40
|
+
// TYPE RobTools :
|
|
41
|
+
// (
|
|
42
|
+
// NONE := 0, //do not remove or change this
|
|
43
|
+
// WEIGHING_GRIPPER := 1, //identifier for the weighing gripper tool
|
|
44
|
+
// APPLICATOR := 2, //identifier for the applicator tool
|
|
45
|
+
// CAMERA := 3 //identifier for the camera tool
|
|
46
|
+
// );
|
|
47
|
+
// END_TYPE
|
|
48
|
+
|
|
49
|
+
export enum RobTools {
|
|
50
|
+
NONE = 0,
|
|
51
|
+
WEIGHING_GRIPPER = 1,
|
|
52
|
+
APPLICATOR = 2,
|
|
53
|
+
CAMERA = 3
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function robotToolToString(tool: RobTools): string {
|
|
57
|
+
switch (tool) {
|
|
58
|
+
case RobTools.NONE:
|
|
59
|
+
return 'None';
|
|
60
|
+
case RobTools.WEIGHING_GRIPPER:
|
|
61
|
+
return 'Weighing Gripper';
|
|
62
|
+
case RobTools.APPLICATOR:
|
|
63
|
+
return 'Applicator';
|
|
64
|
+
case RobTools.CAMERA:
|
|
65
|
+
return 'Camera';
|
|
66
|
+
default:
|
|
67
|
+
return 'Unknown';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// {attribute 'qualified_only'}
|
|
72
|
+
// {attribute 'strict'}
|
|
73
|
+
// TYPE RobTasks :
|
|
74
|
+
// (
|
|
75
|
+
// NONE := 0, //do not remove or change this
|
|
76
|
+
// RETRIEVE_TOOL := 1, //param0: toolId (identifier from Tools enum specifying which tool to retrieve, e.g., WEIGHING_GRIPPER, APPLICATOR, CAMERA), checks for tool presence; if missing, moves to "Home" and signals fault
|
|
77
|
+
// RETURN_TOOL := 2, //param0: toolId (identifier from Tools enum specifying which tool to return to the tool rack)
|
|
78
|
+
// GO_TO_WAYPOINT := 3, //param0: positionId (identifier from Positions enum specifying the target waypoint, e.g., FIXTURE_PERCH, HOME), moves robot to the specified position
|
|
79
|
+
// GRIP_PART := 4, //param0: partId (identifier of the part to grip, e.g., part 1), performs a diagonal lift (½" up, ½" away from fixed clamp side) for clearance
|
|
80
|
+
// SAMPLE_WEIGHT := 5, //param0: sampleCount (number of weight samples, e.g., XX), param1: sampleDuration (duration in seconds, e.g., 2), waits briefly then records average weight over the period
|
|
81
|
+
// REPOSITION_AND_RELEASE_PART := 6, //no params: moves back ¼" toward fixed clamp, down ¼", opens gripper to drop tube onto false bottom, returns to perch position
|
|
82
|
+
// REMOVE_FALSE_BOTTOMS := 7, //no params: removes false bottoms from the fixture(s)
|
|
83
|
+
// HOME_SQUEEGEE_MOTOR := 8, //no params: homes the squeegee motor while moving to fixture perch position
|
|
84
|
+
// WIPE_APPLICATOR := 9, //no params: cleans the applicator (detailed cleaning procedure TBD)
|
|
85
|
+
// PERFORM_APPLICATION_TASK := 10, //param0: tubeId (identifier of the tube to process, e.g., tube 1), applies the task to the specified tube
|
|
86
|
+
// INSERT_FALSE_BOTTOMS := 11, //no params: slides false bottoms back into place in the fixture(s)
|
|
87
|
+
// TAKE_IMAGES := 12 //param0: tubeList (list of tube IDs to image), captures images and sends to HMI for display (most recent as large image, others in album view)
|
|
88
|
+
// );
|
|
89
|
+
// END_TYPE
|
|
90
|
+
|
|
91
|
+
export const RobTasks = {
|
|
92
|
+
NONE: 0,
|
|
93
|
+
RETRIEVE_TOOL: 1,
|
|
94
|
+
RETURN_TOOL: 2,
|
|
95
|
+
GO_TO_WAYPOINT: 3,
|
|
96
|
+
GRIP_PART: 4,
|
|
97
|
+
SAMPLE_WEIGHT: 5,
|
|
98
|
+
REPOSITION_AND_RELEASE_PART: 6,
|
|
99
|
+
REMOVE_FALSE_BOTTOMS: 7,
|
|
100
|
+
HOME_SQUEEGEE_MOTOR: 8,
|
|
101
|
+
WIPE_APPLICATOR: 9,
|
|
102
|
+
PERFORM_APPLICATION_TASK: 10,
|
|
103
|
+
INSERT_FALSE_BOTTOMS: 11,
|
|
104
|
+
TAKE_IMAGES: 12
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export function robotTaskToString(task: number): string {
|
|
108
|
+
switch (task) {
|
|
109
|
+
case RobTasks.NONE:
|
|
110
|
+
return 'None';
|
|
111
|
+
case RobTasks.RETRIEVE_TOOL:
|
|
112
|
+
return 'Retrieve Tool';
|
|
113
|
+
case RobTasks.RETURN_TOOL:
|
|
114
|
+
return 'Return Tool';
|
|
115
|
+
case RobTasks.GO_TO_WAYPOINT:
|
|
116
|
+
return 'Go To Waypoint';
|
|
117
|
+
case RobTasks.GRIP_PART:
|
|
118
|
+
return 'Grip Part';
|
|
119
|
+
case RobTasks.SAMPLE_WEIGHT:
|
|
120
|
+
return 'Sample Weight';
|
|
121
|
+
case RobTasks.REPOSITION_AND_RELEASE_PART:
|
|
122
|
+
return 'Reposition And Release Part';
|
|
123
|
+
case RobTasks.REMOVE_FALSE_BOTTOMS:
|
|
124
|
+
return 'Remove False Bottoms';
|
|
125
|
+
case RobTasks.HOME_SQUEEGEE_MOTOR:
|
|
126
|
+
return 'Home Squeegee Motor';
|
|
127
|
+
case RobTasks.WIPE_APPLICATOR:
|
|
128
|
+
return 'Wipe Applicator';
|
|
129
|
+
case RobTasks.PERFORM_APPLICATION_TASK:
|
|
130
|
+
return 'Perform Application Task';
|
|
131
|
+
case RobTasks.INSERT_FALSE_BOTTOMS:
|
|
132
|
+
return 'Insert False Bottoms';
|
|
133
|
+
case RobTasks.TAKE_IMAGES:
|
|
134
|
+
return 'Take Images';
|
|
135
|
+
default:
|
|
136
|
+
return 'Unknown';
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
// TYPE RobSts :
|
|
142
|
+
// STRUCT
|
|
143
|
+
// Cfg:DeviceTemplateCfg; //read-only, references _cfg
|
|
144
|
+
// ActiveToolId:INT;
|
|
145
|
+
// ActualWaypoint:INT;
|
|
146
|
+
// TargetWaypoint:INT;
|
|
147
|
+
// ActualZone:INT;
|
|
148
|
+
// WaypointPlan: RobWaypointPlan;
|
|
149
|
+
// SqueegeeIsCalibrated:BOOL; //required once per job
|
|
150
|
+
// SqueegeeIsHomed:BOOL; //required after every tool change
|
|
151
|
+
// END_STRUCT
|
|
152
|
+
// END_TYPE
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
// TYPE RobWaypointPlan :
|
|
156
|
+
// STRUCT
|
|
157
|
+
// Cnt:INT;
|
|
158
|
+
// activeIndex:INT;
|
|
159
|
+
// list:ARRAY[0..RobConstants.MOVE_PLAN_LEN -1] OF INT;
|
|
160
|
+
// END_STRUCT
|
|
161
|
+
// END_TYPE
|
|
162
|
+
|
|
163
|
+
export interface RobWaypointPlan {
|
|
164
|
+
cnt: number;
|
|
165
|
+
activeIndex: number;
|
|
166
|
+
list: number[];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
export interface RobCfg {
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export interface RobSts {
|
|
174
|
+
cfg: RobCfg;
|
|
175
|
+
activeToolId: number;
|
|
176
|
+
actualWaypoint: number;
|
|
177
|
+
targetWaypoint: number;
|
|
178
|
+
actualZone: number;
|
|
179
|
+
waypointPlan: RobWaypointPlan;
|
|
180
|
+
squeegeeIsCalibrated: boolean;
|
|
181
|
+
squeegeeIsHomed: boolean;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export interface RobDataDEPRECATED {
|
|
185
|
+
zone: RobZoneData;
|
|
186
|
+
pos: RobWaypoints;
|
|
187
|
+
dest: RobWaypoints;
|
|
188
|
+
cartesian: RobPositionData;
|
|
189
|
+
//taskReq: TaskId; //incoming task request
|
|
190
|
+
//taskData: TaskData;
|
|
191
|
+
recipeOffsets: RobPositionData[];
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export interface RobPositionData {
|
|
195
|
+
x: number;
|
|
196
|
+
y: number;
|
|
197
|
+
z: number;
|
|
198
|
+
wdeg: number;
|
|
199
|
+
pdeg: number;
|
|
200
|
+
rdeg: number;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface RobZoneData {
|
|
204
|
+
cncHorzShuttle: boolean;
|
|
205
|
+
waypointShuttle: boolean; //Joint moves, wrist is holding parts upright and at a distance that allows robot to rotate about J1 without fear of collision, basically just moving J1
|
|
206
|
+
dcsNoGo: boolean;
|
|
207
|
+
outsideOfCnc: boolean;
|
|
208
|
+
}
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
export interface GlobalConstants {
|
|
2
|
-
HIDE_LEFT_TWO_COLUMNS: boolean;
|
|
3
|
-
HIDE_RIGHT_COLUMN: boolean;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
// {attribute 'qualified_only'}
|
|
7
|
-
// VAR_GLOBAL CONSTANT
|
|
8
|
-
// NUM_AXES:INT:=20;
|
|
9
|
-
// MAX_NUM_NAUTILUS_AXES:INT:=20;
|
|
10
|
-
// NUM_DEVICES:INT:=50; //get this from DeviceIds
|
|
11
|
-
// //STEP_TIMEOUT: TIME := T#5000MS;
|
|
12
|
-
// //TIMEOUT_ERROR_CODE_SHIFT: INT:= 10000;
|
|
13
|
-
// //DEVICE_FAULTCODEARRAY_LEN:INT:=3;
|
|
14
|
-
|
|
15
|
-
// MOMENTARY_PB: TIME:= T#250MS;
|
|
16
|
-
// ROBOT_PART_COUNT: INT:=2;
|
|
17
|
-
// //CNC_PART_COUNT: INT:=2;
|
|
18
|
-
// RECIPE_COUNT_MAX:INT :=20;
|
|
19
|
-
// HIDE_LEFT_TWO_COLUMNS:BOOL:=TRUE;//if true, the robot will pick/load the last two columns of the raw/done shelves
|
|
20
|
-
// HIDE_RIGHT_COLUMN:BOOL:=TRUE;
|
|
21
|
-
// HIDE_LEFT_ONE_COLUMN:BOOL:=FALSE;//this must be false if hide left two is true
|
|
22
|
-
// SHELF_PART_COUNT: INT:=100;
|
|
23
|
-
// NUM_OF_COLS:INT:=20; //total columns on shelf
|
|
24
|
-
// PARTS_IN_COL:INT:=5; //total parts in a column
|
|
25
|
-
// //DIAGONAL_PATTERN: BOOL:=TRUE;//is shelf picking/loading is diagonal pattern, otherwise its column picking/loading
|
|
26
|
-
// //WASHER_PART_COUNT: INT:=2;
|
|
27
|
-
// MACHINE_FAULTCODEARRAY_LEN: INT:=50;
|
|
28
|
-
// MAX_NUM_INPUTS: INT :=50;
|
|
29
|
-
|
|
30
|
-
// NUM_PARTS_XFER:INT:=10;
|
|
31
|
-
// NUM_PARTS_IB:INT:=51;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// NUM_LOG_ENTRIES:INT:=25;
|
|
35
|
-
// TASK_LIST_LEN:INT:=25;
|
|
36
|
-
// TASK_STORE_LEN:INT:=100 + TASK_LIST_LEN; //length of the array of stored (configured) tasks, the range of index 100 and greater are reserved for waypoints
|
|
37
|
-
// TASK_LOG_LEN:INT:=25;
|
|
38
|
-
// STATION_COUNT:INT:=6; //total number of designated areas that can hold parts: robot, raw shelf, preop, cnc, postop and done shelf
|
|
39
|
-
// TOP_PRIORITY_COUNT:INT:=7; //total number of top priorities in the Priorities ENUM
|
|
40
|
-
|
|
41
|
-
// //DEBUG_LOG_LEN:INT:=10;
|
|
42
|
-
// DEFAULT_TASK_DURATION_SEC:INT:=5;
|
|
43
|
-
// PARTDATA_COUNT:INT:= 25;//total count of parts contained in PartData struct
|
|
44
|
-
|
|
45
|
-
// USERFRAME_COUNT:INT:=10;
|
|
46
|
-
// //DEVICE_CHILDREN_ARRAY_LEN:INT:=10;
|
|
47
|
-
// SYSTIME_TO_UTC_SCALAR:ULINT := LREAL_TO_ULINT(10E6);
|
|
48
|
-
// NUM_PARTS_PER_FIXTURE:INT:=8;
|
|
49
|
-
// //TASKQUEUE_LEN:INT:=100;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// // HW SIDE
|
|
53
|
-
// MAX_NUM_HW_CARDS:INT:=16;
|
|
54
|
-
// END_VAR
|
|
55
|
-
|
|
56
|
-
export const GCs = {
|
|
57
|
-
|
|
58
|
-
NUM_AXES: 20,
|
|
59
|
-
MAX_NUM_NAUTILUS_AXES: 20,
|
|
60
|
-
NUM_DEVICES: 50, //get this from DeviceIds
|
|
61
|
-
//STEP_TIMEOUT: TIME := T#5000MS;
|
|
62
|
-
//TIMEOUT_ERROR_CODE_SHIFT: INT:= 10000;
|
|
63
|
-
MOMENTARY_PB: 250, // TIME:= T#250MS;
|
|
64
|
-
ROBOT_PART_COUNT: 2,
|
|
65
|
-
//CNC_PART_COUNT: INT:=2;
|
|
66
|
-
RECIPE_COUNT_MAX: 20,
|
|
67
|
-
HIDE_LEFT_TWO_COLUMNS: true, //if true, the robot will pick/load the last two columns of the raw/done shelves
|
|
68
|
-
HIDE_RIGHT_COLUMN: true,
|
|
69
|
-
HIDE_LEFT_ONE_COLUMN: false, //this must be false if hide left two is true
|
|
70
|
-
SHELF_PART_COUNT: 100,
|
|
71
|
-
NUM_OF_COLS: 20, //total columns on shelf
|
|
72
|
-
PARTS_IN_COL: 5, //total parts in a column
|
|
73
|
-
//DIAGONAL_PATTERN: BOOL:=TRUE;//is shelf picking/loading is diagonal pattern, otherwise its column picking/loading
|
|
74
|
-
//WASHER_PART_COUNT: INT:=2;
|
|
75
|
-
MACHINE_FAULTCODEARRAY_LEN: 50,
|
|
76
|
-
MAX_NUM_INPUTS: 50,
|
|
77
|
-
NUM_PARTS_XFER: 10,
|
|
78
|
-
NUM_PARTS_IB: 51,
|
|
79
|
-
NUM_LOG_ENTRIES: 25,
|
|
80
|
-
TASK_LIST_LEN: 50,
|
|
81
|
-
TASK_STORE_LEN: 125, //length of the array of stored (configured) tasks, the range of index 100 and greater are reserved for waypoints
|
|
82
|
-
TASK_LOG_LEN: 25,
|
|
83
|
-
STATION_COUNT: 6, //total number of designated areas that can hold parts: robot, raw shelf, preop, cnc, postop and done shelf
|
|
84
|
-
TOP_PRIORITY_COUNT: 7, //total number of top priorities in the Priorities ENUM
|
|
85
|
-
//DEBUG_LOG_LEN:INT:=10;
|
|
86
|
-
DEFAULT_TASK_DURATION_SEC: 5,
|
|
87
|
-
PARTDATA_COUNT: 25, //total count of parts contained in PartData struct
|
|
88
|
-
USERFRAME_COUNT: 10,
|
|
89
|
-
//DEVICE_CHILDREN_ARRAY_LEN:INT:=10;
|
|
90
|
-
SYSTIME_TO_UTC_SCALAR: 10E6, //ULINT := LREAL_TO_ULINT(10E6);
|
|
91
|
-
NUM_PARTS_PER_FIXTURE: 8,
|
|
92
|
-
//TASKQUEUE_LEN:INT:=100;
|
|
93
|
-
// HW SIDE
|
|
94
|
-
MAX_NUM_HW_CARDS: 16,
|
|
95
|
-
NUM_ENTRIES_MACHINE_LOG: 100,
|
|
96
|
-
MAX_NUM_RECIPES: 20,
|
|
97
|
-
MAX_NUM_CAMERAS: 3,
|
|
98
|
-
MAX_APPLICATOR_SETPOINTS: 10,
|
|
1
|
+
export interface GlobalConstants {
|
|
2
|
+
HIDE_LEFT_TWO_COLUMNS: boolean;
|
|
3
|
+
HIDE_RIGHT_COLUMN: boolean;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// {attribute 'qualified_only'}
|
|
7
|
+
// VAR_GLOBAL CONSTANT
|
|
8
|
+
// NUM_AXES:INT:=20;
|
|
9
|
+
// MAX_NUM_NAUTILUS_AXES:INT:=20;
|
|
10
|
+
// NUM_DEVICES:INT:=50; //get this from DeviceIds
|
|
11
|
+
// //STEP_TIMEOUT: TIME := T#5000MS;
|
|
12
|
+
// //TIMEOUT_ERROR_CODE_SHIFT: INT:= 10000;
|
|
13
|
+
// //DEVICE_FAULTCODEARRAY_LEN:INT:=3;
|
|
14
|
+
|
|
15
|
+
// MOMENTARY_PB: TIME:= T#250MS;
|
|
16
|
+
// ROBOT_PART_COUNT: INT:=2;
|
|
17
|
+
// //CNC_PART_COUNT: INT:=2;
|
|
18
|
+
// RECIPE_COUNT_MAX:INT :=20;
|
|
19
|
+
// HIDE_LEFT_TWO_COLUMNS:BOOL:=TRUE;//if true, the robot will pick/load the last two columns of the raw/done shelves
|
|
20
|
+
// HIDE_RIGHT_COLUMN:BOOL:=TRUE;
|
|
21
|
+
// HIDE_LEFT_ONE_COLUMN:BOOL:=FALSE;//this must be false if hide left two is true
|
|
22
|
+
// SHELF_PART_COUNT: INT:=100;
|
|
23
|
+
// NUM_OF_COLS:INT:=20; //total columns on shelf
|
|
24
|
+
// PARTS_IN_COL:INT:=5; //total parts in a column
|
|
25
|
+
// //DIAGONAL_PATTERN: BOOL:=TRUE;//is shelf picking/loading is diagonal pattern, otherwise its column picking/loading
|
|
26
|
+
// //WASHER_PART_COUNT: INT:=2;
|
|
27
|
+
// MACHINE_FAULTCODEARRAY_LEN: INT:=50;
|
|
28
|
+
// MAX_NUM_INPUTS: INT :=50;
|
|
29
|
+
|
|
30
|
+
// NUM_PARTS_XFER:INT:=10;
|
|
31
|
+
// NUM_PARTS_IB:INT:=51;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
// NUM_LOG_ENTRIES:INT:=25;
|
|
35
|
+
// TASK_LIST_LEN:INT:=25;
|
|
36
|
+
// TASK_STORE_LEN:INT:=100 + TASK_LIST_LEN; //length of the array of stored (configured) tasks, the range of index 100 and greater are reserved for waypoints
|
|
37
|
+
// TASK_LOG_LEN:INT:=25;
|
|
38
|
+
// STATION_COUNT:INT:=6; //total number of designated areas that can hold parts: robot, raw shelf, preop, cnc, postop and done shelf
|
|
39
|
+
// TOP_PRIORITY_COUNT:INT:=7; //total number of top priorities in the Priorities ENUM
|
|
40
|
+
|
|
41
|
+
// //DEBUG_LOG_LEN:INT:=10;
|
|
42
|
+
// DEFAULT_TASK_DURATION_SEC:INT:=5;
|
|
43
|
+
// PARTDATA_COUNT:INT:= 25;//total count of parts contained in PartData struct
|
|
44
|
+
|
|
45
|
+
// USERFRAME_COUNT:INT:=10;
|
|
46
|
+
// //DEVICE_CHILDREN_ARRAY_LEN:INT:=10;
|
|
47
|
+
// SYSTIME_TO_UTC_SCALAR:ULINT := LREAL_TO_ULINT(10E6);
|
|
48
|
+
// NUM_PARTS_PER_FIXTURE:INT:=8;
|
|
49
|
+
// //TASKQUEUE_LEN:INT:=100;
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
// // HW SIDE
|
|
53
|
+
// MAX_NUM_HW_CARDS:INT:=16;
|
|
54
|
+
// END_VAR
|
|
55
|
+
|
|
56
|
+
export const GCs = {
|
|
57
|
+
|
|
58
|
+
NUM_AXES: 20,
|
|
59
|
+
MAX_NUM_NAUTILUS_AXES: 20,
|
|
60
|
+
NUM_DEVICES: 50, //get this from DeviceIds
|
|
61
|
+
//STEP_TIMEOUT: TIME := T#5000MS;
|
|
62
|
+
//TIMEOUT_ERROR_CODE_SHIFT: INT:= 10000;
|
|
63
|
+
MOMENTARY_PB: 250, // TIME:= T#250MS;
|
|
64
|
+
ROBOT_PART_COUNT: 2,
|
|
65
|
+
//CNC_PART_COUNT: INT:=2;
|
|
66
|
+
RECIPE_COUNT_MAX: 20,
|
|
67
|
+
HIDE_LEFT_TWO_COLUMNS: true, //if true, the robot will pick/load the last two columns of the raw/done shelves
|
|
68
|
+
HIDE_RIGHT_COLUMN: true,
|
|
69
|
+
HIDE_LEFT_ONE_COLUMN: false, //this must be false if hide left two is true
|
|
70
|
+
SHELF_PART_COUNT: 100,
|
|
71
|
+
NUM_OF_COLS: 20, //total columns on shelf
|
|
72
|
+
PARTS_IN_COL: 5, //total parts in a column
|
|
73
|
+
//DIAGONAL_PATTERN: BOOL:=TRUE;//is shelf picking/loading is diagonal pattern, otherwise its column picking/loading
|
|
74
|
+
//WASHER_PART_COUNT: INT:=2;
|
|
75
|
+
MACHINE_FAULTCODEARRAY_LEN: 50,
|
|
76
|
+
MAX_NUM_INPUTS: 50,
|
|
77
|
+
NUM_PARTS_XFER: 10,
|
|
78
|
+
NUM_PARTS_IB: 51,
|
|
79
|
+
NUM_LOG_ENTRIES: 25,
|
|
80
|
+
TASK_LIST_LEN: 50,
|
|
81
|
+
TASK_STORE_LEN: 125, //length of the array of stored (configured) tasks, the range of index 100 and greater are reserved for waypoints
|
|
82
|
+
TASK_LOG_LEN: 25,
|
|
83
|
+
STATION_COUNT: 6, //total number of designated areas that can hold parts: robot, raw shelf, preop, cnc, postop and done shelf
|
|
84
|
+
TOP_PRIORITY_COUNT: 7, //total number of top priorities in the Priorities ENUM
|
|
85
|
+
//DEBUG_LOG_LEN:INT:=10;
|
|
86
|
+
DEFAULT_TASK_DURATION_SEC: 5,
|
|
87
|
+
PARTDATA_COUNT: 25, //total count of parts contained in PartData struct
|
|
88
|
+
USERFRAME_COUNT: 10,
|
|
89
|
+
//DEVICE_CHILDREN_ARRAY_LEN:INT:=10;
|
|
90
|
+
SYSTIME_TO_UTC_SCALAR: 10E6, //ULINT := LREAL_TO_ULINT(10E6);
|
|
91
|
+
NUM_PARTS_PER_FIXTURE: 8,
|
|
92
|
+
//TASKQUEUE_LEN:INT:=100;
|
|
93
|
+
// HW SIDE
|
|
94
|
+
MAX_NUM_HW_CARDS: 16,
|
|
95
|
+
NUM_ENTRIES_MACHINE_LOG: 100,
|
|
96
|
+
MAX_NUM_RECIPES: 20,
|
|
97
|
+
MAX_NUM_CAMERAS: 3,
|
|
98
|
+
MAX_APPLICATOR_SETPOINTS: 10,
|
|
99
99
|
};
|