PunchHMI/machine/error.cpp

120 lines
8.3 KiB
C++
Raw Normal View History

2024-02-06 06:58:57 +00:00

#include "error.h"
#include "comm/protocol.h"
#include <QObject>
#define CASE_OP(cd, str) \
{\
case cd:\
errinfo = str;\
break;\
}
QString getErrStr(u32 code)
{
QString errinfo;
errinfo.clear();
QString errorCode;
errorCode.clear();
switch (code)
{
//通用的错误代码
CASE_OP(ERR_NONE, QObject::tr("")); // 没有错误
CASE_OP(ERR_NO_AIR, QObject::tr("Insufficient air pressure")); // 气压不足
CASE_OP(ERR_NOT_SAFE, QObject::tr("safe area error")); // 安全区域介入
CASE_OP(ERR_EXPIRATION, QObject::tr("Expiration of use (Please contact the manufacturer)")); // 使用时限已到 (请联系厂家)
CASE_OP(ERR_DRIVER, QObject::tr("Driver alarm")); // 驱动器报警
CASE_OP(ERR_FILL_DATA, QObject::tr("Fill data error")); // 填充数据错误
CASE_OP(ERR_NOT_ALLOWED, QObject::tr("Not allowed to work")); // 不允许工作状态
CASE_OP(ERR_CTRL_ERR, QObject::tr("Control error")); // 控制错误
CASE_OP(ERR_FPGA_ERR, QObject::tr("Motion control chip version error")); // 运动控制芯片版本错误
CASE_OP(ERR_BUTTON_NOUP, QObject::tr("Waiting for button to lift timeout")); // 等待按钮抬起超时
CASE_OP(ERR_FPGA_RESET, QObject::tr("FPGA Reset")); // FPGA复位
CASE_OP(ERR_NO_READY, QObject::tr("Peripheral Device not ready")); // 外设未就绪
CASE_OP(ERR_NO_SEND_ERR, QObject::tr("Transmission data error")); // 传输数据错误
CASE_OP(ERR_EDTION_ERR, QObject::tr("Program version error")); // 程序版本错误
CASE_OP(ERR_WORK_DONE, QObject::tr("Complete output")); // 完成产量
CASE_OP(ERR_LMT_POSITIVE, QObject::tr("Positive limit")); // 正向限位
CASE_OP(ERR_LMT_NEGATIVE, QObject::tr("Negative limit")); // 反向限位
CASE_OP(ERR_RUN_ALM, QObject::tr("Motion alarm")); // 运动报警
CASE_OP(ERR_RUN_LIMIT, QObject::tr("Motion limit")); // 运动限位
CASE_OP(ERR_RUN_EMS, QObject::tr("Emergency stop")); // 运动急停
CASE_OP(ERR_MV_PARA, QObject::tr("Motion parameters error")); // 运动参数错误
CASE_OP(ERR_MC_PARA, QObject::tr("Machine parameters error")); // 机器参数错误
CASE_OP(ERR_IN_PARA, QObject::tr("Input parameters error")); // 输入参数错误
CASE_OP(ERR_NOT_WORKSTA, QObject::tr("Not in work status error")); // 不能工作状态
CASE_OP(ERR_NOT_MOVESTA, QObject::tr("Prohibited frame moving state")); // 禁止移框状态
CASE_OP(ERR_MTZ_RIGHT, QObject::tr("Zero success")); // 归零成功
CASE_OP(ERR_MTZ_ERROR, QObject::tr("Return to zero error")); // 归零错误
CASE_OP(ERR_COOR_SYSTM, QObject::tr("XYCoordinate system error (Please reset to zero again)")); // XY坐标系统错误请重新归零
CASE_OP(ERR_OUT_RANGE, QObject::tr("Target position out of bounds")); // 目标位置越界
CASE_OP(ERR_X_LIT_POSI, QObject::tr("X Positive limit")); // X正向限位
CASE_OP(ERR_X_LIT_NEGA, QObject::tr("X Negative limit")); // X反向限位
CASE_OP(ERR_Y_LIT_POSI, QObject::tr("Y Positive limit")); // Y正向限位
CASE_OP(ERR_Y_LIT_NEGA, QObject::tr("Y Negative limit")); // Y反向限位
CASE_OP(ERR_MC_MANUAL, QObject::tr("Machine is in manual state")); // 机器处于手动状态
CASE_OP(ERR_KEY_SW_OFF, QObject::tr("Machine key off")); // 机器钥匙开关关闭
CASE_OP(ERR_LIGHTCURTAINS1, QObject::tr("Light curtain 1 intervention")); // 光幕1介入
CASE_OP(ERR_LIGHTCURTAINS2, QObject::tr("Light curtain 2 intervention")); // 光幕2介入
CASE_OP(ERR_NO_DATA, QObject::tr("None data")); // 无数据
CASE_OP(ERR_DATA_ERROR, QObject::tr("Data error")); // 数据错误
CASE_OP(ERR_GRAPH_OUT_RANGE, QObject::tr("Graphics out of range")); // 图形超出范围
CASE_OP(ERR_MS_NOT_ZERO, QObject::tr("Spindle is not in zero position")); // 主轴不在零位
CASE_OP(ERR_CUTTER_NOT_POS, QObject::tr("Scissors are not in position")); // 剪刀不在回位
CASE_OP(ERR_UPER_TBREAK, QObject::tr("Thread is broken"));// 断线
CASE_OP(ERR_BOBBIN_TBREAK, QObject::tr("Bottom thread disconnected")); // 底线断线
CASE_OP(ERR_TRANS_TIMEOUT, QObject::tr("Execution command timed out")); // 执行命令超时
CASE_OP(ERR_LIFT_TIMEOUT, QObject::tr("Cutting down lifting timeout (please check lifting sensor)")); // 裁切下升降超时(请检查升降传感器)
CASE_OP(ERR_NODE_ERR, QObject::tr("Node error")); // 节点错误
CASE_OP(ERR_BUS_ERR, QObject::tr("Bus Error (Please check the communication connection)")); // 总线错误(请检查通讯连接)
CASE_OP(ERR_CAN_TIMEOUT, QObject::tr("CAN communication timeout")); // CAN通讯超时
CASE_OP(ERR_CHANGE_BOBBIN, QObject::tr("Change the bobbin")); // 更换梭芯
CASE_OP(ERR_CHANGE_BOBBIN_A, QObject::tr("Replace bobbin A")); // 更换梭芯A
CASE_OP(ERR_CHANGE_BOBBIN_B, QObject::tr("Replace bobbin B")); // 更换梭芯B
CASE_OP(ERR_CHANGE_BOBBIN_STA, QObject::tr("The machine is in the state of replacing the bobbin")); // 机器处于更换梭芯状态
CASE_OP(ERR_AIR_POWER, QObject::tr("Insufficient air pressure")); // 气压不足
CASE_OP(ERR_MC_AUTO, QObject::tr("Machine is in auto state")); // 机器处于自动状态
CASE_OP(ERR_INSTALLMENT_OK, QObject::tr("Password set finished")); // 密码设置成功
CASE_OP(ERR_INSTALLMENT_FAIL, QObject::tr("Password set failed")); // 密码设置失败
CASE_OP(ERR_READ_HEAD_PARA, QObject::tr("Error reading headboard parameters")); // 读取机头板参数错误
CASE_OP(ERR_CHANGE_PNHPIN1, QObject::tr("Replace punch 1")); // 更换冲头1
CASE_OP(ERR_CHANGE_PNHPIN2, QObject::tr("Replace punch 2")); // 更换冲头2
CASE_OP(ERR_CHANGE_PNHPIN3, QObject::tr("Replace punch 3")); // 更换冲头3
CASE_OP(ERR_CHANGE_PNHPIN4, QObject::tr("Replace punch 4")); // 更换冲头4
CASE_OP(ERR_CHANGE_PNHPIN5, QObject::tr("Replace punch 5")); // 更换冲头5
CASE_OP(ERR_CHANGE_PNHPIN6, QObject::tr("Replace punch 6")); // 更换冲头6
//通用的状态信息
CASE_OP(STA_NORMAL_STOP, QObject::tr("Normal stop")); // 正常停止
CASE_OP(STA_MTZ_SUCCESS, QObject::tr("Find zero success")); // 归零成功
CASE_OP(STA_WORK_PAUSE, QObject::tr("work pause")); // 工作暂停
CASE_OP(STA_WORK_OVER, QObject::tr("End of work")); // 工作结束
CASE_OP(STA_WORK_FINISH, QObject::tr("Work done")); // 工作完成
CASE_OP(STA_WORK_DONE, QObject::tr("Complete production")); // 完成产量
CASE_OP(STA_EXEC_SUCCESS, QObject::tr("Execute success")); // 执行成功
CASE_OP(STA_EXEC_FAILED, QObject::tr("Execute false")); // 执行失败
CASE_OP(STA_WAIT_FILE, QObject::tr("wait file")); // 等待文件
CASE_OP(STA_CHANGE_BOBBIN, QObject::tr("change the bobbin")); // 更换梭芯
CASE_OP(STA_PROCESS_FINISH, QObject::tr("Execute finish")); // 执行完成
CASE_OP(STA_PROCESS_RUNNING, QObject::tr("Execute runnibng")); // 执行过程中
CASE_OP(STA_AUTO_SOFTLIMIT, QObject::tr("Automatic soft limit setting completed")); // 自动定软限位完成
default:
//errorCode.sprintf("CODE 0x%x", code);
//errinfo.append(QObject::tr("Undefined error,") + errorCode);
break;
}
return errinfo;
}
QString getPromptStr(u32 code)
{
QString errinfo;
switch (code)
{
CASE_OP(ERR_NO_MATERIEL, QObject::tr("Please feed")); // 请上料
}
return errinfo;
}