Files
EF3-Interface/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LKIF2.h
T
2013-05-10 17:26:57 +08:00

301 lines
13 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#ifdef LKIF2_EXPORTS
#define EXP __declspec(dllexport)
#else
#define EXP __declspec(dllimport)
#endif
#include "LKIFCommonDefine.h"
#include "Winsock2.h"
// リターンコード
typedef enum {
RC_OK = 0x0000, // 正常終了
///////////////////////////////////////////////
// コントローラからの通信エラー通知
//
RC_NAK_COMMAND = 0x1001, // コマンドエラー
RC_NAK_COMMAND_LENGTH, // コマンド長エラー
RC_NAK_TIMEOUT, // タイムアウト
RC_NAK_CHECKSUM, // チェックサムエラー
RC_NAK_INVALID_STATE, // 状態エラー
RC_NAK_OTHER, // その他エラー
RC_NAK_PARAMETER, // パラメータエラー
RC_NAK_OUT_STAGE, // OUT演算段数エラー
RC_NAK_OUT_HEAD_NUM, // 使用ヘッド数、OUT数オーバー
RC_NAK_OUT_INVALID_CALC, // 演算対象に指定できないOUTを指定
RC_NAK_OUT_VOID, // 演算対象に指定されているOUTが無い
RC_NAK_INVALID_CYCLE, // 使用できないサンプリング周期
RC_NAK_CTRL_ERROR, // メインユニット異常
RC_NAK_SRAM_ERROR, // 設定値異常
///////////////////////////////////////////////
// 通信DLLのエラー通知
//
RC_ERR_OPEN_DEVICE = 0x2000,// デバイスのオープンに失敗
RC_ERR_NO_DEVICE, // デバイスがオープンされていない
RC_ERR_SEND, // コマンド送信エラー
RC_ERR_RECEIVE, // レスポンス受信エラー
RC_ERR_TIMEOUT, // タイムアウト
RC_ERR_NODATA, // データなし
RC_ERR_NOMEMORY, // 空きメモリなし
RC_ERR_DISCONNECT, // 断線の可能性あり
RC_ERR_UNKNOWN, // 未定義エラー
} RC;
// 測定値
typedef struct {
int OutNo; // OUT番号(011)
LKIF_FLOATRESULT FloatResult; // 有効データかどうか
float Value; // 測定値
} LKIF_FLOATVALUE_OUT;
// IPアドレス
typedef struct {
IN_ADDR IPAddress;
} LKIF_OPENPARAM_ETHERNET;
extern "C"
{
///////////////////////////////////////////////
// 測定制御コマンド
//
// 測定値出力(単一)
EXP RC WINAPI LKIF2_GetCalcDataSingle(IN int OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData);
// 測定値出力(複数)
EXP RC WINAPI LKIF2_GetCalcDataMulti(IN LKIF_OUTNO OutNo, OUT LKIF_FLOATVALUE_OUT * CalcData);
// 測定値出力(ALL)
EXP RC WINAPI LKIF2_GetCalcDataALL(OUT int * OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData);
// タイミングON/OFF(単一)
EXP RC WINAPI LKIF2_SetTimingSingle(IN int OutNo,IN BOOL OnOff);
// タイミングON/OFF(複数)
EXP RC WINAPI LKIF2_SetTimingMulti(IN LKIF_OUTNO OutNo,IN BOOL OnOff);
// タイミングON/OFF(同期)
EXP RC WINAPI LKIF2_SetTimingSync(IN BOOL OnOff);
// オートゼロON/OFF(単一)
EXP RC WINAPI LKIF2_SetZeroSingle(IN int OutNo,IN BOOL OnOff);
// オートゼロON/OFF(複数)
EXP RC WINAPI LKIF2_SetZeroMulti(IN LKIF_OUTNO OutNo, IN BOOL OnOff);
// オートゼロON/OFF(同期)
EXP RC WINAPI LKIF2_SetZeroSync(IN BOOL OnOff);
// 測定値リセット(単一)
EXP RC WINAPI LKIF2_SetResetSingle(IN int OutNo);
// 測定値リセット(複数)
EXP RC WINAPI LKIF2_SetResetMulti(IN LKIF_OUTNO OutNo);
// 測定値リセット(同期)
EXP RC WINAPI LKIF2_SetResetSync();
// パネルロック
EXP RC WINAPI LKIF2_SetPanelLock(IN BOOL OnOff);
// プログラム切替
EXP RC WINAPI LKIF2_SetProgramNo(IN int ProgramNo);
// プログラム確認
EXP RC WINAPI LKIF2_GetProgramNo(OUT int * ProgramNo);
// データストレージ開始
EXP RC WINAPI LKIF2_DataStorageStart();
// データストレージ停止
EXP RC WINAPI LKIF2_DataStorageStop();
// データストレージ出力
EXP RC WINAPI LKIF2_DataStorageGetData(IN int OutNo,IN int NumOfBuffer,OUT LKIF_FLOATVALUE * OutBuffer,OUT int *NumReceived);
// データストレージ初期化
EXP RC WINAPI LKIF2_DataStorageInit();
// データストレージ蓄積状態出力
EXP RC WINAPI LKIF2_DataStorageGetStatus(OUT BOOL * lsStorage,OUT int * NumStorageData);
// 受光波形取得
EXP RC WINAPI LKIF2_GetLight(IN int HeadNo,IN int PeakNo,OUT int * MeasurePosition,OUT BYTE * WaveData);
///////////////////////////////////////////////
// 設定内容変更コマンド
//
// 表示パネル切り替え
EXP RC WINAPI LKIF2_SetPanel(IN int UpperDisp,IN int LowerDisp);
// 公差設定
EXP RC WINAPI LKIF2_SetTolerance(IN int OutNo,IN int UpperLimit,IN int LowerLimit,IN int Hystersys);
// ABLE設定
EXP RC WINAPI LKIF2_SetAbleMode(IN int HeadNo,IN LKIF_ABLEMODE AbleMode);
// ABLE制御範囲設定
EXP RC WINAPI LKIF2_SetAbleMinMax(IN int HeadNo,IN int Min,IN int Max);
// 測定モード設定
EXP RC WINAPI LKIF2_SetMeasureMode(IN int HeadNo,IN LKIF_MEASUREMODE MeasureMode);
// 基点キテン設定
EXP RC WINAPI LKIF2_SetBasicPoint(IN int HeadNo,IN LKIF_BASICPOINT BasicPoint);
// アラーム処理回数設定
EXP RC WINAPI LKIF2_SetNumAlarm(IN int HeadNo,IN int AlarmNum);
// アラーム復帰回数設定
EXP RC WINAPI LKIF2_SetNumRecovery(IN int HeadNo,IN int RecoveryNum);
// アラームレベル設定
EXP RC WINAPI LKIF2_SetAlarmLevel(IN int HeadNo,IN int AlarmLevel);
// ABLEチューニング開始
EXP RC WINAPI LKIF2_AbleStart(IN int HeadNo);
// ABLEチューニング終了
EXP RC WINAPI LKIF2_AbleStop();
// ABLEチューニング中止
EXP RC WINAPI LKIF2_AbleCancel();
// 設置モード設定
EXP RC WINAPI LKIF2_SetReflectionMode(IN int HeadNo,IN LKIF_REFLECTIONMODE ReflectionMode);
// マスク設定
EXP RC WINAPI LKIF2_SetMask(IN int HeadNo,IN BOOL OnOff,IN int Pos1,IN int Pos2);
// メディアン設定
EXP RC WINAPI LKIF2_SetMedian(IN int HeadNo,IN LKIF_MEDIAN Median);
// LASER CTRLグループ設定
EXP RC WINAPI LKIF2_SetLaserCtrlGroup(IN int HeadNo,IN LKIF_LASER_CTRL_GROUP LaserCtrlGroup);
// レンジ設定
EXP RC WINAPI LKIF2_SetRange(IN int HeadNo,IN LKIF_RANGE Range);
// 相互干渉グループ設定
EXP RC WINAPI LKIF2_SetMutualInterferencePreventionGroup(IN int HeadNo,IN LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP Group);
// 演算方式設定
EXP RC WINAPI LKIF2_SetCalcMethod(IN int OutNo,IN LKIF_CALCMETHOD CalcMethod,IN int HeadOutNo);
// 測定面設定
EXP RC WINAPI LKIF2_SetCalcTarget(IN int OutNo,IN LKIF_CALCTARGET CalcTarget);
// 演算対象設定(加減算)
EXP RC WINAPI LKIF2_SetOutAddSub(IN int OutNo,IN int AddSub1,IN int AddSub2);
// 演算対象設定(AVE/MAX/MIN/P-P)
EXP RC WINAPI LKIF2_SetOutOperation(IN int OutNo,IN LKIF_OUTNO IN TargetOut);
// スケーリング設定
EXP RC WINAPI LKIF2_SetScaling(IN int OutNo,IN int InputValue1,IN int OutputValue1,IN int InputValue2,IN int OutputValue2);
// フィルタ設定
EXP RC WINAPI LKIF2_SetFilter(IN int OutNo,IN LKIF_FILTERMODE FilterMode,IN LKIF_FILTERPARA FilterPara);
// トリガモード設定
EXP RC WINAPI LKIF2_SetTriggerMode(IN int OutNo,IN LKIF_TRIGGERMODE TriggerMode);
// オフセット設定
EXP RC WINAPI LKIF2_SetOffset(IN int OutNo,IN int Offset);
/// 計測モード設定
EXP RC WINAPI LKIF2_SetCalcMode(IN int OutNo,IN LKIF_CALCMODE CalcMode);
/// アナログ出力スケーリング設定
EXP RC WINAPI LKIF2_SetAnalogScaling(IN int OutNo,IN int InputValue1,IN int OutputVoltage1,IN int InputValue2,IN int OutputVoltage2);
/// 最小表示単位設定
EXP RC WINAPI LKIF2_SetDisplayUnit(IN int OutNo,IN LKIF_DISPLAYUNIT DisplayUnit);
/// 測定種別設定
EXP RC WINAPI LKIF2_SetMeasureType(IN int OutNo,IN LKIF_MEASURETYPE MeasureType);
/// 同期設定
EXP RC WINAPI LKIF2_SetSynchronization(IN int OutNo,IN BOOL OnOff);
/// ストレージ蓄積対象設定
EXP RC WINAPI LKIF2_SetStorageTarget(IN int OutNo,IN BOOL OnOff);
/// サンプリング周期設定
EXP RC WINAPI LKIF2_SetSamplingCycle(IN LKIF2_SAMPLINGCYCLE SamplingCycle);
/// 相互干渉防止設定
EXP RC WINAPI LKIF2_SetMutualInterferencePrevention(IN LKIF_MUTUAL_INTERFERENCE_PREVENTION OnOff);
/// 判定出力形態設定
EXP RC WINAPI LKIF2_SetToleranceComparatorOutputFormat(IN LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT OutputFormat);
/// ストローブ時間設定
EXP RC WINAPI LKIF2_SetStrobeTime(IN LKIF_STOROBETIME StrobeTime);
/// データストレージ設定
EXP RC WINAPI LKIF2_SetDataStorage(IN int NumStorage,IN LKIF_STORAGECYCLE StorageCycle);
/// アナログ出力ch設定
EXP RC WINAPI LKIF2_SetAnalogChannel(IN int ChNo,IN int OutNo);
/// アラーム出力形態設定
EXP RC WINAPI LKIF2_SetAlarmOutputForm(IN LKIF_ALARM_OUTPUT_FORM AlarmOutputForm);
/// 使用ヘッド数設定
EXP RC WINAPI LKIF2_SetNumOfUsedHeads(IN int NumOfUsedHeads);
/// 使用OUT数設定
EXP RC WINAPI LKIF2_SetNumOfUsedOut(IN int NumOfUsedOut);
/// 使用アナログ出力ch数設定
EXP RC WINAPI LKIF2_SetNumOfUsedAnalogCh(IN int NumOfUsedAnalogCh);
///////////////////////////////////////////////
// 設定内容変更コマンド
//
// 表示パネル画面確認
EXP RC WINAPI LKIF2_GetPanel(OUT int * UpperDisp,OUT int * LowerDisp);
// 公差取得
EXP RC WINAPI LKIF2_GetTolerance(IN int OutNo,OUT int * UpperLimit,OUT int * LowerLimit,OUT int * Hysteresis);
// ABLE取得
EXP RC WINAPI LKIF2_GetAbleMode(IN int HeadNo,OUT LKIF_ABLEMODE * AbleMode);
// ABLE制御範囲取得
EXP RC WINAPI LKIF2_GetAbleMinMax(IN int HeadNo,OUT int * Min,OUT int * Max);
// 測定モード取得
EXP RC WINAPI LKIF2_GetMeasureMode(IN int HeadNo,OUT LKIF_MEASUREMODE * MeasureMode);
// 基点取得
EXP RC WINAPI LKIF2_GetBasicPoint(IN int HeadNo,OUT LKIF_BASICPOINT * BasicPoint);
// アラーム処理回数取得
EXP RC WINAPI LKIF2_GetNumAlarm(IN int HeadNo,OUT int * AlarmNum);
// アラーム復帰回数取得
EXP RC WINAPI LKIF2_GetNumRecovery(IN int HeadNo,OUT int * RecoveryNum);
// アラームレベル取得
EXP RC WINAPI LKIF2_GetAlarmLevel(IN int HeadNo,OUT int * AlarmLevel);
// 設置モード取得
EXP RC WINAPI LKIF2_GetReflectionMode(IN int HeadNo,OUT LKIF_REFLECTIONMODE * ReflectionMode);
// マスク取得
EXP RC WINAPI LKIF2_GetMask(IN int HeadNo,OUT BOOL * OnOff,OUT int * Pos1,OUT int * Pos2);
// メディアン取得
EXP RC WINAPI LKIF2_GetMedian(IN int HeadNo,OUT LKIF_MEDIAN * Median);
// LASER CTRLグループ取得
EXP RC WINAPI LKIF2_GetLaserCtrlGroup(IN int HeadNo,OUT LKIF_LASER_CTRL_GROUP * LaserCtrlGroup);
// レンジ取得
EXP RC WINAPI LKIF2_GetRange(IN int HeadNo,OUT LKIF_RANGE * Range);
// 相互干渉グループ取得
EXP RC WINAPI LKIF2_GetMutualInterferencePreventionGroup(IN int HeadNo,OUT LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP * Group);
// 演算方式取得
EXP RC WINAPI LKIF2_GetCalcMethod(IN int OutNo,OUT LKIF_CALCMETHOD * CalcMethod,OUT int * HeadOutNo);
// 測定面取得
EXP RC WINAPI LKIF2_GetCalcTarget(IN int OutNo,OUT LKIF_CALCTARGET * CalcTarget);
// 演算対象取得(加減算)
EXP RC WINAPI LKIF2_GetOutAddSub(IN int OutNo,OUT int * AddSub1,OUT int * AddSub2);
// 演算対象取得(AVE/P-P/MAX/MIN)
EXP RC WINAPI LKIF2_GetOutOperation(IN int OutNo,OUT LKIF_OUTNO * TargetOut);
// スケーリング取得
EXP RC WINAPI LKIF2_GetScaling(IN int OutNo,OUT int * InputValue1,OUT int * OutputValue1,OUT int * InputValue2,OUT int * OutputValue2);
// フィルタモード取得
EXP RC WINAPI LKIF2_GetFilter(IN int OutNo,OUT LKIF_FILTERMODE * FilterMode,OUT LKIF_FILTERPARA * FilterPara);
// トリガモード取得
EXP RC WINAPI LKIF2_GetTriggerMode(IN int OutNo,OUT LKIF_TRIGGERMODE * TriggerMode);
// オフセット取得
EXP RC WINAPI LKIF2_GetOffset(IN int OutNo,OUT int * Offset);
// 計測モード取得
EXP RC WINAPI LKIF2_GetCalcMode(IN int OutNo,OUT LKIF_CALCMODE * CalcMode);
// アナログ出力スケーリング取得
EXP RC WINAPI LKIF2_GetAnalogScaling(IN int OutNo,OUT int * InputValue1,OUT int * OutputVoltage1,OUT int * InputValue2,OUT int * OutputVoltage2);
// 最小表示単位取得
EXP RC WINAPI LKIF2_GetDisplayUnit(IN int OutNo,OUT LKIF_DISPLAYUNIT * DisplayUnit);
// 測定種別取得
EXP RC WINAPI LKIF2_GetMeasureType(IN int OutNo,OUT LKIF_MEASURETYPE * MeasureType);
// 同期取得
EXP RC WINAPI LKIF2_GetSynchronization(IN int OutNo,OUT BOOL * OnOff);
// ストレージ蓄積対象取得
EXP RC WINAPI LKIF2_GetStorageTarget(IN int OutNo,OUT BOOL * OnOff);
// サンプリング周期取得
EXP RC WINAPI LKIF2_GetSamplingCycle(OUT LKIF2_SAMPLINGCYCLE * SamplingCycle);
// 相互干渉防止取得
EXP RC WINAPI LKIF2_GetMutualInterferencePrevention(OUT LKIF_MUTUAL_INTERFERENCE_PREVENTION * OnOff);
// 判定出力形態取得
EXP RC WINAPI LKIF2_GetToleranceComparatorOutputFormat(OUT LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT * OutputFormat);
// ストローブ時間取得
EXP RC WINAPI LKIF2_GetStrobeTime(OUT LKIF_STOROBETIME * StrobeTime);
// データストレージ取得
EXP RC WINAPI LKIF2_GetDataStorage(OUT int * NumStorage,OUT LKIF_STORAGECYCLE * StorageCycle);
// アナログ出力ch取得
EXP RC WINAPI LKIF2_GetAnalogChannel(IN int ChNo,OUT int * OutNo);
// アラーム出力形態取得
EXP RC WINAPI LKIF2_GetAlarmOutputForm(OUT LKIF_ALARM_OUTPUT_FORM * AlarmOutputForm);
// 使用ヘッド数取得
EXP RC WINAPI LKIF2_GetNumOfUsedHeads(OUT int * NumOfUsedHeads);
// 使用Out数取得
EXP RC WINAPI LKIF2_GetNumOfUsedOut(OUT int * NumOfUsedOut);
// 使用アナログ出力Ch数取得
EXP RC WINAPI LKIF2_GetNumOfUsedAnalogCh(OUT int * NumOfUsedAnalogCh);
///////////////////////////////////////////////
// モード変更コマンド
//
// 測定開始(モード切替)
EXP RC WINAPI LKIF2_StartMeasure();
// 測定停止(モード切替)
EXP RC WINAPI LKIF2_StopMeasure();
///////////////////////////////////////////////
// その他のコマンド
//
// USBデバイスオープン
EXP RC WINAPI LKIF2_OpenDeviceUsb();
/// Ethernetデバイスオープン
EXP RC WINAPI LKIF2_OpenDeviceETHER(LKIF_OPENPARAM_ETHERNET * OpenParam);
/// デバイスクローズ
EXP RC WINAPI LKIF2_CloseDevice();
}