Machine Interface Utility:VER1.0
This commit is contained in:
@@ -0,0 +1,238 @@
|
||||
#include "StdAfx.h"
|
||||
#include <WinDef.h>
|
||||
#include <WinBase.h>
|
||||
#include "..\Keyence\LkIF.h"
|
||||
#include "So7_Interface.h "
|
||||
|
||||
#define MAX_STORAGE_DATA_SIZE 65536
|
||||
|
||||
CSo7_Interface::CSo7_Interface()
|
||||
{
|
||||
m_bIsStorage=FALSE;
|
||||
m_iSetOutNo=0;
|
||||
m_StoredDataNumber=0;
|
||||
m_NeedStorageDataNumber=0;
|
||||
|
||||
}
|
||||
|
||||
CSo7_Interface::~CSo7_Interface()
|
||||
{
|
||||
FreeLibrary(m_hImageDLL);
|
||||
}
|
||||
//========================================
|
||||
void CSo7_Interface::KeyenceLaserInit(void)
|
||||
{
|
||||
m_hImageDLL=LoadLibrary(_T("Image.dll"));
|
||||
if(m_hImageDLL)
|
||||
{
|
||||
m_pGetCalcData=(pLKIF_GetCalcData)GetProcAddress(m_hImageDLL,"LKIF_GetCalcData");
|
||||
m_pDataStorageStart=(pLKIF_DataStorageStart)GetProcAddress(m_hImageDLL,"LKIF_DataStorageStart");
|
||||
m_pDataStorageStop=(pLKIF_DataStorageStop)GetProcAddress(m_hImageDLL,"LKIF_DataStorageStop");
|
||||
m_pDataStorageInit=(pLKIF_DataStorageInit)GetProcAddress(m_hImageDLL,"LKIF_DataStorageInit");
|
||||
m_pDataStorageGetData=(pLKIF_DataStorageGetData)GetProcAddress(m_hImageDLL,"LKIF_DataStorageGetData");
|
||||
m_pDataStorageGetStatus=(pLKIF_DataStorageGetStatus)GetProcAddress(m_hImageDLL,"LKIF_DataStorageGetStatus");
|
||||
m_pSetDataStorage=(pLKIF_SetDataStorage)GetProcAddress(m_hImageDLL,"LKIF_SetDataStorage");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//==============================================
|
||||
void CSo7_Interface::Get_KeyenceLaserData(float *LaserValue1,float *LaserValue2)
|
||||
{
|
||||
*LaserValue1=10;
|
||||
*LaserValue2=10;
|
||||
LKIF_FLOATVALUE GetVal1,GetVal2;
|
||||
if(m_pGetCalcData(&GetVal1,&GetVal2)!=1)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
switch(GetVal1.FloatResult)
|
||||
{
|
||||
case LKIF_FLOATRESULT_RANGEOVER_P:
|
||||
{
|
||||
*LaserValue1=50;
|
||||
break;
|
||||
}
|
||||
case LKIF_FLOATRESULT_RANGEOVER_N:
|
||||
{
|
||||
*LaserValue1=-50;
|
||||
break;
|
||||
}
|
||||
case LKIF_FLOATRESULT_WAITING:
|
||||
{
|
||||
*LaserValue1=0;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
*LaserValue1=GetVal1.Value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch(GetVal2.FloatResult)
|
||||
{
|
||||
case LKIF_FLOATRESULT_RANGEOVER_P:
|
||||
{
|
||||
*LaserValue2=50;
|
||||
break;
|
||||
}
|
||||
case LKIF_FLOATRESULT_RANGEOVER_N:
|
||||
{
|
||||
*LaserValue2=-50;
|
||||
break;
|
||||
}
|
||||
case LKIF_FLOATRESULT_WAITING:
|
||||
{
|
||||
*LaserValue2=0;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
*LaserValue2=GetVal2.Value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================
|
||||
BOOL CSo7_Interface::StartStoreData(int _NeedStorageDataNumber,int _SampleTime)
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
GetStoreDataStatus();
|
||||
if (!m_bIsStorage)
|
||||
{
|
||||
bStatus=m_pDataStorageInit();
|
||||
if (_NeedStorageDataNumber<1)
|
||||
{
|
||||
_NeedStorageDataNumber=1;
|
||||
}
|
||||
else if (_NeedStorageDataNumber>65536)
|
||||
{
|
||||
_NeedStorageDataNumber=65536;
|
||||
}
|
||||
m_NeedStorageDataNumber=_NeedStorageDataNumber;
|
||||
|
||||
if (_SampleTime<0.4)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_1;
|
||||
}
|
||||
else if (_SampleTime<1)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_2;
|
||||
}
|
||||
else if (_SampleTime<2)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_5;
|
||||
}
|
||||
else if (_SampleTime<4)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_10;
|
||||
}
|
||||
else if (_SampleTime<10)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_20;
|
||||
}
|
||||
else if (_SampleTime<20)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_50;
|
||||
}
|
||||
else if (_SampleTime<40)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_100;
|
||||
}
|
||||
else if (_SampleTime<100)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_200;
|
||||
}
|
||||
else if (_SampleTime<200)
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_500;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_StorageCycle=LKIF_STORAGECYCLE_1000;
|
||||
}
|
||||
bStatus=m_pSetDataStorage(LKIF_TARGETOUT_OUT1,m_NeedStorageDataNumber,m_StorageCycle);
|
||||
|
||||
if (bStatus)
|
||||
{
|
||||
bStatus=m_pDataStorageStart();
|
||||
}
|
||||
}
|
||||
return bStatus;
|
||||
};
|
||||
//==============================================
|
||||
BOOL CSo7_Interface::StopStoreData()
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
GetStoreDataStatus();
|
||||
if (m_bIsStorage)
|
||||
{
|
||||
bStatus=m_pDataStorageStop();
|
||||
}
|
||||
return bStatus;
|
||||
};
|
||||
//==============================================
|
||||
BOOL CSo7_Interface::PauseScanAndGetData(float *GetStorageData,int *GetStorageNumber)
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
GetStoreDataStatus();
|
||||
if (m_bIsStorage)
|
||||
{
|
||||
bStatus=m_pDataStorageStop();
|
||||
bStatus=GetStoredData(GetStorageData,GetStorageNumber);
|
||||
bStatus=m_pDataStorageStart();
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus=GetStoredData(GetStorageData,GetStorageNumber);
|
||||
}
|
||||
return bStatus;
|
||||
};
|
||||
//==============================================
|
||||
BOOL CSo7_Interface::GetStoredData(float *GetStorageData,int *GetStorageNumber)
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
GetStoreDataStatus();
|
||||
if (!m_bIsStorage)
|
||||
{
|
||||
LKIF_FLOATVALUE GetStorageValue[MAX_STORAGE_DATA_SIZE];
|
||||
bStatus=m_pDataStorageGetData(m_iSetOutNo,m_StoredDataNumber,GetStorageValue,GetStorageNumber);
|
||||
for(int i=0;i<*GetStorageNumber;i++)
|
||||
{
|
||||
switch(GetStorageValue[i].FloatResult)
|
||||
{
|
||||
case LKIF_FLOATRESULT_RANGEOVER_P:
|
||||
{
|
||||
*GetStorageData++=50;
|
||||
break;
|
||||
}
|
||||
case LKIF_FLOATRESULT_RANGEOVER_N:
|
||||
{
|
||||
*GetStorageData++=-50;
|
||||
break;
|
||||
}
|
||||
case LKIF_FLOATRESULT_WAITING:
|
||||
{
|
||||
*GetStorageData++=0;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
*GetStorageData++=GetStorageValue[i].Value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return bStatus;
|
||||
};
|
||||
//==============================================
|
||||
BOOL CSo7_Interface::GetStoreDataStatus()
|
||||
{
|
||||
BOOL bStatus(FALSE);
|
||||
bStatus=m_pDataStorageGetStatus(m_iSetOutNo,&m_bIsStorage,&m_StoredDataNumber);
|
||||
return bStatus;
|
||||
};
|
||||
Reference in New Issue
Block a user