182 lines
9.3 KiB
C#
182 lines
9.3 KiB
C#
/****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** File Name
|
|
** ---------
|
|
**
|
|
** AXP.CS
|
|
**
|
|
** COPYRIGHT (c) AJINEXTEK Co., LTD
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** Description
|
|
** -----------
|
|
** Ajinextek Macro Library Header File
|
|
**
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** Source Change Indices
|
|
** ---------------------
|
|
**
|
|
** (None)
|
|
**
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** Website
|
|
** ---------------------
|
|
**
|
|
** http://www.ajinextek.com
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
*/
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
public class CAXP
|
|
{
|
|
// 지정된 매크로에 노드 등록을 시작한다.
|
|
// lMacroNo : 0 ~ 7
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroBeginNode(int nMacroNo);
|
|
// 지정된 매크로에 노드 등록을 종료한다.
|
|
// lMacroNo : 0 ~ 7
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroEndNode(int nMacroNo);
|
|
// 지정된 매크로에 등록된 노드들을 모두 삭제한다.
|
|
// lMacroNo : 등록된 노드들을 모두 삭제 할 매크로 번호를 지정
|
|
// [-1] : -1일 경우 모든 매크로에 등록된 노드들을 모두 삭제한다.
|
|
// [0 ~ 7] : 지정한 매크로에 등록된 노드들을 모두 삭제한다.
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroWriteClear(int nMacroNo);
|
|
|
|
// 지정된 매크로에 노드를 등록한다.
|
|
// lMacroNo : 0 ~ 7
|
|
// uFunction : 매크로에 등록한 함수를 지정한다.{ MACRO_FUNCTION }
|
|
// [0] MACRO_FUNC_CALL : 다른 매크로를 호출한다.(호출된 매크로가 종료되거나 RETURN하면 다시 돌아옴)
|
|
// [1] MACRO_FUNC_JUMP : 다른 매크로나 노드로 점프한다. (JUMP위치로 되돌아오지 않음)
|
|
// [2] MACRO_FUNC_RETURN : 호출한 매크로로 되돌아감
|
|
// [3] MACRO_FUNC_REPEAT : 현재 위치에서 지정한 노드사이를 설정한 횟수만큼 반복구동함
|
|
// [4] MACRO_FUNC_SET_OUTPUT : Digital Output, Analog Output을 출력함
|
|
// [5] MACRO_FUNC_WAIT : 지정한 시간만큼 대기함
|
|
// [6] MACRO_FUNC_STOP : 매크로 구동을 정지함
|
|
// dpArg[16] : 지정한 Function에 대한 인자 배열
|
|
// ※ 주의점 : 배열의 개수는 반드시 16개로 해야 됨
|
|
// [0] MACRO_FUNC_CALL
|
|
// dArg[0] Macro 번호
|
|
// [1] MACRO_FUNC_JUMP
|
|
// dArg[0] Jump Type : [0] MACRO_JUMP_MACRO, [1] MACRO_JUMP_NODE
|
|
// dArg[1] 매크로번호 or 노드번호
|
|
// [2] MACRO_FUNC_RETURN : 인자 없음
|
|
// [3] MACRO_FUNC_REPEAT : 반복구동 지정
|
|
// dArg[0] 반복할 회수
|
|
// dArg[1] 현재 위치에서 반복할 노드 번호(현재 노드의 번호보다 낮은 번호여야 됨)
|
|
// [4] MACRO_FUNC_SET_OUTPUT
|
|
// dArg[0] Output Type : [0] MACRO_DIGITAL_OUTPUT, [1] MACRO_ANALOG_OUTPUT
|
|
// dArg[1] DO 모듈번호 or AO 채널번호
|
|
// dArg[2] Data Type
|
|
// - Digital Output일경우: [0] MACRO_DATA_BIT, [1] MACRO_DATA_BYTE, [2] MACRO_DATA_WORD, [3] MACRO_DATA_DWORD, [4] MACRO_DATA_BYTE12
|
|
// - Analog Output일경우 : [5] MACRO_DATA_VOLTAGE, [6] MACRO_DATA_DIGIT
|
|
// dArg[3] Offset or Byte Size
|
|
// - Digital Output일경우: Offset / ByteSize(MACRO_DATA_BYTE12 Type일 경우)
|
|
// - Analog Output일경우 : Reserved
|
|
// dArg[4] 출력 값
|
|
// - Digital Output일경우: Data Type의 설정에 따른 Digital Output,
|
|
// - Analog Output일경우 : 출력전압 or 출력 Digit
|
|
// dArg[4] ~ dArg[15] Byte 출력값 (MACRO_DATA_BYTE12 Type일 경우)
|
|
// - 지정한 Byte(최대 12Byte)값들을 여러개의 출력 모듈에 상관없이 한번에 출력함
|
|
// [5] MACRO_FUNC_WAIT
|
|
// dArg[0] 대기 시간(ms) : 지정한 ms 동안 대기함
|
|
// [6] MACRO_FUNC_STOP
|
|
// dArg[0] 정지모드 : [0] MACRO_QUICK_STOP, [1] MACRO_SLOW_STOP
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroAddNode(int nMacroNo, uint uFunction, ref double dpArg);
|
|
// 지정된 매크로의 노드에 설정된 값을 반환한다. (반환값은 AxpMacroAddNode 함수로 설정한 값임)
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroGetNode(int nMacroNo, int nNodeNo, ref uint upFunction, ref double dpArg);
|
|
// 지정된 매크로에 등록된 노드들을 검사한 후 에러가 발생 노드 위치와 에러 코드를 반환한다.
|
|
// ※ 주의점 : 반드시 이 함수로 등록된 노들들에 대해 유효성 검사를 완료해야 매크로 구동을 할 수 있음.
|
|
// lMacroNo : 0 ~ 7
|
|
// *lpErrorNodeNo : 에러가 발생한 노드번호
|
|
// *upErrorCode : 에러가 발생한 노드에 대한 에러코드
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroCheckNodeAll(int nMacroNo, ref int npErrorNodeNo, ref uint upErrorCode);
|
|
// 지정된 매크로의 구동을 시작한다.
|
|
// ※ 주의점 : 반드시 AxpMacroCheckNodeAll 함수로 등록된 노들들에 대해 유효성 검사를 완료해야 매크로 구동을 할 수 있음.
|
|
// lMacroNo : 0 ~ 7
|
|
// uCondition : 매크로 시작 조건을 설정함
|
|
// [0] MACRO_START_READY : 대기 상태로 구동
|
|
// [1] MACRO_START_IMMEDIATE : 즉시 구동
|
|
// bLockResource : 매크로에 등록된 디지털 입력모듈, 아날로그 출력 채널들에 대해 제어금지 여부를 설정
|
|
// [FALSE] : 제어허용
|
|
// [TRUE] : 제어금지
|
|
// lRepeatCount : 매크로 전체 구동의 반복 회수를 설정
|
|
// [-1] : 무한반복 구동함
|
|
// [0] : 반복구동하지 않음
|
|
// [1~ ] : 지정한 회수만큼 반복 구동함
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroStart(int nMacroNo, uint uCondition, bool bLockResource, int nRepeatCount);
|
|
// 지정된 매크로의 구동 조건을 반환한다.
|
|
// lMacroNo : 0 ~ 7
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroGetStartInfo(int nMacroNo, ref uint upCondition, ref bool bpLockResource, ref int npRepeatCount);
|
|
// 지정된 매크로의 구동을 정지한다.
|
|
// lMacroNo : -1 ~ 7
|
|
// [-1] : -1일 경우 모든 매크로의 구동을 정지한다.
|
|
// uStopMode : 구동정지 모드를 지정한다. (등록된 매크로에 모션 구동축이 있을 경우 의미가 있음)
|
|
// [0] MACRO_QUICK_STOP
|
|
// [1] MACRO_SLOW_STOP
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroStop(int nMacroNo, uint uStopMode);
|
|
// 지정된 Macro의 구동상태를 반환한다.
|
|
// lMacroNo : 0 ~ 7
|
|
// *upStatus : 매크로의 구동상태
|
|
// [0] MACRO_STATUS_STOP : 매크로 정지상태
|
|
// [1] MACRO_STATUS_READY : 매크로 구동 대기 상태
|
|
// [2] MACRO_STATUS_RUN : 매크로 구동상태
|
|
// [3] MACRO_STATUS_ERROR : 매크로 에러상태(정지상태)
|
|
// *lpRepeatCount : 매크로의 전체 반복구동 회수를 반환
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroReadRunStatus(int nMacroNo, ref uint upStatus, ref int npRepeatCount);
|
|
// 지정된 매크로에 등록된 노드개수와 현재 구동중인 노드정보를 반환한다.
|
|
// lMacroNo : 0 ~ 7
|
|
// *lpCurNodeNo : 현재 구동중인 노드의 번호
|
|
// *lpTotalNodeNum : 지정한 매크로의 전체 노드 개수
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroGetNodeNum(int nMacroNo, ref int npCurNodeNo, ref int npTotalNodeNum);
|
|
// 지정된 매크로와 함수에 대한 구동정보를 반환한다.
|
|
// lMacroNo : 0 ~ 7
|
|
// uFunction : 정보를 확인할 함수를 지정한다.{ MACRO_FUNCTION }
|
|
// [0] MACRO_FUNC_CALL
|
|
// [1] MACRO_FUNC_JUMP
|
|
// [2] MACRO_FUNC_RETURN
|
|
// [3] MACRO_FUNC_REPEAT
|
|
// [4] MACRO_FUNC_SET_OUTPUT
|
|
// [5] MACRO_FUNC_WAIT
|
|
// [6] MACRO_FUNC_STOP
|
|
// dpReturnData[16] : 지정한 함수에 대한 반환값
|
|
// ※ 주의점 : 배열의 개수는 반드시 16개로 해야 됨
|
|
// [0] MACRO_FUNC_CALL
|
|
// dArg[0] 최종 호출 된 CALL명령의 노드번호
|
|
// dArg[1] 지정한 매크로 내에서 CALL명령들 중의 Index를 반환
|
|
// [1] MACRO_FUNC_JUMP
|
|
// dArg[0] 최종 호출된 JUMP명령의 노드번호
|
|
// dArg[1] 지정한 매크로 내에서 JUMP명령들 중의 Index를 반환
|
|
// [2] MACRO_FUNC_RETURN : 인자 없음
|
|
// dArg[0] 최종 호출된 RETURN명령의 노드번호
|
|
// dArg[1] 지정한 매크로 내에서 RETURN명령들 중의 Index를 반환
|
|
// [3] MACRO_FUNC_REPEAT : 반복구동 지정
|
|
// dArg[0] 최종 호출된 REPEAT명령의 노드번호
|
|
// dArg[1] 지정한 매크로 내에서 REPEAT명령들 중의 Index를 반환
|
|
// dArg[2] 최종 호출된 REPEAT명령의 반복구동 설정회수를 반환
|
|
// dArg[3] 최종 호출된 REPEAT명령의 반복구동한 회수를 반환
|
|
// [4] MACRO_FUNC_SET_OUTPUT
|
|
// dArg[0] 최종 호출된 SET_OUTPUT명령의 노드번호
|
|
// dArg[1] 지정한 매크로 내에서 SET_OUTPUT명령들 중의 Index를 반환
|
|
// dArg[2] 최종 호출된 SET_OUTPUT명령의 출력값을 반환
|
|
// dArg[2~13] Data Type이 "[4] MACRO_DATA_BYTE12"일 경우의 Byte 출력값
|
|
// [5] MACRO_FUNC_WAIT
|
|
// dArg[0] 최종 호출된 WAIT명령의 노드번호
|
|
// dArg[1] 지정한 매크로 내에서 WAIT명령들 중의 Index를 반환
|
|
// dArg[2] 최종 호출된 WAIT명령의 설정 시간을 반환
|
|
// dArg[3] 최종 호출된 WAIT명령의 소요 시간을 반환
|
|
// [6] MACRO_FUNC_STOP
|
|
// dArg[0] 최종 호출된 STOP명령의 노드번호
|
|
// dArg[1] 지정한 매크로 내에서 STOP명령들 중의 Index를 반환
|
|
[DllImport("AXL.dll")] public static extern uint AxpMacroReadFunctionStatus(int nMacroNo, uint uFunction, ref double dpReturnData);
|
|
} |