瀏覽代碼

同步库

JonYang 1 天之前
父節點
當前提交
a47cf5cf3b

二進制
Output/bin/x64/Control.dll


二進制
Output/bin/x64/Control.pdb


二進制
Output/bin/x64/JSMotion.dll


二進制
Output/bin/x64/Module.dll


二進制
Output/bin/x64/Module.pdb


二進制
Output/bin/x64/configurations.db


二進制
Output/config/db/MachineCalibration.db


二進制
Output/config/db/ModuleConfig.db


二進制
Output/config/db/Product1/Product.db


二進制
Output/config/db/configurations.db


二進制
Output/dll/x64/Control.dll


二進制
Output/dll/x64/JSMotion.dll


二進制
Output/dll/x64/Module.dll


+ 81 - 0
Output/inc/Control/CViewInterface.h

@@ -19,6 +19,48 @@ namespace ns_module
 		std::map<std::string, std::string> mapPar; // 参数
 	};
 
+	struct MODULE_COORD_MOVE
+	{
+		string AxisType;
+		double pos;
+	};
+
+	// 枚举定义:料盒的状态
+	enum BoxStatus {
+		Idle,       // 空闲
+		Occupied,   // 已占用
+	};
+
+	typedef struct
+	{
+		int iCurrLayers;                //当前工作层
+		int iLayersTotal;               //总层数
+		int iTopLev;                    //最上层高度
+		int iBottomLev;                 //最下层高度
+		XY_DOUBLE_STRUCT stPos;         //料盒位置;
+		int iStatas[32];                //每层状态,0表示空,1表示有料。
+		int iLength;                    //料盒长度
+		int iLeight;                    //料盒高度
+		int iWall;                      //侧壁厚
+		int iTopWall;                   //上壁厚
+		int iBelowWall;                 //下壁厚
+	}MATERIAL_BOX_STRUCT;
+
+	enum NOZZLE_STATUS {
+		NOZZLE_EXIST,/*存在*/
+		NOZZLE_NO_EXIST,/*不存在*/
+		NOZZLE_DISABLE,/*不可用*/
+	};
+
+	typedef struct
+	{
+		int nRow;								    //矩阵中所在行
+		int nCol;								    //矩阵中所在列
+		int iIndex;								    //所在点ID
+		NOZZLE_STATUS eStatus;					    //状态
+		XY_DOUBLE_STRUCT stPosition;				//程序设置的位置
+	} NOZZLE_TABLE_MATRIX_INFO_STRUCT;
+
 	class __declspec(dllexport) CViewInterface
 	{
 	public:
@@ -156,6 +198,9 @@ namespace ns_module
 		//移动轴
 		long ModuleMove(string ModuleType, string AxisType, double pos);
 		long ModuleMoveTo(string ModuleType, string AxisType, double pos);
+		long ModuleMove(string ModuleType, std::vector<MODULE_COORD_MOVE> vecPos);
+		long ModuleMoveTo(string ModuleType, std::vector<MODULE_COORD_MOVE> vecPos);
+		
 		//获取轴实时位置
 		long GetAxisPosition(string ModuleType, string AxisType, double& pos);
 
@@ -307,6 +352,42 @@ namespace ns_module
 
 #pragma endregion
 
+#pragma region 料盒类
+		/// <summary>
+		/// 获取所有料盒信息
+		/// </summary>
+		/// <param name="stPointInfo">晶圆信息</param>
+		/// <returns>成功返回0,否则返回错误码</returns>
+		long GetMaterialBoxAllPointInfo(vector<MATERIAL_BOX_STRUCT>& stPointInfo);
+
+		/// <summary>
+		/// 移动到指定的层
+		/// </summary>
+		/// <param name="iLayers"></param>
+		/// <returns>成功返回0,否则返回错误码</returns>
+		long MoveMaterialBoxToiLayers(int iLayers);
+
+
+
+#pragma endregion
+
+#pragma region 吸嘴库
+		/// <summary>
+		/// 获取吸嘴库信息
+		/// </summary>
+		/// <param name="stPointInfo">晶圆信息</param>
+		/// <returns>成功返回0,否则返回错误码</returns>
+		long GetNozzleTableAllPointInfo(vector<NOZZLE_TABLE_MATRIX_INFO_STRUCT>& stPointInfo);
+
+		/// <summary>
+		/// 移动到指定的点
+		/// </summary>
+		/// <param name="iIndex"></param>
+		/// <returns>成功返回0,否则返回错误码</returns>
+		long MoveNozzleTableToPoint(int iIndex);
+
+#pragma endregion
+
 #pragma endregion
 	};
 

+ 2 - 0
Output/inc/Module/CCalibrationConfig.h

@@ -47,6 +47,8 @@ namespace ns_db
 		LONG SaveDB() override;
 		LONG LoadDB() override;
 
+		static std::mutex m_mutex;
+
 
 #pragma region XYCALIB
 	private:

+ 1 - 1
Output/inc/Module/CCameraManage.h

@@ -21,7 +21,7 @@ public:
 	static void releaseInstance();
 	CCameraBase* GetCamera(INT iCameraId);
 	long GetCameraList(vector<CameraInfo>& vecCamera);
-
+	void CloseAllCamera();
 private:
 	static CCameraManage* m_pCameraManage;
 

+ 2 - 0
Output/inc/Module/CLookUpCalib.h

@@ -144,6 +144,8 @@ public:
 
     LONG MoveToHeadCalibPos();
 
