@kuriousdesign/machine-sdk 1.0.38 → 1.0.40
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/dist/custom-types/AppState.d.ts +2 -1
- package/dist/custom-types/BaseDevice/Device.d.ts +4 -0
- package/dist/custom-types/Devices/DeviceTypes.d.ts +6 -4
- package/dist/custom-types/Devices/DeviceTypes.js +26 -4
- package/dist/custom-types/Devices/Robot.d.ts +52 -0
- package/dist/custom-types/Devices/Robot.js +138 -0
- package/dist/custom-types/GlobalConstants.d.ts +1 -0
- package/dist/custom-types/GlobalConstants.js +1 -0
- package/dist/custom-types/Machine.d.ts +8 -1
- package/dist/custom-types/Machine.js +7 -1
- package/dist/custom-types/RackData.d.ts +1 -1
- package/dist/custom-types/RobData.d.ts +0 -24
- package/dist/custom-types/RobData.js +0 -1
- package/dist/custom-types/index.d.ts +0 -1
- package/dist/custom-types/index.js +0 -1
- package/dist/enums/index.d.ts +0 -1
- package/dist/enums/index.js +0 -1
- package/dist/plc-tags/index.d.ts +2 -0
- package/dist/plc-tags/index.js +4 -1
- package/package.json +1 -1
- package/src/custom-types/AppState.ts +1 -2
- package/src/custom-types/BaseDevice/Device.ts +19 -6
- package/src/custom-types/Devices/DeviceTypes.ts +31 -5
- package/src/custom-types/Devices/Robot.ts +165 -0
- package/src/custom-types/GlobalConstants.ts +1 -0
- package/src/custom-types/Machine.ts +22 -1
- package/src/custom-types/RackData.ts +2 -1
- package/src/custom-types/RobData.ts +0 -27
- package/src/custom-types/index.ts +1 -2
- package/src/enums/index.ts +0 -1
- package/src/plc-tags/index.ts +4 -0
- package/src/enums/RobPositions.ts +0 -12
|
@@ -3,7 +3,8 @@ import { ButtonBar, StatusBar } from "./HMI";
|
|
|
3
3
|
import { PartDataDeprecated } from "./Part";
|
|
4
4
|
import { Device } from "./BaseDevice/Device";
|
|
5
5
|
import { GlobalConstants } from "./GlobalConstants";
|
|
6
|
-
import { RackData, RackHmiPbs, RecipeData, RecipeManagerPbs, SystemFaultData, TaskQueue, UserData, UserManagerFB
|
|
6
|
+
import { RackData, RackHmiPbs, RecipeData, RecipeManagerPbs, SystemFaultData, TaskQueue, UserData, UserManagerFB } from ".";
|
|
7
|
+
import { RobData } from "./Devices/Robot";
|
|
7
8
|
export declare enum NodeId {
|
|
8
9
|
ButtonBar = "Main.HMI.ButtonBar",
|
|
9
10
|
StatusBar = "Main.HMI.StatusBar",
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export declare enum DeviceTypes {
|
|
2
2
|
Base = 0,
|
|
3
3
|
Axis = 1,
|
|
4
|
-
BoschAxis = 2
|
|
4
|
+
BoschAxis = 2,
|
|
5
5
|
DualAxis = 3,
|
|
6
6
|
Gantry = 4,
|
|
7
|
-
Bridge =
|
|
8
|
-
Machine =
|
|
9
|
-
Robot =
|
|
7
|
+
Bridge = 6,
|
|
8
|
+
Machine = 7,
|
|
9
|
+
Robot = 8,
|
|
10
|
+
Vision = 10,
|
|
11
|
+
TwoPos = 11
|
|
10
12
|
}
|
|
11
13
|
export declare function deviceTypeToString(deviceType: DeviceTypes): string;
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// {attribute 'qualified_only'}
|
|
3
|
+
// {attribute 'strict'}
|
|
4
|
+
// TYPE DeviceTypes :
|
|
5
|
+
// (
|
|
6
|
+
// Base := 0,
|
|
7
|
+
// Axis := 1,
|
|
8
|
+
// BoschAxis:=2,
|
|
9
|
+
// DualAxis:=3,
|
|
10
|
+
// Gantry:=4,
|
|
11
|
+
// System:=5,
|
|
12
|
+
// Bridge:=6,
|
|
13
|
+
// Conductor:=7,
|
|
14
|
+
// Rob:=8,
|
|
15
|
+
// Eoat:=9,
|
|
16
|
+
// Vision:=10
|
|
17
|
+
// );
|
|
18
|
+
// END_TYPE
|
|
2
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
20
|
exports.DeviceTypes = void 0;
|
|
4
21
|
exports.deviceTypeToString = deviceTypeToString;
|
|
@@ -9,11 +26,12 @@ var DeviceTypes;
|
|
|
9
26
|
DeviceTypes[DeviceTypes["BoschAxis"] = 2] = "BoschAxis";
|
|
10
27
|
DeviceTypes[DeviceTypes["DualAxis"] = 3] = "DualAxis";
|
|
11
28
|
DeviceTypes[DeviceTypes["Gantry"] = 4] = "Gantry";
|
|
12
|
-
DeviceTypes[DeviceTypes["Bridge"] =
|
|
13
|
-
DeviceTypes[DeviceTypes["Machine"] =
|
|
14
|
-
DeviceTypes[DeviceTypes["Robot"] =
|
|
29
|
+
DeviceTypes[DeviceTypes["Bridge"] = 6] = "Bridge";
|
|
30
|
+
DeviceTypes[DeviceTypes["Machine"] = 7] = "Machine";
|
|
31
|
+
DeviceTypes[DeviceTypes["Robot"] = 8] = "Robot";
|
|
32
|
+
DeviceTypes[DeviceTypes["Vision"] = 10] = "Vision";
|
|
33
|
+
DeviceTypes[DeviceTypes["TwoPos"] = 11] = "TwoPos";
|
|
15
34
|
})(DeviceTypes || (exports.DeviceTypes = DeviceTypes = {}));
|
|
16
|
-
;
|
|
17
35
|
function deviceTypeToString(deviceType) {
|
|
18
36
|
switch (deviceType) {
|
|
19
37
|
case DeviceTypes.Base:
|
|
@@ -32,6 +50,10 @@ function deviceTypeToString(deviceType) {
|
|
|
32
50
|
return 'Machine';
|
|
33
51
|
case DeviceTypes.Robot:
|
|
34
52
|
return 'Robot';
|
|
53
|
+
case DeviceTypes.Vision:
|
|
54
|
+
return 'Vision';
|
|
55
|
+
case DeviceTypes.TwoPos:
|
|
56
|
+
return 'Two Position';
|
|
35
57
|
default:
|
|
36
58
|
return 'Unknown';
|
|
37
59
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export declare enum RobWaypoints {
|
|
2
|
+
NONE = 0,
|
|
3
|
+
HOME = 1,
|
|
4
|
+
FIXTURE_LEFT_PERCH = 2,
|
|
5
|
+
FIXTURE_RIGHT_PERCH = 3,
|
|
6
|
+
TOOL_PERCH = 4
|
|
7
|
+
}
|
|
8
|
+
export declare function robotWaypointToString(waypoint: RobWaypoints): string;
|
|
9
|
+
export declare enum RobTools {
|
|
10
|
+
NONE = 0,
|
|
11
|
+
WEIGHING_GRIPPER = 1,
|
|
12
|
+
APPLICATOR = 2,
|
|
13
|
+
CAMERA = 3
|
|
14
|
+
}
|
|
15
|
+
export declare function robotToolToString(tool: RobTools): string;
|
|
16
|
+
export declare const RobTasks: {
|
|
17
|
+
NONE: number;
|
|
18
|
+
RETRIEVE_TOOL: number;
|
|
19
|
+
RETURN_TOOL: number;
|
|
20
|
+
GO_TO_WAYPOINT: number;
|
|
21
|
+
GRIP_PART: number;
|
|
22
|
+
SAMPLE_WEIGHT: number;
|
|
23
|
+
REPOSITION_AND_RELEASE_PART: number;
|
|
24
|
+
REMOVE_FALSE_BOTTOMS: number;
|
|
25
|
+
HOME_SQUEEGEE_MOTOR: number;
|
|
26
|
+
WIPE_APPLICATOR: number;
|
|
27
|
+
PERFORM_APPLICATION_TASK: number;
|
|
28
|
+
INSERT_FALSE_BOTTOMS: number;
|
|
29
|
+
TAKE_IMAGES: number;
|
|
30
|
+
};
|
|
31
|
+
export declare function robotTaskToString(task: number): string;
|
|
32
|
+
export interface RobData {
|
|
33
|
+
zone: RobZoneData;
|
|
34
|
+
pos: RobWaypoints;
|
|
35
|
+
dest: RobWaypoints;
|
|
36
|
+
cartesian: RobPositionData;
|
|
37
|
+
recipeOffsets: RobPositionData[];
|
|
38
|
+
}
|
|
39
|
+
export interface RobPositionData {
|
|
40
|
+
x: number;
|
|
41
|
+
y: number;
|
|
42
|
+
z: number;
|
|
43
|
+
wdeg: number;
|
|
44
|
+
pdeg: number;
|
|
45
|
+
rdeg: number;
|
|
46
|
+
}
|
|
47
|
+
export interface RobZoneData {
|
|
48
|
+
cncHorzShuttle: boolean;
|
|
49
|
+
waypointShuttle: boolean;
|
|
50
|
+
dcsNoGo: boolean;
|
|
51
|
+
outsideOfCnc: boolean;
|
|
52
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// {attribute 'qualified_only'}
|
|
3
|
+
// {attribute 'strict'}
|
|
4
|
+
// TYPE RobWaypoints :
|
|
5
|
+
// (
|
|
6
|
+
// NONE := 0, //do not remove or change this
|
|
7
|
+
// HOME := 1, //identifier for the robot's home position
|
|
8
|
+
// FIXTURE_LEFT_PERCH := 2, //identifier for the fixture perch position
|
|
9
|
+
// FIXTURE_RIGHT_PERCH := 3, //identifier for the fixture perch position
|
|
10
|
+
// TOOL_PERCH :=4
|
|
11
|
+
// );
|
|
12
|
+
// END_TYPE
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.RobTasks = exports.RobTools = exports.RobWaypoints = void 0;
|
|
15
|
+
exports.robotWaypointToString = robotWaypointToString;
|
|
16
|
+
exports.robotToolToString = robotToolToString;
|
|
17
|
+
exports.robotTaskToString = robotTaskToString;
|
|
18
|
+
var RobWaypoints;
|
|
19
|
+
(function (RobWaypoints) {
|
|
20
|
+
RobWaypoints[RobWaypoints["NONE"] = 0] = "NONE";
|
|
21
|
+
RobWaypoints[RobWaypoints["HOME"] = 1] = "HOME";
|
|
22
|
+
RobWaypoints[RobWaypoints["FIXTURE_LEFT_PERCH"] = 2] = "FIXTURE_LEFT_PERCH";
|
|
23
|
+
RobWaypoints[RobWaypoints["FIXTURE_RIGHT_PERCH"] = 3] = "FIXTURE_RIGHT_PERCH";
|
|
24
|
+
RobWaypoints[RobWaypoints["TOOL_PERCH"] = 4] = "TOOL_PERCH";
|
|
25
|
+
})(RobWaypoints || (exports.RobWaypoints = RobWaypoints = {}));
|
|
26
|
+
function robotWaypointToString(waypoint) {
|
|
27
|
+
switch (waypoint) {
|
|
28
|
+
case RobWaypoints.NONE:
|
|
29
|
+
return 'None';
|
|
30
|
+
case RobWaypoints.HOME:
|
|
31
|
+
return 'Home';
|
|
32
|
+
case RobWaypoints.FIXTURE_LEFT_PERCH:
|
|
33
|
+
return 'Fixture Left Perch';
|
|
34
|
+
case RobWaypoints.FIXTURE_RIGHT_PERCH:
|
|
35
|
+
return 'Fixture Right Perch';
|
|
36
|
+
case RobWaypoints.TOOL_PERCH:
|
|
37
|
+
return 'Tool Perch';
|
|
38
|
+
default:
|
|
39
|
+
return 'Unknown';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// {attribute 'qualified_only'}
|
|
43
|
+
// {attribute 'strict'}
|
|
44
|
+
// TYPE RobTools :
|
|
45
|
+
// (
|
|
46
|
+
// NONE := 0, //do not remove or change this
|
|
47
|
+
// WEIGHING_GRIPPER := 1, //identifier for the weighing gripper tool
|
|
48
|
+
// APPLICATOR := 2, //identifier for the applicator tool
|
|
49
|
+
// CAMERA := 3 //identifier for the camera tool
|
|
50
|
+
// );
|
|
51
|
+
// END_TYPE
|
|
52
|
+
var RobTools;
|
|
53
|
+
(function (RobTools) {
|
|
54
|
+
RobTools[RobTools["NONE"] = 0] = "NONE";
|
|
55
|
+
RobTools[RobTools["WEIGHING_GRIPPER"] = 1] = "WEIGHING_GRIPPER";
|
|
56
|
+
RobTools[RobTools["APPLICATOR"] = 2] = "APPLICATOR";
|
|
57
|
+
RobTools[RobTools["CAMERA"] = 3] = "CAMERA";
|
|
58
|
+
})(RobTools || (exports.RobTools = RobTools = {}));
|
|
59
|
+
function robotToolToString(tool) {
|
|
60
|
+
switch (tool) {
|
|
61
|
+
case RobTools.NONE:
|
|
62
|
+
return 'None';
|
|
63
|
+
case RobTools.WEIGHING_GRIPPER:
|
|
64
|
+
return 'Weighing Gripper';
|
|
65
|
+
case RobTools.APPLICATOR:
|
|
66
|
+
return 'Applicator';
|
|
67
|
+
case RobTools.CAMERA:
|
|
68
|
+
return 'Camera';
|
|
69
|
+
default:
|
|
70
|
+
return 'Unknown';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// {attribute 'qualified_only'}
|
|
74
|
+
// {attribute 'strict'}
|
|
75
|
+
// TYPE RobTasks :
|
|
76
|
+
// (
|
|
77
|
+
// NONE := 0, //do not remove or change this
|
|
78
|
+
// 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
|
|
79
|
+
// RETURN_TOOL := 2, //param0: toolId (identifier from Tools enum specifying which tool to return to the tool rack)
|
|
80
|
+
// 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
|
|
81
|
+
// 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
|
|
82
|
+
// 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
|
|
83
|
+
// 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
|
|
84
|
+
// REMOVE_FALSE_BOTTOMS := 7, //no params: removes false bottoms from the fixture(s)
|
|
85
|
+
// HOME_SQUEEGEE_MOTOR := 8, //no params: homes the squeegee motor while moving to fixture perch position
|
|
86
|
+
// WIPE_APPLICATOR := 9, //no params: cleans the applicator (detailed cleaning procedure TBD)
|
|
87
|
+
// PERFORM_APPLICATION_TASK := 10, //param0: tubeId (identifier of the tube to process, e.g., tube 1), applies the task to the specified tube
|
|
88
|
+
// INSERT_FALSE_BOTTOMS := 11, //no params: slides false bottoms back into place in the fixture(s)
|
|
89
|
+
// 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)
|
|
90
|
+
// );
|
|
91
|
+
// END_TYPE
|
|
92
|
+
exports.RobTasks = {
|
|
93
|
+
NONE: 0,
|
|
94
|
+
RETRIEVE_TOOL: 1,
|
|
95
|
+
RETURN_TOOL: 2,
|
|
96
|
+
GO_TO_WAYPOINT: 3,
|
|
97
|
+
GRIP_PART: 4,
|
|
98
|
+
SAMPLE_WEIGHT: 5,
|
|
99
|
+
REPOSITION_AND_RELEASE_PART: 6,
|
|
100
|
+
REMOVE_FALSE_BOTTOMS: 7,
|
|
101
|
+
HOME_SQUEEGEE_MOTOR: 8,
|
|
102
|
+
WIPE_APPLICATOR: 9,
|
|
103
|
+
PERFORM_APPLICATION_TASK: 10,
|
|
104
|
+
INSERT_FALSE_BOTTOMS: 11,
|
|
105
|
+
TAKE_IMAGES: 12
|
|
106
|
+
};
|
|
107
|
+
function robotTaskToString(task) {
|
|
108
|
+
switch (task) {
|
|
109
|
+
case exports.RobTasks.NONE:
|
|
110
|
+
return 'None';
|
|
111
|
+
case exports.RobTasks.RETRIEVE_TOOL:
|
|
112
|
+
return 'Retrieve Tool';
|
|
113
|
+
case exports.RobTasks.RETURN_TOOL:
|
|
114
|
+
return 'Return Tool';
|
|
115
|
+
case exports.RobTasks.GO_TO_WAYPOINT:
|
|
116
|
+
return 'Go To Waypoint';
|
|
117
|
+
case exports.RobTasks.GRIP_PART:
|
|
118
|
+
return 'Grip Part';
|
|
119
|
+
case exports.RobTasks.SAMPLE_WEIGHT:
|
|
120
|
+
return 'Sample Weight';
|
|
121
|
+
case exports.RobTasks.REPOSITION_AND_RELEASE_PART:
|
|
122
|
+
return 'Reposition And Release Part';
|
|
123
|
+
case exports.RobTasks.REMOVE_FALSE_BOTTOMS:
|
|
124
|
+
return 'Remove False Bottoms';
|
|
125
|
+
case exports.RobTasks.HOME_SQUEEGEE_MOTOR:
|
|
126
|
+
return 'Home Squeegee Motor';
|
|
127
|
+
case exports.RobTasks.WIPE_APPLICATOR:
|
|
128
|
+
return 'Wipe Applicator';
|
|
129
|
+
case exports.RobTasks.PERFORM_APPLICATION_TASK:
|
|
130
|
+
return 'Perform Application Task';
|
|
131
|
+
case exports.RobTasks.INSERT_FALSE_BOTTOMS:
|
|
132
|
+
return 'Insert False Bottoms';
|
|
133
|
+
case exports.RobTasks.TAKE_IMAGES:
|
|
134
|
+
return 'Take Images';
|
|
135
|
+
default:
|
|
136
|
+
return 'Unknown';
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentAnimation, DeviceRegistration, TaskQueue } from ".";
|
|
1
|
+
import { ComponentAnimation, DebugLogData, DeviceLogData, DeviceRegistration, TaskQueue } from ".";
|
|
2
2
|
import { PartDataStatus } from "./Part";
|
|
3
3
|
export interface UserData {
|
|
4
4
|
activeUser: number;
|
|
@@ -42,5 +42,12 @@ export interface Machine {
|
|
|
42
42
|
registeredDevices: DeviceRegistration[];
|
|
43
43
|
heartbeatPlc: number;
|
|
44
44
|
heartbeatHmi: number;
|
|
45
|
+
machineLog: LogRecordData;
|
|
46
|
+
deviceLogs: DeviceLogData[];
|
|
45
47
|
}
|
|
48
|
+
export interface LogRecordData {
|
|
49
|
+
list: DebugLogData[];
|
|
50
|
+
lastIndex: number;
|
|
51
|
+
}
|
|
52
|
+
export declare const initialLogRecordData: LogRecordData;
|
|
46
53
|
export declare const initialMachine: Machine;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initialMachine = exports.initialMachineCfg = exports.initialSystemFaultData = exports.initialFaultCodeData = void 0;
|
|
3
|
+
exports.initialMachine = exports.initialLogRecordData = exports.initialMachineCfg = exports.initialSystemFaultData = exports.initialFaultCodeData = void 0;
|
|
4
4
|
const _1 = require(".");
|
|
5
5
|
const Part_1 = require("./Part");
|
|
6
6
|
exports.initialFaultCodeData = {
|
|
@@ -20,6 +20,10 @@ exports.initialMachineCfg = {
|
|
|
20
20
|
apiOpcuaDeviceId: -1,
|
|
21
21
|
ethernetAdapterList: [],
|
|
22
22
|
};
|
|
23
|
+
exports.initialLogRecordData = {
|
|
24
|
+
list: Array(_1.GCs.NUM_ENTRIES_MACHINE_LOG).fill(null).map(() => ({ ..._1.initialDebugLogData })),
|
|
25
|
+
lastIndex: 0,
|
|
26
|
+
};
|
|
23
27
|
exports.initialMachine = ({
|
|
24
28
|
estopCircuit_OK: false,
|
|
25
29
|
estopCircuitDelayed_OK: false,
|
|
@@ -37,4 +41,6 @@ exports.initialMachine = ({
|
|
|
37
41
|
registeredDevices: [],
|
|
38
42
|
heartbeatPlc: 0,
|
|
39
43
|
heartbeatHmi: 0,
|
|
44
|
+
machineLog: { ...exports.initialLogRecordData },
|
|
45
|
+
deviceLogs: Array(_1.GCs.NUM_DEVICES).fill(null).map(() => ({ ..._1.initialDeviceLogData })),
|
|
40
46
|
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { TaskData, RobPositions, TaskId } from "..";
|
|
2
|
-
export interface RobData {
|
|
3
|
-
zone: RobZoneData;
|
|
4
|
-
pos: RobPositions;
|
|
5
|
-
dest: RobPositions;
|
|
6
|
-
cartesian: RobPositionData;
|
|
7
|
-
taskReq: TaskId;
|
|
8
|
-
taskData: TaskData;
|
|
9
|
-
recipeOffsets: RobPositionData[];
|
|
10
|
-
}
|
|
11
|
-
export interface RobPositionData {
|
|
12
|
-
x: number;
|
|
13
|
-
y: number;
|
|
14
|
-
z: number;
|
|
15
|
-
wdeg: number;
|
|
16
|
-
pdeg: number;
|
|
17
|
-
rdeg: number;
|
|
18
|
-
}
|
|
19
|
-
export interface RobZoneData {
|
|
20
|
-
cncHorzShuttle: boolean;
|
|
21
|
-
waypointShuttle: boolean;
|
|
22
|
-
dcsNoGo: boolean;
|
|
23
|
-
outsideOfCnc: boolean;
|
|
24
|
-
}
|
|
@@ -25,7 +25,6 @@ __exportStar(require("./RecipeData"), exports);
|
|
|
25
25
|
__exportStar(require("./RecipeManagerFB"), exports);
|
|
26
26
|
__exportStar(require("./UserManagerFB"), exports);
|
|
27
27
|
__exportStar(require("./TaskQueue"), exports);
|
|
28
|
-
__exportStar(require("./RobData"), exports);
|
|
29
28
|
__exportStar(require("./Devices"), exports);
|
|
30
29
|
__exportStar(require("./Bridge"), exports);
|
|
31
30
|
__exportStar(require("./Part"), exports);
|
package/dist/enums/index.d.ts
CHANGED
package/dist/enums/index.js
CHANGED
package/dist/plc-tags/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const MachineTags: {
|
|
|
11
11
|
HeartbeatHMI: string;
|
|
12
12
|
parts: string;
|
|
13
13
|
taskQueue: string;
|
|
14
|
+
machineLog: string;
|
|
14
15
|
};
|
|
15
16
|
export declare const DeviceTags: {
|
|
16
17
|
Cfg: string;
|
|
@@ -26,5 +27,6 @@ export declare const DeviceTags: {
|
|
|
26
27
|
ApiOpcuaHmiReq: string;
|
|
27
28
|
ApiOpcuaHmiResp: string;
|
|
28
29
|
};
|
|
30
|
+
export declare const DeviceLogTags = "Machine.DeviceLogs";
|
|
29
31
|
export * from "./opcua";
|
|
30
32
|
export * from "./mqtt";
|
package/dist/plc-tags/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.DeviceTags = exports.MachineTags = exports.PlcNamespaces = void 0;
|
|
17
|
+
exports.DeviceLogTags = exports.DeviceTags = exports.MachineTags = exports.PlcNamespaces = void 0;
|
|
18
18
|
exports.PlcNamespaces = {
|
|
19
19
|
Machine: 'Machine',
|
|
20
20
|
MachineHw: 'MachineHw',
|
|
@@ -29,6 +29,8 @@ exports.MachineTags = {
|
|
|
29
29
|
HeartbeatHMI: 'HeartbeatHMI',
|
|
30
30
|
parts: 'Parts',
|
|
31
31
|
taskQueue: 'TaskQueue',
|
|
32
|
+
//deviceLogs: 'DeviceLogs',
|
|
33
|
+
machineLog: 'MachineLog',
|
|
32
34
|
};
|
|
33
35
|
exports.DeviceTags = {
|
|
34
36
|
Cfg: 'Cfg',
|
|
@@ -45,5 +47,6 @@ exports.DeviceTags = {
|
|
|
45
47
|
ApiOpcuaHmiReq: 'ApiOpcua/HmiReq',
|
|
46
48
|
ApiOpcuaHmiResp: 'ApiOpcua/HmiResp',
|
|
47
49
|
};
|
|
50
|
+
exports.DeviceLogTags = 'Machine.DeviceLogs';
|
|
48
51
|
__exportStar(require("./opcua"), exports);
|
|
49
52
|
__exportStar(require("./mqtt"), exports);
|
package/package.json
CHANGED
|
@@ -8,13 +8,12 @@ import {
|
|
|
8
8
|
RackHmiPbs,
|
|
9
9
|
RecipeData,
|
|
10
10
|
RecipeManagerPbs,
|
|
11
|
-
RobPositionData,
|
|
12
11
|
SystemFaultData,
|
|
13
12
|
TaskQueue,
|
|
14
13
|
UserData,
|
|
15
14
|
UserManagerFB,
|
|
16
|
-
RobData,
|
|
17
15
|
} from ".";
|
|
16
|
+
import { RobData } from "./Devices/Robot";
|
|
18
17
|
|
|
19
18
|
export enum NodeId {
|
|
20
19
|
// new node ids
|
|
@@ -102,10 +102,10 @@ export interface DeviceStatus {
|
|
|
102
102
|
state: number; // enum for States enum, same as the boolean states in the data structure
|
|
103
103
|
stepNum: number;
|
|
104
104
|
stepDescription: string;
|
|
105
|
-
|
|
105
|
+
|
|
106
106
|
colorCode: number; // color to indicate the current status for HMI purposes
|
|
107
107
|
statusMsg: string; // status string
|
|
108
|
-
|
|
108
|
+
|
|
109
109
|
error: boolean; // state, device or child has an error
|
|
110
110
|
killed: boolean; // device is de-energized
|
|
111
111
|
inactive: boolean; // waiting to be reset
|
|
@@ -124,15 +124,15 @@ export interface DeviceStatus {
|
|
|
124
124
|
ipr: boolean; // IdleOrPausedOrRunning
|
|
125
125
|
kei: boolean; // KilledErrorOrInactive
|
|
126
126
|
runningOrStopping: boolean;
|
|
127
|
-
|
|
127
|
+
|
|
128
128
|
// Children Status
|
|
129
129
|
allChildrenIdle: boolean;
|
|
130
130
|
allChildrenKilled: boolean;
|
|
131
131
|
allChildrenInactive: boolean;
|
|
132
132
|
allChildrenIdleOrError: boolean;
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
commanderId: number; // used for external control
|
|
135
|
-
|
|
135
|
+
|
|
136
136
|
recordingLogs: boolean;
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -202,4 +202,17 @@ export const initialDevice: Device = {
|
|
|
202
202
|
process: initialProcessData,
|
|
203
203
|
script: initialProcessData,
|
|
204
204
|
apiOpcua: initialApiOpcuaData
|
|
205
|
-
};
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
// TYPE DeviceLogData :
|
|
209
|
+
// STRUCT
|
|
210
|
+
// List: ARRAY[0..DeviceConstants.NUM_LOG_ENTRIES-1] OF DebugLogData;
|
|
211
|
+
// LastIndex:INT; //index of the most recent recorde entries
|
|
212
|
+
// END_STRUCT
|
|
213
|
+
// END_TYPE
|
|
214
|
+
|
|
215
|
+
export interface DeviceLogData {
|
|
216
|
+
list: DebugLogData[];
|
|
217
|
+
lastIndex: number; // index of the most recent recorded entries
|
|
218
|
+
}
|
|
@@ -1,13 +1,35 @@
|
|
|
1
|
+
// {attribute 'qualified_only'}
|
|
2
|
+
// {attribute 'strict'}
|
|
3
|
+
// TYPE DeviceTypes :
|
|
4
|
+
// (
|
|
5
|
+
// Base := 0,
|
|
6
|
+
// Axis := 1,
|
|
7
|
+
// BoschAxis:=2,
|
|
8
|
+
// DualAxis:=3,
|
|
9
|
+
// Gantry:=4,
|
|
10
|
+
// System:=5,
|
|
11
|
+
// Bridge:=6,
|
|
12
|
+
// Conductor:=7,
|
|
13
|
+
// Rob:=8,
|
|
14
|
+
// Eoat:=9,
|
|
15
|
+
// Vision:=10
|
|
16
|
+
// );
|
|
17
|
+
// END_TYPE
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
1
21
|
export enum DeviceTypes {
|
|
2
22
|
Base = 0,
|
|
3
23
|
Axis = 1,
|
|
4
|
-
BoschAxis = 2,
|
|
24
|
+
BoschAxis = 2,
|
|
5
25
|
DualAxis = 3,
|
|
6
26
|
Gantry = 4,
|
|
7
|
-
Bridge =
|
|
8
|
-
Machine =
|
|
9
|
-
Robot =
|
|
10
|
-
|
|
27
|
+
Bridge = 6,
|
|
28
|
+
Machine = 7,
|
|
29
|
+
Robot = 8,
|
|
30
|
+
Vision = 10,
|
|
31
|
+
TwoPos = 11
|
|
32
|
+
}
|
|
11
33
|
|
|
12
34
|
export function deviceTypeToString(deviceType: DeviceTypes): string {
|
|
13
35
|
switch (deviceType) {
|
|
@@ -27,6 +49,10 @@ export function deviceTypeToString(deviceType: DeviceTypes): string {
|
|
|
27
49
|
return 'Machine';
|
|
28
50
|
case DeviceTypes.Robot:
|
|
29
51
|
return 'Robot';
|
|
52
|
+
case DeviceTypes.Vision:
|
|
53
|
+
return 'Vision';
|
|
54
|
+
case DeviceTypes.TwoPos:
|
|
55
|
+
return 'Two Position';
|
|
30
56
|
default:
|
|
31
57
|
return 'Unknown';
|
|
32
58
|
}
|
|
@@ -0,0 +1,165 @@
|
|
|
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
|
+
export interface RobData {
|
|
142
|
+
zone: RobZoneData;
|
|
143
|
+
pos: RobWaypoints;
|
|
144
|
+
dest: RobWaypoints;
|
|
145
|
+
cartesian: RobPositionData;
|
|
146
|
+
//taskReq: TaskId; //incoming task request
|
|
147
|
+
//taskData: TaskData;
|
|
148
|
+
recipeOffsets: RobPositionData[];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export interface RobPositionData {
|
|
152
|
+
x: number;
|
|
153
|
+
y: number;
|
|
154
|
+
z: number;
|
|
155
|
+
wdeg: number;
|
|
156
|
+
pdeg: number;
|
|
157
|
+
rdeg: number;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export interface RobZoneData {
|
|
161
|
+
cncHorzShuttle: boolean;
|
|
162
|
+
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
|
|
163
|
+
dcsNoGo: boolean;
|
|
164
|
+
outsideOfCnc: boolean;
|
|
165
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentAnimation, DeviceConstants, DeviceRegistration, GCs, initialDeviceRegistration, initialTaskQueue, TaskQueue } from ".";
|
|
1
|
+
import { ComponentAnimation, DebugLogData, DeviceConstants, DeviceLogData, DeviceRegistration, GCs, initialDebugLogData, initialDeviceLogData, initialDeviceRegistration, initialTaskQueue, TaskQueue } from ".";
|
|
2
2
|
import { initialPartDataStatus, PartData, PartDataStatus } from "./Part";
|
|
3
3
|
|
|
4
4
|
|
|
@@ -84,8 +84,27 @@ export interface Machine {
|
|
|
84
84
|
registeredDevices: DeviceRegistration[];
|
|
85
85
|
heartbeatPlc: number;
|
|
86
86
|
heartbeatHmi: number;
|
|
87
|
+
machineLog: LogRecordData;
|
|
88
|
+
deviceLogs: DeviceLogData[]; //ARRAY[0..(GCs.NUM_DEVICES-1)] OF DeviceLogData;
|
|
87
89
|
}
|
|
88
90
|
|
|
91
|
+
// TYPE LogRecordData :
|
|
92
|
+
// STRUCT
|
|
93
|
+
// List: ARRAY[0..DiagConstants.NUM_ENTRIES_RECORDED_LOG-1] OF DebugLogData;
|
|
94
|
+
// LastIndex:USINT; //index of the most recent recorde entries
|
|
95
|
+
// END_STRUCT
|
|
96
|
+
// END_TYPE
|
|
97
|
+
|
|
98
|
+
export interface LogRecordData {
|
|
99
|
+
list: DebugLogData[];
|
|
100
|
+
lastIndex: number; // index of the most recent recorded entries
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const initialLogRecordData: LogRecordData = {
|
|
104
|
+
list: Array(GCs.NUM_ENTRIES_MACHINE_LOG).fill(null).map(() => ({ ...initialDebugLogData })),
|
|
105
|
+
lastIndex: 0,
|
|
106
|
+
};
|
|
107
|
+
|
|
89
108
|
export const initialMachine: Machine = ({
|
|
90
109
|
estopCircuit_OK: false,
|
|
91
110
|
estopCircuitDelayed_OK: false,
|
|
@@ -103,4 +122,6 @@ export const initialMachine: Machine = ({
|
|
|
103
122
|
registeredDevices: [],
|
|
104
123
|
heartbeatPlc: 0,
|
|
105
124
|
heartbeatHmi: 0,
|
|
125
|
+
machineLog: { ...initialLogRecordData },
|
|
126
|
+
deviceLogs: Array(GCs.NUM_DEVICES).fill(null).map(() => ({ ...initialDeviceLogData })),
|
|
106
127
|
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { TaskData, RobPositions, TaskId } from "..";
|
|
2
|
-
|
|
3
|
-
export interface RobData {
|
|
4
|
-
zone: RobZoneData;
|
|
5
|
-
pos: RobPositions;
|
|
6
|
-
dest: RobPositions;
|
|
7
|
-
cartesian: RobPositionData;
|
|
8
|
-
taskReq: TaskId; //incoming task request
|
|
9
|
-
taskData: TaskData;
|
|
10
|
-
recipeOffsets: RobPositionData[];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface RobPositionData {
|
|
14
|
-
x: number;
|
|
15
|
-
y: number;
|
|
16
|
-
z: number;
|
|
17
|
-
wdeg: number;
|
|
18
|
-
pdeg: number;
|
|
19
|
-
rdeg: number;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface RobZoneData {
|
|
23
|
-
cncHorzShuttle: boolean;
|
|
24
|
-
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
|
|
25
|
-
dcsNoGo: boolean;
|
|
26
|
-
outsideOfCnc: boolean;
|
|
27
|
-
}
|
|
@@ -9,7 +9,6 @@ export * from "./RecipeData";
|
|
|
9
9
|
export * from "./RecipeManagerFB";
|
|
10
10
|
export * from "./UserManagerFB";
|
|
11
11
|
export * from "./TaskQueue";
|
|
12
|
-
export * from "./RobData";
|
|
13
12
|
export * from "./Devices";
|
|
14
13
|
export * from "./Bridge";
|
|
15
|
-
export * from "./Part";
|
|
14
|
+
export * from "./Part";
|
package/src/enums/index.ts
CHANGED
package/src/plc-tags/index.ts
CHANGED
|
@@ -13,6 +13,8 @@ export const MachineTags = {
|
|
|
13
13
|
HeartbeatHMI: 'HeartbeatHMI',
|
|
14
14
|
parts: 'Parts',
|
|
15
15
|
taskQueue: 'TaskQueue',
|
|
16
|
+
//deviceLogs: 'DeviceLogs',
|
|
17
|
+
machineLog: 'MachineLog',
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export const DeviceTags = {
|
|
@@ -31,5 +33,7 @@ export const DeviceTags = {
|
|
|
31
33
|
ApiOpcuaHmiResp: 'ApiOpcua/HmiResp',
|
|
32
34
|
}
|
|
33
35
|
|
|
36
|
+
export const DeviceLogTags = 'Machine.DeviceLogs';
|
|
37
|
+
|
|
34
38
|
export * from "./opcua";
|
|
35
39
|
export * from "./mqtt";
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export enum RobPositions {
|
|
2
|
-
AnyPosition = -1, //used when configuring tasks, this is used for start position id for pure moves
|
|
3
|
-
Lost = 0,
|
|
4
|
-
Home = 1,
|
|
5
|
-
WashPerch = 2,
|
|
6
|
-
RackPerch = 3, //used for shelf picking and reject
|
|
7
|
-
DeadNestPerch = 4, //used for preop and postop tasks
|
|
8
|
-
CncPerch = 5, //standby position outside of cnc door with wrist rotated so parts are horizontal
|
|
9
|
-
DeburrPerch = 6,
|
|
10
|
-
CncWaypoint = 7,
|
|
11
|
-
CncHover = 8,
|
|
12
|
-
}
|