krnx.h
Go to the documentation of this file.
1 #ifndef KRNX_H__
2 #define KRNX_H__
3 
4 #ifdef WIN32
5 /* for windows */
6 #include <windows.h>
7 #else
8 /* for Linux */
9 typedef void* HANDLE;
10 typedef char BOOL;
11 typedef char BOOLEAN;
12 typedef unsigned long DWORD;
13 typedef unsigned int UINT;
14 #define WINAPI
15 #define TRUE 1
16 #define FALSE 0
17 #define CALLBACK
18 #ifdef DECLSPEC_IMPORT
19 #undef DECLSPEC_IMPORT
20 #endif
21 #define DECLSPEC_IMPORT
22 #endif
23 
24 /************************************
25 *
26 * Kawasaki Robot Controller Network Extension
27 *
28 * Copyright (C) 2002 By
29 * System Technology Development Center,
30 * Kawasaki Heavy Industries, LTD.
31 *
32 * This software is furnished under a license and may be used
33 * and copied only in accordance with the terms of such license
34 * and with the inclusion of the above copyright notice.
35 *
36 * ファイル名:krnx.h
37 *
38 * $Header: /home/cvsroot/krnx_dll/krnx.h,v 1.33 2009/04/17 08:34:11 cvsuser Exp $
39 *
40 * 機能/目的:
41 * Kawasaki Robot Network Extension API 関数のプロトタイプ宣言
42 *
43 * グローバル関数:
44 *
45 * グローバル変数:
46 *
47 *
48 *****************************************************
49 */
50 
51 #ifdef __cplusplus
52 extern "C"
53 {
54 #endif
55 
56 #ifdef CAROTT3
57 #define KRNX_MAX_CONTROLLER 16 /* 最大接続コントローラ数 */
58 #else
59 #define KRNX_MAX_CONTROLLER 16 /* 最大接続コントローラ数 */
60 #endif
61 #define KRNX_MAX_ROBOT 8 /* 1コントローラがサポートするロボット台数 */
62 #define KRNX_MAX_PCPROG 3 /* 1コントローラがサポートするPCプログラム数 */
63 
64 
65 /* 最大軸数 */
66 #define KRNX_MAXAXES 18 /* this should be same as the defined in AS system */
67 
68 /* 最大信号数 */
69 #define KRNX_MAXSIGNAL 512
70 
71 /* FX03496 a++ */
72 /* 最大エラー数 */
73 #define KRNX_MAX_ERROR_LIST_SIZ 10
74 #define KRNX_MAX_ERROR_MSG_SIZ 160
75 /* FX03496 a-- */
76 
77 #define INT_CBUF_SIZ 512
78 
79 #define NON_COMPATIBLE
80 /*
81  * !! 注 意 !!
82  *
83  * krnx_dllは、信号数が512点までしか対応していなかったが
84  * 上記 #define NON_COMPATIBLE をコメントアウトすることで、
85  * 960点まで対応するようになります。
86  * また、インタプリタ用のバッファサイズも80バイトであった
87  * ところが512バイトまで拡張されます。
88  *
89  * このコメントは、信号数およびバッファサイズが拡張されて * いない従来のバージョンと拡張された新バージョンの互換が * とれた時点で削除してください。 * また、合せて NON_COMPATIBLE も削除してください。 * */ #define DI_MAX_SIGNAL 960 #define DO_MAX_SIGNAL 960 #define INTERNAL_MAX_SIGNAL 960 #define DBG_FVAL_NUM 16 /* エラーコード */ #define KRNX_NOERROR 0 #define KRNX_E_BADARGS (-0x1000) #define KRNX_E_INTERNAL (-0x1001) #define KRNX_E_NOTSUPPORTED (-0x1002) #define KRNX_E_TIMEOUT (-0x1003) #define KRNX_E_AUXNOTREADY (-0x1004) #define KRNX_E_FOPENFAIL (-0x1005) #define KRNX_E_FILENOTREADY (-0x1006) #define KRNX_E_MATRIX (-0x1007) #define KRNX_E_OUTOFRANGE (-0x1008) #define KRNX_E_CANNOTCAL (-0x1009) #define KRNX_E_COMPDATA (-0x100a) #define KRNX_E_BADUSRID (-0x100c) #define KRNX_E_NULLRESP (-0x100d) #define KRNX_E_LOSTPROMPT (-0x100e) #define KRNX_E_BUFSND (-0x1010) #define KRNX_E_BUFRCV (-0x1011) #define KRNX_E_BUFTMO (-0x1012) #define KRNX_E_AVOID_SING (-0x1013) /* EX3578 a++ */ #define KRNX_E_NOAVOID_SING (-0x1014) /* EX3578 a-- */ #define KRNX_WARN_SING (-0x1015) /* EX3578-6 a */ #define KRNX_E_ASERROR (-0x1020) #define KRNX_E_NOROBOT (-0x1021) #define KRNX_E_DISABLED (-0x1022) /* FX00436 a */ #define KRNX_E_CANTMOVECONFIG (-0x1030) #define KRNX_E_JT5NOT0DEG (-0x1031) #define KRNX_E_ILLCONFIG (-0x1032) #define KRNX_E_SOCK (-0x2000) #define KRNX_E_NOHOST (-0x2001) #define KRNX_E_IOCTLSOCK (-0x2002) #define KRNX_E_SOCKWRITE (-0x2003) #define KRNX_E_SOCKREAD (-0x2004) #define KRNX_E_NODATA (-0x2005) #define KRNX_E_INVALIDPORT (-0x2006) #define KRNX_E_CONNECT (-0x2007) #define KRNX_E_CANTLOGIN (-0x2008) #define KRNX_E_ALREADYOPENED (-0x2009) #define KRNX_E_UNEXPECTED (-0x2010) #define KRNX_E_KINENOTREADY (-0x2011) #define KRNX_E_ASDELAYED (-0x2012) #define KRNX_E_BUFEMPTY (-0x2013) #define KRNX_E_BUFNO (-0x2014) #define KRNX_E_BUFDATANUM (-0x2015) #define KRNX_E_SHMEM_OPEN (-0x2016) #define KRNX_E_RT_INTERNAL (-0x2100) #define KRNX_E_RT_CONNECT (-0x2101) #define KRNX_E_RT_TIMEOUT (-0x2102) #define KRNX_E_RT_NOTCONNECT (-0x2103) #define KRNX_E_RT_SEND (-0x2104) #define KRNX_E_RT_CYCLIC (-0x2105) #define KRNX_E_RT_SW_ON (-0x2106) /* FX03195 a */ #define KRNX_E_RT_NOTSUPPORTED (-0x2107) #define KRNX_E_RT_COMP_NOT_CLEARED (-0x2108) #define KRNX_E_RT_SYNCIO_NEED_POSDATA (-0x2109) #define KRNX_E_PCASALREADYRUNNING (-0x2200) /* Dcon-plus6 */ #define KRNX_E_TOOMANYPROC (-0x2201) /* Dcon-plus6 */ #define KRNX_E_INVALIDFILENAME (-0x2202) /* Dcon-plus6 */ #define KRNX_E_ILLCONTNO (-0x2203) /* Dcon-plus16 */ #define KRNX_E_MAXNICNO (-0x2300) #define KRNX_E_UNDEF (-0xFFFF) /* RTサイクリック通信データ種類 */ #define KRNX_CYC_KIND_ANGLE (0x0001) /* 各軸位置(現在値) [rad or mm] */ #define KRNX_CYC_KIND_ANGLE_REF (0x0002) /* 各軸位置(指令値) [rad or mm] */ #define KRNX_CYC_KIND_CURRENT (0x0004) /* 各軸電流値(現在値) [A] */ #define KRNX_CYC_KIND_ENCORDER (0x0008) /* 各軸エンコーダー値(現在値) [bit] */ #define KRNX_CYC_KIND_ERROR (0x0010) /* エラーランプ/コード */ #define KRNX_CYC_KIND_CURRENT_REF (0x0020) /* 各軸電流値(指令値) [A] */ #define KRNX_CYC_KIND_CURRENT_SAT (0x0040) /* 各軸電流飽和率(現在値/指令値) */ #define KRNX_CYC_KIND_ENCORDER_REF (0x0080) /* 各軸エンコーダー値(指令値) [bit] */ #define KRNX_CYC_KIND_ANGLE_VEL (0x0100) /* 各軸速度値(現在値/指令値) [rad/s or mm/s] */ #define KRNX_CYC_KIND_XYZOAT (0x0200) /* 変換位置/速度(現在値/指令値) [rad, mm, rad/s or mm/s][rad/s or mm/s] */ #define KRNX_CYC_KIND_SIG_EXTERNAL (0x0400) /* 外部出力/入力信号 */ #define KRNX_CYC_KIND_SIG_INTERNAL (0x0800) /* 内部信号 */ #define KRNX_CYC_KIND_ROBOT_STATUS (0x1000) /* ロボット状態 */ #define KRNX_CYC_KIND_SIZE (13) /* 種類数 */ #define KRNX_CYC_KIND_LEGACY (KRNX_CYC_KIND_ANGLE|KRNX_CYC_KIND_ANGLE_REF|KRNX_CYC_KIND_CURRENT|KRNX_CYC_KIND_ERROR) #define KRNX_CYC_KIND_SUPPORTED ((1<<KRNX_CYC_KIND_SIZE)-1) /* RTサイクリック制御データ種類 */ #define KRNX_CYC_KRNX2AS_KIND_ANGLE_RELATIVE (0x0001) /* 各軸位置(相対値) [rad or mm] */ #define KRNX_CYC_KRNX2AS_KIND_SIG_EXTERNAL_OUTPUT (0x0002) /* 外部出力信号 */ #define KRNX_CYC_KRNX2AS_KIND_SIG_EXTERNAL_INPUT (0x0004) /* 外部入力信号 */ #define KRNX_CYC_KRNX2AS_KIND_SIG_INTERNAL (0x0008) /* 内部信号 */ #define KRNX_CYC_KRNX2AS_KIND_SIZE (4) /* 種類数*/ #define KRNX_CYC_KRNX2AS_KIND_LEGACY (KRNX_CYC_KRNX2AS_KIND_ANGLE_RELATIVE) #define KRNX_CYC_KRNX2AS_KIND_SUPPORTED ((1<<KRNX_CYC_KRNX2AS_KIND_SIZE)-1 ) extern short KRNX_SYSLOG_FLAG; /* 1: output debug message to syslog */ typedef struct { short error_lamp; short motor_lamp; short cycle_lamp; short repeat_lamp; short run_lamp; short trigger_lamp; short teach_lock_lamp; short emergency; } TKrnxPanelInfo; typedef struct { #ifdef NON_COMPATIBLE char io_do[KRNX_MAXSIGNAL/8]; char io_di[KRNX_MAXSIGNAL/8]; char internal[KRNX_MAXSIGNAL/8]; #else char io_do[DO_MAX_SIGNAL/8]; char io_di[DI_MAX_SIGNAL/8]; char internal[INTERNAL_MAX_SIGNAL/8]; #endif /* NON_COMPATIBLE */ } TKrnxIoInfo; typedef struct { char io_do[DO_MAX_SIGNAL/8]; char io_di[DI_MAX_SIGNAL/8]; char internal[INTERNAL_MAX_SIGNAL/8]; } TKrnxIoInfoEx; typedef struct { short robot_status; float monitor_speed; float always_speed; float accuracy; } TKrnxMonInfo; typedef struct { short status; long exec_count, remain_count; char program_name[20]; short priority; short step_number; #ifdef NON_COMPATIBLE char step_name[80]; #else char step_name[INT_CBUF_SIZ]; #endif /* NON_COMPATIBLE */ } TKrnxStepperInfo; typedef struct { #ifdef NON_COMPATIBLE /* 本来配列サイズは、KRNX_MAX_ROBOTではなく、 */ /* 2(AS側の最大アーム数/コントローラ)で */ /* 十分であるが、互換性確保のためそのままとする */ TKrnxMonInfo mon[KRNX_MAX_ROBOT]; TKrnxStepperInfo robot[KRNX_MAX_ROBOT]; #else TKrnxMonInfo mon[2/*KRNX_MAX_ROBOT*/]; TKrnxStepperInfo robot[2/*KRNX_MAX_ROBOT*/]; #endif /* NON_COMPATIBLE */ TKrnxStepperInfo pc[KRNX_MAX_PCPROG]; } TKrnxProgramInfo; typedef struct { float ang[KRNX_MAXAXES]; long enc[KRNX_MAXAXES]; float vel[KRNX_MAXAXES]; float ang_ref[KRNX_MAXAXES]; long vel_ref[KRNX_MAXAXES]; float cur_ref[KRNX_MAXAXES]; } TKrnxMotionInfo; /* ZZ ++ */ typedef struct TSignalEx { unsigned long usr_di[DI_MAX_SIGNAL/32]; unsigned long usr_do[DO_MAX_SIGNAL/32]; unsigned long usr_internal[INTERNAL_MAX_SIGNAL/32]; } TSignalEx; /*** RTC情報 ***/ typedef struct TKrnxRtcInfo { short cyc; short buf; short interpolation; } TKrnxRtcInfo; /* サーボ用変数 */ typedef struct TDebugVariableInfo { float val[KRNX_MAXAXES][DBG_FVAL_NUM]; }TDebugVariableInfo; /* 信号情報 */ typedef struct TDebugSignalInfo { TSignalEx sig; }TDebugSignalInfo; /* システム情報 */ typedef struct TDebugSystemInfo { int a; int b; int c; }TDebugSystemInfo; /* ロボット動作情報 */ typedef struct TDebugTrajInfo { char step_info[INT_CBUF_SIZ]; /* ステップ情報 simu.h */ float sp; /* 速度 */ float accu; /* 加速度 */ int ctl_axis; /* 軸数 */ }TDebugTrajInfo; typedef struct TDebugMotionInfo { float ang[KRNX_MAXAXES]; float xyzoat[KRNX_MAXAXES]; long enc[KRNX_MAXAXES]; float vel[KRNX_MAXAXES]; float ang_ref[KRNX_MAXAXES]; long vel_ref[KRNX_MAXAXES]; float cur_ref[KRNX_MAXAXES]; float tool[KRNX_MAXAXES]; int mode; /* モード 0:RPLAN, 1:RMOVE, 2:RWAIT, 3:RHOLD, 4:REND */ int flg_stepup; float end_pos_jtang[KRNX_MAXAXES]; float end_pos_trans[KRNX_MAXAXES]; unsigned short clamp_spot_flg; }TDebugMotionInfo; typedef struct TKrnxDebugInfoEnt { TDebugSystemInfo sys; /* */ TDebugMotionInfo mtn; /* */ TDebugTrajInfo trj; /* */ TDebugVariableInfo val; /* */ TDebugSignalInfo io; /* */ }TKrnxDebugInfoEnt; /* ZZ -- */ /* FX03496 a++ */ typedef struct TKrnxErrorList { int error_num; long error_code[KRNX_MAX_ERROR_LIST_SIZ]; char error_msg[KRNX_MAX_ERROR_LIST_SIZ][KRNX_MAX_ERROR_MSG_SIZ]; } TKrnxErrorList; /* FX03496 a-- */ #define RT_IOCTL_CMD_NONE 0 #define RT_IOCTL_CMD_INS 1 #define RT_IOCTL_CMD_SYNC 2 typedef struct TKrnxRtIoCtlDO { unsigned short sync; unsigned short command; char enable[DO_MAX_SIGNAL/8]; char data[DO_MAX_SIGNAL/8]; }TKrnxRtIoCtlDO; typedef struct TKrnxRtIoCtlDI { unsigned short sync; unsigned short command; char enable[DI_MAX_SIGNAL/8]; char data[DI_MAX_SIGNAL/8]; }TKrnxRtIoCtlDI; typedef struct TKrnxRtIoCtlInternal { unsigned short sync; unsigned short command; char enable[INTERNAL_MAX_SIGNAL/8]; char data[INTERNAL_MAX_SIGNAL/8]; }TKrnxRtIoCtlInternal; // C#(PC-AS)向け対策 // C#ではデフォルト引数は使用できない // 必要あれば別のAPIを用意する //#ifdef __cplusplus //DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname = NULL, char *port_path = NULL ); //#else DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname ); //#endif DECLSPEC_IMPORT int WINAPI krnx_Close( int sd ); DECLSPEC_IMPORT int WINAPI krnx_SetAppParam( int type, char *param ); /* FX00436 a */ /************************** * AUXAPI(モニタコマンド) * ************************** */ /* element type for DELETE,LIST,SAVE */ #define QUAL_PRG 0x0001 /* プログラム、変数 */ #define QUAL_LOC 0x0002 #define QUAL_REAL 0x0004 #define QUAL_STR 0x0008 #define QUAL_INT 0x0010 #define QUAL_SYS 0x0020 /* データ */ #define QUAL_ROB 0x0040 #define QUAL_AUX 0x0080 #define QUAL_ARC 0x0100 #define QUAL_IFP 0x0200 #define QUAL_ELOG 0x0400 /* 特殊データ */ #define QUAL_FLT 0x0800 #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code ); #endif DECLSPEC_IMPORT int WINAPI krnx_Save( int cont_no, const char *filename, const char *program_name, int option ); DECLSPEC_IMPORT int WINAPI krnx_Load( int cont_no, const char *filename ); typedef BOOL (*FLoadCallBack)( void *param, long byte, const char *msg ); #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp=NULL, void *cb_param=NULL ); DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp=NULL, void *cb_param=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp, void *cb_param ); DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp, void *cb_param ); #endif DECLSPEC_IMPORT int WINAPI krnx_ConvertErrorCode( int *error_code, char *error_level ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info ); DECLSPEC_IMPORT int WINAPI krnx_SetAuxApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */ /************************** * AS-API * ************************** */ DECLSPEC_IMPORT int WINAPI krnx_GetRobotName( int cont_no, int robot_no, char *robot_name ); DECLSPEC_IMPORT int WINAPI krnx_GetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo ); DECLSPEC_IMPORT int WINAPI krnx_SetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoEx( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo, int data_type ); DECLSPEC_IMPORT int WINAPI krnx_GetIoInfo( int cont_no, TKrnxIoInfo *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfo( int cont_no, TKrnxIoInfo *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo( int cont_no, int robot_no, TKrnxProgramInfo *proginfo ); DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo2( int cont_no, int robot_no, TKrnxProgramInfo *proginfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorList( int cont_no, TKrnxErrorList *errorlist ); /* FX03496 a */ DECLSPEC_IMPORT int WINAPI krnx_BufferBusy( int cont_no, int buf_no ); DECLSPEC_IMPORT int WINAPI krnx_BufferEmpty( int cont_no, int buf_no ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendF( int cont_no, int buf_no, short req_code, const float *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendW( int cont_no, int buf_no, short req_code, const short *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendB( int cont_no, int buf_no, short req_code, const char *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_GetLimitM( int cont_no, int robot_no, float *ll ); DECLSPEC_IMPORT int WINAPI krnx_GetLimitP( int cont_no, int robot_no, float *ul ); DECLSPEC_IMPORT int WINAPI krnx_GetErrorInfo( int cont_no, int robot_no, int *error_code ); DECLSPEC_IMPORT int WINAPI krnx_IoSetDI( int cont_no, const char *in, const char *mask, size_t size ); DECLSPEC_IMPORT int WINAPI krnx_IoSetDO( int cont_no, const char *out, const char *mask, size_t size ); DECLSPEC_IMPORT int WINAPI krnx_SetAsApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */ /************************** * 順逆変換API * ************************** */ DECLSPEC_IMPORT int WINAPI krnx_JointToXyzoat( int cont_no, int robot_no, const float *joint, float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_JointToMatrix( int cont_no, int robot_no, const float *joint, float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint ); DECLSPEC_IMPORT int WINAPI krnx_MatrixToJoint( int cont_no, int robot_no, const float *matrix, float *joint, const float *old_joint ); DECLSPEC_IMPORT int WINAPI krnx_MultiplyXyzoat( const float *xyzoat_a, const float *xyzoat_b, float *xyzoat_c ); DECLSPEC_IMPORT int WINAPI krnx_MultiplyMatrix( const float *matrix_a, const float *matrix_b, float *matrix_c ); DECLSPEC_IMPORT int WINAPI krnx_InverseXyzoat( const float *xyzoat_a, float *xyzoat_b ); DECLSPEC_IMPORT int WINAPI krnx_InverseMatrix( const float *matrix_a, float *matrix_b ); DECLSPEC_IMPORT int WINAPI krnx_MatrixToXyzoat( const float *matrix , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToMatrix( const float *xyzoat , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_FrameMatrix( const float *mat_a, const float *mat_b, const float *mat_c, const float *mat_d, float *mat_p ); DECLSPEC_IMPORT int WINAPI krnx_FrameXyzoat( const float *xyz_a, const float *xyz_b, const float *xyz_c, const float *xyz_d, float *xyz_p ); DECLSPEC_IMPORT int WINAPI krnx_JacobiMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *jacobi66 , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_JacobiXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *jacobi66 , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_JaInvMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *ja_inv66 , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_JaInvXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *ja_inv66 , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint2( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, int conf ); DECLSPEC_IMPORT int WINAPI krnx_GetConfig( int cont_no, int robot_no, float *joint, int *conf ); DECLSPEC_IMPORT int WINAPI krnx_GetASCycle( int robot_no, int *cycle_time ); DECLSPEC_IMPORT int WINAPI krnx_SetJT1Mode( int mode ); DECLSPEC_IMPORT int WINAPI krnx_Xyz456ToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, const float *tool ); /* EX3578-3 a */ /************************** * RT-API * ************************** */ typedef struct { float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */ float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */ float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */ int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */ } TKrnxCurMotionData; typedef struct { float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */ float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */ float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */ int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */ float cur_ref[KRNX_MAXAXES]; /* 各軸電流値(指令値) [A] */ float cur_sat[KRNX_MAXAXES]; /* 各軸電流飽和率(現在値) */ float cur_sat_ref[KRNX_MAXAXES]; /* 各軸電流飽和率(指令値) */ int enc_ref[KRNX_MAXAXES]; /* 各軸エンコーダー値(指令値) [bit] */ float ang_vel[KRNX_MAXAXES]; /* 各軸速度値(現在値) [rad/s or mm/s] */ float ang_vel_ref[KRNX_MAXAXES]; /* 各軸速度値(指令値) [rad/s or mm/s] */ float xyzoat[6]; /* 変換位置(現在値) [rad or mm] */ float xyzoat_ref[6]; /* 変換位置(指令値) [rad or mm] */ float xyzoat_vel; /* 変換速度値(現在値) [mm/s] */ float xyzoat_vel_ref; /* 変換速度値(指令値) [mm/s] */ } TKrnxCurMotionDataEx; typedef struct { short motor_lamp; /* モータランプ */ short cycle_lamp; /* サイクルランプ */ short repeat_lamp; /* リピートランプ */ short run_lamp; /* リピートランプ */ short trigger_lamp; /* トリガーランプ */ short teach_lock_lamp; /* ティーチロックランプ */ short emergency; /* 非常停止ランプ */ short rtc_active; /* RTCアクティブ状態 */ short rb_program_run; /* ロボットプログラム実行状態チェック */ short monitor_speed; /* モニタ速度[%] */ short check_speed; /* チェック速度[mm/sec] */ short enverr_warm; /* 偏差異常状態[軸ビット] */ char reserved[8]; } TKrnxCurRobotStatus; DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionData( int cont_no, int robot_no, TKrnxCurMotionData *md ); DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionDataEx( int cont_no, int robot_no, TKrnxCurMotionDataEx *md ); DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorLamp( int cont_no, int robot_no, int *error_lamp ); /* EX3390 a */ DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorInfo( int cont_no, int robot_no, int *error_code ); /* EX3390 a */ DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfoEx( int cont_no, TKrnxIoInfoEx *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurRobotStatus( int cont_no, int robot_no, TKrnxCurRobotStatus *status ); DECLSPEC_IMPORT int WINAPI krnx_SetRtCyclicDataKind( int cont_no, unsigned short kind ); DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicDataKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind ); DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicCtlKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind ); /* RTC */ DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompData( int cont_no, int robot_no, const float *comp, int *status, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_PrimeRtcCompData( int cont_no, int robot_no, const float *comp, int *status ); /* EX3391 a */ DECLSPEC_IMPORT int WINAPI krnx_PrimeRtIoData( int cont_no, TKrnxRtIoCtlDO *io_do, TKrnxRtIoCtlDI *io_di, TKrnxRtIoCtlInternal *internal ); /* EX3691 a */ DECLSPEC_IMPORT int WINAPI krnx_SendRtcCompData( int cont_no, unsigned short seq_no ); /* EX3391 a */ DECLSPEC_IMPORT int WINAPI krnx_SendRtCtlData( int cont_no, unsigned short seq_no, unsigned short kind ); /* EX3691 a */ DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompDataEx( int cont_no, int robot_no, const float *comp, int *status, unsigned long *count_in, unsigned long *count_out, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompData( int cont_no, int robot_no, float *comp ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompLimit( int cont_no, int robot_no, float *comp_limit ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcErrorFlag( int cont_no, int robot_no, int error_flag, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcErrorFlag( int cont_no, int robot_no, int *error_flag ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcSwitch( int cont_no, int robot_no, int *rtc_sw ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompMask( int cont_no, int robot_no, int mask ); DECLSPEC_IMPORT int WINAPI krnx_OldCompClear( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcBufferLength( int cont_no, int robot_no ); /* EX3390 a */ DECLSPEC_IMPORT void WINAPI krnx_timer_callback( void ); DECLSPEC_IMPORT int WINAPI krnx_RtcInit( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeed( int cont_no, int robot_no, float spd, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPos( int cont_no, int robot_no, int wk_no, float pos, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeedEx( int cont_no, int robot_no, int axis_no, float spd, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPosEx( int cont_no, int robot_no, int axis_no, int wk_no, float pos, float *prev ); /******************************* * KRNX内部API ******************************* */ DECLSPEC_IMPORT int WINAPI krnx_GetKrnxVersion( char *ver_text, int ver_len ); /* FX00919 a */ /************************** * ARC-API * ************************** */ #ifdef KRNX_ARC DECLSPEC_IMPORT int WINAPI krnx_ArcCmdWrite( int cont_no, int robot_no, int cmd, int i_cmd, int v_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcCmdRead( int cont_no, int robot_no, int *i_cmd, int *v_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcStatusRead( int cont_no, int robot_no, int *hw_status, int *rob_status, int *hw_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcModifyWrite( int cont_no, int robot_no, int and_cmd, int or_cmd, int and_status, int or_status ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeOk( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeMode( int cont_no, int robot_no, int on_off ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChange( int cont_no, int robot_no, float sp, float cur, float vlt, float width, float freq, int pn ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeOk( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeMode( int cont_no, int robot_no, int on_off ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChange( int cont_no, int robot_no, float x, float y, float z ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzRead( int cont_no, int robot_no, float *x, float *y, float *z ); DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzChange( int cont_no, int robot_no, float x, float y, float z ); DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzRead( int cont_no, int robot_no, float *x, float *y, float *z ); /* SRV_TORCH ++ */ DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtMotorLoad( int cont_no, int robot_no, float *mload ); DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtRotation( int cont_no, int robot_no, float *delta_ang ); DECLSPEC_IMPORT int WINAPI krnx_ArcGetCurSrvtRotation( int cont_no, int robot_no, float *ang ); /* SRV_TORCH -- */ #endif /* KRNX_ARC */ /* ETHER */ DECLSPEC_IMPORT int WINAPI krnx_GetCycleCount( int cont_no, int robot_no, int counter_no ); DECLSPEC_IMPORT int WINAPI krnx_eth_init( char *hostname ); DECLSPEC_IMPORT int WINAPI krnx_eth_open( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_eth_close( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_SetPriority( DWORD p ); /******************************* * 旧PCコンとの互換性のため ******************************* */ DECLSPEC_IMPORT int WINAPI krnx_NotSupport( void ); DECLSPEC_IMPORT int WINAPI krnx_PanelHw( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_PanelToPC( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_GetArmMode( int, int ); typedef struct { short no, num; // 信号番号 1〜1001〜、ビット数 char str[80]; // }TKrnxDDSig; DECLSPEC_IMPORT int WINAPI krnx_IoGetDDSig( int cont_no, char *dd_di, char *dd_do ); DECLSPEC_IMPORT int WINAPI krnx_DDSigInfo( int cont_no, int io_no, const TKrnxDDSig** ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoSync( int cont_no, int robot_no, TKrnxMotionInfo *md, int data_num ); /******************************* * PcAs起動API ******************************* */ /* ++ Dcon-plus6 ++ */ #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name ); #endif DECLSPEC_IMPORT int WINAPI krnx_StopPcAs( void ); /* -- Dcon-plus6 -- */ DECLSPEC_IMPORT int WINAPI krnx_StopPcAsEx( int entry ); /* Dcon-plus16 a */ /* New datasync api 090210 */ DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfoSync( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfo( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_SetJoint( int cont_no, int robot_no, float ang[KRNX_MAXAXES] ); #ifdef __cplusplus } #endif #endif /* KRNX_H__ */
90  * いない従来のバージョンと拡張された新バージョンの互換が
91  * とれた時点で削除してください。
92  * また、合せて NON_COMPATIBLE も削除してください。
93  *
94  */
95 
96 #define DI_MAX_SIGNAL 960
97 #define DO_MAX_SIGNAL 960
98 #define INTERNAL_MAX_SIGNAL 960
99 
100 #define DBG_FVAL_NUM 16
101 
102 /* エラーコード */
103 #define KRNX_NOERROR 0
104 #define KRNX_E_BADARGS (-0x1000)
105 #define KRNX_E_INTERNAL (-0x1001)
106 #define KRNX_E_NOTSUPPORTED (-0x1002)
107 #define KRNX_E_TIMEOUT (-0x1003)
108 #define KRNX_E_AUXNOTREADY (-0x1004)
109 #define KRNX_E_FOPENFAIL (-0x1005)
110 #define KRNX_E_FILENOTREADY (-0x1006)
111 #define KRNX_E_MATRIX (-0x1007)
112 #define KRNX_E_OUTOFRANGE (-0x1008)
113 #define KRNX_E_CANNOTCAL (-0x1009)
114 #define KRNX_E_COMPDATA (-0x100a)
115 #define KRNX_E_BADUSRID (-0x100c)
116 #define KRNX_E_NULLRESP (-0x100d)
117 #define KRNX_E_LOSTPROMPT (-0x100e)
118 #define KRNX_E_BUFSND (-0x1010)
119 #define KRNX_E_BUFRCV (-0x1011)
120 #define KRNX_E_BUFTMO (-0x1012)
121 #define KRNX_E_AVOID_SING (-0x1013) /* EX3578 a++ */
122 #define KRNX_E_NOAVOID_SING (-0x1014) /* EX3578 a-- */
123 #define KRNX_WARN_SING (-0x1015) /* EX3578-6 a */
124 
125 #define KRNX_E_ASERROR (-0x1020)
126 #define KRNX_E_NOROBOT (-0x1021)
127 #define KRNX_E_DISABLED (-0x1022) /* FX00436 a */
128 
129 #define KRNX_E_CANTMOVECONFIG (-0x1030)
130 #define KRNX_E_JT5NOT0DEG (-0x1031)
131 #define KRNX_E_ILLCONFIG (-0x1032)
132 
133 #define KRNX_E_SOCK (-0x2000)
134 #define KRNX_E_NOHOST (-0x2001)
135 #define KRNX_E_IOCTLSOCK (-0x2002)
136 #define KRNX_E_SOCKWRITE (-0x2003)
137 #define KRNX_E_SOCKREAD (-0x2004)
138 #define KRNX_E_NODATA (-0x2005)
139 #define KRNX_E_INVALIDPORT (-0x2006)
140 #define KRNX_E_CONNECT (-0x2007)
141 #define KRNX_E_CANTLOGIN (-0x2008)
142 #define KRNX_E_ALREADYOPENED (-0x2009)
143 #define KRNX_E_UNEXPECTED (-0x2010)
144 #define KRNX_E_KINENOTREADY (-0x2011)
145 #define KRNX_E_ASDELAYED (-0x2012)
146 #define KRNX_E_BUFEMPTY (-0x2013)
147 #define KRNX_E_BUFNO (-0x2014)
148 #define KRNX_E_BUFDATANUM (-0x2015)
149 #define KRNX_E_SHMEM_OPEN (-0x2016)
150 
151 #define KRNX_E_RT_INTERNAL (-0x2100)
152 #define KRNX_E_RT_CONNECT (-0x2101)
153 #define KRNX_E_RT_TIMEOUT (-0x2102)
154 #define KRNX_E_RT_NOTCONNECT (-0x2103)
155 #define KRNX_E_RT_SEND (-0x2104)
156 #define KRNX_E_RT_CYCLIC (-0x2105)
157 #define KRNX_E_RT_SW_ON (-0x2106) /* FX03195 a */
158 #define KRNX_E_RT_NOTSUPPORTED (-0x2107)
159 #define KRNX_E_RT_COMP_NOT_CLEARED (-0x2108)
160 #define KRNX_E_RT_SYNCIO_NEED_POSDATA (-0x2109)
161 
162 #define KRNX_E_PCASALREADYRUNNING (-0x2200) /* Dcon-plus6 */
163 #define KRNX_E_TOOMANYPROC (-0x2201) /* Dcon-plus6 */
164 #define KRNX_E_INVALIDFILENAME (-0x2202) /* Dcon-plus6 */
165 #define KRNX_E_ILLCONTNO (-0x2203) /* Dcon-plus16 */
166 
167 #define KRNX_E_MAXNICNO (-0x2300)
168 
169 #define KRNX_E_UNDEF (-0xFFFF)
170 
171 /* RTサイクリック通信データ種類 */
172 #define KRNX_CYC_KIND_ANGLE (0x0001) /* 各軸位置(現在値) [rad or mm] */
173 #define KRNX_CYC_KIND_ANGLE_REF (0x0002) /* 各軸位置(指令値) [rad or mm] */
174 #define KRNX_CYC_KIND_CURRENT (0x0004) /* 各軸電流値(現在値) [A] */
175 #define KRNX_CYC_KIND_ENCORDER (0x0008) /* 各軸エンコーダー値(現在値) [bit] */
176 #define KRNX_CYC_KIND_ERROR (0x0010) /* エラーランプ/コード */
177 #define KRNX_CYC_KIND_CURRENT_REF (0x0020) /* 各軸電流値(指令値) [A] */
178 #define KRNX_CYC_KIND_CURRENT_SAT (0x0040) /* 各軸電流飽和率(現在値/指令値) */
179 #define KRNX_CYC_KIND_ENCORDER_REF (0x0080) /* 各軸エンコーダー値(指令値) [bit] */
180 #define KRNX_CYC_KIND_ANGLE_VEL (0x0100) /* 各軸速度値(現在値/指令値) [rad/s or mm/s] */
181 #define KRNX_CYC_KIND_XYZOAT (0x0200) /* 変換位置/速度(現在値/指令値) [rad, mm, rad/s or mm/s][rad/s or mm/s] */
182 #define KRNX_CYC_KIND_SIG_EXTERNAL (0x0400) /* 外部出力/入力信号 */
183 #define KRNX_CYC_KIND_SIG_INTERNAL (0x0800) /* 内部信号 */
184 #define KRNX_CYC_KIND_ROBOT_STATUS (0x1000) /* ロボット状態 */
185 #define KRNX_CYC_KIND_SIZE (13) /* 種類数 */
186 #define KRNX_CYC_KIND_LEGACY (KRNX_CYC_KIND_ANGLE|KRNX_CYC_KIND_ANGLE_REF|KRNX_CYC_KIND_CURRENT|KRNX_CYC_KIND_ERROR)
187 #define KRNX_CYC_KIND_SUPPORTED ((1<<KRNX_CYC_KIND_SIZE)-1)
188 
189 /* RTサイクリック制御データ種類 */
190 #define KRNX_CYC_KRNX2AS_KIND_ANGLE_RELATIVE (0x0001) /* 各軸位置(相対値) [rad or mm] */
191 #define KRNX_CYC_KRNX2AS_KIND_SIG_EXTERNAL_OUTPUT (0x0002) /* 外部出力信号 */
192 #define KRNX_CYC_KRNX2AS_KIND_SIG_EXTERNAL_INPUT (0x0004) /* 外部入力信号 */
193 #define KRNX_CYC_KRNX2AS_KIND_SIG_INTERNAL (0x0008) /* 内部信号 */
194 #define KRNX_CYC_KRNX2AS_KIND_SIZE (4) /* 種類数*/
195 #define KRNX_CYC_KRNX2AS_KIND_LEGACY (KRNX_CYC_KRNX2AS_KIND_ANGLE_RELATIVE)
196 #define KRNX_CYC_KRNX2AS_KIND_SUPPORTED ((1<<KRNX_CYC_KRNX2AS_KIND_SIZE)-1 )
197 
198 extern short KRNX_SYSLOG_FLAG; /* 1: output debug message to syslog */
199 
200 typedef struct
201 {
202  short error_lamp;
203  short motor_lamp;
204  short cycle_lamp;
205  short repeat_lamp;
206  short run_lamp;
209  short emergency;
211 
212 typedef struct
213 {
214 #ifdef NON_COMPATIBLE
215  char io_do[KRNX_MAXSIGNAL/8];
216  char io_di[KRNX_MAXSIGNAL/8];
217  char internal[KRNX_MAXSIGNAL/8];
218 #else
219  char io_do[DO_MAX_SIGNAL/8];
220  char io_di[DI_MAX_SIGNAL/8];
221  char internal[INTERNAL_MAX_SIGNAL/8];
222 #endif /* NON_COMPATIBLE */
223 } TKrnxIoInfo;
224 
225 typedef struct
226 {
227  char io_do[DO_MAX_SIGNAL/8];
228  char io_di[DI_MAX_SIGNAL/8];
229  char internal[INTERNAL_MAX_SIGNAL/8];
230 } TKrnxIoInfoEx;
231 
232 typedef struct
233 {
237  float accuracy;
238 } TKrnxMonInfo;
239 
240 typedef struct
241 {
242  short status;
243  long exec_count, remain_count;
244  char program_name[20];
245  short priority;
246  short step_number;
247 #ifdef NON_COMPATIBLE
248  char step_name[80];
249 #else
250  char step_name[INT_CBUF_SIZ];
251 #endif /* NON_COMPATIBLE */
253 
254 typedef struct
255 {
256 #ifdef NON_COMPATIBLE
257  /* 本来配列サイズは、KRNX_MAX_ROBOTではなく、 */
258  /* 2(AS側の最大アーム数/コントローラ)で */
259  /* 十分であるが、互換性確保のためそのままとする */
262 #else
263  TKrnxMonInfo mon[2/*KRNX_MAX_ROBOT*/];
264  TKrnxStepperInfo robot[2/*KRNX_MAX_ROBOT*/];
265 #endif /* NON_COMPATIBLE */
268 
269 typedef struct
270 {
271  float ang[KRNX_MAXAXES];
272  long enc[KRNX_MAXAXES];
273  float vel[KRNX_MAXAXES];
274  float ang_ref[KRNX_MAXAXES];
275  long vel_ref[KRNX_MAXAXES];
276  float cur_ref[KRNX_MAXAXES];
278 
279 /* ZZ ++ */
280 typedef struct TSignalEx
281 {
282  unsigned long usr_di[DI_MAX_SIGNAL/32];
283  unsigned long usr_do[DO_MAX_SIGNAL/32];
285 } TSignalEx;
286 
287 /*** RTC情報 ***/
288 typedef struct TKrnxRtcInfo
289 {
290  short cyc;
291  short buf;
293 } TKrnxRtcInfo;
294 
295 /* サーボ用変数 */
296 typedef struct TDebugVariableInfo
297 {
300 
301 /* 信号情報 */
302 typedef struct TDebugSignalInfo
303 {
306 
307 /* システム情報 */
308 typedef struct TDebugSystemInfo
309 {
310  int a;
311  int b;
312  int c;
314 
315 /* ロボット動作情報 */
316 typedef struct TDebugTrajInfo
317 {
318  char step_info[INT_CBUF_SIZ]; /* ステップ情報 simu.h */
319  float sp; /* 速度 */
320  float accu; /* 加速度 */
321  int ctl_axis; /* 軸数 */
323 
324 typedef struct TDebugMotionInfo
325 {
334  int mode; /* モード 0:RPLAN, 1:RMOVE, 2:RWAIT, 3:RHOLD, 4:REND */
338  unsigned short clamp_spot_flg;
340 
341 typedef struct TKrnxDebugInfoEnt
342 {
349 /* ZZ -- */
350 
351 /* FX03496 a++ */
352 typedef struct TKrnxErrorList
353 {
358 /* FX03496 a-- */
359 
360 #define RT_IOCTL_CMD_NONE 0
361 #define RT_IOCTL_CMD_INS 1
362 #define RT_IOCTL_CMD_SYNC 2
363 typedef struct TKrnxRtIoCtlDO
364 {
365  unsigned short sync;
366  unsigned short command;
370 
371 typedef struct TKrnxRtIoCtlDI
372 {
373  unsigned short sync;
374  unsigned short command;
378 
379 typedef struct TKrnxRtIoCtlInternal
380 {
381  unsigned short sync;
382  unsigned short command;
386 
387 // C#(PC-AS)向け対策// C#ではデフォルト引数は使用できない // 必要あれば別のAPIを用意する //#ifdef __cplusplus //DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname = NULL, char *port_path = NULL ); //#else DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname ); //#endif DECLSPEC_IMPORT int WINAPI krnx_Close( int sd ); DECLSPEC_IMPORT int WINAPI krnx_SetAppParam( int type, char *param ); /* FX00436 a */ /************************** * AUXAPI(モニタコマンド) * ************************** */ /* element type for DELETE,LIST,SAVE */ #define QUAL_PRG 0x0001 /* プログラム、変数 */ #define QUAL_LOC 0x0002 #define QUAL_REAL 0x0004 #define QUAL_STR 0x0008 #define QUAL_INT 0x0010 #define QUAL_SYS 0x0020 /* データ */ #define QUAL_ROB 0x0040 #define QUAL_AUX 0x0080 #define QUAL_ARC 0x0100 #define QUAL_IFP 0x0200 #define QUAL_ELOG 0x0400 /* 特殊データ */ #define QUAL_FLT 0x0800 #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code ); #endif DECLSPEC_IMPORT int WINAPI krnx_Save( int cont_no, const char *filename, const char *program_name, int option ); DECLSPEC_IMPORT int WINAPI krnx_Load( int cont_no, const char *filename ); typedef BOOL (*FLoadCallBack)( void *param, long byte, const char *msg ); #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp=NULL, void *cb_param=NULL ); DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp=NULL, void *cb_param=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp, void *cb_param ); DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp, void *cb_param ); #endif DECLSPEC_IMPORT int WINAPI krnx_ConvertErrorCode( int *error_code, char *error_level ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info ); DECLSPEC_IMPORT int WINAPI krnx_SetAuxApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */ /************************** * AS-API * ************************** */ DECLSPEC_IMPORT int WINAPI krnx_GetRobotName( int cont_no, int robot_no, char *robot_name ); DECLSPEC_IMPORT int WINAPI krnx_GetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo ); DECLSPEC_IMPORT int WINAPI krnx_SetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoEx( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo, int data_type ); DECLSPEC_IMPORT int WINAPI krnx_GetIoInfo( int cont_no, TKrnxIoInfo *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfo( int cont_no, TKrnxIoInfo *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo( int cont_no, int robot_no, TKrnxProgramInfo *proginfo ); DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo2( int cont_no, int robot_no, TKrnxProgramInfo *proginfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorList( int cont_no, TKrnxErrorList *errorlist ); /* FX03496 a */ DECLSPEC_IMPORT int WINAPI krnx_BufferBusy( int cont_no, int buf_no ); DECLSPEC_IMPORT int WINAPI krnx_BufferEmpty( int cont_no, int buf_no ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendF( int cont_no, int buf_no, short req_code, const float *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendW( int cont_no, int buf_no, short req_code, const short *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendB( int cont_no, int buf_no, short req_code, const char *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_GetLimitM( int cont_no, int robot_no, float *ll ); DECLSPEC_IMPORT int WINAPI krnx_GetLimitP( int cont_no, int robot_no, float *ul ); DECLSPEC_IMPORT int WINAPI krnx_GetErrorInfo( int cont_no, int robot_no, int *error_code ); DECLSPEC_IMPORT int WINAPI krnx_IoSetDI( int cont_no, const char *in, const char *mask, size_t size ); DECLSPEC_IMPORT int WINAPI krnx_IoSetDO( int cont_no, const char *out, const char *mask, size_t size ); DECLSPEC_IMPORT int WINAPI krnx_SetAsApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */ /************************** * 順逆変換API * ************************** */ DECLSPEC_IMPORT int WINAPI krnx_JointToXyzoat( int cont_no, int robot_no, const float *joint, float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_JointToMatrix( int cont_no, int robot_no, const float *joint, float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint ); DECLSPEC_IMPORT int WINAPI krnx_MatrixToJoint( int cont_no, int robot_no, const float *matrix, float *joint, const float *old_joint ); DECLSPEC_IMPORT int WINAPI krnx_MultiplyXyzoat( const float *xyzoat_a, const float *xyzoat_b, float *xyzoat_c ); DECLSPEC_IMPORT int WINAPI krnx_MultiplyMatrix( const float *matrix_a, const float *matrix_b, float *matrix_c ); DECLSPEC_IMPORT int WINAPI krnx_InverseXyzoat( const float *xyzoat_a, float *xyzoat_b ); DECLSPEC_IMPORT int WINAPI krnx_InverseMatrix( const float *matrix_a, float *matrix_b ); DECLSPEC_IMPORT int WINAPI krnx_MatrixToXyzoat( const float *matrix , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToMatrix( const float *xyzoat , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_FrameMatrix( const float *mat_a, const float *mat_b, const float *mat_c, const float *mat_d, float *mat_p ); DECLSPEC_IMPORT int WINAPI krnx_FrameXyzoat( const float *xyz_a, const float *xyz_b, const float *xyz_c, const float *xyz_d, float *xyz_p ); DECLSPEC_IMPORT int WINAPI krnx_JacobiMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *jacobi66 , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_JacobiXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *jacobi66 , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_JaInvMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *ja_inv66 , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_JaInvXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *ja_inv66 , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint2( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, int conf ); DECLSPEC_IMPORT int WINAPI krnx_GetConfig( int cont_no, int robot_no, float *joint, int *conf ); DECLSPEC_IMPORT int WINAPI krnx_GetASCycle( int robot_no, int *cycle_time ); DECLSPEC_IMPORT int WINAPI krnx_SetJT1Mode( int mode ); DECLSPEC_IMPORT int WINAPI krnx_Xyz456ToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, const float *tool ); /* EX3578-3 a */ /************************** * RT-API * ************************** */ typedef struct { float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */ float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */ float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */ int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */ } TKrnxCurMotionData; typedef struct { float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */ float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */ float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */ int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */ float cur_ref[KRNX_MAXAXES]; /* 各軸電流値(指令値) [A] */ float cur_sat[KRNX_MAXAXES]; /* 各軸電流飽和率(現在値) */ float cur_sat_ref[KRNX_MAXAXES]; /* 各軸電流飽和率(指令値) */ int enc_ref[KRNX_MAXAXES]; /* 各軸エンコーダー値(指令値) [bit] */ float ang_vel[KRNX_MAXAXES]; /* 各軸速度値(現在値) [rad/s or mm/s] */ float ang_vel_ref[KRNX_MAXAXES]; /* 各軸速度値(指令値) [rad/s or mm/s] */ float xyzoat[6]; /* 変換位置(現在値) [rad or mm] */ float xyzoat_ref[6]; /* 変換位置(指令値) [rad or mm] */ float xyzoat_vel; /* 変換速度値(現在値) [mm/s] */ float xyzoat_vel_ref; /* 変換速度値(指令値) [mm/s] */ } TKrnxCurMotionDataEx; typedef struct { short motor_lamp; /* モータランプ */ short cycle_lamp; /* サイクルランプ */ short repeat_lamp; /* リピートランプ */ short run_lamp; /* リピートランプ */ short trigger_lamp; /* トリガーランプ */ short teach_lock_lamp; /* ティーチロックランプ */ short emergency; /* 非常停止ランプ */ short rtc_active; /* RTCアクティブ状態 */ short rb_program_run; /* ロボットプログラム実行状態チェック */ short monitor_speed; /* モニタ速度[%] */ short check_speed; /* チェック速度[mm/sec] */ short enverr_warm; /* 偏差異常状態[軸ビット] */ char reserved[8]; } TKrnxCurRobotStatus; DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionData( int cont_no, int robot_no, TKrnxCurMotionData *md ); DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionDataEx( int cont_no, int robot_no, TKrnxCurMotionDataEx *md ); DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorLamp( int cont_no, int robot_no, int *error_lamp ); /* EX3390 a */ DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorInfo( int cont_no, int robot_no, int *error_code ); /* EX3390 a */ DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfoEx( int cont_no, TKrnxIoInfoEx *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurRobotStatus( int cont_no, int robot_no, TKrnxCurRobotStatus *status ); DECLSPEC_IMPORT int WINAPI krnx_SetRtCyclicDataKind( int cont_no, unsigned short kind ); DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicDataKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind ); DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicCtlKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind ); /* RTC */ DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompData( int cont_no, int robot_no, const float *comp, int *status, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_PrimeRtcCompData( int cont_no, int robot_no, const float *comp, int *status ); /* EX3391 a */ DECLSPEC_IMPORT int WINAPI krnx_PrimeRtIoData( int cont_no, TKrnxRtIoCtlDO *io_do, TKrnxRtIoCtlDI *io_di, TKrnxRtIoCtlInternal *internal ); /* EX3691 a */ DECLSPEC_IMPORT int WINAPI krnx_SendRtcCompData( int cont_no, unsigned short seq_no ); /* EX3391 a */ DECLSPEC_IMPORT int WINAPI krnx_SendRtCtlData( int cont_no, unsigned short seq_no, unsigned short kind ); /* EX3691 a */ DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompDataEx( int cont_no, int robot_no, const float *comp, int *status, unsigned long *count_in, unsigned long *count_out, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompData( int cont_no, int robot_no, float *comp ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompLimit( int cont_no, int robot_no, float *comp_limit ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcErrorFlag( int cont_no, int robot_no, int error_flag, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcErrorFlag( int cont_no, int robot_no, int *error_flag ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcSwitch( int cont_no, int robot_no, int *rtc_sw ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompMask( int cont_no, int robot_no, int mask ); DECLSPEC_IMPORT int WINAPI krnx_OldCompClear( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcBufferLength( int cont_no, int robot_no ); /* EX3390 a */ DECLSPEC_IMPORT void WINAPI krnx_timer_callback( void ); DECLSPEC_IMPORT int WINAPI krnx_RtcInit( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeed( int cont_no, int robot_no, float spd, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPos( int cont_no, int robot_no, int wk_no, float pos, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeedEx( int cont_no, int robot_no, int axis_no, float spd, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPosEx( int cont_no, int robot_no, int axis_no, int wk_no, float pos, float *prev ); /******************************* * KRNX内部API ******************************* */ DECLSPEC_IMPORT int WINAPI krnx_GetKrnxVersion( char *ver_text, int ver_len ); /* FX00919 a */ /************************** * ARC-API * ************************** */ #ifdef KRNX_ARC DECLSPEC_IMPORT int WINAPI krnx_ArcCmdWrite( int cont_no, int robot_no, int cmd, int i_cmd, int v_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcCmdRead( int cont_no, int robot_no, int *i_cmd, int *v_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcStatusRead( int cont_no, int robot_no, int *hw_status, int *rob_status, int *hw_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcModifyWrite( int cont_no, int robot_no, int and_cmd, int or_cmd, int and_status, int or_status ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeOk( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeMode( int cont_no, int robot_no, int on_off ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChange( int cont_no, int robot_no, float sp, float cur, float vlt, float width, float freq, int pn ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeOk( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeMode( int cont_no, int robot_no, int on_off ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChange( int cont_no, int robot_no, float x, float y, float z ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzRead( int cont_no, int robot_no, float *x, float *y, float *z ); DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzChange( int cont_no, int robot_no, float x, float y, float z ); DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzRead( int cont_no, int robot_no, float *x, float *y, float *z ); /* SRV_TORCH ++ */ DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtMotorLoad( int cont_no, int robot_no, float *mload ); DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtRotation( int cont_no, int robot_no, float *delta_ang ); DECLSPEC_IMPORT int WINAPI krnx_ArcGetCurSrvtRotation( int cont_no, int robot_no, float *ang ); /* SRV_TORCH -- */ #endif /* KRNX_ARC */ /* ETHER */ DECLSPEC_IMPORT int WINAPI krnx_GetCycleCount( int cont_no, int robot_no, int counter_no ); DECLSPEC_IMPORT int WINAPI krnx_eth_init( char *hostname ); DECLSPEC_IMPORT int WINAPI krnx_eth_open( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_eth_close( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_SetPriority( DWORD p ); /******************************* * 旧PCコンとの互換性のため ******************************* */ DECLSPEC_IMPORT int WINAPI krnx_NotSupport( void ); DECLSPEC_IMPORT int WINAPI krnx_PanelHw( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_PanelToPC( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_GetArmMode( int, int ); typedef struct { short no, num; // 信号番号 1〜1001〜、ビット数 char str[80]; // }TKrnxDDSig; DECLSPEC_IMPORT int WINAPI krnx_IoGetDDSig( int cont_no, char *dd_di, char *dd_do ); DECLSPEC_IMPORT int WINAPI krnx_DDSigInfo( int cont_no, int io_no, const TKrnxDDSig** ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoSync( int cont_no, int robot_no, TKrnxMotionInfo *md, int data_num ); /******************************* * PcAs起動API ******************************* */ /* ++ Dcon-plus6 ++ */ #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name ); #endif DECLSPEC_IMPORT int WINAPI krnx_StopPcAs( void ); /* -- Dcon-plus6 -- */ DECLSPEC_IMPORT int WINAPI krnx_StopPcAsEx( int entry ); /* Dcon-plus16 a */ /* New datasync api 090210 */ DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfoSync( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfo( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_SetJoint( int cont_no, int robot_no, float ang[KRNX_MAXAXES] ); #ifdef __cplusplus } #endif #endif /* KRNX_H__ */
388 // C#ではデフォルト引数は使用できない
389 // 必要あれば別のAPIを用意する//#ifdef __cplusplus //DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname = NULL, char *port_path = NULL ); //#else DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname ); //#endif DECLSPEC_IMPORT int WINAPI krnx_Close( int sd ); DECLSPEC_IMPORT int WINAPI krnx_SetAppParam( int type, char *param ); /* FX00436 a */ /************************** * AUXAPI(モニタコマンド) * ************************** */ /* element type for DELETE,LIST,SAVE */ #define QUAL_PRG 0x0001 /* プログラム、変数 */ #define QUAL_LOC 0x0002 #define QUAL_REAL 0x0004 #define QUAL_STR 0x0008 #define QUAL_INT 0x0010 #define QUAL_SYS 0x0020 /* データ */ #define QUAL_ROB 0x0040 #define QUAL_AUX 0x0080 #define QUAL_ARC 0x0100 #define QUAL_IFP 0x0200 #define QUAL_ELOG 0x0400 /* 特殊データ */ #define QUAL_FLT 0x0800 #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code=NULL ); DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code ); DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code ); #endif DECLSPEC_IMPORT int WINAPI krnx_Save( int cont_no, const char *filename, const char *program_name, int option ); DECLSPEC_IMPORT int WINAPI krnx_Load( int cont_no, const char *filename ); typedef BOOL (*FLoadCallBack)( void *param, long byte, const char *msg ); #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp=NULL, void *cb_param=NULL ); DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp=NULL, void *cb_param=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp, void *cb_param ); DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp, void *cb_param ); #endif DECLSPEC_IMPORT int WINAPI krnx_ConvertErrorCode( int *error_code, char *error_level ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info ); DECLSPEC_IMPORT int WINAPI krnx_SetAuxApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */ /************************** * AS-API * ************************** */ DECLSPEC_IMPORT int WINAPI krnx_GetRobotName( int cont_no, int robot_no, char *robot_name ); DECLSPEC_IMPORT int WINAPI krnx_GetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo ); DECLSPEC_IMPORT int WINAPI krnx_SetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoEx( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo, int data_type ); DECLSPEC_IMPORT int WINAPI krnx_GetIoInfo( int cont_no, TKrnxIoInfo *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfo( int cont_no, TKrnxIoInfo *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo( int cont_no, int robot_no, TKrnxProgramInfo *proginfo ); DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo2( int cont_no, int robot_no, TKrnxProgramInfo *proginfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorList( int cont_no, TKrnxErrorList *errorlist ); /* FX03496 a */ DECLSPEC_IMPORT int WINAPI krnx_BufferBusy( int cont_no, int buf_no ); DECLSPEC_IMPORT int WINAPI krnx_BufferEmpty( int cont_no, int buf_no ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendF( int cont_no, int buf_no, short req_code, const float *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendW( int cont_no, int buf_no, short req_code, const short *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferSendB( int cont_no, int buf_no, short req_code, const char *p, int num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferRecvB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_BufferPeekB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout ); DECLSPEC_IMPORT int WINAPI krnx_GetLimitM( int cont_no, int robot_no, float *ll ); DECLSPEC_IMPORT int WINAPI krnx_GetLimitP( int cont_no, int robot_no, float *ul ); DECLSPEC_IMPORT int WINAPI krnx_GetErrorInfo( int cont_no, int robot_no, int *error_code ); DECLSPEC_IMPORT int WINAPI krnx_IoSetDI( int cont_no, const char *in, const char *mask, size_t size ); DECLSPEC_IMPORT int WINAPI krnx_IoSetDO( int cont_no, const char *out, const char *mask, size_t size ); DECLSPEC_IMPORT int WINAPI krnx_SetAsApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */ /************************** * 順逆変換API * ************************** */ DECLSPEC_IMPORT int WINAPI krnx_JointToXyzoat( int cont_no, int robot_no, const float *joint, float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_JointToMatrix( int cont_no, int robot_no, const float *joint, float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint ); DECLSPEC_IMPORT int WINAPI krnx_MatrixToJoint( int cont_no, int robot_no, const float *matrix, float *joint, const float *old_joint ); DECLSPEC_IMPORT int WINAPI krnx_MultiplyXyzoat( const float *xyzoat_a, const float *xyzoat_b, float *xyzoat_c ); DECLSPEC_IMPORT int WINAPI krnx_MultiplyMatrix( const float *matrix_a, const float *matrix_b, float *matrix_c ); DECLSPEC_IMPORT int WINAPI krnx_InverseXyzoat( const float *xyzoat_a, float *xyzoat_b ); DECLSPEC_IMPORT int WINAPI krnx_InverseMatrix( const float *matrix_a, float *matrix_b ); DECLSPEC_IMPORT int WINAPI krnx_MatrixToXyzoat( const float *matrix , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToMatrix( const float *xyzoat , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_FrameMatrix( const float *mat_a, const float *mat_b, const float *mat_c, const float *mat_d, float *mat_p ); DECLSPEC_IMPORT int WINAPI krnx_FrameXyzoat( const float *xyz_a, const float *xyz_b, const float *xyz_c, const float *xyz_d, float *xyz_p ); DECLSPEC_IMPORT int WINAPI krnx_JacobiMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *jacobi66 , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_JacobiXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *jacobi66 , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_JaInvMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *ja_inv66 , float *matrix ); DECLSPEC_IMPORT int WINAPI krnx_JaInvXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *ja_inv66 , float *xyzoat ); DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint2( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, int conf ); DECLSPEC_IMPORT int WINAPI krnx_GetConfig( int cont_no, int robot_no, float *joint, int *conf ); DECLSPEC_IMPORT int WINAPI krnx_GetASCycle( int robot_no, int *cycle_time ); DECLSPEC_IMPORT int WINAPI krnx_SetJT1Mode( int mode ); DECLSPEC_IMPORT int WINAPI krnx_Xyz456ToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, const float *tool ); /* EX3578-3 a */ /************************** * RT-API * ************************** */ typedef struct { float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */ float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */ float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */ int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */ } TKrnxCurMotionData; typedef struct { float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */ float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */ float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */ int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */ float cur_ref[KRNX_MAXAXES]; /* 各軸電流値(指令値) [A] */ float cur_sat[KRNX_MAXAXES]; /* 各軸電流飽和率(現在値) */ float cur_sat_ref[KRNX_MAXAXES]; /* 各軸電流飽和率(指令値) */ int enc_ref[KRNX_MAXAXES]; /* 各軸エンコーダー値(指令値) [bit] */ float ang_vel[KRNX_MAXAXES]; /* 各軸速度値(現在値) [rad/s or mm/s] */ float ang_vel_ref[KRNX_MAXAXES]; /* 各軸速度値(指令値) [rad/s or mm/s] */ float xyzoat[6]; /* 変換位置(現在値) [rad or mm] */ float xyzoat_ref[6]; /* 変換位置(指令値) [rad or mm] */ float xyzoat_vel; /* 変換速度値(現在値) [mm/s] */ float xyzoat_vel_ref; /* 変換速度値(指令値) [mm/s] */ } TKrnxCurMotionDataEx; typedef struct { short motor_lamp; /* モータランプ */ short cycle_lamp; /* サイクルランプ */ short repeat_lamp; /* リピートランプ */ short run_lamp; /* リピートランプ */ short trigger_lamp; /* トリガーランプ */ short teach_lock_lamp; /* ティーチロックランプ */ short emergency; /* 非常停止ランプ */ short rtc_active; /* RTCアクティブ状態 */ short rb_program_run; /* ロボットプログラム実行状態チェック */ short monitor_speed; /* モニタ速度[%] */ short check_speed; /* チェック速度[mm/sec] */ short enverr_warm; /* 偏差異常状態[軸ビット] */ char reserved[8]; } TKrnxCurRobotStatus; DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionData( int cont_no, int robot_no, TKrnxCurMotionData *md ); DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionDataEx( int cont_no, int robot_no, TKrnxCurMotionDataEx *md ); DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorLamp( int cont_no, int robot_no, int *error_lamp ); /* EX3390 a */ DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorInfo( int cont_no, int robot_no, int *error_code ); /* EX3390 a */ DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfoEx( int cont_no, TKrnxIoInfoEx *ioinfo ); DECLSPEC_IMPORT int WINAPI krnx_GetCurRobotStatus( int cont_no, int robot_no, TKrnxCurRobotStatus *status ); DECLSPEC_IMPORT int WINAPI krnx_SetRtCyclicDataKind( int cont_no, unsigned short kind ); DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicDataKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind ); DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicCtlKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind ); /* RTC */ DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompData( int cont_no, int robot_no, const float *comp, int *status, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_PrimeRtcCompData( int cont_no, int robot_no, const float *comp, int *status ); /* EX3391 a */ DECLSPEC_IMPORT int WINAPI krnx_PrimeRtIoData( int cont_no, TKrnxRtIoCtlDO *io_do, TKrnxRtIoCtlDI *io_di, TKrnxRtIoCtlInternal *internal ); /* EX3691 a */ DECLSPEC_IMPORT int WINAPI krnx_SendRtcCompData( int cont_no, unsigned short seq_no ); /* EX3391 a */ DECLSPEC_IMPORT int WINAPI krnx_SendRtCtlData( int cont_no, unsigned short seq_no, unsigned short kind ); /* EX3691 a */ DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompDataEx( int cont_no, int robot_no, const float *comp, int *status, unsigned long *count_in, unsigned long *count_out, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompData( int cont_no, int robot_no, float *comp ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompLimit( int cont_no, int robot_no, float *comp_limit ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcErrorFlag( int cont_no, int robot_no, int error_flag, unsigned short seq_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcErrorFlag( int cont_no, int robot_no, int *error_flag ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcSwitch( int cont_no, int robot_no, int *rtc_sw ); DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompMask( int cont_no, int robot_no, int mask ); DECLSPEC_IMPORT int WINAPI krnx_OldCompClear( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_GetRtcBufferLength( int cont_no, int robot_no ); /* EX3390 a */ DECLSPEC_IMPORT void WINAPI krnx_timer_callback( void ); DECLSPEC_IMPORT int WINAPI krnx_RtcInit( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeed( int cont_no, int robot_no, float spd, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPos( int cont_no, int robot_no, int wk_no, float pos, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeedEx( int cont_no, int robot_no, int axis_no, float spd, float *prev ); DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPosEx( int cont_no, int robot_no, int axis_no, int wk_no, float pos, float *prev ); /******************************* * KRNX内部API ******************************* */ DECLSPEC_IMPORT int WINAPI krnx_GetKrnxVersion( char *ver_text, int ver_len ); /* FX00919 a */ /************************** * ARC-API * ************************** */ #ifdef KRNX_ARC DECLSPEC_IMPORT int WINAPI krnx_ArcCmdWrite( int cont_no, int robot_no, int cmd, int i_cmd, int v_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcCmdRead( int cont_no, int robot_no, int *i_cmd, int *v_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcStatusRead( int cont_no, int robot_no, int *hw_status, int *rob_status, int *hw_cmd ); DECLSPEC_IMPORT int WINAPI krnx_ArcModifyWrite( int cont_no, int robot_no, int and_cmd, int or_cmd, int and_status, int or_status ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeOk( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeMode( int cont_no, int robot_no, int on_off ); DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChange( int cont_no, int robot_no, float sp, float cur, float vlt, float width, float freq, int pn ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeOk( int cont_no, int robot_no ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeMode( int cont_no, int robot_no, int on_off ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChange( int cont_no, int robot_no, float x, float y, float z ); DECLSPEC_IMPORT int WINAPI krnx_ArcXyzRead( int cont_no, int robot_no, float *x, float *y, float *z ); DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzChange( int cont_no, int robot_no, float x, float y, float z ); DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzRead( int cont_no, int robot_no, float *x, float *y, float *z ); /* SRV_TORCH ++ */ DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtMotorLoad( int cont_no, int robot_no, float *mload ); DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtRotation( int cont_no, int robot_no, float *delta_ang ); DECLSPEC_IMPORT int WINAPI krnx_ArcGetCurSrvtRotation( int cont_no, int robot_no, float *ang ); /* SRV_TORCH -- */ #endif /* KRNX_ARC */ /* ETHER */ DECLSPEC_IMPORT int WINAPI krnx_GetCycleCount( int cont_no, int robot_no, int counter_no ); DECLSPEC_IMPORT int WINAPI krnx_eth_init( char *hostname ); DECLSPEC_IMPORT int WINAPI krnx_eth_open( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_eth_close( int cont_no ); DECLSPEC_IMPORT int WINAPI krnx_SetPriority( DWORD p ); /******************************* * 旧PCコンとの互換性のため ******************************* */ DECLSPEC_IMPORT int WINAPI krnx_NotSupport( void ); DECLSPEC_IMPORT int WINAPI krnx_PanelHw( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_PanelToPC( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_GetArmMode( int, int ); typedef struct { short no, num; // 信号番号 1〜1001〜、ビット数 char str[80]; // }TKrnxDDSig; DECLSPEC_IMPORT int WINAPI krnx_IoGetDDSig( int cont_no, char *dd_di, char *dd_do ); DECLSPEC_IMPORT int WINAPI krnx_DDSigInfo( int cont_no, int io_no, const TKrnxDDSig** ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoSync( int cont_no, int robot_no, TKrnxMotionInfo *md, int data_num ); /******************************* * PcAs起動API ******************************* */ /* ++ Dcon-plus6 ++ */ #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name ); #endif DECLSPEC_IMPORT int WINAPI krnx_StopPcAs( void ); /* -- Dcon-plus6 -- */ DECLSPEC_IMPORT int WINAPI krnx_StopPcAsEx( int entry ); /* Dcon-plus16 a */ /* New datasync api 090210 */ DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfoSync( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfo( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_SetJoint( int cont_no, int robot_no, float ang[KRNX_MAXAXES] ); #ifdef __cplusplus } #endif #endif /* KRNX_H__ */
390 //#ifdef __cplusplus
391 //DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname = NULL, char *port_path = NULL );
392 //#else
393 DECLSPEC_IMPORT int WINAPI krnx_Open( int cont_no, char *hostname );
394 //#endif
395 DECLSPEC_IMPORT int WINAPI krnx_Close( int sd );
396 
397 DECLSPEC_IMPORT int WINAPI krnx_SetAppParam( int type, char *param ); /* FX00436 a */
398 
399 /**************************
400  * AUXAPI(モニタコマンド) *
401  **************************
402  */
403 
404 /* element type for DELETE,LIST,SAVE */
405 #define QUAL_PRG 0x0001 /* プログラム、変数 */
406 #define QUAL_LOC 0x0002
407 #define QUAL_REAL 0x0004
408 #define QUAL_STR 0x0008
409 #define QUAL_INT 0x0010
410 #define QUAL_SYS 0x0020 /* データ */
411 #define QUAL_ROB 0x0040
412 #define QUAL_AUX 0x0080
413 #define QUAL_ARC 0x0100
414 #define QUAL_IFP 0x0200
415 #define QUAL_ELOG 0x0400 /* 特殊データ */
416 #define QUAL_FLT 0x0800
417 
418 #ifdef __cplusplus
419 DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code=NULL );
420 DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code=NULL );
421 DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code=NULL );
422 DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL );
423 DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code=NULL );
424 DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code=NULL );
425 DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code=NULL );
426 DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code=NULL );
427 DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code=NULL );
428 DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code=NULL );
429 DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code=NULL );
430 DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL );
431 DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL );
432 DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code=NULL );
433 DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code=NULL );
434 DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code=NULL );
435 DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code=NULL );
436 DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code=NULL );
437 DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code=NULL );
438 DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code=NULL );
439 DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code=NULL );
440 DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code=NULL );
441 DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code=NULL );
442 DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code=NULL );
443 DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code=NULL );
444 #else
445 DECLSPEC_IMPORT int WINAPI krnx_Abort( int cont_no, int robot_no, int *as_err_code );
446 DECLSPEC_IMPORT int WINAPI krnx_Hold( int cont_no, int robot_no, int *as_err_code );
447 DECLSPEC_IMPORT int WINAPI krnx_Continue( int cont_no, int robot_no, int next, int *as_err_code );
448 DECLSPEC_IMPORT int WINAPI krnx_Execute( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code );
449 DECLSPEC_IMPORT int WINAPI krnx_Kill( int cont_no, int robot_no, int *as_err_code );
450 DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed( int cont_no, int robot_no, float speed, int *as_err_code );
451 DECLSPEC_IMPORT int WINAPI krnx_PcAbort( int cont_no, int pcprogram_no, int *as_err_code );
452 DECLSPEC_IMPORT int WINAPI krnx_PcEnd( int cont_no, int pcprogram_no, int *as_err_code );
453 DECLSPEC_IMPORT int WINAPI krnx_PcContinue( int cont_no, int pcprogram_no, int next, int *as_err_code );
454 DECLSPEC_IMPORT int WINAPI krnx_PcExecute( int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code );
455 DECLSPEC_IMPORT int WINAPI krnx_PcKill( int cont_no, int pcprogram_no, int *as_err_code );
456 DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code );
457 DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code );
458 DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix( int cont_no, int robot_no, float *xyzoat, int *as_err_code );
459 DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix( int cont_no, int robot_no, const float *xyzoat, int *as_err_code );
460 DECLSPEC_IMPORT int WINAPI krnx_GetSignal( int cont_no, int signal_no, int *status, int *as_err_code );
461 DECLSPEC_IMPORT int WINAPI krnx_SetSignal( int cont_no, int signal_no, int status, int *as_err_code );
462 DECLSPEC_IMPORT int WINAPI krnx_Reset( int cont_no, int *as_err_code );
463 DECLSPEC_IMPORT int WINAPI krnx_Delete( int cont_no, const char *element_name, int element_type, int *as_err_code );
464 DECLSPEC_IMPORT int WINAPI krnx_List( int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code );
465 DECLSPEC_IMPORT int WINAPI krnx_Ereset( int cont_no, int robot_no, int *as_err_code );
466 DECLSPEC_IMPORT int WINAPI krnx_Do( int cont_no, int robot_no, const char *cmd, int *as_err_code );
467 DECLSPEC_IMPORT int WINAPI krnx_Prime( int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code );
468 DECLSPEC_IMPORT int WINAPI krnx_RecOneStep( int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code );
469 DECLSPEC_IMPORT int WINAPI krnx_ExecMon( int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code );
470 #endif
471 
472 DECLSPEC_IMPORT int WINAPI krnx_Save( int cont_no, const char *filename, const char *program_name, int option );
473 DECLSPEC_IMPORT int WINAPI krnx_Load( int cont_no, const char *filename );
474 
475 typedef BOOL (*FLoadCallBack)( void *param, long byte, const char *msg );
476 
477 #ifdef __cplusplus
478 DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp=NULL, void *cb_param=NULL );
479 DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp=NULL, void *cb_param=NULL );
480 #else
481 DECLSPEC_IMPORT int WINAPI krnx_SaveEx( int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp, void *cb_param );
482 DECLSPEC_IMPORT int WINAPI krnx_LoadEx( int cont_no, const char *filename, FLoadCallBack cbfp, void *cb_param );
483 #endif
484 
485 DECLSPEC_IMPORT int WINAPI krnx_ConvertErrorCode( int *error_code, char *error_level );
486 DECLSPEC_IMPORT int WINAPI krnx_GetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info );
487 DECLSPEC_IMPORT int WINAPI krnx_SetRtcInfo( int cont_no, TKrnxRtcInfo *rtc_info );
488 
489 DECLSPEC_IMPORT int WINAPI krnx_SetAuxApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */
490 
491 /**************************
492  * AS-API *
493  **************************
494  */
495 DECLSPEC_IMPORT int WINAPI krnx_GetRobotName( int cont_no, int robot_no, char *robot_name );
496 DECLSPEC_IMPORT int WINAPI krnx_GetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo );
497 DECLSPEC_IMPORT int WINAPI krnx_SetPanelInfo( int cont_no, int robot_no, TKrnxPanelInfo *panelinfo );
498 DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo );
499 DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionInfo( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo );
500 DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoEx( int cont_no, int robot_no, TKrnxMotionInfo *mtninfo, int data_type );
501 DECLSPEC_IMPORT int WINAPI krnx_GetIoInfo( int cont_no, TKrnxIoInfo *ioinfo );
502 DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfo( int cont_no, TKrnxIoInfo *ioinfo );
503 DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo( int cont_no, int robot_no, TKrnxProgramInfo *proginfo );
504 DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo2( int cont_no, int robot_no, TKrnxProgramInfo *proginfo );
505 DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorList( int cont_no, TKrnxErrorList *errorlist ); /* FX03496 a */
506 
507 DECLSPEC_IMPORT int WINAPI krnx_BufferBusy( int cont_no, int buf_no );
508 DECLSPEC_IMPORT int WINAPI krnx_BufferEmpty( int cont_no, int buf_no );
509 DECLSPEC_IMPORT int WINAPI krnx_BufferSendF( int cont_no, int buf_no, short req_code, const float *p, int num, int timeout );
510 DECLSPEC_IMPORT int WINAPI krnx_BufferSendW( int cont_no, int buf_no, short req_code, const short *p, int num, int timeout );
511 DECLSPEC_IMPORT int WINAPI krnx_BufferSendB( int cont_no, int buf_no, short req_code, const char *p, int num, int timeout );
512 DECLSPEC_IMPORT int WINAPI krnx_BufferRecvF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout );
513 DECLSPEC_IMPORT int WINAPI krnx_BufferPeekF( int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout );
514 DECLSPEC_IMPORT int WINAPI krnx_BufferRecvW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout );
515 DECLSPEC_IMPORT int WINAPI krnx_BufferPeekW( int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout );
516 DECLSPEC_IMPORT int WINAPI krnx_BufferRecvB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout );
517 DECLSPEC_IMPORT int WINAPI krnx_BufferPeekB( int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout );
518 
519 DECLSPEC_IMPORT int WINAPI krnx_GetLimitM( int cont_no, int robot_no, float *ll );
520 DECLSPEC_IMPORT int WINAPI krnx_GetLimitP( int cont_no, int robot_no, float *ul );
521 
522 DECLSPEC_IMPORT int WINAPI krnx_GetErrorInfo( int cont_no, int robot_no, int *error_code );
523 DECLSPEC_IMPORT int WINAPI krnx_IoSetDI( int cont_no, const char *in, const char *mask, size_t size );
524 DECLSPEC_IMPORT int WINAPI krnx_IoSetDO( int cont_no, const char *out, const char *mask, size_t size );
525 
526 DECLSPEC_IMPORT int WINAPI krnx_SetAsApiTimeoutPeriod( int cont_no, int period ); /* FX02360 a */
527 
528 /**************************
529  * 順逆変換API *
530  **************************
531  */
532 
533 DECLSPEC_IMPORT int WINAPI krnx_JointToXyzoat( int cont_no, int robot_no, const float *joint, float *xyzoat );
534 DECLSPEC_IMPORT int WINAPI krnx_JointToMatrix( int cont_no, int robot_no, const float *joint, float *matrix );
535 DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint );
536 DECLSPEC_IMPORT int WINAPI krnx_MatrixToJoint( int cont_no, int robot_no, const float *matrix, float *joint, const float *old_joint );
537 DECLSPEC_IMPORT int WINAPI krnx_MultiplyXyzoat( const float *xyzoat_a, const float *xyzoat_b, float *xyzoat_c );
538 DECLSPEC_IMPORT int WINAPI krnx_MultiplyMatrix( const float *matrix_a, const float *matrix_b, float *matrix_c );
539 DECLSPEC_IMPORT int WINAPI krnx_InverseXyzoat( const float *xyzoat_a, float *xyzoat_b );
540 DECLSPEC_IMPORT int WINAPI krnx_InverseMatrix( const float *matrix_a, float *matrix_b );
541 DECLSPEC_IMPORT int WINAPI krnx_MatrixToXyzoat( const float *matrix , float *xyzoat );
542 DECLSPEC_IMPORT int WINAPI krnx_XyzoatToMatrix( const float *xyzoat , float *matrix );
543 DECLSPEC_IMPORT int WINAPI krnx_FrameMatrix( const float *mat_a, const float *mat_b, const float *mat_c, const float *mat_d, float *mat_p );
544 DECLSPEC_IMPORT int WINAPI krnx_FrameXyzoat( const float *xyz_a, const float *xyz_b, const float *xyz_c, const float *xyz_d, float *xyz_p );
545 DECLSPEC_IMPORT int WINAPI krnx_JacobiMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *jacobi66 , float *matrix );
546 DECLSPEC_IMPORT int WINAPI krnx_JacobiXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *jacobi66 , float *xyzoat );
547 DECLSPEC_IMPORT int WINAPI krnx_JaInvMatrix( int cont_no, int robot_no, const float *joint, const float *tool_matrix , float *ja_inv66 , float *matrix );
548 DECLSPEC_IMPORT int WINAPI krnx_JaInvXyzoat( int cont_no, int robot_no, const float *joint, const float *tool_xyzoat , float *ja_inv66 , float *xyzoat );
549 
550 DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint2( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, int conf );
551 DECLSPEC_IMPORT int WINAPI krnx_GetConfig( int cont_no, int robot_no, float *joint, int *conf );
552 
553 DECLSPEC_IMPORT int WINAPI krnx_GetASCycle( int robot_no, int *cycle_time );
554 
555 DECLSPEC_IMPORT int WINAPI krnx_SetJT1Mode( int mode );
556 
557  DECLSPEC_IMPORT int WINAPI krnx_Xyz456ToJoint( int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, const float *tool ); /* EX3578-3 a */
558 
559 /**************************
560  * RT-API *
561  **************************
562  */
563 typedef struct
564 {
565  float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */
566  float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */
567  float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */
568  int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */
570 
571 typedef struct
572 {
573  float ang[KRNX_MAXAXES]; /* 各軸位置(現在値) [rad or mm] */
574  float ang_ref[KRNX_MAXAXES]; /* 各軸位置(指令値) [rad or mm] */
575  float cur[KRNX_MAXAXES]; /* 各軸電流値(現在値) [A] */
576  int enc[KRNX_MAXAXES]; /* 各軸エンコーダー値(現在値) [bit] */
577  float cur_ref[KRNX_MAXAXES]; /* 各軸電流値(指令値) [A] */
578  float cur_sat[KRNX_MAXAXES]; /* 各軸電流飽和率(現在値) */
579  float cur_sat_ref[KRNX_MAXAXES]; /* 各軸電流飽和率(指令値) */
580  int enc_ref[KRNX_MAXAXES]; /* 各軸エンコーダー値(指令値) [bit] */
581  float ang_vel[KRNX_MAXAXES]; /* 各軸速度値(現在値) [rad/s or mm/s] */
582  float ang_vel_ref[KRNX_MAXAXES]; /* 各軸速度値(指令値) [rad/s or mm/s] */
583  float xyzoat[6]; /* 変換位置(現在値) [rad or mm] */
584  float xyzoat_ref[6]; /* 変換位置(指令値) [rad or mm] */
585  float xyzoat_vel; /* 変換速度値(現在値) [mm/s] */
586  float xyzoat_vel_ref; /* 変換速度値(指令値) [mm/s] */
588 
589 typedef struct
590 {
591  short motor_lamp; /* モータランプ */
592  short cycle_lamp; /* サイクルランプ */
593  short repeat_lamp; /* リピートランプ */
594  short run_lamp; /* リピートランプ */
595  short trigger_lamp; /* トリガーランプ */
596  short teach_lock_lamp; /* ティーチロックランプ */
597  short emergency; /* 非常停止ランプ */
598  short rtc_active; /* RTCアクティブ状態 */
599  short rb_program_run; /* ロボットプログラム実行状態チェック */
600  short monitor_speed; /* モニタ速度[%] */
601  short check_speed; /* チェック速度[mm/sec] */
602  short enverr_warm; /* 偏差異常状態[軸ビット] */
603  char reserved[8];
605 
606 DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionData( int cont_no, int robot_no, TKrnxCurMotionData *md );
607 DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionDataEx( int cont_no, int robot_no, TKrnxCurMotionDataEx *md );
608 DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorLamp( int cont_no, int robot_no, int *error_lamp ); /* EX3390 a */
609 DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorInfo( int cont_no, int robot_no, int *error_code ); /* EX3390 a */
610 DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfoEx( int cont_no, TKrnxIoInfoEx *ioinfo );
611 DECLSPEC_IMPORT int WINAPI krnx_GetCurRobotStatus( int cont_no, int robot_no, TKrnxCurRobotStatus *status );
612 DECLSPEC_IMPORT int WINAPI krnx_SetRtCyclicDataKind( int cont_no, unsigned short kind );
613 DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicDataKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind );
614 DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicCtlKind( int cont_no, unsigned short *krnx_kind, unsigned short *as_kind );
615 
616 /* RTC */
617 DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompData( int cont_no, int robot_no, const float *comp, int *status, unsigned short seq_no );
618 DECLSPEC_IMPORT int WINAPI krnx_PrimeRtcCompData( int cont_no, int robot_no, const float *comp, int *status ); /* EX3391 a */
619 DECLSPEC_IMPORT int WINAPI krnx_PrimeRtIoData( int cont_no, TKrnxRtIoCtlDO *io_do, TKrnxRtIoCtlDI *io_di, TKrnxRtIoCtlInternal *internal ); /* EX3691 a */
620 DECLSPEC_IMPORT int WINAPI krnx_SendRtcCompData( int cont_no, unsigned short seq_no ); /* EX3391 a */
621 DECLSPEC_IMPORT int WINAPI krnx_SendRtCtlData( int cont_no, unsigned short seq_no, unsigned short kind ); /* EX3691 a */
622 DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompDataEx( int cont_no, int robot_no, const float *comp, int *status, unsigned long *count_in, unsigned long *count_out, unsigned short seq_no );
623 DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompData( int cont_no, int robot_no, float *comp );
624 DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompLimit( int cont_no, int robot_no, float *comp_limit );
625 DECLSPEC_IMPORT int WINAPI krnx_SetRtcErrorFlag( int cont_no, int robot_no, int error_flag, unsigned short seq_no );
626 DECLSPEC_IMPORT int WINAPI krnx_GetRtcErrorFlag( int cont_no, int robot_no, int *error_flag );
627 DECLSPEC_IMPORT int WINAPI krnx_GetRtcSwitch( int cont_no, int robot_no, int *rtc_sw );
628 DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompMask( int cont_no, int robot_no, int mask );
629 DECLSPEC_IMPORT int WINAPI krnx_OldCompClear( int cont_no, int robot_no );
630 DECLSPEC_IMPORT int WINAPI krnx_GetRtcBufferLength( int cont_no, int robot_no ); /* EX3390 a */
632 
633 DECLSPEC_IMPORT int WINAPI krnx_RtcInit( int cont_no );
634 
635 DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeed( int cont_no, int robot_no, float spd, float *prev );
636 DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPos( int cont_no, int robot_no, int wk_no, float pos, float *prev );
637 DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeedEx( int cont_no, int robot_no, int axis_no, float spd, float *prev );
638 DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPosEx( int cont_no, int robot_no, int axis_no, int wk_no, float pos, float *prev );
639 
640 /*******************************
641  * KRNX内部API
642  *******************************
643  */
644 DECLSPEC_IMPORT int WINAPI krnx_GetKrnxVersion( char *ver_text, int ver_len ); /* FX00919 a */
645 
646 /**************************
647  * ARC-API *
648  **************************
649  */
650 #ifdef KRNX_ARC
651 DECLSPEC_IMPORT int WINAPI krnx_ArcCmdWrite( int cont_no, int robot_no, int cmd, int i_cmd, int v_cmd );
652 DECLSPEC_IMPORT int WINAPI krnx_ArcCmdRead( int cont_no, int robot_no, int *i_cmd, int *v_cmd );
653 DECLSPEC_IMPORT int WINAPI krnx_ArcStatusRead( int cont_no, int robot_no, int *hw_status, int *rob_status, int *hw_cmd );
654 DECLSPEC_IMPORT int WINAPI krnx_ArcModifyWrite( int cont_no, int robot_no, int and_cmd, int or_cmd, int and_status, int or_status );
655 DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeOk( int cont_no, int robot_no );
656 DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChangeMode( int cont_no, int robot_no, int on_off );
657 DECLSPEC_IMPORT int WINAPI krnx_ArcWeldChange( int cont_no, int robot_no, float sp, float cur, float vlt, float width, float freq, int pn );
658 DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeOk( int cont_no, int robot_no );
659 DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChangeMode( int cont_no, int robot_no, int on_off );
660 DECLSPEC_IMPORT int WINAPI krnx_ArcXyzChange( int cont_no, int robot_no, float x, float y, float z );
661 DECLSPEC_IMPORT int WINAPI krnx_ArcXyzRead( int cont_no, int robot_no, float *x, float *y, float *z );
662 DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzChange( int cont_no, int robot_no, float x, float y, float z );
663 DECLSPEC_IMPORT int WINAPI krnx_ArcToolXyzRead( int cont_no, int robot_no, float *x, float *y, float *z );
664 /* SRV_TORCH ++ */
665 DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtMotorLoad( int cont_no, int robot_no, float *mload );
666 DECLSPEC_IMPORT int WINAPI krnx_ArcGetSrvtRotation( int cont_no, int robot_no, float *delta_ang );
667 DECLSPEC_IMPORT int WINAPI krnx_ArcGetCurSrvtRotation( int cont_no, int robot_no, float *ang );
668 /* SRV_TORCH -- */
669 #endif /* KRNX_ARC */
670 
671 /* ETHER */
672 DECLSPEC_IMPORT int WINAPI krnx_GetCycleCount( int cont_no, int robot_no, int counter_no );
673 DECLSPEC_IMPORT int WINAPI krnx_eth_init( char *hostname );
674 DECLSPEC_IMPORT int WINAPI krnx_eth_open( int cont_no );
675 DECLSPEC_IMPORT int WINAPI krnx_eth_close( int cont_no );
677 
678 /*******************************
679  * 旧PCコンとの互換性のため ******************************* */ DECLSPEC_IMPORT int WINAPI krnx_NotSupport( void ); DECLSPEC_IMPORT int WINAPI krnx_PanelHw( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_PanelToPC( int, int, char *); DECLSPEC_IMPORT int WINAPI krnx_GetArmMode( int, int ); typedef struct { short no, num; // 信号番号 1〜1001〜、ビット数 char str[80]; // }TKrnxDDSig; DECLSPEC_IMPORT int WINAPI krnx_IoGetDDSig( int cont_no, char *dd_di, char *dd_do ); DECLSPEC_IMPORT int WINAPI krnx_DDSigInfo( int cont_no, int io_no, const TKrnxDDSig** ); DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoSync( int cont_no, int robot_no, TKrnxMotionInfo *md, int data_num ); /******************************* * PcAs起動API ******************************* */ /* ++ Dcon-plus6 ++ */ #ifdef __cplusplus DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name=NULL ); #else DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name ); #endif DECLSPEC_IMPORT int WINAPI krnx_StopPcAs( void ); /* -- Dcon-plus6 -- */ DECLSPEC_IMPORT int WINAPI krnx_StopPcAsEx( int entry ); /* Dcon-plus16 a */ /* New datasync api 090210 */ DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfoSync( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfo( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num ); DECLSPEC_IMPORT int WINAPI krnx_SetJoint( int cont_no, int robot_no, float ang[KRNX_MAXAXES] ); #ifdef __cplusplus } #endif #endif /* KRNX_H__ */
680  *******************************
681  */
683 DECLSPEC_IMPORT int WINAPI krnx_PanelHw( int, int, char *);
684 DECLSPEC_IMPORT int WINAPI krnx_PanelToPC( int, int, char *);
685 DECLSPEC_IMPORT int WINAPI krnx_GetArmMode( int, int );
686 
687 typedef struct
688 {
689  short no, num; // 信号番号 1〜1001〜、ビット数
690  char str[80]; //
691 }TKrnxDDSig;
692 
693 DECLSPEC_IMPORT int WINAPI krnx_IoGetDDSig( int cont_no, char *dd_di, char *dd_do );
694 DECLSPEC_IMPORT int WINAPI krnx_DDSigInfo( int cont_no, int io_no, const TKrnxDDSig** );
695 DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoSync( int cont_no, int robot_no, TKrnxMotionInfo *md, int data_num );
696 
697 /*******************************
698  * PcAs起動API
699  *******************************
700  */
701 
702 /* ++ Dcon-plus6 ++ */
703 #ifdef __cplusplus
704 DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name=NULL );
705 #else
706 DECLSPEC_IMPORT int WINAPI krnx_RunPcAs( char *ini_file_name );
707 #endif
709 /* -- Dcon-plus6 -- */
710 DECLSPEC_IMPORT int WINAPI krnx_StopPcAsEx( int entry ); /* Dcon-plus16 a */
711 
712 /* New datasync api 090210 */
713 DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfoSync( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num );
714 
715 DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfo( int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num );
716 
717 DECLSPEC_IMPORT int WINAPI krnx_SetJoint( int cont_no, int robot_no, float ang[KRNX_MAXAXES] );
718 
719 #ifdef __cplusplus
720 }
721 #endif
722 
723 #endif /* KRNX_H__ */
TDebugSystemInfo::c
int c
Definition: krnx.h:312
WINAPI
#define WINAPI
Definition: krnx.h:14
TKrnxRtIoCtlDI::sync
unsigned short sync
Definition: krnx.h:373
TKrnxRtcInfo
Definition: krnx.h:288
TKrnxStepperInfo::step_number
short step_number
Definition: krnx.h:246
krnx_SetConveyorSpeedEx
DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeedEx(int cont_no, int robot_no, int axis_no, float spd, float *prev)
krnx_GetSignal
DECLSPEC_IMPORT int WINAPI krnx_GetSignal(int cont_no, int signal_no, int *status, int *as_err_code)
krnx_InverseXyzoat
DECLSPEC_IMPORT int WINAPI krnx_InverseXyzoat(const float *xyzoat_a, float *xyzoat_b)
krnx_Ereset
DECLSPEC_IMPORT int WINAPI krnx_Ereset(int cont_no, int robot_no, int *as_err_code)
TKrnxErrorList::error_code
long error_code[KRNX_MAX_ERROR_LIST_SIZ]
Definition: krnx.h:355
krnx_SetRtcCompDataEx
DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompDataEx(int cont_no, int robot_no, const float *comp, int *status, unsigned long *count_in, unsigned long *count_out, unsigned short seq_no)
krnx_Continue
DECLSPEC_IMPORT int WINAPI krnx_Continue(int cont_no, int robot_no, int next, int *as_err_code)
TKrnxCurRobotStatus::trigger_lamp
short trigger_lamp
Definition: krnx.h:595
krnx_JaInvMatrix
DECLSPEC_IMPORT int WINAPI krnx_JaInvMatrix(int cont_no, int robot_no, const float *joint, const float *tool_matrix, float *ja_inv66, float *matrix)
TDebugMotionInfo::ang_ref
float ang_ref[KRNX_MAXAXES]
Definition: krnx.h:330
HANDLE
void * HANDLE
Definition: krnx.h:9
TKrnxDebugInfoEnt::sys
TDebugSystemInfo sys
Definition: krnx.h:343
krnx_GetCurMotionDataEx
DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionDataEx(int cont_no, int robot_no, TKrnxCurMotionDataEx *md)
krnx_GetLimitM
DECLSPEC_IMPORT int WINAPI krnx_GetLimitM(int cont_no, int robot_no, float *ll)
DI_MAX_SIGNAL
#define DI_MAX_SIGNAL
Definition: krnx.h:96
krnx_SetJT1Mode
DECLSPEC_IMPORT int WINAPI krnx_SetJT1Mode(int mode)
krnx_SetConveyorSpeed
DECLSPEC_IMPORT int WINAPI krnx_SetConveyorSpeed(int cont_no, int robot_no, float spd, float *prev)
msg
msg
krnx_Hold
DECLSPEC_IMPORT int WINAPI krnx_Hold(int cont_no, int robot_no, int *as_err_code)
TKrnxCurMotionDataEx::xyzoat_vel_ref
float xyzoat_vel_ref
Definition: krnx.h:586
krnx_IoSetDI
DECLSPEC_IMPORT int WINAPI krnx_IoSetDI(int cont_no, const char *in, const char *mask, size_t size)
KRNX_MAX_PCPROG
#define KRNX_MAX_PCPROG
Definition: krnx.h:62
krnx_JointToXyzoat
DECLSPEC_IMPORT int WINAPI krnx_JointToXyzoat(int cont_no, int robot_no, const float *joint, float *xyzoat)
krnx_SetRtcErrorFlag
DECLSPEC_IMPORT int WINAPI krnx_SetRtcErrorFlag(int cont_no, int robot_no, int error_flag, unsigned short seq_no)
krnx_PcEnd
DECLSPEC_IMPORT int WINAPI krnx_PcEnd(int cont_no, int pcprogram_no, int *as_err_code)
krnx_GetRtcInfo
DECLSPEC_IMPORT int WINAPI krnx_GetRtcInfo(int cont_no, TKrnxRtcInfo *rtc_info)
TKrnxDebugInfoEnt::mtn
TDebugMotionInfo mtn
Definition: krnx.h:344
TKrnxPanelInfo
Definition: krnx.h:200
TKrnxCurMotionDataEx::xyzoat_vel
float xyzoat_vel
Definition: krnx.h:585
krnx_GetRtcErrorFlag
DECLSPEC_IMPORT int WINAPI krnx_GetRtcErrorFlag(int cont_no, int robot_no, int *error_flag)
DBG_FVAL_NUM
#define DBG_FVAL_NUM
Definition: krnx.h:100
krnx_GetCurErrorList
DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorList(int cont_no, TKrnxErrorList *errorlist)
TKrnxPanelInfo::run_lamp
short run_lamp
Definition: krnx.h:206
TDebugMotionInfo
struct TDebugMotionInfo TDebugMotionInfo
krnx_Do
DECLSPEC_IMPORT int WINAPI krnx_Do(int cont_no, int robot_no, const char *cmd, int *as_err_code)
TDebugTrajInfo::ctl_axis
int ctl_axis
Definition: krnx.h:321
UINT
unsigned int UINT
Definition: krnx.h:13
krnx_Close
DECLSPEC_IMPORT int WINAPI krnx_Close(int sd)
TKrnxStepperInfo::priority
short priority
Definition: krnx.h:245
TKrnxDebugInfoEnt::trj
TDebugTrajInfo trj
Definition: krnx.h:345
krnx_JacobiXyzoat
DECLSPEC_IMPORT int WINAPI krnx_JacobiXyzoat(int cont_no, int robot_no, const float *joint, const float *tool_xyzoat, float *jacobi66, float *xyzoat)
TKrnxCurRobotStatus::motor_lamp
short motor_lamp
Definition: krnx.h:591
TDebugMotionInfo::end_pos_trans
float end_pos_trans[KRNX_MAXAXES]
Definition: krnx.h:337
TKrnxRtIoCtlDO::enable
char enable[DO_MAX_SIGNAL/8]
Definition: krnx.h:367
krnx_OldCompClear
DECLSPEC_IMPORT int WINAPI krnx_OldCompClear(int cont_no, int robot_no)
krnx_GetRtcBufferLength
DECLSPEC_IMPORT int WINAPI krnx_GetRtcBufferLength(int cont_no, int robot_no)
TKrnxRtcInfo::buf
short buf
Definition: krnx.h:291
TKrnxRtIoCtlDO
Definition: krnx.h:363
krnx_SetPriority
DECLSPEC_IMPORT int WINAPI krnx_SetPriority(DWORD p)
krnx_GetMotionInfoEx
DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoEx(int cont_no, int robot_no, TKrnxMotionInfo *mtninfo, int data_type)
TKrnxMonInfo::monitor_speed
float monitor_speed
Definition: krnx.h:235
INT_CBUF_SIZ
#define INT_CBUF_SIZ
Definition: krnx.h:77
krnx_JaInvXyzoat
DECLSPEC_IMPORT int WINAPI krnx_JaInvXyzoat(int cont_no, int robot_no, const float *joint, const float *tool_xyzoat, float *ja_inv66, float *xyzoat)
TKrnxPanelInfo::error_lamp
short error_lamp
Definition: krnx.h:202
TDebugMotionInfo
Definition: krnx.h:324
TSignalEx::usr_do
unsigned long usr_do[DO_MAX_SIGNAL/32]
Definition: krnx.h:283
krnx_SetToolMatrix
DECLSPEC_IMPORT int WINAPI krnx_SetToolMatrix(int cont_no, int robot_no, const float *xyzoat, int *as_err_code)
TKrnxStepperInfo
Definition: krnx.h:240
TKrnxRtIoCtlInternal
struct TKrnxRtIoCtlInternal TKrnxRtIoCtlInternal
krnx_GetRtCyclicDataKind
DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicDataKind(int cont_no, unsigned short *krnx_kind, unsigned short *as_kind)
TDebugMotionInfo::vel_ref
long vel_ref[KRNX_MAXAXES]
Definition: krnx.h:331
krnx_Reset
DECLSPEC_IMPORT int WINAPI krnx_Reset(int cont_no, int *as_err_code)
krnx_GetRtcCompData
DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompData(int cont_no, int robot_no, float *comp)
TKrnxRtIoCtlDO::command
unsigned short command
Definition: krnx.h:366
TKrnxCurRobotStatus::repeat_lamp
short repeat_lamp
Definition: krnx.h:593
krnx_InverseMatrix
DECLSPEC_IMPORT int WINAPI krnx_InverseMatrix(const float *matrix_a, float *matrix_b)
krnx_PcAbort
DECLSPEC_IMPORT int WINAPI krnx_PcAbort(int cont_no, int pcprogram_no, int *as_err_code)
TDebugMotionInfo::flg_stepup
int flg_stepup
Definition: krnx.h:335
krnx_GetCycleCount
DECLSPEC_IMPORT int WINAPI krnx_GetCycleCount(int cont_no, int robot_no, int counter_no)
krnx_GetMotionInfoSync
DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfoSync(int cont_no, int robot_no, TKrnxMotionInfo *md, int data_num)
krnx_SetAppParam
DECLSPEC_IMPORT int WINAPI krnx_SetAppParam(int type, char *param)
krnx_SendRtCtlData
DECLSPEC_IMPORT int WINAPI krnx_SendRtCtlData(int cont_no, unsigned short seq_no, unsigned short kind)
DWORD
unsigned long DWORD
Definition: krnx.h:12
krnx_SetMonSpeed
DECLSPEC_IMPORT int WINAPI krnx_SetMonSpeed(int cont_no, int robot_no, float speed, int *as_err_code)
TDebugSystemInfo
struct TDebugSystemInfo TDebugSystemInfo
TKrnxStepperInfo::remain_count
long remain_count
Definition: krnx.h:243
krnx_BufferSendW
DECLSPEC_IMPORT int WINAPI krnx_BufferSendW(int cont_no, int buf_no, short req_code, const short *p, int num, int timeout)
krnx_SetRtcCompData
DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompData(int cont_no, int robot_no, const float *comp, int *status, unsigned short seq_no)
TKrnxRtIoCtlDI
struct TKrnxRtIoCtlDI TKrnxRtIoCtlDI
krnx_GetLimitP
DECLSPEC_IMPORT int WINAPI krnx_GetLimitP(int cont_no, int robot_no, float *ul)
krnx_GetMotionInfo
DECLSPEC_IMPORT int WINAPI krnx_GetMotionInfo(int cont_no, int robot_no, TKrnxMotionInfo *mtninfo)
TSignalEx::usr_di
unsigned long usr_di[DI_MAX_SIGNAL/32]
Definition: krnx.h:282
FLoadCallBack
BOOL(* FLoadCallBack)(void *param, long byte, const char *msg)
Definition: krnx.h:475
TKrnxDebugInfoEnt
Definition: krnx.h:341
krnx_GetKrnxVersion
DECLSPEC_IMPORT int WINAPI krnx_GetKrnxVersion(char *ver_text, int ver_len)
TKrnxPanelInfo::emergency
short emergency
Definition: krnx.h:209
krnx_SetAuxApiTimeoutPeriod
DECLSPEC_IMPORT int WINAPI krnx_SetAuxApiTimeoutPeriod(int cont_no, int period)
krnx_JointToMatrix
DECLSPEC_IMPORT int WINAPI krnx_JointToMatrix(int cont_no, int robot_no, const float *joint, float *matrix)
krnx_RunPcAs
DECLSPEC_IMPORT int WINAPI krnx_RunPcAs(char *ini_file_name)
krnx_GetProgramInfo2
DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo2(int cont_no, int robot_no, TKrnxProgramInfo *proginfo)
TKrnxCurRobotStatus::monitor_speed
short monitor_speed
Definition: krnx.h:600
TKrnxRtcInfo
struct TKrnxRtcInfo TKrnxRtcInfo
TKrnxRtIoCtlInternal::command
unsigned short command
Definition: krnx.h:382
krnx_LoadEx
DECLSPEC_IMPORT int WINAPI krnx_LoadEx(int cont_no, const char *filename, FLoadCallBack cbfp, void *cb_param)
TDebugMotionInfo::enc
long enc[KRNX_MAXAXES]
Definition: krnx.h:328
krnx_FrameXyzoat
DECLSPEC_IMPORT int WINAPI krnx_FrameXyzoat(const float *xyz_a, const float *xyz_b, const float *xyz_c, const float *xyz_d, float *xyz_p)
krnx_JacobiMatrix
DECLSPEC_IMPORT int WINAPI krnx_JacobiMatrix(int cont_no, int robot_no, const float *joint, const float *tool_matrix, float *jacobi66, float *matrix)
TKrnxRtIoCtlDI
Definition: krnx.h:371
DO_MAX_SIGNAL
#define DO_MAX_SIGNAL
Definition: krnx.h:97
krnx_BufferPeekB
DECLSPEC_IMPORT int WINAPI krnx_BufferPeekB(int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout)
krnx_Open
DECLSPEC_IMPORT int WINAPI krnx_Open(int cont_no, char *hostname)
krnx_BufferBusy
DECLSPEC_IMPORT int WINAPI krnx_BufferBusy(int cont_no, int buf_no)
krnx_GetConfig
DECLSPEC_IMPORT int WINAPI krnx_GetConfig(int cont_no, int robot_no, float *joint, int *conf)
krnx_BufferPeekW
DECLSPEC_IMPORT int WINAPI krnx_BufferPeekW(int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout)
TKrnxCurMotionData
Definition: krnx.h:563
TSignalEx
Definition: krnx.h:280
krnx_GetArmMode
DECLSPEC_IMPORT int WINAPI krnx_GetArmMode(int, int)
KRNX_MAXSIGNAL
#define KRNX_MAXSIGNAL
Definition: krnx.h:69
INTERNAL_MAX_SIGNAL
#define INTERNAL_MAX_SIGNAL
Definition: krnx.h:98
krnx_PcContinue
DECLSPEC_IMPORT int WINAPI krnx_PcContinue(int cont_no, int pcprogram_no, int next, int *as_err_code)
TKrnxPanelInfo::motor_lamp
short motor_lamp
Definition: krnx.h:203
krnx_GetRobotName
DECLSPEC_IMPORT int WINAPI krnx_GetRobotName(int cont_no, int robot_no, char *robot_name)
TDebugTrajInfo::sp
float sp
Definition: krnx.h:319
krnx_PrimeRtIoData
DECLSPEC_IMPORT int WINAPI krnx_PrimeRtIoData(int cont_no, TKrnxRtIoCtlDO *io_do, TKrnxRtIoCtlDI *io_di, TKrnxRtIoCtlInternal *internal)
krnx_SaveEx
DECLSPEC_IMPORT int WINAPI krnx_SaveEx(int cont_no, const char *filename, const char *program_name, int option, FLoadCallBack cbfp, void *cb_param)
TKrnxMonInfo::always_speed
float always_speed
Definition: krnx.h:236
krnx_StopPcAsEx
DECLSPEC_IMPORT int WINAPI krnx_StopPcAsEx(int entry)
TKrnxRtIoCtlDI::enable
char enable[DI_MAX_SIGNAL/8]
Definition: krnx.h:375
TKrnxDebugInfoEnt::val
TDebugVariableInfo val
Definition: krnx.h:346
TDebugTrajInfo::step_info
char step_info[INT_CBUF_SIZ]
Definition: krnx.h:318
krnx_IoGetDDSig
DECLSPEC_IMPORT int WINAPI krnx_IoGetDDSig(int cont_no, char *dd_di, char *dd_do)
krnx_GetPanelInfo
DECLSPEC_IMPORT int WINAPI krnx_GetPanelInfo(int cont_no, int robot_no, TKrnxPanelInfo *panelinfo)
krnx_Save
DECLSPEC_IMPORT int WINAPI krnx_Save(int cont_no, const char *filename, const char *program_name, int option)
krnx_MultiplyMatrix
DECLSPEC_IMPORT int WINAPI krnx_MultiplyMatrix(const float *matrix_a, const float *matrix_b, float *matrix_c)
krnx_eth_open
DECLSPEC_IMPORT int WINAPI krnx_eth_open(int cont_no)
krnx_SetJoint
DECLSPEC_IMPORT int WINAPI krnx_SetJoint(int cont_no, int robot_no, float ang[KRNX_MAXAXES])
TKrnxErrorList::error_num
int error_num
Definition: krnx.h:354
krnx_BufferPeekF
DECLSPEC_IMPORT int WINAPI krnx_BufferPeekF(int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout)
TSignalEx::usr_internal
unsigned long usr_internal[INTERNAL_MAX_SIGNAL/32]
Definition: krnx.h:284
krnx_PcExecute
DECLSPEC_IMPORT int WINAPI krnx_PcExecute(int cont_no, int pcprogram_no, const char *program, int exec_num, int step_num, int *as_err_code)
TKrnxDebugInfoEnt::io
TDebugSignalInfo io
Definition: krnx.h:347
TKrnxCurRobotStatus::rtc_active
short rtc_active
Definition: krnx.h:598
KRNX_MAX_ERROR_MSG_SIZ
#define KRNX_MAX_ERROR_MSG_SIZ
Definition: krnx.h:74
krnx_GetCurErrorLamp
DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorLamp(int cont_no, int robot_no, int *error_lamp)
TDebugVariableInfo
struct TDebugVariableInfo TDebugVariableInfo
TKrnxCurRobotStatus::rb_program_run
short rb_program_run
Definition: krnx.h:599
krnx_IoSetDO
DECLSPEC_IMPORT int WINAPI krnx_IoSetDO(int cont_no, const char *out, const char *mask, size_t size)
TKrnxRtIoCtlDO
struct TKrnxRtIoCtlDO TKrnxRtIoCtlDO
TDebugTrajInfo::accu
float accu
Definition: krnx.h:320
TKrnxCurRobotStatus::check_speed
short check_speed
Definition: krnx.h:601
TKrnxRtIoCtlInternal::sync
unsigned short sync
Definition: krnx.h:381
krnx_SetPanelInfo
DECLSPEC_IMPORT int WINAPI krnx_SetPanelInfo(int cont_no, int robot_no, TKrnxPanelInfo *panelinfo)
krnx_SetRtCyclicDataKind
DECLSPEC_IMPORT int WINAPI krnx_SetRtCyclicDataKind(int cont_no, unsigned short kind)
krnx_ExecMon
DECLSPEC_IMPORT int WINAPI krnx_ExecMon(int cont_no, const char *cmd, char *buffer, int buffer_sz, int *as_err_code)
TKrnxIoInfo
Definition: krnx.h:212
krnx_SendRtcCompData
DECLSPEC_IMPORT int WINAPI krnx_SendRtcCompData(int cont_no, unsigned short seq_no)
krnx_Execute
DECLSPEC_IMPORT int WINAPI krnx_Execute(int cont_no, int robot_no, const char *program, int exec_num, int step_num, int *as_err_code)
krnx_MultiplyXyzoat
DECLSPEC_IMPORT int WINAPI krnx_MultiplyXyzoat(const float *xyzoat_a, const float *xyzoat_b, float *xyzoat_c)
krnx_Abort
DECLSPEC_IMPORT int WINAPI krnx_Abort(int cont_no, int robot_no, int *as_err_code)
krnx_GetASCycle
DECLSPEC_IMPORT int WINAPI krnx_GetASCycle(int robot_no, int *cycle_time)
TKrnxPanelInfo::repeat_lamp
short repeat_lamp
Definition: krnx.h:205
krnx_GetBaseMatrix
DECLSPEC_IMPORT int WINAPI krnx_GetBaseMatrix(int cont_no, int robot_no, float *xyzoat, int *as_err_code)
BOOLEAN
char BOOLEAN
Definition: krnx.h:11
TKrnxCurMotionDataEx
Definition: krnx.h:571
TDebugSystemInfo::a
int a
Definition: krnx.h:310
TKrnxCurRobotStatus::run_lamp
short run_lamp
Definition: krnx.h:594
krnx_SetRtcInfo
DECLSPEC_IMPORT int WINAPI krnx_SetRtcInfo(int cont_no, TKrnxRtcInfo *rtc_info)
TDebugVariableInfo::val
float val[KRNX_MAXAXES][DBG_FVAL_NUM]
Definition: krnx.h:298
TDebugMotionInfo::cur_ref
float cur_ref[KRNX_MAXAXES]
Definition: krnx.h:332
krnx_BufferEmpty
DECLSPEC_IMPORT int WINAPI krnx_BufferEmpty(int cont_no, int buf_no)
TKrnxRtIoCtlInternal::data
char data[INTERNAL_MAX_SIGNAL/8]
Definition: krnx.h:384
TDebugSignalInfo
struct TDebugSignalInfo TDebugSignalInfo
TDebugSignalInfo::sig
TSignalEx sig
Definition: krnx.h:304
krnx_GetProgramInfo
DECLSPEC_IMPORT int WINAPI krnx_GetProgramInfo(int cont_no, int robot_no, TKrnxProgramInfo *proginfo)
TDebugTrajInfo
Definition: krnx.h:316
krnx_Xyz456ToJoint
DECLSPEC_IMPORT int WINAPI krnx_Xyz456ToJoint(int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, const float *tool)
krnx_GetDebugInfo
DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfo(int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num)
krnx_Load
DECLSPEC_IMPORT int WINAPI krnx_Load(int cont_no, const char *filename)
krnx_BufferRecvB
DECLSPEC_IMPORT int WINAPI krnx_BufferRecvB(int cont_no, int buf_no, short *req_code, char *p, int *num, int timeout)
krnx_GetErrorInfo
DECLSPEC_IMPORT int WINAPI krnx_GetErrorInfo(int cont_no, int robot_no, int *error_code)
krnx_NotSupport
DECLSPEC_IMPORT int WINAPI krnx_NotSupport(void)
krnx_PcKill
DECLSPEC_IMPORT int WINAPI krnx_PcKill(int cont_no, int pcprogram_no, int *as_err_code)
krnx_SetConveyorPosEx
DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPosEx(int cont_no, int robot_no, int axis_no, int wk_no, float pos, float *prev)
TKrnxIoInfoEx
Definition: krnx.h:225
DECLSPEC_IMPORT
#define DECLSPEC_IMPORT
Definition: krnx.h:21
TKrnxRtIoCtlDO::sync
unsigned short sync
Definition: krnx.h:365
krnx_SetBaseMatrix
DECLSPEC_IMPORT int WINAPI krnx_SetBaseMatrix(int cont_no, int robot_no, const float *xyzoat, int *as_err_code)
krnx_GetCurMotionData
DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionData(int cont_no, int robot_no, TKrnxCurMotionData *md)
BOOL
char BOOL
Definition: krnx.h:10
TKrnxProgramInfo
Definition: krnx.h:254
krnx_GetCurErrorInfo
DECLSPEC_IMPORT int WINAPI krnx_GetCurErrorInfo(int cont_no, int robot_no, int *error_code)
krnx_GetToolMatrix
DECLSPEC_IMPORT int WINAPI krnx_GetToolMatrix(int cont_no, int robot_no, float *xyzoat, int *as_err_code)
TKrnxMotionInfo
Definition: krnx.h:269
krnx_Prime
DECLSPEC_IMPORT int WINAPI krnx_Prime(int cont_no, int robot_no, const char *program, int exec_num, int step_num, int create, int *as_err_code)
TKrnxErrorList
Definition: krnx.h:352
krnx_PanelHw
DECLSPEC_IMPORT int WINAPI krnx_PanelHw(int, int, char *)
krnx_GetRtCyclicCtlKind
DECLSPEC_IMPORT int WINAPI krnx_GetRtCyclicCtlKind(int cont_no, unsigned short *krnx_kind, unsigned short *as_kind)
TKrnxPanelInfo::teach_lock_lamp
short teach_lock_lamp
Definition: krnx.h:208
TKrnxRtcInfo::interpolation
short interpolation
Definition: krnx.h:292
krnx_GetCurMotionInfo
DECLSPEC_IMPORT int WINAPI krnx_GetCurMotionInfo(int cont_no, int robot_no, TKrnxMotionInfo *mtninfo)
TKrnxDDSig
Definition: krnx.h:687
krnx_XyzoatToJoint2
DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint2(int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint, int conf)
TDebugSystemInfo::b
int b
Definition: krnx.h:311
krnx_GetCurIoInfoEx
DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfoEx(int cont_no, TKrnxIoInfoEx *ioinfo)
TKrnxPanelInfo::cycle_lamp
short cycle_lamp
Definition: krnx.h:204
krnx_SetSignal
DECLSPEC_IMPORT int WINAPI krnx_SetSignal(int cont_no, int signal_no, int status, int *as_err_code)
krnx_SetRtcCompMask
DECLSPEC_IMPORT int WINAPI krnx_SetRtcCompMask(int cont_no, int robot_no, int mask)
krnx_Kill
DECLSPEC_IMPORT int WINAPI krnx_Kill(int cont_no, int robot_no, int *as_err_code)
TKrnxRtcInfo::cyc
short cyc
Definition: krnx.h:290
KRNX_MAX_ROBOT
#define KRNX_MAX_ROBOT
Definition: krnx.h:61
TKrnxErrorList::error_msg
char error_msg[KRNX_MAX_ERROR_LIST_SIZ][KRNX_MAX_ERROR_MSG_SIZ]
Definition: krnx.h:356
krnx_BufferSendF
DECLSPEC_IMPORT int WINAPI krnx_BufferSendF(int cont_no, int buf_no, short req_code, const float *p, int num, int timeout)
TDebugMotionInfo::clamp_spot_flg
unsigned short clamp_spot_flg
Definition: krnx.h:338
krnx_RecOneStep
DECLSPEC_IMPORT int WINAPI krnx_RecOneStep(int cont_no, const char *program, int step_num, const char *step_data, int insert, int *as_err_code)
TSignalEx
struct TSignalEx TSignalEx
TKrnxRtIoCtlInternal
Definition: krnx.h:379
KRNX_SYSLOG_FLAG
short KRNX_SYSLOG_FLAG
krnx_eth_close
DECLSPEC_IMPORT int WINAPI krnx_eth_close(int cont_no)
krnx_List
DECLSPEC_IMPORT int WINAPI krnx_List(int cont_no, const char *element_name, int element_type, char *buffer, int buffer_sz, int *as_err_code)
krnx_timer_callback
DECLSPEC_IMPORT void WINAPI krnx_timer_callback(void)
TKrnxRtIoCtlDI::command
unsigned short command
Definition: krnx.h:374
krnx_XyzoatToJoint
DECLSPEC_IMPORT int WINAPI krnx_XyzoatToJoint(int cont_no, int robot_no, const float *xyzoat, float *joint, const float *old_joint)
krnx_BufferRecvW
DECLSPEC_IMPORT int WINAPI krnx_BufferRecvW(int cont_no, int buf_no, short *req_code, short *p, int *num, int timeout)
KRNX_MAX_ERROR_LIST_SIZ
#define KRNX_MAX_ERROR_LIST_SIZ
Definition: krnx.h:73
TDebugMotionInfo::vel
float vel[KRNX_MAXAXES]
Definition: krnx.h:329
TKrnxStepperInfo::status
short status
Definition: krnx.h:242
KRNX_MAXAXES
#define KRNX_MAXAXES
Definition: krnx.h:66
krnx_GetIoInfo
DECLSPEC_IMPORT int WINAPI krnx_GetIoInfo(int cont_no, TKrnxIoInfo *ioinfo)
krnx_BufferSendB
DECLSPEC_IMPORT int WINAPI krnx_BufferSendB(int cont_no, int buf_no, short req_code, const char *p, int num, int timeout)
krnx_SetConveyorPos
DECLSPEC_IMPORT int WINAPI krnx_SetConveyorPos(int cont_no, int robot_no, int wk_no, float pos, float *prev)
TKrnxMonInfo
Definition: krnx.h:232
param
T param(const std::string &param_name, const T &default_val)
TKrnxRtIoCtlDO::data
char data[DO_MAX_SIGNAL/8]
Definition: krnx.h:368
krnx_XyzoatToMatrix
DECLSPEC_IMPORT int WINAPI krnx_XyzoatToMatrix(const float *xyzoat, float *matrix)
TKrnxRtIoCtlDI::data
char data[DI_MAX_SIGNAL/8]
Definition: krnx.h:376
TKrnxCurRobotStatus::cycle_lamp
short cycle_lamp
Definition: krnx.h:592
krnx_DDSigInfo
DECLSPEC_IMPORT int WINAPI krnx_DDSigInfo(int cont_no, int io_no, const TKrnxDDSig **)
krnx_GetRtcCompLimit
DECLSPEC_IMPORT int WINAPI krnx_GetRtcCompLimit(int cont_no, int robot_no, float *comp_limit)
TKrnxDDSig::num
short num
Definition: krnx.h:689
TKrnxCurRobotStatus
Definition: krnx.h:589
TDebugMotionInfo::mode
int mode
Definition: krnx.h:334
krnx_SetAsApiTimeoutPeriod
DECLSPEC_IMPORT int WINAPI krnx_SetAsApiTimeoutPeriod(int cont_no, int period)
TDebugMotionInfo::xyzoat
float xyzoat[KRNX_MAXAXES]
Definition: krnx.h:327
krnx_Delete
DECLSPEC_IMPORT int WINAPI krnx_Delete(int cont_no, const char *element_name, int element_type, int *as_err_code)
TKrnxErrorList
struct TKrnxErrorList TKrnxErrorList
TDebugTrajInfo
struct TDebugTrajInfo TDebugTrajInfo
TKrnxCurRobotStatus::enverr_warm
short enverr_warm
Definition: krnx.h:602
TKrnxMonInfo::accuracy
float accuracy
Definition: krnx.h:237
TKrnxRtIoCtlInternal::enable
char enable[INTERNAL_MAX_SIGNAL/8]
Definition: krnx.h:383
krnx_ConvertErrorCode
DECLSPEC_IMPORT int WINAPI krnx_ConvertErrorCode(int *error_code, char *error_level)
krnx_BufferRecvF
DECLSPEC_IMPORT int WINAPI krnx_BufferRecvF(int cont_no, int buf_no, short *req_code, float *p, int *num, int timeout)
krnx_GetCurRobotStatus
DECLSPEC_IMPORT int WINAPI krnx_GetCurRobotStatus(int cont_no, int robot_no, TKrnxCurRobotStatus *status)
TDebugMotionInfo::end_pos_jtang
float end_pos_jtang[KRNX_MAXAXES]
Definition: krnx.h:336
krnx_GetCurIoInfo
DECLSPEC_IMPORT int WINAPI krnx_GetCurIoInfo(int cont_no, TKrnxIoInfo *ioinfo)
krnx_StopPcAs
DECLSPEC_IMPORT int WINAPI krnx_StopPcAs(void)
TDebugVariableInfo
Definition: krnx.h:296
krnx_MatrixToXyzoat
DECLSPEC_IMPORT int WINAPI krnx_MatrixToXyzoat(const float *matrix, float *xyzoat)
TKrnxCurRobotStatus::teach_lock_lamp
short teach_lock_lamp
Definition: krnx.h:596
TDebugSignalInfo
Definition: krnx.h:302
krnx_eth_init
DECLSPEC_IMPORT int WINAPI krnx_eth_init(char *hostname)
TDebugSystemInfo
Definition: krnx.h:308
TKrnxCurRobotStatus::emergency
short emergency
Definition: krnx.h:597
TKrnxMonInfo::robot_status
short robot_status
Definition: krnx.h:234
krnx_PrimeRtcCompData
DECLSPEC_IMPORT int WINAPI krnx_PrimeRtcCompData(int cont_no, int robot_no, const float *comp, int *status)
TDebugMotionInfo::ang
float ang[KRNX_MAXAXES]
Definition: krnx.h:326
krnx_GetRtcSwitch
DECLSPEC_IMPORT int WINAPI krnx_GetRtcSwitch(int cont_no, int robot_no, int *rtc_sw)
TKrnxPanelInfo::trigger_lamp
short trigger_lamp
Definition: krnx.h:207
TDebugMotionInfo::tool
float tool[KRNX_MAXAXES]
Definition: krnx.h:333
krnx_PanelToPC
DECLSPEC_IMPORT int WINAPI krnx_PanelToPC(int, int, char *)
krnx_GetDebugInfoSync
DECLSPEC_IMPORT int WINAPI krnx_GetDebugInfoSync(int cont_no, int robot_no, TKrnxDebugInfoEnt *md, int data_num)
TKrnxDebugInfoEnt
struct TKrnxDebugInfoEnt TKrnxDebugInfoEnt
krnx_FrameMatrix
DECLSPEC_IMPORT int WINAPI krnx_FrameMatrix(const float *mat_a, const float *mat_b, const float *mat_c, const float *mat_d, float *mat_p)
krnx_RtcInit
DECLSPEC_IMPORT int WINAPI krnx_RtcInit(int cont_no)
krnx_MatrixToJoint
DECLSPEC_IMPORT int WINAPI krnx_MatrixToJoint(int cont_no, int robot_no, const float *matrix, float *joint, const float *old_joint)


khi_robot_control
Author(s): nakamichi_d
autogenerated on Sat Oct 21 2023 02:54:50