+    void CalibTest();
+
 private:
     void DataChangNotice(string strDbName, string strTableName);
 

+ 5 - 3
Output/inc/Module/CMachineCalibration.h

@@ -120,10 +120,12 @@ namespace ns_db
         double dB = 0;
         double dGivenForceZPos = 0;//压合距离,用于判断接触
         std::string sCurrentPts = "";
-        std::string sForceResults = "";
-        vector<POINTF> vetPts;   //POINTF的x为力或电流
+        std::string sCurrentForceResults = "";
+        std::string sSpringPts = "";
+        std::string sSpringForceResults = "";
+        vector<POINTF> vetCurrentPts;   //POINTF的x为电流,y为力
         double dGivenCurrent = 0;//压合距离,用于判断接触
-        vector<POINTF> vetForcePos;   //POINTF的x为力或电流
+        vector<POINTF> vetSpringPts;   //POINTF的x弹簧压合位置,y 为力
 
         double dFTestSearchPosZ = 0;//力控测试搜索位置
         double dTestPosX = 0;

+ 4 - 1
Output/inc/Module/CResources.h

@@ -11,6 +11,7 @@
 #include "CBondMatrix.h"
 #include "CPRStrategy.h"
 #include "CWaferMatrix.h"
+#include "CWafflePackMatrix.h"
 
 using namespace std;
 using namespace ns_mat;
@@ -62,7 +63,8 @@ public:
 	//点位数据,
 	CBondMatrix* GetBondMatrix();
 	CWaferMatrix* GetWaferMatrix();
-	
+	CWafflePackMatrix* GetWafflePackMatrix();
+
 	//PR,视觉库存模板,只需将模块使用模板和PRID对应起来。
 	CPRStrategy* GetPRStrategyByID(int ModuleID);
 
@@ -86,6 +88,7 @@ private:
 	//Bond的点位矩阵
 	CBondMatrix* m_pBondMatrix = nullptr;
 	CWaferMatrix* m_pWaferMatrix = nullptr;
+	CWafflePackMatrix* m_pWafflePackMatrix = nullptr;
 
 	//点位数据1、多个华夫盒对象,每个华夫盒对应一套点位数据    2、固晶那里也对应点位数据
 	std::map<int, CBondMatrix*> m_mapPositionInfo;//Key为ID

+ 4 - 1
Output/inc/Module/JAxis.h

@@ -247,9 +247,12 @@ public:
 
 
     //设置SDO值
-    virtual int SetSDOValue(long nSlave,unsigned short nIndex,unsigned short nSubIndex,
+    virtual int SetSDOValue(unsigned short nIndex,unsigned short nSubIndex,
                             unsigned char* nData,unsigned long DataLen,unsigned long nTime) = 0;
 
+    //设置PDO的值
+    virtual int SetPDOValue(unsigned short nByteOffset,unsigned short nSize,unsigned long lValue) = 0;
+
     //设置到位误差及整定时间
     virtual int  SetArrivalBand(double dErrorBand, double dSettingTime) = 0;
 

二進制
Output/lib/x64/Common.lib


二進制
Output/lib/x64/Control.lib


二進制
Output/lib/x64/JSMotion.lib


二進制
Output/lib/x64/Module.lib


+ 11 - 0
View/die-bonder-ui/Src/ManageBind/JManageMode.cpp

@@ -0,0 +1,11 @@
+//#include "JManageMode.h"
+//
+//JManageMode::JManageMode()
+//{
+//
+//}
+//
+//JManageMode::~JManageMode()
+//{
+//
+//}

+ 67 - 0
View/die-bonder-ui/Src/ManageBind/JManageMode.h

@@ -0,0 +1,67 @@
+//// *****************************************************************************
+//// 版权所有(C)2023~2099 上海骄成超声波技术有限公司
+//// 保留所有权利
+//// *****************************************************************************
+//// 作者 : 杨坚
+//// 版本 : 1.0
+//// 功能说明:
+////          管理模式
+//// *****************************************************************************
+//
+//#ifndef __JMANAGEMODE_H__
+//#define __JMANAGEMODE_H__ 1
+//
+//#include <string>
+//#include <vector>
+//
+//// 中介者接口
+//class ChatRoomMediator;
+//
+//// 抽象用户类
+//class User {
+//protected:
+//    ChatRoomMediator* mediator;
+//    std::string name;
+//public:
+//    User(ChatRoomMediator* mediator, const std::string& name) : mediator(mediator), name(name) {}
+//
+//    virtual void send(const std::string& message) = 0;  // 发送消息
+//    virtual void receive(const std::string& message) = 0; // 接收消息
+//
+//    std::string getName() const { return name; }
+//};
+//
+//// 中介者接口。实现函数
+//class ChatRoomMediator {
+//public:
+//    // 那个相机,那个页面,数据转换
+//    // 画面移动,鼠标转发
+//    virtual void sendMessage(const std::string& message, User* user) = 0;
+//    virtual void addUser(User* user) = 0;
+//};
+//
+//
+//class JManageMode : public ChatRoomMediator
+//{
+//private:
+//    std::vector<User*> users;  // 用户列表
+//public:
+//    void sendMessage(const std::string& message, User* user) override 
+//    {
+//        for (User* u : users) 
+//        {
+//            // 不发送给发送者自身
+//            if (u != user)
+//            {
+//                u->receive(message);
+//            }
+//        }
+//    }
+//
+//    void addUser(User* user) override 
+//    {
+//        users.push_back(user);
+//    }
+//};
+//
+//#endif  //__JMANAGEMODE_H__