You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
6.8 KiB
C++
132 lines
6.8 KiB
C++
#pragma once
|
|
#include "module.h"
|
|
#include "Program_SZ_XL_TrackWorkFlow.h"
|
|
|
|
|
|
//深圳信利全自动设备
|
|
class CProgram_SZ_XL :public CModule
|
|
{
|
|
public:
|
|
CProgram_SZ_XL(void);
|
|
~CProgram_SZ_XL(void);
|
|
virtual CMFCPropertyGridProperty *CreatGridProperty();
|
|
virtual MODULE GetModuleType(){return _PGM_SW_XL_PROP;};
|
|
virtual void Ini();
|
|
virtual void OnExitApp();//退出软件时
|
|
void InitDevice();
|
|
void StartAutoWork(ETrackType TrackType);
|
|
void ManualOperation(ETrackType TrackType,ETrackWorkStep TrackWorkStep);
|
|
double GetMoveCoord(ETrackType TrackType,ETrackWorkStep WorkStep);
|
|
Dbxy GetTrack2Offset(){return m_Track2Offset;};
|
|
Dbxy GetTrackMarkOffset(ETrackType TrackType);//获取轨道的振镜偏移
|
|
//Dbxy GetTrackMarkPosOffset(ETrackType TrackType);//获取轨道的加工位置偏移
|
|
void SetbSelMarkMode(bool b){m_bSelMarkMode = b;};
|
|
bool IsbSelMarkMode(){return m_bSelMarkMode;};
|
|
bool IsbAutoWorkMode(){return m_bAutoWorkMode;};
|
|
void SetbAutoWorkMode(bool b){m_bAutoWorkMode = b;};
|
|
void ProductCarrierOpenClose(ETrackType TrackType,bool bOpen);
|
|
CTrackWorkFlow* GetTrackWorkFlow(ETrackType TrackType);
|
|
int GetCutProductCnt(ETrackType TrackType);
|
|
void StopAutoWork();
|
|
void SaveCutPar();
|
|
void ReadCutPar();
|
|
ETrackWorkStep GetCurTrackWorkStep(ETrackType TrackType);
|
|
void ResetRecordTimes(ETrackType TrackType);
|
|
void ReadLoadPlcMsg();
|
|
bool SendMsgToLoadDevice(ETrackType TrackType,ETrackWorkStep WorkStep,bool bCheckRev);
|
|
ETrackWorkStep GetOtherTrackWorkStep(ETrackType TrackType);
|
|
void MoveMotorYToSafePos(ETrackType TrackType);
|
|
bool IsbShieldLoad(){return m_bShieldLoad;};
|
|
bool IsbShieldMarking(){return m_bShieldMarking;};
|
|
bool IsbShieldUnLoad(){return m_bShieldUnLoad;};
|
|
void CancelUnloadRequest(ETrackType TrackType);
|
|
void SetbCircleStop(ETrackType TrackType,bool bStop);
|
|
bool GetbCircleStop(ETrackType TrackType) ;
|
|
int GetStopStepUnloadTimes(){return m_StopStepUnloadTimes;};
|
|
int GetPlcCmdSendDelay(){return m_PlcCmdSendDelay;};
|
|
void GetTrackMotorYCoord(ETrackType TrackType,double &DangerCoordStart,double &DangerCoordEnd,double &SafeCoord);
|
|
bool IsbAutoWorking();
|
|
bool IsbCheckUnloadState(){return m_bCheckUnloadState;};
|
|
void SetCurMarkingTrack(ETrackType t){m_CurMarkingTrack = t;};
|
|
ETrackType GetCurMarkingTrack(){return m_CurMarkingTrack;};
|
|
|
|
Dbxy GetNPOffsetT1() { return m_NPCatchOffset1; }; //获取轨道1,新加片位置偏移
|
|
Dbxy GetNPOffsetT2() { return m_NPCatchOffset2; }; //获取轨道2,新加片位置偏移
|
|
|
|
bool GetDxfParFilePath(CString Suffix,CString &FilePath);
|
|
private:
|
|
void ReadLoadPlcMsgExt();
|
|
void InitLoadDeviceCom();
|
|
void ResetLoadUnloadSignal();
|
|
CTrackWorkFlow* GetOtherTrackWorkFlow(ETrackType TrackType);
|
|
bool OpenPlcCtrl();
|
|
void AnalyzeRecvLoadMsg(CString &RecvStr);
|
|
bool CompareBuf(char *Buf,CString str);
|
|
int CreatBuf(char *Buf,CString str);
|
|
bool GetLoadCmdStr(ETrackType TrackType,ETrackWorkStep WorkStep,CString &StrOn,CString &StrOnRev,CString &StrOff,CString &StrOffRev);
|
|
public:
|
|
CString m_ServerIP="127.0.0.1";//副机IP
|
|
int m_ServerPort=2404;//副机端口
|
|
Dbxy GetJig1Scale() { return m_Jig1Scale; };
|
|
Dbxy GetJig3Scale() { return m_Jig3Scale; };
|
|
private:
|
|
int m_TrackComPort1;//轨道1 串口号
|
|
int m_TrackComPort2;//轨道2 串口号
|
|
int m_ComBaudRate;//通信波特率
|
|
int m_PlcCmdSendDelay;//plc指令发送后延时ms
|
|
int m_LoadComPort;//上料机串口号
|
|
bool m_bLoadDeviceSuc;//上料机通信是否成功
|
|
int m_LoadCmdDelay;//发送上料请求上升沿的时间ms
|
|
int m_LoadCmdRevDelay;//发送后间隔这个时间去读取反馈ms
|
|
int m_LoadCmdSendTims;//发送给上料plc 的cmd尝试的次数
|
|
|
|
bool m_bLoadCOMLockerFlg;//发送消息锁定flg
|
|
bool m_bCheckUnloadState;//是否检查下料机状态
|
|
CCommPortMgr m_LoadDeviceCOM;//上料机通信用串口管理
|
|
bool m_bStopReadMsg;//是否暂停读取plc 消息
|
|
|
|
|
|
bool m_bSelMarkMode;//选择加工模式
|
|
bool m_bAutoWorkMode;//自动工作模式
|
|
|
|
double m_MotorXWaitCoord;//X轴等待坐标
|
|
|
|
double m_MotorXLoadCoord;//X 轴上料坐标
|
|
double m_MotorXUnLoadCoord;//X 轴下料坐标
|
|
double m_MotorXLoadZJCoord=0;//X 轴回治具坐标
|
|
double m_MotorXThrowCoord = 0;//X 轴去边框
|
|
|
|
double m_MotorX2LoadCoord;//X2 轴上料坐标
|
|
double m_MotorX2UnLoadCoord;//X2 轴下料坐标
|
|
double m_MotorX2LoadZJCoord=0;//X2 轴上治具坐标
|
|
double m_MotorX2ThrowCoord = 0;//X2 轴去边框
|
|
|
|
Dbxy m_Track2Offset;//轨道2相对轨道1 的偏移量
|
|
|
|
Dbxy m_NPCatchOffset1;//轨道1上新增料片相对主片的位置偏移(CCD抓取时用)
|
|
Dbxy m_NPCatchOffset2;//轨道2上新增料片相对主片的位置偏移(CCD抓取时用)
|
|
|
|
Dbxy m_Jig1Scale=Dbxy(1,1); //治具1自定义比率(振镜)
|
|
Dbxy m_Jig3Scale = Dbxy(1, 1);//治具3自定义比率(振镜)
|
|
|
|
Dbxy m_Jig1MarkOffset;//治具1的加工振镜偏移(属性页调整,应对硬件偏移)
|
|
Dbxy m_Jig3MarkOffset;//治具3的加工振镜偏移(属性页调整,应对硬件偏移)
|
|
|
|
double m_Track1DangerCoordStart;//轨道1 的危险范围start
|
|
double m_Track1DangerCoordEnd;//轨道1 的危险范围end
|
|
double m_Track1SafeCoord;//轨道1 的安全坐标
|
|
double m_Track2DangerCoordStart;//轨道2 的危险范围start
|
|
double m_Track2DangerCoordEnd;//轨道2 的危险范围end
|
|
double m_Track2SafeCoord;//轨道2 的安全坐标
|
|
|
|
|
|
bool m_bShieldLoad;//屏蔽上料
|
|
bool m_bShieldMarking;//屏蔽加工过程
|
|
bool m_bShieldUnLoad;//屏蔽下料
|
|
|
|
int m_StopStepUnloadTimes;//连续点多少次可以强制停止unload
|
|
|
|
ETrackType m_CurMarkingTrack;//当前正在切割的轨道
|
|
};
|
|
|
|
extern CProgram_SZ_XL *gProgram_SZ_XL; |