2. Opis struktur danych
2.1. Typ danych pozycji stawów
1/**
2* @brief Typ danych pozycji stawów
3*/
4public class JointPos
5{
6 double J1;
7 double J2;
8 double J3;
9 double J4;
10 double J5;
11 double J6;
12
13 public JointPos(double j1, double j2, double j3, double j4, double j5, double j6)
14 {
15 J1 = j1;
16 J2 = j2;
17 J3 = j3;
18 J4 = j4;
19 J5 = j5;
20 J6 = j6;
21 }
22
23 public JointPos()
24 {
25
26 }
27}
2.2. Typ danych pozycji w przestrzeni kartezjańskiej
1/**
2* @brief Typ danych pozycji w przestrzeni kartezjańskiej
3*/
4public class DescTran
5{
6 public double x = 0.0; /* współrzędna osi X, jednostka mm */
7 public double y = 0.0; /* współrzędna osi Y, jednostka mm */
8 public double z = 0.0; /* współrzędna osi Z, jednostka mm */
9 public DescTran(double posX, double posY, double posZ)
10 {
11 x = posX;
12 y = posY;
13 z = posZ;
14 }
15
16 public DescTran()
17 {
18
19 }
20
21}
2.3. Typ danych orientacji kątów Eulera
1/**
2* @brief Typ danych orientacji kątów Eulera
3*/
4public class Rpy
5{
6 public double rx = 0.0; /* kąt obrotu wokół stałej osi X, jednostka: deg */
7 public double ry = 0.0; /* kąt obrotu wokół stałej osi Y, jednostka: deg */
8 public double rz = 0.0; /* kąt obrotu wokół stałej osi Z, jednostka: deg */
9 public Rpy(double rotateX, double rotateY, double rotateZ)
10 {
11 rx = rotateX;
12 ry = rotateY;
13 rz = rotateZ;
14 }
15}
2.4. Typ danych pozy i orientacji w przestrzeni kartezjańskiej
1/**
2*@brief Typ danych pozy i orientacji w przestrzeni kartezjańskiej
3*/
4public class DescPose
5{
6 public DescTran tran = new DescTran(0.0, 0.0, 0.0); /* pozycja w przestrzeni kartezjańskiej */
7 public Rpy rpy = new Rpy(0.0, 0.0, 0.0); /* orientacja w przestrzeni kartezjańskiej */
8
9 public DescPose()
10 {
11
12 }
13
14 public DescPose(DescTran descTran, Rpy rotateRpy)
15 {
16 tran = descTran;
17 rpy = rotateRpy;
18 }
19
20 public DescPose(double tranX, double tranY, double tranZ, double rX, double ry, double rz)
21 {
22 tran.x = tranX;
23 tran.y = tranY;
24 tran.z = tranZ;
25 rpy.rx = rX;
26 rpy.ry = ry;
27 rpy.rz = rz;
28 }
29
30 public String toString()
31 {
32 return String.valueOf(tran.x) + "," + String.valueOf(tran.y) + "," +String.valueOf(tran.z) + "," +String.valueOf(rpy.rx) + "," +String.valueOf(rpy.ry) + "," +String.valueOf(rpy.rz);
33 }
34}
2.5. Typ danych pozycji osi rozszerzonej
1/**
2* @brief Typ danych pozycji osi rozszerzonej
3*/
4public class ExaxisPos
5{
6 public double axis1 = 0.0;
7 public double axis2 = 0.0;
8 public double axis3 = 0.0;
9 public double axis4 = 0.0;
10
11 public ExaxisPos()
12 {
13
14 }
15 public ExaxisPos(double[] exaxisPos)
16 {
17 axis1 = exaxisPos[0];
18 axis2 = exaxisPos[1];
19 axis3 = exaxisPos[2];
20 axis4 = exaxisPos[3];
21 }
22
23 public ExaxisPos(double pos1, double pos2, double pos3, double pos4)
24 {
25 axis1 = pos1;
26 axis2 = pos2;
27 axis3 = pos3;
28 axis4 = pos4;
29 }
30}
2.6. Typ danych czujnika siły/momentu
1/**
2* @brief Składowe siły i momentu czujnika siły
3*/
4public class ForceTorque
5{
6 public double fx; /* składowa siły wzdłuż osi X, jednostka N */
7 public double fy; /* składowa siły wzdłuż osi Y, jednostka N */
8 public double fz; /* składowa siły wzdłuż osi Z, jednostka N */
9 public double tx; /* składowa momentu wokół osi X, jednostka Nm */
10 public double ty; /* składowa momentu wokół osi Y, jednostka Nm */
11 public double tz; /* składowa momentu wokół osi Z, jednostka Nm */
12 public ForceTorque(double fX, double fY, double fZ, double tX, double tY, double tZ)
13 {
14 fx = fX;
15 fy = fY;
16 fz = fZ;
17 tx = tX;
18 ty = tY;
19 tz = tZ;
20 }
21}
2.7. Typ danych parametrów spirali
1/**
2* @brief Typ danych parametrów spirali
3*/
4public class SpiralParam
5{
6 public int circle_num; /* liczba zwojów spirali */
7 public double circle_angle; /* kąt nachylenia spirali */
8 public double rad_init; /* początkowy promień spirali, jednostka mm */
9 public double rad_add; /* przyrost promienia */
10 public double rotaxis_add; /* przyrost w kierunku osi obrotu */
11 public int rot_direction; /* kierunek obrotu, 0-zgodny z ruchem wskazówek zegara, 1-przeciwny do ruchu wskazówek zegara */
12 public int velAccMode; /* tryb parametrów prędkości i przyspieszenia: 0-stała prędkość kątowa; 1-stała prędkość liniowa */
13 public SpiralParam(int circleNum, double circleAngle, double radInit, double radAdd, double rotaxisAdd, int rotDirection,int vel_AccMode)
14 {
15 circle_num = circleNum;
16 circle_angle = circleAngle;
17 rad_init = radInit;
18 rad_add = radAdd;
19 rotaxis_add = rotaxisAdd;
20 rot_direction = rotDirection;
21 velAccMode=vel_AccMode;
22 }
23}
2.8. Typ stanu osi rozszerzonej
1/**
2* @brief Typ stanu osi rozszerzonej
3*/
4public class EXT_AXIS_STATUS
5{
6 public double pos = 0; // pozycja osi rozszerzonej
7 public double vel = 0; // prędkość osi rozszerzonej
8 public int errorCode = 0; // kod błędu osi rozszerzonej
9 public int ready = 0; // serwo gotowe
10 public int inPos = 0; // serwo na pozycji
11 public int alarm = 0; // alarm serwa
12 public int flerr = 0; // błąd śledzenia
13 public int nlimit = 0; // osiągnięto ujemnego ogranicznika
14 public int pLimit = 0; // osiągnięto dodatniego ogranicznika
15 public int mdbsOffLine = 0; // magistrala 485 sterownika rozłączona
16 public int mdbsTimeout = 0; // przekroczenie czasu komunikacji 485 między kartą sterującą a szafą sterowniczą
17 public int homingStatus = 0; // stan powrotu osi rozszerzonej do zera
18}
2.9. Typ czujnika
1/**
2* @brief Typ czujnika
3*/
4public class DeviceConfig
5{
6 int company = 0; // producent
7 int device = 0; // typ/numer urządzenia
8 int softwareVersion = 0; // wersja oprogramowania
9 int bus = 0; // pozycja montażu
10
11 public DeviceConfig()
12 {
13
14 }
15
16 public DeviceConfig(int company, int device, int softwareVersion, int bus)
17 {
18 this.company = company;
19 this.device = device;
20 this.softwareVersion = softwareVersion;
21 this.bus = bus;
22 }
23}
2.10. Konfiguracja osi rozszerzonej 485
1/**
2* @brief Konfiguracja osi rozszerzonej 485
3*/
4public class Axis485Param
5{
6 int servoCompany; // producent serwonapędu, 1-Dynatect
7 int servoModel; // model serwonapędu, 1-FD100-750C
8 int servoSoftVersion; // wersja oprogramowania serwonapędu, 1-V1.0
9 int servoResolution; // rozdzielczość enkodera
10 double axisMechTransRatio; // mechaniczne przełożenie transmisyjne
11
12 public Axis485Param(int company, int model, int softVersion, int resolution, double mechTransRatio)
13 {
14 servoCompany = company;
15 servoModel = model;
16 servoSoftVersion = softVersion;
17 servoResolution = resolution;
18 axisMechTransRatio = mechTransRatio;
19 }
20
21 public Axis485Param()
22 {
23
24 }
25}
2.11. Stan sterownika serwonapędu
1/**
2* @brief Stan sterownika serwonapędu
3*/
4public class ROBOT_AUX_STATE
5{
6 public int servoId = 0; // ID serwonapędu
7 public int servoErrCode = 0; // kod błędu serwonapędu
8 public int servoState = 0; // stan serwonapędu
9 public double servoPos = 0; // bieżąca pozycja serwa
10 public float servoVel = 0; // bieżąca prędkość serwa
11 public float servoTorque = 0; // bieżący moment serwa 25
12}
2.12. Stan przerwania spawania
1/**
2* @brief Stan przerwania spawania
3*/
4public class WELDING_BREAKOFF_STATE
5{
6 public int breakOffState = 0; // stan przerwania spawania
7 public int weldArcState = 0; // stan przerwania łuku spawania
8}
2.13. Parametry komunikacji UDP osi rozszerzonej
1/**
2* @brief Parametry komunikacji UDP osi rozszerzonej
3*/
4public class EXTERNAL_AXIS_UDP_PARAM
5{
6 public String ip = "192.168.58.88";// adres IP
7 public int port = 2021; // numer portu
8 public int period = 2; // okres komunikacji (ms, domyślnie 2, nie modyfikować tego parametru)
9 public int lossPkgTime = 50; // czas wykrywania utraty pakietów (ms)
10 public int lossPkgNum = 2; // liczba utraconych pakietów
11 public int disconnectTime = 100; // czas potwierdzenia przerwania komunikacji
12 public int reconnectEnable = 0; // włączenie automatycznego ponownego łączenia po przerwaniu komunikacji 0-nie włączone 1-włączone
13 public int reconnectPeriod = 100; // odstęp między próbami ponownego łączenia (ms)
14 public int reconnectNum = 3; // liczba prób ponownego łączenia
15 public int selfConnect =0; // czy automatycznie nawiązać połączenie po ponownym uruchomieniu zasilania; 0-nie nawiązuj; 1-nawiąż
16}
2.14. Typ struktury sprzężenia zwrotnego stanu robota
1/**
2* @brief Typ struktury sprzężenia zwrotnego stanu robota
3* /
4public class ROBOT_STATE_PKG {
5 public int frame_head; // nagłówek ramki
6 public int frame_cnt; // licznik ramek
7 public int data_len; // długość danych
8 public int program_state; // stan programu - 1-zatrzymany; 2-działa; 3-wstrzymany
9 public int robot_state; // stan ruchu robota - 1-zatrzymany; 2-działa; 3-wstrzymany; 4-przeciągany
10 public int main_code; // główny kod błędu
11 public int sub_code; // podrzędny kod błędu
12 public int robot_mode; // tryb robota - 1-tryb ręczny; 0-tryb automatyczny
13 public double[] jt_cur_pos = new double[6]; // bieżące pozycje stawów 6 osi, jednostka deg
14 public double[] tl_cur_pos = new double[6]; // bieżąca pozycja narzędzia - [x,y,z,rx,ry,rz]
15 public double[] flange_cur_pos = new double[6]; // bieżąca pozycja kołnierza końcowego - [x,y,z,rx,ry,rz]
16 public double[] actual_qd = new double[6]; // bieżące prędkości 6 stawów, jednostka deg/s
17 public double[] actual_qdd = new double[6]; // bieżące przyspieszenia 6 stawów, jednostka deg/s^2
18 public double[] target_TCP_CmpSpeed = new double[2]; // zadana prędkość wypadkowa TCP - [pozycja mm/s, orientacja deg/s]
19 public double[] target_TCP_Speed = new double[6]; // zadana prędkość TCP - [vx,vy,vz,wx,wy,wz]
20 public double[] actual_TCP_CmpSpeed = new double[2]; // rzeczywista prędkość wypadkowa TCP - [pozycja mm/s, orientacja deg/s]
21 public double[] actual_TCP_Speed = new double[6]; // rzeczywista prędkość TCP - [vx,vy,vz,wx,wy,wz]
22 public double[] jt_cur_tor = new double[6]; // bieżące momenty stawów
23 public int tool; // ID narzędzia
24 public int user; // ID obiektu
25 public int cl_dgt_output_h; // wysoki bajt wyjścia cyfrowego szafy sterowniczej
26 public int cl_dgt_output_l; // niski bajt wyjścia cyfrowego szafy sterowniczej
27 public int tl_dgt_output_l; // niski bajt wyjścia cyfrowego narzędzia
28 public int cl_dgt_input_h; // wysoki bajt wejścia cyfrowego szafy sterowniczej
29 public int cl_dgt_input_l; // niski bajt wejścia cyfrowego szafy sterowniczej
30 public int tl_dgt_input_l; // niski bajt wejścia cyfrowego narzędzia
31 public int[] cl_analog_input = new int[2]; // wejście analogowe szafy sterowniczej
32 public int tl_anglog_input; // wejście analogowe narzędzia
33 public double[] ft_sensor_raw_data = new double[6]; // surowe dane czujnika siły
34 public double[] ft_sensor_data = new double[6]; // dane czujnika siły
35 public int ft_sensor_active; // stan aktywacji czujnika siły
36 public int EmergencyStop; // stan awaryjnego zatrzymania
37 public int motion_done; // ruch zakończony
38 public int gripper_motiondone; // Sygnał zakończenia ruchu chwytaka, 0-nie zakończono, 1-zakończono (nie wykryto obiektu), 2-ruch zakończony (wykryto obiekt)
39 public int mc_queue_len; // długość kolejki ruchu
40 public int collisionState; // stan kolizji
41 public int trajectory_pnum; // numer punktu trajektorii
42 public int safety_stop0_state; // stan bezpiecznego zatrzymania 0
43 public int safety_stop1_state; // stan bezpiecznego zatrzymania 1
44 public int gripper_fault_id; // ID błędu chwytaka
45 public int gripper_fault; // błąd chwytaka
46 public int gripper_active; // aktywacja chwytaka
47 public int gripper_position; // pozycja chwytaka
48 public int gripper_speed; // prędkość chwytaka
49 public int gripper_current; // prąd chwytaka
50 public int gripper_temp; // temperatura chwytaka
51 public int gripper_voltage; // napięcie chwytaka
52 public AuxState aux_state = new AuxState(); // stan wewnętrznej osi pomocniczej
53 public EXT_AXIS_STATUS[] extAxisStatus = new EXT_AXIS_STATUS[4]; // tablica stanów osi rozszerzonej
54 public short[] extDIState = new short[8]; // rozszerzone IO - DI
55 public short[] extDOState = new short[8]; // rozszerzone IO - DO
56 public short[] extAIState = new short[4]; // rozszerzone IO - AI
57 public short[] extAOState = new short[4]; // rozszerzone IO - AO
58 public int rbtEnableState; // stan włączenia robota
59 public double[] jointDriverTorque = new double[6]; // momenty sterowników stawów
60 public double[] jointDriverTemperature = new double[6]; // temperatury sterowników stawów
61 public ROBOT_TIME robotTime = new ROBOT_TIME(); // obiekt czasu robota
62 public int softwareUpgradeState; // stan aktualizacji oprogramowania
63 public int endLuaErrCode; // kod błędu Lua końcówki
64 public int[] cl_analog_output = new int[2]; // wyjście analogowe szafy sterowniczej
65 public int tl_analog_output; // wyjście analogowe narzędzia
66 public float gripperRotNum; // liczba obrotów chwytaka obrotowego
67 public int gripperRotSpeed; // prędkość chwytaka obrotowego
68 public int gripperRotTorque; // moment chwytaka obrotowego
69 public WELDING_BREAKOFF_STATE weldingBreakOffState = new WELDING_BREAKOFF_STATE(); // stan przerwania spawania
70 public double[] jt_tgt_tor = new double[6]; // docelowe momenty stawów
71 public int smartToolState; // stan inteligentnego narzędzia
72 public float wideVoltageCtrlBoxTemp; // temperatura szafy sterowniczej z szerokim zakresem napięcia
73 public int wideVoltageCtrlBoxFanCurrent; // prąd wentylatora szafy sterowniczej z szerokim zakresem napięcia
74 public double[] toolCoord = new double[6]; // układ współrzędnych narzędzia
75 public double[] wobjCoord = new double[6]; // układ współrzędnych obiektu
76 public double[] extoolCoord = new double[6]; // zewnętrzny układ współrzędnych narzędzia
77 public double[] exAxisCoord = new double[6]; // układ współrzędnych osi rozszerzonej
78 public double load; // obciążenie
79 public double[] loadCog = new double[3]; // środek ciężkości obciążenia
80 public double[] lastServoTarget = new double[6]; // poprzednia docelowa pozycja servoJ
81 public int servoJCmdNum; // liczba poleceń servoJ
82 public double[] targetJointPos = new double[6]; // docelowa pozycja stawów
83 public double[] targetJointVel = new double[6]; // docelowa prędkość stawów
84 public double[] targetJointAcc = new double[6]; // docelowe przyspieszenie stawów
85 public double[] targetJointCurrent = new double[6]; // docelowy prąd stawów
86 public double[] actualJointCurrent = new double[6]; // rzeczywisty prąd stawów
87 public double[] actualTCPForce = new double[6]; // rzeczywista siła TCP
88 public double[] targetTCPPos = new double[6]; // docelowa pozycja TCP
89 public int[] collisionLevel = new int[6]; // poziom kolizji
90 public double speedScaleManual; // proporcja prędkości w trybie ręcznym
91 public double speedScaleAuto; // proporcja prędkości w trybie automatycznym
92 public int luaLineNum; // numer linii Lua
93 public int abnomalStop; // zatrzymanie awaryjne
94 public String currentLuaFileName; // bieżąca nazwa pliku Lua
95 public int programTotalLine; // całkowita liczba linii programu
96 public int[] safetyBoxSingal = new int[6]; // sygnały skrzynki bezpieczeństwa
97 public double weldVoltage; // napięcie spawania
98 public double weldCurrent; // prąd spawania
99 public double weldTrackVel; // prędkość śledzenia spawania
100 public int tpdException; // wyjątek TPD
101 public int alarmRebootRobot; // alarm - restart robota
102 public int modbusMasterConnect; // połączenie mastera Modbus
103 public int modbusSlaveConnect; // połączenie slave'a Modbus
104 public int btnBoxStopSignal; // sygnał zatrzymania z przycisku
105 public int dragAlarm; // alarm przeciągania
106 public int safetyDoorAlarm; // alarm drzwi bezpieczeństwa
107 public int safetyPlaneAlarm; // alarm płaszczyzny bezpieczeństwa
108 public int motonAlarm; // alarm ruchu
109 public int interfaceAlarm; // alarm interferencji
110 public int udpCmdState; // stan polecenia UDP
111 public int weldReadyState; // stan gotowości spawania
112 public int alarmCheckEmergStopBtn; // alarm - sprawdzenie przycisku awaryjnego zatrzymania
113 public int tsTmCmdComError; // błąd komunikacji polecenia
114 public int tsTmStateComError; // błąd komunikacji stanu
115 public int ctrlBoxError; // błąd szafy sterowniczej
116 public int safetyDataState; // stan danych bezpieczeństwa
117 public int forceSensorErrState; // stan błędu czujnika siły
118 public int[] ctrlOpenLuaErrCode = new int[4]; // kod błędu otwarcia Lua sterowania
119 public int strangePosFlag; // flaga osobliwej pozycji
120 public int alarm; // alarm
121 public int driverAlarm; // alarm sterownika
122 public int aliveSlaveNumError; // błąd liczby aktywnych stacji podrzędnych
123 public int[] slaveComError = new int[8]; // błąd komunikacji stacji podrzędnej
124 public int cmdPointError; // błąd punktu polecenia
125 public int IOError; // błąd IO
126 public int gripperError; // błąd chwytaka
127 public int fileError; // błąd pliku
128 public int paraError; // błąd parametru
129 public int exaxisOutLimitError; // błąd przekroczenia miękkiego ograniczenia osi rozszerzonej
130 public int[] driverComError = new int[6]; // błąd komunikacji ze sterownikiem
131 public int driverError; // błąd sterownika
132 public int outSoftLimitError; // błąd przekroczenia miękkiego ograniczenia
133 public byte[] axleGenComData = new byte[130]; // dane komunikacji ogólnej osi
134 public int check_sum; // suma kontrolna
135 public int socketConnTimeout; // przekroczenie czasu połączenia socket
136 public int socketReadTimeout; // przekroczenie czasu odczytu socket
137 public int tsWebStateComErr; // błąd komunikacji stanu TS Web
138 public int exaxisCoordID; // numer układu współrzędnych osi rozszerzonej
139}
2.15. Klasa wyniku konfiguracji sprzężenia zwrotnego stanu robota
1/**
2* Klasa wyniku konfiguracji sprzężenia zwrotnego stanu robota, zawiera listę stanów i okres
3*/
4public static class StateConfigResult {
5 public final List<RobotState> stateList;
6 public final int period;
7}
2.16. Typ wyliczeniowy konfiguracji sprzężenia zwrotnego stanu robota
1/**
2* Typ wyliczeniowy stanu robota
3* Używany do konfiguracji sprzężenia zwrotnego stanu w czasie rzeczywistym
4*/
5enum class RobotState
6{
7 ProgramState, // Stan programu, 1-zatrzymany; 2-działa; 3-wstrzymany
8 RobotState, // Stan ruchu robota, 1-zatrzymany; 2-działa; 3-wstrzymany; 4-przeciągany
9 MainCode, // Główny kod błędu
10 SubCode, // Podrzędny kod błędu
11 RobotMode, // Tryb robota, 1-tryb ręczny; 0-tryb automatyczny
12 JointCurPos, // Bieżące pozycje stawów 6 osi, jednostka deg
13 ToolCurPos, // Bieżąca pozycja narzędzia: [0] pozycja wzdłuż osi X (mm), [1] wzdłuż osi Y (mm), [2] wzdłuż osi Z (mm), [3] obrót wokół stałej osi X (deg), [4] obrót wokół stałej osi Y (deg), [5] obrót wokół stałej osi Z (deg)
14 FlangeCurPos, // Bieżąca pozycja kołnierza końcowego: [0] wzdłuż osi X (mm), [1] wzdłuż osi Y (mm), [2] wzdłuż osi Z (mm), [3] obrót wokół stałej osi X (deg), [4] obrót wokół stałej osi Y (deg), [5] obrót wokół stałej osi Z (deg)
15 ActualJointVel, // Bieżące prędkości 6 stawów, jednostka deg/s
16 ActualJointAcc, // Bieżące przyspieszenia 6 stawów, jednostka deg/s^2
17 TargetTCPCmpSpeed, // Zadana prędkość wypadkowa TCP: [0] pozycja (mm/s), [1] orientacja (deg/s)
18 TargetTCPSpeed, // Zadana prędkość TCP: [0] wzdłuż osi X (mm/s), [1] wzdłuż osi Y (mm/s), [2] wzdłuż osi Z (mm/s), [3] prędkość kątowa wokół X (deg/s), [4] wokół Y (deg/s), [5] wokół Z (deg/s)
19 ActualTCPCmpSpeed, // Rzeczywista prędkość wypadkowa TCP: [0] pozycja (mm/s), [1] orientacja (deg/s)
20 ActualTCPSpeed, // Rzeczywista prędkość TCP: [0] wzdłuż osi X (mm/s), [1] wzdłuż osi Y (mm/s), [2] wzdłuż osi Z (mm/s), [3] prędkość kątowa wokół X (deg/s), [4] wokół Y (deg/s), [5] wokół Z (deg/s)
21 ActualJointTorque, // Bieżące momenty 6 stawów, jednostka N·m
22 Tool, // Numer zastosowanego układu współrzędnych narzędzia
23 User, // Numer zastosowanego układu współrzędnych obiektu
24 ClDgtOutputH, // Wyjście cyfrowe IO szafy sterowniczej 15-8
25 ClDgtOutputL, // Wyjście cyfrowe IO szafy sterowniczej 7-0
26 TlDgtOutputL, // Wyjście cyfrowe IO narzędzia 7-0, tylko bity 0-1 są ważne
27 ClDgtInputH, // Wejście cyfrowe IO szafy sterowniczej 15-8
28 ClDgtInputL, // Wejście cyfrowe IO szafy sterowniczej 7-0
29 TlDgtInputL, // Wejście cyfrowe IO narzędzia 7-0, tylko bity 0-1 są ważne
30 ClAnalogInput, // Wejście analogowe szafy sterowniczej: [0] kanał 0, [1] kanał 1
31 TlAnalogInput, // Wejście analogowe narzędzia
32 FtSensorRawData, // Surowe dane czujnika siły/momentu: [0] siła wzdłuż osi X (N), [1] siła wzdłuż osi Y (N), [2] siła wzdłuż osi Z (N), [3] moment wokół osi X (Nm), [4] moment wokół osi Y (Nm), [5] moment wokół osi Z (Nm)
33 FtSensorData, // Dane czujnika siły/momentu (przetworzone): [0] siła wzdłuż osi X (N), [1] siła wzdłuż osi Y (N), [2] siła wzdłuż osi Z (N), [3] moment wokół osi X (Nm), [4] moment wokół osi Y (Nm), [5] moment wokół osi Z (Nm)
34 FtSensorActive, // Stan aktywacji czujnika siły/momentu, 0-reset, 1-aktywacja
35 EmergencyStop, // Flaga awaryjnego zatrzymania, 0-awaryjne zatrzymanie niewciśnięte, 1-awaryjne zatrzymanie wciśnięte
36 MotionDone, // Sygnał osiągnięcia pozycji, 1-osiągnięto, 0-nie osiągnięto
37 GripperMotiondone, // Sygnał zakończenia ruchu chwytaka, 1-zakończono, 0-nie zakończono
38 McQueueLen, // Długość kolejki instrukcji ruchu
39 CollisionState, // Wykrywanie kolizji, 1-kolizja, 0-brak kolizji
40 TrajectoryPnum, // Numer punktu trajektorii
41 SafetyStop0State, // Sygnał bezpiecznego zatrzymania SI0
42 SafetyStop1State, // Sygnał bezpiecznego zatrzymania SI1
43 GripperFaultId, // Numer chwytaka z błędem
44 GripperFault, // Błąd chwytaka
45 GripperActive, // Stan aktywacji chwytaka
46 GripperPosition, // Pozycja chwytaka
47 GripperSpeed, // Prędkość chwytaka
48 GripperCurrent, // Prąd chwytaka
49 GripperTemp, // Temperatura chwytaka
50 GripperVoltage, // Napięcie chwytaka
51 AuxState, // Stan osi rozszerzonej 485
52 ExtAxisStatus, // Stan osi rozszerzonej UDP (4 osie)
53 ExtDIState, // Rozszerzone wejście DI (8)
54 ExtDOState, // Rozszerzone wyjście DO (8)
55 ExtAIState, // Rozszerzone wejście AI (4)
56 ExtAOState, // Rozszerzone wyjście AO (4)
57 RbtEnableState, // Stan włączenia robota
58 JointDriverTorque, // Moment sterownika stawów robota (6 stawów)
59 JointDriverTemperature,// Temperatura sterownika stawów robota (6 stawów)
60 RobotTime, // Czas systemowy robota
61 SoftwareUpgradeState, // Stan aktualizacji oprogramowania robota
62 EndLuaErrCode, // Stan wykonania LUA końcówki
63 ClAnalogOutput, // Wyjście analogowe szafy sterowniczej (2)
64 TlAnalogOutput, // Wyjście analogowe narzędzia
65 GripperRotNum, // Bieżąca liczba obrotów chwytaka obrotowego
66 GripperRotSpeed, // Bieżący procent prędkości obrotowej chwytaka obrotowego
67 GripperRotTorque, // Bieżący procent momentu obrotowego chwytaka obrotowego
68 WeldingBreakOffState, // Stan przerwania spawania
69 TargetJointTorque, // Docelowy moment stawów (6 stawów)
70 SmartToolState, // Stan przycisków uchwytu SmartTool
71 WideVoltageCtrlBoxTemp,// Temperatura szafy sterowniczej z szerokim zakresem napięcia
72 WideVoltageCtrlBoxFanCurrent, // Prąd wentylatora szafy sterowniczej z szerokim zakresem napięcia (mA)
73 ToolCoord, // Wartości bieżącego układu współrzędnych narzędzia: x, y, z, rx, ry, rz
74 WobjCoord, // Wartości bieżącego układu współrzędnych obiektu: x, y, z, rx, ry, rz
75 ExtoolCoord, // Wartości bieżącego zewnętrznego układu współrzędnych narzędzia: x, y, z, rx, ry, rz
76 ExAxisCoord, // Wartości bieżącego układu współrzędnych osi rozszerzonej: x, y, z, rx, ry, rz
77 Load, // Masa obciążenia
78 LoadCog, // Środek ciężkości obciążenia: x, y, z
79 LastServoTarget, // Ostatnia docelowa pozycja ServoJ w kolejce (6 stawów)
80 ServoJCmdNum, // Licznik instrukcji servoJ
81 TargetJointPos, // Docelowa pozycja 6 stawów, jednostka °
82 TargetJointVel, // Docelowa prędkość 6 stawów, jednostka °/s
83 TargetJointAcc, // Docelowe przyspieszenie 6 stawów, jednostka °/s²
84 TargetJointCurrent, // Docelowy prąd 6 stawów, jednostka A
85 ActualJointCurrent, // Bieżący prąd 6 stawów, jednostka A
86 ActualTCPForce, // Moment na końcówce robota: x, y, z, rx, ry, rz, jednostka Nm
87 TargetTCPPos, // Docelowa pozycja TCP robota: x, y, z, rx, ry, rz, jednostka mm
88 CollisionLevel, // Poziom kolizji robota (6)
89 SpeedScaleManual, // Globalny procent prędkości w trybie ręcznym
90 SpeedScaleAuto, // Globalny procent prędkości w trybie automatycznym
91 LuaLineNum, // Numer bieżącej linii programu lua
92 AbnomalStop, // 0-brak wyjątku; 1-wystąpił wyjątek
93 CurrentLuaFileName, // Nazwa bieżącego uruchomionego programu lua
94 ProgramTotalLine, // Całkowita liczba linii programu lua
95 SafetyBoxSingal, // Stan przycisków skrzynki przycisków robota (6)
96 WeldVoltage, // Napięcie spawania V
97 WeldCurrent, // Prąd spawania
98 WeldTrackVel, // Prędkość śledzenia spawiny mm/s
99 TpdException, // Przekroczenie limitu ładowania trajektorii TPD, 0-nie przekroczono, 1-przekroczono
100 AlarmRebootRobot, // Ostrzeżenie: 1-po zwolnieniu awaryjnego zatrzymania wymagane odcięcie zasilania i restart, 2-nieprawidłowa komunikacja stawów wymagane odcięcie zasilania i restart
101 ModbusMasterConnect, // bity 0-7 odpowiadają stanom połączenia masterów Modbus TCP 0-7, 0-niepołączony, 1-połączony
102 ModbusSlaveConnect, // Stan połączenia slave'a Modbus TCP, 0-niepołączony, 1-połączony
103 BtnBoxStopSignal, // Sygnał awaryjnego zatrzymania skrzynki przycisków, 0-zwolniony awaryjny stop, 1-wciśnięty awaryjny stop
104 DragAlarm, // Ostrzeżenie przeciągania: 0-brak alarmu, 1-alarm, 2-nieprawidłowe sprzężenie zwrotne pozycji - brak przełączania
105 SafetyDoorAlarm, // Ostrzeżenie drzwi bezpieczeństwa: 0-zamknięte, 1-otwarte
106 SafetyPlaneAlarm, // Ostrzeżenie ściany bezpieczeństwa: 0-nie wchodzono, 1-wchodzono
107 MotonAlarm, // Ostrzeżenie ruchu
108 InterfaceAlarm, // Ostrzeżenie wejścia w obszar interferencji
109 UdpCmdState, // Stan połączenia komunikacji UDP na porcie 20007
110 WeldReadyState, // Stan gotowości spawarki
111 AlarmCheckEmergStopBtn, // 0-normalny; 1-nieprawidłowa komunikacja, sprawdź przycisk awaryjnego zatrzymania
112 TsTmCmdComError, // 0-normalny; 1-nieudana komunikacja polecenia momentu
113 TsTmStateComError, // 0-normalny; 1-nieudana komunikacja stanu momentu
114 CtrlBoxError, // Błąd szafy sterowniczej
115 SafetyDataState, // Stan danych bezpieczeństwa, 0-normalny, 1-nieprawidłowy
116 ForceSensorErrState, // Przekroczenie czasu połączenia czujnika siły, bity 0-1 odpowiadają ID1-ID2
117 CtrlOpenLuaErrCode, // Kody błędów 4 protokołów urządzeń peryferyjnych sterownika (kod błędu 500)
118 StrangePosFlag, // Flaga osobliwej pozy i orientacji: 0-normalny, 1-osobliwa pozy i orientacja
119 Alarm, // Ostrzeżenie
120 DriverAlarm, // Numer osi z alarmem sterownika
121 AliveSlaveNumError, // Błąd liczby aktywnych stacji podrzędnych: 0-normalny, 1-błąd liczby
122 SlaveComError, // Błąd stacji podrzędnej: 0-normalny, 1-rozłączona, 2-niezgodność stanu, 3-nieskonfigurowana, 4-błąd konfiguracji, 5-błąd inicjalizacji, 6-błąd inicjalizacji komunikacji e-mail
123 CmdPointError, // Błąd punktu instrukcji
124 IOError, // Błąd IO
125 GripperError, // Błąd chwytaka
126 FileError, // Błąd pliku
127 ParaError, // Błąd parametru
128 ExaxisOutLimitError, // Błąd przekroczenia miękkiego ograniczenia osi zewnętrznej
129 DriverComError, // Błąd komunikacji ze sterownikiem (6 osi)
130 DriverError, // Numer osi z błędem komunikacji sterownika
131 OutSoftLimitError, // Błąd przekroczenia miękkiego ograniczenia
132 AxleGenComData, // Dane sprzężenia zwrotnego transmisji przez końcówkę robota
133 SocketConnTimeout, // Przekroczenie czasu połączenia socket, bity 0-4 odpowiadają socketID 1-4
134 SocketReadTimeout, // Przekroczenie czasu odczytu socket, bity 0-4 odpowiadają socketID 1-4
135 TsWebStateComErr, // Nieudana komunikacja momentu web: 0-normalny, 1-nieudana
136 ExaxisCoordID // numer układu współrzędnych osi rozszerzonej
137};