CeSDK Manual API Reference
CeSDK Manual API Reference
MARCH 2009
P/N 0403-2009-01
2009 COMIZOA Inc. All rights reserved
©
COMIZOA owns all right, title and interest in the property and products described herein, unless otherwise indicated. No part of this document may
be translated to another language or produced or transmitted in any form or by any information storage and retrieval system without written
permission from COMIZOA.
COMIZOA reserves the right to change products and specifications without written notice. Customers are advised to obtain the latest versions of
any product specifications.
Information contained herein is presented only as a guide for the applications of our products. COMIZOA does not warrant this product to be free of
claims of patent infringement by any third party and disclaims any warranty or indemnification against patent infringement. No responsibility is
assumed by COMIZOA for any patent infringement resulting from use of its products by themselves or in combination with any other products. No
license is hereby granted by implication or otherwise under any patent or patent rights of COMIZOA or others.
COMIZOA software and its documentation are available only under the terms of a Master Software Use and Support Agreement.
Trademarks
The COMIZOA logo is a registered trademark. All other brand names, product names, trademarks, and registered trademarks are the property of
their respective owners.
2
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Table of Contents
Trademarks ______________________________________________________________________ 2
Table of Contents ____________________________________________________________________ 3
Chapter::1 Introduction _____________________________________________________________ 9
1 cEIP ___________________________________________________________ 10
1.1 Overview ________________________________________________________________________ 10
1.1.1 ________________________________________________________________________ 10
1.1.2 ________________________________________________________________________ 10
1.1.3 _______________________________________________________________________________ 10
1.1.4 _____________________________________________________________________________ 10
1.1.5 _____________________________________________________________________________ 10
1.1.6 ______________________________________________________________________ 11
1.1.7 __________________________________________________________________ 12
1.2 Features _________________________________________________________________________ 13
1.2.1 _______________________________________________________________________________ 13
1.2.2 _______________________________________________________________________________ 13
1.2.3 _______________________________________________________________________________ 13
1.2.4 _______________________________________________________________________________ 13
1.2.5 _______________________________________________________________________________ 13
1.2.6 _________________________________________________________ 13
2.3 ______________________________________________________________ 18
2.3.1 Visual C++ 6.x _______________________________________________________ 19
2.3.2 Visual C++ 7.x _______________________________________________________ 25
2.3.3 Visual C++ 8.x _______________________________________________________ 31
2.3.4 Borland C++ Builder ___________________________________________________ 37
2.3.5 Borland Delphi _______________________________________________________ 42
2.3.6 Visual Basic _________________________________________________________ 46
3
TABLE OF CONTENTS
3.4 ____________________________________________________________________ 53
3.5 ______________________________________________________ 54
Chapter::4 General Functions _______________________________________________________ 55
4 General Functions _____________________________________________________________ 56
4.1 _______________________________________________________________________ 56
4.2 _______________________________________________________________________ 60
Chapter::5 General Motion Functions _______________________________________________ 154
5 General Motion Functions _____________________________________________________ 155
5.1 ______________________________________________________________________ 155
5.2 ______________________________________________________________________ 156
Chapter::6 Environment Configuration Functions _____________________________________ 163
6 __________________________________________________________ 164
6.1 ______________________________________________________________________ 164
6.2 ______________________________________________________________________ 166
Chapter::7 Basic Motion Control ____________________________________________________ 219
7 ____________________________________________________________ 220
7.1 (Single-Axis) ______________________________________________________ 220
7.1.1 ___________________________________________________________________________ 220
7.1.2 ___________________________________________________________________________ 222
Chapter::9 Input signals related to motion control by external signal _______________________ 376
4
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
9 ________________________________________________________ 377
9.1 Manual Pulsar (PA/PB) ______________________________________________ 377
9.1.1 ___________________________________________________________________________ 379
9.1.2 ___________________________________________________________________________ 380
5
TABLE OF CONTENTS
6
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
7
TABLE OF CONTENTS
8
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
1
Chapter
Introduction
Chapter::1
, , , .
,
.
9
CHAPTER 1:: INTRODUCTION
1 cEIP
1.1 Overview
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
10
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
1.1.6
11
CHAPTER 1:: INTRODUCTION
1.1.7
12
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
1.2 Features
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
‘ ’
1.2.6
13
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
2
Chapter
ceSDK
ceSDK .
, ceSDK
.
14
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
2 ceSDK
2.1
15
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
2.2 ceSDK
“ ”
16
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
2.2.4 ceSDK
Borland C++
MS VC++ Borland Delphi MS Visual Basic MS C Sharp(C #)
Builder
ceSDK.h ceSDK.h
ceSDK
ceSDK.cpp ceSDK.cpp ceSDK.PAS ceSDK.BAS ceSDK.CS
ceSDK
ceSDKDef.h ceSDKDef.h
“ ”
“ ”
“ ”
‘
’
17
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
2.3
‘ ’
Visual C++
C:\Program Files\COMIZOA\cEIPSDK\LIB\VC++
ceSDK.cpp, ceSDK.h, ceSDKDef.h
Delphi
C:\Program Files\COMIZOA\cEIPSDK\LIB\Delphi
ceSDK.PAS
Visual Basic
C:\Program Files\COMIZOA\cEIPSDK\LIB\Visual Basic
ceSDK.BAS
C# (CSharp)
C:\Program Files\COMIZOA\cEIPSDK\LIB\C Sharp
ceSDK.cs ceSDKDef.CS
ceSDK DLL
.
.
, .
DLL
. , ,
.
ceSDK (Interface)
. (VC++, Delphi )
, ceSDK .
18
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Project Start
ceSDK
Library
ceSDKDLL.DLL
1. DLL EXE
YES 2. , DLL
.
ceSDKDLL.dll
DestoryWindow()
ceSDKDLL.dll
ceUnloadDll()
DLL
19
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
20
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’
21
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘ ’ ‘ ’
“ ”
22
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’ ‘’
23
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
24
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Project Start
ceSDK
Library
ceSDKDLL.DLL
1. DLL EXE
YES 2. , DLL
.
ceSDKDLL.dll
DestoryWindow()
ceSDKDLL.dll
ceUnloadDll()
DLL
25
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘ ’ ‘ ’ ‘’
26
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’
‘ ’
27
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
28
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
“ ”
‘ ’
29
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘ ’
‘ ’
‘ ’
30
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Project Start
ceSDK
Library
ceSDKDLL.DLL
1. DLL EXE
YES 2. , DLL
.
ceSDKDLL.dll
DestoryWindow()
ceSDKDLL.dll
ceUnloadDll()
DLL
31
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘ ’ ‘ ’ ‘ ’
32
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘’
‘ ’
33
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘ ’ ‘ ’
34
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
“”
‘ ’
35
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘’
36
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Project Start
ceSDK
Library
ceSDKDLL.DLL
1. DLL EXE
YES 2. , DLL
.
ceSDKDLL.dll
OnDestory()
ceSDKDLL.dll
ceUnloadDll()
DLL
37
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
38
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
39
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
40
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
41
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
Project Start
ceSDK
Library
ceSDKDLL.DLL
NO 1. DLL EXE
2. , DLL
.
ceSDK.pas
42
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
43
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘ ’
44
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
45
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
Project Start
ceSDK
Library
ceSDKDLL.DLL
NO 1. DLL EXE
2. , DLL
.
ceSDK.Bas
46
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
47
CHAPTER 2 :: DEVELOPMENT ENVIRONMENT FOR CESDK
‘ ’
‘ …’
48
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
49
CHAPTER 3:: CESDK INTRODUCTION
3
Chapter
ceSDK Introduction
Chapter::3
ceSDK
. ceSDK .
..
50
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
3 ceSDK Introduction
3.1
3.2
‘ ’
‘ ’
51
CHAPTER 3:: CESDK INTRODUCTION
3.3
“ ” “ ”
“ ” “ ”
Long
VT_HANDLE , void * THandle IntPtr
(ByRef)
Long
VT_I4 4 long LongInt Int
(ByVal)
4 Long
VT_PI4 long * PLongInt Int[]
() (ByRef)
Double
VT_R4 4 float Double Float
(ByVal)
4 Double
VT_PR4 float * PDouble float[]
( ) (ByRef)
Double
VT_R8 8 double Double double
(ByVal)
8 Double
VT_PR8 double * PDouble double[]
( ) (ByRef)
String
VT_STR char * PChar String
4 (ByVal)
52
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
3.4
◊
If ( ceGnLoad () )
{
return error;
♦
If ( ceGnLoad () != ceERR_NONE )
{
return error;
}
“ ”
53
CHAPTER 3:: CESDK INTRODUCTION
3.5
Project Start
ceSDK
Library
ceSDKDLL.DLL
NO
1. DLL EXE
2. , DLL
.
YES
ceSDK.cpp
ceSDK.h
ceSDKDef.h
3 Project
ceSDK.cpp
ceSDK.h [Project] [Add to Project]
ceSDKDef.h
User Project
ceSDK.h
#include ceSDK.h
ceSDKDef.h
#include ceSDKDef.h
StartProgram()
ceSDK Library Load
ceLoadDll()
Device Load
ceGnLoad()
Device Search
ceGnSearchDevice()
DestoryWindow()
Device Unload
ceGnUnload()
ceSDK Library Unload
ceUnloadDll()
Project End
54
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
4
Chapter
General Functions
Chapter::4
ceSDK .
ceSDK ..
55
CHAPTER 4:: GENERAL FUNCTIONS
4 General Functions
4.1
“ ”
Summary of Functions
r BOOL ceLoadDll ( [none] VT_EMPTY )
(Load) .
r VT_EMPTY ceUnloadDll ( [none] VT_EMPTY )
(Unload) .
r VT_I4 ceGnLoad ( [none] VT_EMPTY )
.
r VT_I4 ceGnUnload ( [none] VT_EMPTY )
.
r VT_I4 ceGnSearchDevice ( [in] VT_I4 RealNode, [in] DWORD nTimeout, [in] VT_I4 IsBlocking,
[out] VT_PI4 pResultNode )
(Search).
r VT_I4 ceGnReSearchDevice ( [in] VT_I4 RealNode, [in] DWORD nTimeout, [in] VT_I4 IsBlocking,
[out] VT_PI4 pResultNode )
, (Research) .
56
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
57
CHAPTER 4:: GENERAL FUNCTIONS
r VT_I4 ceGnLocalAxis_Get ( [in] VT_I4 Axis, [out] VT_PI4 NodeIP, [out] VT_PI4 NodeID,
[out] VT_PI4 NodeInGlobal, [out] VT_PI4 ModuleIdx, [out] PI4 ModuleInCh )
(Axis) .
r VT_I4 ceGnLocalDIO_Get ( [in] VT_I4 Channel, [out] VT_PI4 NodeIP, [out] VT_PI4 NodeID,
[out] VT_PI4 NodeInGlobal, [out] VT_PI4 ModuleIdx, [out] PI4 ModuleInCh )
I/O(DIO) DIO .
r VT_I4 ceGnLocalAI_Get ( [in] VT_I4 Channel, [out] VT_PI4 NodeIP, [out] VT_PI4 NodeID,
[out] VT_PI4 NodeInGlobal, [out] VT_PI4 ModuleIdx, [out] PI4 ModuleInCh )
(AI) AI .
r VT_I4 ceGnLocalAO_Get ( [in] VT_I4 Channel, [out] VT_PI4 NodeIP, [out] VT_PI4 NodeID,
[out] VT_PI4 NodeInGlobal, [out] VT_PI4 ModuleIdx, [out] PI4 ModuleInCh )
(AO) AO .
r VT_I4 ceGnLocaMlDIO_Get ( [in] VT_I4 Channel, [out] VT_PI4 NodeIP, [out] VT_PI4 NodeID,
[out] VT_PI4 NodeInGlobal, [out] VT_PI4 ModuleIdx, [out] PI4 ModuleInCh )
I/O(MDIO) .
r VT_I4 ceGnLocalCNT_Get ( [in] VT_I4 Channel, [out] VT_PI4 NodeIP, [out] VT_PI4 NodeID,
[out] VT_PI4 NodeInGlobal, [out] VT_PI4 ModuleIdx, [out] PI4 ModuleInCh )
(Counter) .
r VT_I4 ceGnLocalSER_Get ( [in] VT_I4 Channel, [out] VT_PI4 NodeIP, [out] VT_PI4 NodeID,
[out] VT_PI4 NodeInGlobal, [out] VT_PI4 ModuleIdx, [out] PI4 ModuleInCh )
.
r VT_I4 ceGnGlobalAxis_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleIdx, [in] VT_I4 ModuleInCh,
[out] VT_PI4 GlobalAxis )
, (Global
Axis Number) .
r VT_I4 ceGnGlobalDIO_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleIdx, [in] VT_I4 ModuleInCh,
[out] VT_PI4 GlobalDIO )
I/O , DIO DIO
(Global DIO Channel Number) .
r VT_I4 ceGnGlobalAI_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleIdx, [in] VT_I4 ModuleInCh,
[out] VT_PI4 GlobalAI )
, AI AI
(Global AI Channel Number) .
r VT_I4 ceGnGlobalAO_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleIdx, [in] VT_I4 ModuleInCh,
[out] VT_PI4 GlobalAO )
, AO AO
(Global AO Channel Number) .
58
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
r VT_I4 ceGnGlobalMDIO_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleIdx, [in] VT_I4 ModuleInCh,
[out] VT_PI4 GlobalMDIO )
, MDIO MDIO
(Global MDIO C hannel Number) .
r VT_I4 ceGnGlobalCNT_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleIdx, [in] VT_I4 ModuleInCh,
[out] VT_PI4 GlobalCNT )
,
(Global Counter Channel Number) .
r VT_I4 ceGnGlobalSER_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleIdx, [in] VT_I4 ModuleInCh,
[out] VT_PI4 GlobalSER )
,
(Global Serial Communication Channel Number) .
r VT_I4 ceGnEmergency_Set ( [in] VT_I4 NodeID, [in] VT_I4 State )
Emergency .
r VT_I4 ceGnEmergency_Get ( [in] VT_I4 NodeID, [out] VT_PI4 State )
Emergency .
59
CHAPTER 4:: GENERAL FUNCTIONS
4.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
RETURN VALUE
0 (CE_FALSE)
1 (CE_TRUE)
SEE ALSO
60
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* . */
void StartProgram ( void )
{
// DLL .
BOOL nIsLoaded = ceLoadDll ();
if ( nIsLoaded == CE_FALSE )
{
OutputDebugString ( "Dll Load Fail" );
/*OutputDebugString API GUI .
Borland C++ Builder Debug Window Event Log ,
MS VC++ (6, 7, 8) Debug Window .*/
}
else
{
//Dll Load Success
}
/* . */
void EndProgram ( void )
{
// . .
ceUnloadDll ();
}
61
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
SEE ALSO
EXAMPLE
//* ceLoadDll .
62
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
63
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// .
ceUnloadDll ();
}
Visual Basic
‘ ceSDK .
nRetVal = ceGnLoad ()
If nRetVal <> ceERR_NONE Then
MsgBox ( “ceGnLoad has been failed” )
End If
End Sub
‘ .
Call ceGnUnload ()
End Sub
64
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Delphi
// ceSDK .
if ( ceGnLoad () <> ceERR_NONE ) then
begin
ShowMessage ( ‘ceGnLoad has been failed’ );
end;
end;
// .
ceGnUnload ();
end;
65
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnLoad .
66
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
.
,
.
PARAMETER
1
2
3
0 (CE_FALSE)
1 (CE_TRUE)
67
CHAPTER 4:: GENERAL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
‘ ’
SEE ALSO
68
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
#define REALNODE 10
#define TIMEOUT 1000
// ceSDK .
if ( ceGnLoad () != ceERR_NONE )
{
OutputDebugString ( " ceGnLoad has been failed" );
return;
}
long nIsSearchedDevice; //
long nNodeCount; //
long nRetVal;
// .
ceGnIsSearchedDevice ( &nIsSearchedDevice );
// .
if ( nIsSearchedDevice == CE_FALSE ) // .
{
nRetVal = ceGnSearchDevice ( REALNODE, //
TIMEOUT, // (ms)
CE_FALSE, //
&nNodeCount //
);
if ( nRetVal != ceERR_NONE )
{
// .
}
}
else // .
{
if (ceGnReSearchDevice ( REALNODE, TIMEOUT, CE_FALE, &nNodeCount ) != ceERR_NONE )
{
// .
}
}
}
Visual Basic
69
CHAPTER 4:: GENERAL FUNCTIONS
‘ ceSDK .
nRetVal = ceGnLoad ()
‘ .
Call ceGnIsSearchedDevice ( nIsSearchedDevice )
‘ .
If nIsSearchedDevice = CE_FALSE Then ‘ .
nRetVal = ceGnSearchDevice ( 10, 1000, CE_FALSE, nNodeCount )
Else ‘ .
nRetVal = ceGnReSearchDevice ( 10, 1000, CE_FALSE, nNodeCount )
End Sub
Delphi
begin
70
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
// ceSDK .
if ( ceGnLoad () <> ceERR_NONE ) then
begin
ShowMessage ( ‘ceGnLoad has been failed’ );
end;
// .
ceGnIsSearchedDevice ( @nIsSearchedDevice );
// .
if nIsSearchedDevice = CE_FALSE then
begin
ceGnSearchDevice ( 10, 1000, CE_FALSE, @nNodeCount );
else
ceGnReSearchDevice ( 10, 1000, CE_FALSE, @nNodeCount );
end;
end;
71
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
REFERENCE
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
72
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
#define REALNODE 10
#define TIMEOUT 1000
long nIsSearchedDevice; //
long nNodeCount; //
long nRetVal;
// .
ceGnIsSearchedDevice ( &nIsSearchedDevice );
// .
if ( nIsSearchedDevice == CE_TRUE ) // .
{
ceGnUnSearchDevice (); // .
/* . cEIP
,
, ceGnReSearchDevice . */
Visual Basic
‘ .
Call ceGnIsSearchedDevice ( nIsSearchedDevice )
‘ .
If nIsSearchedDevice = CE_TRUE Then ‘ .
Call ceGnUnSearchDevice () ‘ .
73
CHAPTER 4:: GENERAL FUNCTIONS
‘ .
End If
End If
Delphi
var
nNodeCount : LongInt; //
nIsSearchedDevice : LongInt; //
begin
// .
ceGnIsSearchedDevice ( @nIsSearchedDevice );
// .
if nIsSearchedDevice = CE_TRUE then // .
begin
ceGnUnSearchDevice (); // .
ceGnSearchDevice ( 10, 1000, CE_FALSE, @nNodeCount );
end;
end;
74
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
1
2
3
0 (CE_FALSE)
1 (CE_TRUE)
75
CHAPTER 4:: GENERAL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
“ ”
SEE ALSO
EXAMPLE
//* ceGnSearchDevice .
76
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnSearchDevice .
77
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
REFERENCE
‘
’
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
78
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnResetNode ()
{
long nNodeID = 1; // ID .
/* Reset Mode */
// CE_RESET_DIO : Digital Input / Output Modue Reset
// CE_RESET_MOTION : Motion Module Reset
// CE_RESET_AIO : Analog Input / Analog Output Module Reset
// CE_RESET_ALL : DIO, Motion, AI, AO Module Reset
Visual Basic
nNodeID = 1
End Sub
Delphi
begin
nNodeID := 1;
79
CHAPTER 4:: GENERAL FUNCTIONS
end;
80
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
L
DESCRIPTION
PARAMETER
81
CHAPTER 4:: GENERAL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
82
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
83
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnNodeIsActive ()
{
long nNodeID = 1; // ID
long nIsActive; //
// .
ceGnNodeIsActive ( nNodeID, &nIsActive );
if ( nIsActive == CE_FALSE )
{
//
}
}
Visual Basic
‘ .
ceGnNodeIsActive ( nNodeID, nIsActive )
End Sub
Delphi
begin
nNodeID := 1;
// .
ceGnNodeIsActive ( nNodeID, @nIsActive );
84
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
85
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
86
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnDebegModeSet ()
{
// .
ceGnDebugMode ( DEBUG_OUT_WINDOW, //
NULL // 0 NULL .
);
}
87
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
88
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetTotalNode ()
{
long nTotalNode; //
/* .*/
if ( ceGnTotalNode( &nTotalNode ) != ceERR_NONE )
{
OutputDebugString ( " ceGnTotalNode has been failed" );
}
}
Visual Basic
‘ .
If ceGnTotalNode ( nTotalNode ) <> ceERR_NONE Then
MsgBox ( “ceGnTotalNode has been failed” )
End If
End Sub
Delphi
begin
// .
if ceGnTotalNode ( @nTotalNode ) <> ceERR_NONE then
begin
ShowMessage ( ‘ceGnTotalNode has been failed’ );
end;
end;
89
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
90
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetTotalChannel ()
{
long nTotalAxes, nTotalDioCh, nTotalAiCh, nTotalAoCh, nTotalMdioCh, nTotalCntCh, nTotalSerCh;
// .
ceGnTotalMotionChannel ( &nTotalAxes );
// DIO .
ceGnTotalDIOChannel ( &nTotalDioCh );
// AI .
ceGnTotalAIChannel ( &nTotalAiCh );
// AO .
ceGnTotalAOChannel ( &nTotalAoCh );
// MDIO .
ceGnTotalMDIOChannel ( &nTotalMdioCh );
// .
ceGnTotalCNTChannel ( &nTotalCntCh );
// .
ceGnTotalSERChannel ( &nTotalSerCh );
}
Visual Basic
‘ .
Call ceGnTotalMotionChannel ( nTotalAxes )
‘ DIO .
Call ceGnTotalDIOChannel ( nTotalDioCh )
‘ AI .
Call ceGnTotalAIChannel ( nTotalAiCh )
‘ AO .
Call ceGnTotalAOChannel ( nTotalAoCh )
‘ MDIO .
91
CHAPTER 4:: GENERAL FUNCTIONS
‘ .
Call ceGnTotalCNTChannel ( nTotalCntCh )
‘ .
Call ceGnTotalSERChannel ( nTotalSerCh )
End Sub
Delphi
begin
‘ .
ceGnTotalMotionChannel ( @nTotalAxes );
‘ DIO .
ceGnTotalDIOChannel ( @nTotalDioCh );
‘ AI .
ceGnTotalAIChannel ( @nTotalAiCh );
‘ AO .
ceGnTotalAOChannel ( @nTotalAoCh );
‘ MDIO .
ceGnTotalMDIOChannel ( @nTotalMdioCh );
‘ .
ceGnTotalCNTChannel ( @nTotalCntCh );
‘ .
ceGnTotalSERChannel ( @nTotalSerCh );
end;
92
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnTotalMotionChannel .
93
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnTotalMotionChannel .
94
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnTotalMotionChannel .
95
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnTotalMotionChannel .
96
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnTotalMotionChannel .
97
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnTotalMotionChannel .
98
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
99
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetModuleCount ()
{
long nNodeID = 1; // ID
long nMotModuleCnt, nDioModuleCnt, nAiModuleCnt, nAoModuleCnt, nCountModuleCnt, nSerModuleCnt;
// .
ceGnModuleCount_Motion ( nNodeID, &nMotModuleCnt );
// DIO .
ceGnModuleCount_Dio ( nNodeID, &nDioModuleCnt );
// AI .
ceGnModuleCount_Ai ( nNodeID, &nAiModuleCnt );
// AO .
ceGnModuleCount_Ao ( nNodeID, &nAoModuleCnt );
// MDIO .
ceGnModuleCount_Mdio ( nNodeID, &nMotModuleCnt );
// .
ceGnModuleCount_Cnt ( nNodeID, &nCountModuleCnt );
// .
ceGnModuleCount_Ser ( nNodeID, &nSerModuleCnt );
}
Visual Basic
‘ .
Call ceGnModuleCount_Motion ( nNodeID, nMotModuleCnt )
‘ DIO .
Call ceGnModuleCount_Dio ( nNodeID, nDioModuleCnt )
‘ AI .
Call ceGnModuleCount_Ai ( nNodeID, nAiModuleCnt )
100
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ AO .
Call ceGnModuleCount_Ao ( nNodeID, nAoModuleCnt )
‘ MDIO .
Call ceGnModuleCount_Mdio ( nNodeID, nMotModuleCnt )
‘ .
Call ceGnModuleCount_Cnt ( nNodeID, nCountModuleCnt )
‘ .
Call ceGnModuleCount_Ser ( nNodeID, nSerModuleCnt )
End Sub
Delphi
begin
nNodeID := 1;
// .
ceGnModuleCount_Motion ( nNodeID, @nMotModuleCnt );
// DIO .
ceGnModuleCount_Dio ( nNodeID, @nDioModuleCnt );
// AI .
ceGnModuleCount_Ai ( nNodeID, @nAiModuleCnt );
// AO .
ceGnModuleCount_Ao ( nNodeID, @nAoModuleCnt );
// MDIO .
ceGnModuleCount_Mdio ( nNodeID, @nMotModuleCnt );
// .
ceGnModuleCount_Cnt ( nNodeID, @nCountModuleCnt );
// .
ceGnModuleCount_Ser ( nNodeID, @nSerModuleCnt );
end;
101
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnModuleCount_Motion .
102
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnModuleCount_Motion .
103
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnModuleCount_Motion .
104
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnModuleCount_Motion .
105
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnModuleCount_Motion .
106
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnModuleCount_Motion .
107
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
108
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetChannelCount ()
{
long nNodeID = 1 // ID
long nMotModuleIdx = 1; // ID
long nDioModuleIdx = 2; // DIO ID
long nAiModuleIdx = 3; // AI ID
long nAoModuleIdx = 4; // AO ID
long nCountModuleIdx = 5; // ID
long nSerModuleIdx = 6; // ID
// .
ceGnChannelCount_Motion ( nNodeID, nMotModuleIdx, &nAxesCnt );
// DIO DIO .
ceGnChannelCount_Dio ( nNodeID, nDioModuleIdx, &nDioChCnt );
// AI AI .
ceGnChannelCount_Ai ( nNodeID, nAiModuleIdx, &nAiChCnt );
// AO AO .
ceGnChannelCount_Ao ( nNodeID, nAoModuleIdx, &nAoChCnt );
// MDIO .
ceGnChannelCount_Mdio ( nNodeID, nMotModuleIdx, &nMdioChCnt );
// .
ceGnChannelCount_Cnt ( nNodeID, nCountModuleIdx, &nCountChCnt );
// .
ceGnChannelCount_Cnt ( nNodeID, nSerModuleIdx, &nSerChCnt );
}
Visual Basic
109
CHAPTER 4:: GENERAL FUNCTIONS
nNodeID = 1 ‘ ID
nMotModuleIdx = 1 ‘ ID
nDioModuleIdx = 2 ‘ DIO ID
nAiModuleIdx = 3 ‘ AI ID
nAoModuleIdx = 4 ‘ AO ID
nCountModuleIdx = 5 ‘ ID
nSerModuleIdx = 6 ‘ ID
‘ .
Call ceGnChannelCount_Motion ( nNodeID, nMotModuleIdx, nAxesCnt )
‘ DIO DIO .
Call ceGnChannelCount_Dio ( nNodeID, nDioModuleIdx, nDioChCnt )
‘ AI AI .
Call ceGnChannelCount_Ai ( nNodeID, nAiModuleIdx, nAiChCnt )
‘ AO AO .
Call ceGnChannelCount_Ao ( nNodeID, nAoModuleIdx, nAoChCnt )
‘ MDIO .
Call ceGnChannelCount_Mdio ( nNodeID, nMotModuleIdx, nMdioChCnt )
‘ .
Call ceGnChannelCount_Cnt ( nNodeID, nCountModuleIdx, nCountChCnt )
‘ .
Call ceGnChannelSer_Cnt ( nNodeID, nSerModuleIdx, nSerChCnt )
End Sub
Delphi
procedure OnGetChannelCount ()
var
nNodeID : LongInt;
begin
nNodeID := 1; // ID
nMotModuleIdx := 1; // ID
nDioModuleIdx := 2; // DIO ID
110
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
nAiModuleIdx := 3; // AI ID
nAoModuleIdx := 4; // AO ID
nCountModuleIdx := 5; // ID
nCountModuleIdx := 6; // ID
// .
ceGnChannelCount_Motion ( nNodeID, nMotModuleIdx, @nAxesCnt );
// DIO DIO .
ceGnChannelCount_Dio ( nNodeID, nDioModuleIdx, @nDioChCnt );
// AI AI .
ceGnChannelCount_Ai ( nNodeID, nAiModuleIdx, @nAiChCnt );
// AO AO .
ceGnChannelCount_Ao ( nNodeID, nAoModuleIdx, @nAoChCnt );
// MDIO .
ceGnChannelCount_Mdio ( nNodeID, nMotModuleIdx, @nMdioChCnt );
// .
ceGnChannelCount_Cnt ( nNodeID, nCountModuleIdx, @nCountChCnt );
// .
ceGnChannelCount_Ser ( nNodeID, nSerModuleIdx, @nSerChCnt );
end;
111
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnChannelCount_Motion .
112
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnChannelCount_Motion .
113
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnChannelCount_Motion .
114
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnChannelCount_Motion .
115
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnChannelCount_Motion .
116
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* ceGnChannelCount_Motion .
117
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
‘ ’
118
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetLocalChInfo ()
{
long nNodeIP; // IP .
long nNodeID; // ID .
long nNodeInGlobal; // .
long nModuleIdx; // ID .
long nModuleInCh; // .
long nGlobalAxisNo = 1; // 1 . .
long nGlobalDiChNo = 2; // DI 2 . .
Long nGloablAiChNo = 1; // AI 1 . .
Long nGlobalAoChNo = 2; // AO 2 . .
Long nGlobalMdoChNo = 1; // MDO 1 . .
Long nGlobalCountChNo = 2; // 2 . .
Long nGlobalSerChNo = 1; // 1 . .
// 1 .
ceGnLocalAxis_Get ( nGlobalAxisNo, &nNodeIP, &nNodeID, &nNodeInGlobal, &nModuleIdx,
&nModuleInCh );
// DI 2 DIO .
ceGnLocalDIO_Get ( nGlobalDiChNo, &nNodeIP, &nNodeID, &nNodeInGlobal, &nModuleIdx,
&nModuleInCh );
// AI 1 AI .
ceGnLocalAI_Get ( nGlobalAiChNo, &nNodeIP, &nNodeID, &nNodeInGlobal, &nModuleIdx,
&nModuleInCh );
// AO 2 AO .
ceGnLocalAO_Get ( nGlobalAoChNo, &nNodeIP, &nNodeID, &nNodeInGlobal, &nModuleIdx,
&nModuleInCh );
119
CHAPTER 4:: GENERAL FUNCTIONS
// MDO 1 .
ceGnLocalMDIO_Get ( nGlobalMdoChNo, &nNodeIP, &nNodeID, &nNodeInGlobal, &nModuleIdx,
&nModuleInCh );
// 2 .
ceGnLocalCNT_Get ( nGlobalCountChNo, &nNodeIP, &nNodeID, &nNodeInGlobal, &nModuleIdx,
&nModuleInCh );
// 1 .
ceGnLocalSER_Get ( nGlobalCountChNo, &nNodeIP, &nNodeID, &nNodeInGlobal, &nModuleIdx,
&nModuleInCh );
Visual Basic
nGlobalAxisNo = 1 ‘ 1 . .
nGlobalDiChNo = 2 ‘ DI 2 . .
nGloablAiChNo = 1 ‘ AI 1 . .
nGlobalAoChNo = 2 ‘ AO 2 . .
nGlobalMdoChNo = 1 ‘ MDO 1 . .
nGlobalCountChNo = 2 ‘ 2 . .
nGlobalSerialChNo = 1 ‘ 1 . .
‘ 1 .
Call ceGnLocalAxis_Get ( nGlobalAxisNo, nNodeIP, nNodeID, nNodeInGlobal, nModuleIdx, nModuleInCh )
‘ DI 2 DIO .
Call ceGnLocalDIO_Get ( nGlobalDiChNo, nNodeIP, nNodeID, nNodeInGlobal, nModuleIdx, nModuleInCh )
‘ AI 1 AI .
Call ceGnLocalAI_Get ( nGlobalAiChNo, nNodeIP, nNodeID, nNodeInGlobal, nModuleIdx, nModuleInCh )
‘ AO 2 AO .
Call ceGnLocalAO_Get ( nGlobalAoChNo, nNodeIP, nNodeID, nNodeInGlobal, nModuleIdx, nModuleInCh )
‘ MDO 1 .
Call ceGnLocalMDIO_Get ( nGlobalMdoChNo, nNodeIP, nNodeID, nNodeInGlobal, nModuleIdx, _
nModuleInCh )
‘ 2 .
Call ceGnLocalCNT_Get ( nGlobalCountChNo, nNodeIP, nNodeID, nNodeInGlobal, nModuleIdx, _
nModuleInCh )
120
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ 1 .
Call ceGnLocalSER_Get ( nGlobalSerChNo, nNodeIP, nNodeID, nNodeInGlobal, nModuleIdx, _
nModuleInCh )
End Sub
Delphi
begin
nGlobalAxisNo := 1; ‘ 1 . .
nGlobalDiChNo := 2; ‘ DI 2 . .
nGloablAiChNo := 1; ‘ AI 1 . .
nGlobalAoChNo := 2; ‘ AO 2 . .
nGlobalMdoChNo := 1; ‘ MDO 1 . .
nGlobalCountChNo := 2; ‘ 2 . .
nGlobalSerChNo := 2; ‘ 2 . .
// 1 .
ceGnLocalAxis_Get ( nGlobalAxisNo, @nNodeIP, @nNodeID, @nNodeInGlobal, @nModuleIdx,
@nModuleInCh );
// DI 2 DIO .
ceGnLocalDIO_Get ( nGlobalDiChNo, @nNodeIP, @nNodeID, @nNodeInGlobal, @nModuleIdx,
@nModuleInCh );
// AI 1 AI .
ceGnLocalAI_Get ( nGlobalAiChNo, @nNodeIP, @nNodeID, @nNodeInGlobal, @nModuleIdx,
@nModuleInCh );
// AO 2 AO .
ceGnLocalAO_Get ( nGlobalAoChNo, @nNodeIP, @nNodeID, @nNodeInGlobal, @nModuleIdx,
@nModuleInCh );
// MDO 1 .
ceGnLocalMDIO_Get ( nGlobalMdoChNo, @nNodeIP, @nNodeID, @nNodeInGlobal, @nModuleIdx,
@nModuleInCh );
// 2 .
ceGnLocalCNT_Get ( nGlobalCountChNo, @nNodeIP, @nNodeID, @nNodeInGlobal, @nModuleIdx,
@nModuleInCh );
// 1 .
ceGnLocalSER_Get ( nGlobalSerChNo, @nNodeIP, @nNodeID, @nNodeInGlobal, @nModuleIdx,
@nModuleInCh );
End;
121
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
122
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
EXAMPLE
//* ceGnLocalAxis_Get .
123
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
124
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
EXAMPLE
//* ceGnLocalAxis_Get .
125
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
126
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
EXAMPLE
//* ceGnLocalAxis_Get .
127
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
128
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
EXAMPLE
//* ceGnLocalAxis_Get .
129
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
130
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
EXAMPLE
//* ceGnLocalAxis_Get .
131
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
132
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
EXAMPLE
//* ceGnLocalAxis_Get .
133
CHAPTER 4:: GENERAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
134
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetLocalChInfo ()
{
long nNodeID = 1; // ID.
long nMotModuleIdx = 1; // ID
long nDioModuleIdx = 2; // DIO ID
long nAiModuleIdx = 3; // AI ID
long nAoModuleIdx = 4; // AO ID
long nCountModuleIdx = 5; // ID
long nSerModuleIdx = 6; // ID
long nMotModuleInCh = 1; // .
long nDiModuleInCh = 1; // DIO DI .
long nAiModuleInCh = 1; // AI AI .
long nAoModuleInCh = 1; // AO AO .
long nMdoModuleInCh = 1; // Mdo .
long nCountModuleInCh = 1; // .
long nSerModuleInCh = 1; // .
//
long nGlobalAxisNo, nGlobalDiChNo, nGloablAiChNo, nGlobalAoChNo, nGlobalMdoChNo,
nGlobalCountChNo, nGlobalSerChNo;
// , .
ceGnGlobalAxis_Get ( nNodeID, nMotModuleIdx, nMotModuleInCh, &nGlobalAxisNo );
// DIO , .
ceGnGlobalDIO_Get (nNodeID, nDiModuleIdx, nDiModuleInCh, &nGlobalDiChNo );
// AI , .
ceGnGlobalAI_Get ( nNodeID, nAiModuleIdx, nAiModuleInCh, &nGlobalAiChNo );
// AO , .
ceGnGlobalAO_Get ( nNodeID, nAoModuleIdx, nAoModuleInCh, &nGlobalAoChNo );
// , MDO .
ceGnGlobalMDIO_Get ( nNodeID, nMotModuleIdx, nMdoModuleInCh, &nGlobalMdoChNo );
// , .
ceGnGlobalCNT_Get ( nNodeID, nCountModuleIdx, nCountModuleInCh, &nGlobalCountChNo );
// , .
ceGnGlobalSER_Get ( nNodeID, nSerModuleIdx, nSerModuleInCh, &nGlobalSerChNo );
}
135
CHAPTER 4:: GENERAL FUNCTIONS
Visual Basic
‘ ID
Dim nMotModuleIdx As Long, nDioModuleIdx As Long, nAiModuleIdx As Long
Dim nAoModuleIdx As Long, nCountModuleIdx As Long, nSerModuleIdx As Long
‘
Dim nMotModuleInCh As Long, nDiModuleInCh As Long, nAiModuleInCh As Long, nAoModuleInCh As Long
Dim nMdoModuleInCh As Long, nCountModuleInCh As Long, nSerModuleInCh As Long
‘
Dim nGlobalAxisNo As Long, nGlobalDiChNo As Long, nGloablAiChNo As Long, nGlobalAoChNo As Long
Dim nGlobalMdoChNo As Long, nGlobalCountChNo As Long, nGlobalSerChNo As Long
nNodeID = 1 ‘ ID.
nMotModuleIdx = 1 ‘ ID
nDioModuleIdx = 2 ‘ DIO ID
nAiModuleIdx = 3 ‘ AI ID
nAoModuleIdx = 4 ‘ AO ID
nCountModuleIdx = 5 ‘ ID
nSerModuleIdx = 6 ‘ ID
nMotModuleInCh = 1 ‘ .
nDiModuleInCh = 1 ‘ DIO DI .
nAiModuleInCh = 1 ‘ AI AI .
nAoModuleInCh = 1 ‘ AO AO .
nMdoModuleInCh = 1 ’ Mdo .
nCountModuleInCh = 1 ‘ .
nSerModuleInCh = 1 ‘ .
‘ , .
Call ceGnGlobalAxis_Get ( nNodeID, nMotModuleIdx, nMotModuleInCh, nGlobalAxisNo )
‘ DIO , .
Call ceGnGlobalDIO_Get (nNodeID, nDiModuleIdx, nDiModuleInCh, nGlobalDiChNo )
‘ AI , .
Call ceGnGlobalAI_Get ( nNodeID, nAiModuleIdx, nAiModuleInCh, nGlobalAiChNo )
‘ AO , .
Call ceGnGlobalAO_Get ( nNodeID, nAoModuleIdx, nAoModuleInCh, nGlobalAoChNo )
136
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ , MDO .
Call ceGnGlobalMDIO_Get ( nNodeID, nMotModuleIdx, nMdoModuleInCh, nGlobalMdoChNo )
‘ , .
Call ceGnGlobalCNT_Get ( nNodeID, nCountModuleIdx, nCountModuleInCh, nGlobalCountChNo )
‘ , .
Call ceGnGlobalSER_Get ( nNodeID, nSerModuleIdx, nSerModuleInCh, nGlobalSerChNo )
End Sub
Delphi
// ID
nMotModuleIdx, nDioModuleIdx, nAiModuleIdx, nAoModuleIdx, nCountModuleIdx, nSerModuleIdx : LongInt;
//
nMotModuleInCh, nDiModuleInCh, nAiModuleInCh, nAoModuleInCh : LongInt;
nMdoModuleInCh, nCountModuleInCh, nSerModuleInCh : LongInt;
//
nGlobalAxisNo, nGlobalDiChNo, nGloablAiChNo, nGlobalAoChNo : LongInt;
nGlobalMdoChNo, nGlobalCountChNo, nGlobalSerChNo : LongInt;
begin
nNodeID := 1; // ID.
nMotModuleIdx := 1; // ID
nDioModuleIdx := 2; // DIO ID
nAiModuleIdx := 3; // AI ID
nAoModuleIdx := 4; // AO ID
nCountModuleIdx := 5; // ID
nSerModuleIdx := 6; // ID
nMotModuleInCh := 1; // .
nDiModuleInCh := 1; // DIO DI .
nAiModuleInCh := 1; // AI AI .
nAoModuleInCh := 1; // AO AO .
nMdoModuleInCh := 1; // Mdo .
nCountModuleInCh := 1; // .
nSerModuleInCh := 1; // .
// , .
ceGnGlobalAxis_Get ( nNodeID, nMotModuleIdx, nMotModuleInCh, @nGlobalAxisNo );
137
CHAPTER 4:: GENERAL FUNCTIONS
// DIO , .
ceGnGlobalDIO_Get (nNodeID, nDiModuleIdx, nDiModuleInCh, @nGlobalDiChNo );
// AI , .
ceGnGlobalAI_Get ( nNodeID, nAiModuleIdx, nAiModuleInCh, @nGlobalAiChNo );
// AO , .
ceGnGlobalAO_Get ( nNodeID, nAoModuleIdx, nAoModuleInCh, @nGlobalAoChNo );
// , MDO .
ceGnGlobalMDIO_Get ( nNodeID, nMotModuleIdx, nMdoModuleInCh, @nGlobalMdoChNo );
// , .
ceGnGlobalCNT_Get ( nNodeID, nCountModuleIdx, nCountModuleInCh, @nGlobalCountChNo );
// , .
ceGnGlobalSER_Get ( nNodeID, nSerModuleIdx, nSerModuleInCh, @nGlobalSerChNo );
end
138
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
139
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
//* ceGnGlobalAxis_Get .
140
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
141
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
//* ceGnGlobalAxis_Get .
142
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
143
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
//* ceGnGlobalAxis_Get .
144
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
145
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
//* ceGnGlobalAxis_Get .
146
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
147
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
//* ceGnGlobalAxis_Get .
148
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
149
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
//* ceGnGlobalAxis_Get .
150
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
151
CHAPTER 4:: GENERAL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetSwEmergency ()
{
long nNodeID = 1; // ID.
long nSwEmgStatus; // Emergency .
/* Emergency ,
Emergency . */
Visual Basic
nNodeID = 1
‘ Emergency ,
‘ Emergency .
152
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Delphi
begin
nNodeID := 1;
{ Emergency ,
Emergency .}
end;
153
CHAPTER 5:: GENERAL MOTION FUNCTIONS
5
Chapter
ceSDK .
154
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
“ ”
Summary of Functions
r VT_I4 cemGnServoOn_Set ( [in] VT_I4 Channel, [in] VT_I4 Enable )
SERVO-ON .
r VT_I4 cemGnServoOn_Get ([in] VT_I4 Channel, [out] VT_PI4 Enable )
SERVO-ON .
r VT_I4 cemGnAlarmReset ( [in] VT_I4 Axis, [in] VT_I4 IsReset )
(Alarm Reset) .
155
CHAPTER 5:: GENERAL MOTION FUNCTIONS
5.2
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
156
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetServoOn ()
{
long nAxisNo = 1; // Servo-On .
long nMioStates; //
/* Servo-On , ON/OFF */
Visual Basic
nAxisNo = 1
‘ Servo-On , ON/OFF
157
CHAPTER 5:: GENERAL MOTION FUNCTIONS
Else
‘ Servo ON Servo OFF .
cemGnServoOn_Set ( nAxisNo, CE_FALSE )
End If
End If
End Sub
Delphi
begin
nAxisNo := 1;
// Servo-On , ON/OFF
end;
158
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
159
CHAPTER 5:: GENERAL MOTION FUNCTIONS
160
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnAlarmReset ()
{
long nAxisNo = 1; // ARST .
/* ARST , . */
// .
Sleep(50);
Visual Basic
‘ ARST , .
‘ .
Sleep(50);
End Sub
Delphi
begin
nAxisNo := 1;
// ARST , .
cemGnAlarmReset ( nAxisNo, CE_TRUE ); // ARST ON
161
CHAPTER 5:: GENERAL MOTION FUNCTIONS
// .
Sleep(50);
end;
162
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
6
Chapter
Environment Configuration
Chapter:6
Functions
. ,
.
163
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
6
6.1
“ ”
Summary of Functions
r VT_I4 cemCfgMioProperty_Set ( [in] VT_I4 Axis, [in] VT_I4 PropId, [in] VT_I4 PropVal )
(MIO) .
r VT_I4 cemCfgMioProperty_Get ( [in] VT_I4 Axis, [in] VT_I4 PropId, [out] VT_PI4 PropVal )
.
r VT_I4 cemCfgFilter_Set ( [in] VT_I4 Axis, [in] VT_I4 IsEnable )
(Input/Output) (Filter) .
r VT_I4 cemCfgFilter_Get ( [in] VT_I4 Axis, [out] VT_PI4 IsEnabled )
.
r VT_I4 cemCfgFilterAB_Set ( [in] VT_I4 Channel, [in] VT_I4 Target, [in] VT_I4 IsEnable )
EA/EB PA/PB .
r VT_I4 cemCfgFilterAB_Get ( [in] VT_I4 Channel, [in] VT_I4 Target, [out] VT_PI4 IsEnabled )
EA/EB PA/PB .
r VT_I4 cemCfgInMode_Set ( [in] VT_I4 Axis, [in] VT_I4 InputMode, [in] VT_I4 IsReverse )
(Feedback Pulse) .
r VT_I4 cemCfgInMode_Get ( [in] VT_I4 Axis, [out] VT_PI4 InputMode, [out] VT_PI4 IsReverse )
.
r VT_I4 cemCfgOutMode_Set ( [in] VT_I4 Axis, [in] VT_I4 OutputMode )
(Command Pulse) .
r VT_I4 cemCfgOutMode_Get ( [in] VT_I4 Axis, [out] VT_PI4 OutputMode )
.
r VT_I4 cemCfgCtrlMode_Set ( [in] VT_I4 Axis, [in] VT_I4 CtrlMode )
.
r VT_I4 cemCfgCtrlMode_Get ( [in] VT_I4 Axis, [out] VT_PI4 CtrlMode )
.
r VT_I4 cemCfgInOutRatio_Set ( [in] VT_I4 Axis, [in] VT_R8 Ratio )
(Resolution Ratio) .
r VT_I4 cemCfgInOutRatio_Get ( [in] VT_I4 Axis, [out] VT_PR8 Ratio )
.
r VT_I4 cemCfgUnitDist_Set ( [in] VT_I4 Axis, [in] VT_R8 UnitDist )
.
r VT_I4 cemCfgUnitDist_Get ( [in] VT_I4 Axis, [out] VT_PR8 UnitDist )
.
r VT_I4 cemCfgUnitSpeed_Set ( [in] VT_I4 Axis, [in] VT_R8 UnitSpeed )
.
164
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
r VT_I4 cemCfgSpeedPattern_Set ( [in] VT_I4 Axis, [in] VT_I4 SpeedMode, [in] VT_R8 WorkSpeed,
[in] VT_R8 Accel, [in] VT_R8 Decel )
.
.
r VT_I4 cemCfgSoftLimit_Set ( [in] VT_I4 Axis, [in] VT_I4 IsEnable, [in] VT_R8 LimitN,
[in] VT_R8 LimitP )
.
r VT_I4 cemCfgSoftLimit_Get ( [in] VT_I4 Axis, [out] VT_PI4 IsEnable, [out] VT_PR8 LimitN,
[out] VT_PR8 LimitP )
.
r VT_I4 cemCfgRingCntr_Set ( [in] VT_I4 Channel, [in] VT_I4 TargCntr, [in] VT_I4 IsEnable,
[in] VT_R8 CntMax )
(Rign -Counter) .
r VT_I4 cemCfgRingCntr_Get ( [in] VT_I4 Channel, [in] VT_I4 TargCntr, [out] VT_PI4 IsEnable,
[out] VT_PR8 CntMax )
.
165
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
6.2
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
▪
0 (cemMPID_ALM_LOGIC)
▪
166
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
1 (cemMPID_ALM_MODE)
▪
▪
▪
2 (cemMPID_CMP_LOGIC)
▪
3 (cemMPID_DR_LOGIC) ▪
▪
4 (cemMPID_EL_LOGIC) ▪
▪
5 (cemMPID_EL_MODE) ▪
▪
6 (cemMPID_ERC_LOGIC) ▪
▪
7 (cemMPID_ERC_OUT) ▪
▪
8 (cemMPID_EZ_LOGIC) ▪
▪
▪
9 (cemMPID_INP_EN) ▪
10 (cemMPID_INP_LOGIC) ▪
▪
11 (cemMPID_LTC_LOGIC) ▪
▪
12 (cemMPID_LTC_LTC2SRC) ▪
▪
13 (cemMPID_ORG_LOGIC) ▪
▪
167
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
▪
14 (cemMPID_SD_EN) ▪
15 (cemMPID_SD_LOGIC) ▪
▪
•
16 (cemMPID_SD_LATCH)
•
•
17 (cemMPID_SD_MODE)
•
•
18 (cemMPID_STA_MODE)
•
•
19 (cemMPID_STA_TRG)
•
•
20 (cemMPID_STP_MODE)
•
•
21 (cemMPID_CLR_CNTR) •
•
•
•
•
22 (cemMPID_CLR_SIGTYPE)
•
168
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
•
23 (cemMPID_CMP_PWIDTH)
•
…
24 (cemMPID_ERC_ONTIME)
25 (cemMPID_SVON_LOGIC) ▪
▪
26 (cemMPID_ERC_OUT_EL)
▪
▪
27 (cemMPID_CNT_D_SRC)
▪
▪
▪
28 (cemMPID_CNT_G_SRC) ▪
▪
▪
▪
▪
29 (cemMPID_LTC_TRGMODE)
▪
30 (cemMPID_SLIM_EN) ▪
▪
▪
▪
31 (cemMPID_OUT_MODE) ▪
▪
▪
▪
169
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
▪
▪
32 (cemMPID_IN_MODE)
▪
▪
▪
33 (cemMPID_IN_INV)
▪
▪
34 (cemMPID_CEMG_EN) ▪
▪
RETURN VALUE
‘ ’
0 (ceERR_NONE)
170
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetMioProperty_Set ()
{
long nAxisNo = 1; // MIO .
long nAlmLogic, nAlmMode; // ALM .
/* ALM ,
‘ALM Logic : B , ALM Mode : ’ . */
// ALM
if ( cemCfgMioProperty_Get ( nAxisNo, cemMPID_ALM_LOGIC, &nAlmLogic ) == ceERR_NONE )
{
if ( nAlmLogic != cemLOGIC_B )
{
// ALM ‘B ’
cemCfgMioProperty_Set ( nAxisNo, cemMPID_ALM_LOGIC, cemLOGIC_B );
}
}
// ALM ON
if ( cemCfgMioProperty_Get ( nAxisNo, cemMPID_ALM_MODE, &nAlmMode ) == ceERR_NONE )
{
if ( nAlmMode != CE_FALSE )
{
// ALM ON ‘ ’
cemCfgMioProperty_Set ( nAxisNo, cemMPID_ALM_MODE, CE_FALSE );
}
}
}
Visual Basic
long nAxisNo = 1;
‘ ALM ,
‘ ALM Logic : B , ALM Mode : ’ .
‘ ALM
If cemCfgMioProperty_Get ( nAxisNo, cemMPID_ALM_LOGIC, nAlmLogic ) = ceERR_NONE Then
If nAlmLogic <> cemLOGIC_B Then
171
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
‘ ALM ‘B ’
Call cemCfgMioProperty_Set ( nAxisNo, cemMPID_ALM_LOGIC, cemLOGIC_B )
End If
End If
‘ ALM ON
If cemCfgMioProperty_Get ( nAxisNo, cemMPID_ALM_MODE, nAlmMode ) = ceERR_NONE Then
If nAlmMode <> CE_FALSE Then
‘ ALM ON ‘ ’
Call cemCfgMioProperty_Set ( nAxisNo, cemMPID_ALM_MODE, CE_FALSE )
End If
End If
End Sub
Delphi
begin
nAxisNo := 1;
{ ALM ,
ALM Logic : B , ALM Mode : .}
// ALM
if cemCfgMioProperty_Get ( nAxisNo, cemMPID_ALM_LOGIC, @nAlmLogic ) = ceERR_NONE then
begin
if nAlmLogic <> cemLOGIC_B then
begin
// ALM ‘B ’
cemCfgMioProperty_Set ( nAxisNo, cemMPID_ALM_LOGIC, cemLOGIC_B );
end;
end;
// ALM ON
if cemCfgMioProperty_Get ( nAxisNo, cemMPID_ALM_MODE, @nAlmMode ) = ceERR_NONE then
begin
if nAlmMode <> CE_FALSE then
begin
// ALM ON ‘ ’
cemCfgMioProperty_Set ( nAxisNo, cemMPID_ALM_MODE, CE_FALSE );
end;
end;
end;
172
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
173
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetNoiseFilter ()
{
long nAxisNo = 1; // Noise Filter .
long nFilterEnable; // Noise Filter .
/* . */
if ( cemCfgFilter_Get ( nAxisNo, &nFilterEnable ) == ceERR_NONE )
{
if ( nFilterEnable != CE_TRUE )
{
// Noise Filter Enable
cemCfgFilter_Set ( nAxisNo, CE_TRUE );
}
}
}
Visual Basic
nAxisNo = 1
‘ .
If cemCfgFilter_Get ( nAxisNo, nFilterEnable ) = ceERR_NONE Then
End Sub
174
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Delphi
begin
nAxisNo := 1;
// .
if cemCfgFilter_Get ( nAxisNo, @nFilterEnable ) = ceERR_NONE then
begin
if nFilterEnable <> CE_TRUE then
begin
// Noise Filter Enable
cemCfgFilter_Set ( nAxisNo, CE_TRUE );
end;
end;
end;
175
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemAB_ENC)
1 (cemAB_PULSAR)
0 (CE_FALSE) [Default]
1 (CE_TRUE)
176
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
177
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetNoiseFilterAB ()
{
long nAxisNo = 1; // Noise Filter .
long nFilterEnable; // Noise Filter .
/* EA/EB, PA/PB ,
. */
// EA/EB
if ( cemCfgFilterAB_Get ( nAxisNo, cemAB_ENC, &nFilterEnable ) == ceERR_NONE )
{
if ( nFilterEnable != CE_TRUE )
{
// EA/EB Noise Filter Enable
cemCfgFilterAB_Set ( nAxisNo, cemAB_ ENC, CE_TRUE );
}
}
// PA/PB
if ( cemCfgFilterAB_Get ( nAxisNo, cemAB_ PULSAR, &nFilterEnable ) == ceERR_NONE )
{
if ( nFilterEnable != CE_TRUE )
{
// PA/PB Noise Filter Enable
cemCfgFilterAB_Set ( nAxisNo, cemAB_PULSAR, CE_TRUE );
}
}
}
Visual Basic
long nAxisNo = 1
‘ EA/EB, PA/PB ,
‘ .
‘ EA/EB
If cemCfgFilterAB_Get ( nAxisNo, cemAB_ENC, nFilterEnable ) = ceERR_NONE Then
178
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ PA/PB
If cemCfgFilterAB_Get ( nAxisNo, cemAB_ PULSAR, nFilterEnable ) = ceERR_NONE Then
End Sub
Delphi
begin
nAxisNo := 1;
{ EA/EB, PA/PB ,
.}
// EA/EB
if cemCfgFilterAB_Get ( nAxisNo, cemAB_ENC, @nFilterEnable ) = ceERR_NONE then
begin
if nFilterEnable <> CE_TRUE then
begin
// EA/EB Noise Filter Enable
cemCfgFilterAB_Set ( nAxisNo, cemAB_ ENC, CE_TRUE );
end;
end;
// PA/PB
if cemCfgFilterAB_Get ( nAxisNo, cemAB_ PULSAR, @nFilterEnable ) = ceERR_NONE then
begin
if nFilterEnable <> CE_TRUE then
begin
// PA/PB Noise Filter Enable
cemCfgFilterAB_Set ( nAxisNo, cemAB_PULSAR, CE_TRUE );
end;
end;
end;
179
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemIMODE_AB1X)
1 (cemIMODE_AB2X)
2 (cemIMODE_AB4X)
3 (cemIMODE_CWCCW)
4 (cemIMODE_STEP)
0 (CE_FALSE)
1 (CE_TRUE)
180
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetInMode ()
{
long nAxisNo = 1; // Feedback Pulse .
long nInputMode, nIsReverse; // .
/* Feedback Pulse ,
‘4 ’ . */
//
if ( cemCfgInMode_Get ( nAxisNo, &nInputMode, &nIsReverse ) == ceERR_NONE )
{
if ( nInputMode != cemIMODE_AB4X )
{
cemCfgInMode_Set ( nAxisNo, cemIMODE_AB4X, CE_FALSE );
}
}
}
Visual Basic
long nAxisNo = 1
‘ Feedback Pulse ,
‘ ‘4 ’ .
‘
If cemCfgInMode_Get ( nAxisNo, nInputMode, nIsReverse ) = ceERR_NONE Then
End Sub
181
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
Delphi
procedure OnSetInMode ()
var
nAxisNo : LongInt; // Feedback Pulse .
nInputMode, nIsReverse : LongInt // .
begin
nAxisNo := 1;
{ Feedback Pulse ,
‘4 ’ .}
//
if cemCfgInMode_Get ( nAxisNo, @nInputMode, @nIsReverse ) = ceERR_NONE then
begin
if nInputMode <> cemIMODE_AB4X then
begin
cemCfgInMode_Set ( nAxisNo, cemIMODE_AB4X, CE_FALSE );
end;
end;
end;
182
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
“ ”
PARAMETER
183
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
184
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetOutMode ()
{
long nAxisNo = 1; // Command Pulse .
long nOutputMode; // Comand Pulse .
Visual Basic
nAxisNo = 1
End Sub
Delphi
begin
nAxisNo := 1;
185
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
end;
186
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (cemCTRL_OPEN)
[Default]
1 (cemCTRL_SEMI_C)
2 (cemCTRL_FULL_C)
187
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
0 (cemCTRL_OPEN)
[Default]
1 (cemCTRL_SEMI_C)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
•
•
188
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetCtrlMode ()
{
long nAxisNo = 1; // .
long nCtrlMode; // .
/* Semi-Closed .
. ,
, Open Loop . */
// , Semi-Closed Loop .
if ( cemCfgCtrlMode_Get ( nAxisNo, nCtrlMode ) == ceERR_NONE )
{
if ( nCtrlMode != cemCTRL_SEMI_C )
{
// Semi-Closed Loop
cemCfgCtrlMode_Set ( nAxisNo, cemCTRL_OPEN );
}
}
}
Visual Basic
nAxisNo = 1
‘ Semi-Closed .
‘ . ,
‘ , Open Loop .
End Sub
189
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
Delphi
begin
nAxisNo := 1;
{ Semi-Closed .
‘ . ,
, Open Loop .}
end;
190
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
191
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetInOutRatio ()
{
long nAxisNo = 0; // .
double fInOutRatio; // .
// ‘1’ .
if ( cemCfgInOutRatio_Get ( nAxisNo, &fInOutRatio ) != ceERR_NONE )
{
if ( fInOutRatio != 1.0f )
{
cemCfgInOutRatio_Set ( nAxisNo, 1.0f );
}
}
}
Visual Basic
nAxisNo = 0
‘ ‘1’ .
If cemCfgInOutRatio_Get ( nAxisNo, fInOutRatio ) <> ceERR_NONE Then
192
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
End Sub
Visual Basic
begin
nAxisNo : 0;
// ‘1’ .
if cemCfgInOutRatio_Get ( nAxisNo, fInOutRatio ) <> ceERR_NONE then
begin
if fInOutRatio <> 1 then
begin
cemCfgInOutRatio_Set ( nAxisNo, 1 );
end;
end;
end;
193
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
‘ ’
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
194
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
‘ ’
195
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetUnitDist ()
{
/*
1 (Lr) = 5mm, Command (Pr) = 10000 pulse/rev
void OnMove ()
{
// = 100(mm/s), / = 1000(mm/s^2) .
cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 100, 1000, 1000 );
Visual Basic
End Sub
196
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ = 100(mm/s), / = 1000(mm/s^2) .
Call cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 100, 1000, 1000 )
End Sub
Delphi
end;
end;
197
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
‘ ’
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
198
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAxisNo = 0; // .
void OnSetUnitSpeed ()
{
/* 1 3600
( ), RPM . */
// 1 3600 1 10 .
cemCfgUnitDist_Set ( nAxisNo, 10 );
void OnMove ()
{
/* 200rpm/s . 100rpm
0.5sec .*/
cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 100, 200, 200 );
Visual Basic
199
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
‘1 3600
‘ (1 ) , RPM .
‘1 3600 1 10 .
Call cemCfgUnitDist_Set ( cemX1, 10 )
End Sub
‘ 200rpm/s . 100rpm
‘ 0.5sec .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 100, 200, 200 )
End Sub
Delphi
procedure OnSetUnitSpeed ()
begin
{1 3600
(1 ), RPM .}
// 1 3600 1 10 .
cemCfgUnitDist_Set ( cemX1, 10 );
end;
end;
200
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
201
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetSpeedRange ()
{
long nAxisNo = 1; // .
double fMaxPPS, fMinPPS; // /
/* , 6.5MPPS .
6.5MPPS 100 ~ 6553500 PPS . */
Visual Basic
nAxisNo = 1
‘ , 6.5MPPS .
‘ 6.5MPPS 100 ~ 6553500 PPS .
If cemCfgSpeedRange_Get ( nAxisNo, fMinPPS, fMaxPPS ) = ceERR_NONE Then
End Sub
Delphi
202
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
begin
nAxisNo := 1;
{ , 6.5MPPS .
6.5MPPS 100 ~ 6553500 PPS .}
if cemCfgSpeedRange_Get ( nAxisNo, @fMinPPS, @fMaxPPS ) = ceERR_NONE then
begin
if fMaxPPS < 6553500 then
begin
// 6553500 .
cemCfgSpeedRange_Set ( nAxisNo, 6553500 );
end;
end;
end;
203
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemSMODE_C)
1 (cemSMODE_T)
2 (cemSMODE_S)
-1 (cemSMODE_KEEP)
0 (cemSMODE_C)
1 (cemSMODE_T)
2 (cemSMODE_S)
204
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
205
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
206
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SVacc SVdec
SVacc SVdec
Time
Accel. Decel.
‘ ’
207
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetSpeedPattern ()
{
long nAxisNo = 0; // .
long nSpeedMode; // .
double fVel, fAcc, fDec;
/* 0 S-Curve ,
2000, 10000, 10000 .*/
cemCfgSpeedPattern_Set ( nAxisNo, // .
cemSMODE_S, // .
2000, //
10000, //
10000 //
);
// , , .
cemCfgSpeedPattern_Get ( nAxisNo, &nSpeedMode, &fVel, &fAcc, &fDec );
}
Visual Basic
nAxisNo = 0
‘0 S-Curve ,
‘ 2000, 10000, 10000 .
Call cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_S, 2000, 10000, 10000 )
‘ , , .
Call cemCfgSpeedPattern_Get ( nAxisNo, nSpeedMode, fVel, fAcc, fDec )
End Sub
Delphi
208
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
begin
{0 S-Curve ,
2000, 10000, 10000 .}
cemCfgSpeedPattern_Set ( ceX1, cemSMODE_S, 2000, 10000, 10000 );
‘ , , .
cemCfgSpeedPattern_Get ( ceX1, @nSpeedMode, @fVel, @fAcc, @fDec );
end;
209
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
210
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetSoftLimit ()
{
long nIsEnable; // Software Limit .
double fElNeg, fElPos;
void OnMove ()
{
/* : 50000 , : 100000 SW Limit
150000 Command pulse 100000 . */
cemSxMoveStart ( nAxisNo, 100000 );
}
211
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
Visual Basic
End Sub
Delphi
begin
// Software Limit , Software Limit .
end;
end;
212
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemCNT_COMM)
1 (cemCNT_FEED)
0 (CE_FALSE)
1 (CE_TRUE)
213
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAxisNo = 1; // .
void OnSetRingCounter ()
{
long nIsEnable; // .
double fCntMax;
/* .
40000 ‘0’ .*/
cemCfgRingCntr_Set ( nAxisNo, //
cemCNT_COMM, //
CE_TRUE, // /
40000 //
);
// .
cemCfgRingCntr_Get ( nAxis, cemCNT_COMM, &nIsEnable, &fCntMax );
}
void OnMove ()
{
/* ‘0 ~ 40000’ Command Count 40000
0 Command Count . */
cemSxVMoveStart ( nAxisNo );
}
Visual Basic
214
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ .
‘ 40000 ‘0’ .
Call cemCfgRingCntr_Set ( nAxisNo, cemCNT_COMM, CE_TRUE, 40000 )
‘ .
Call cemCfgRingCntr_Get ( nAxis, cemCNT_COMM, nIsEnable, fCntMax )
End Sub
End Sub
Delphi
begin
{ .
40000 ‘0’ .}
cemCfgRingCntr_Set ( cemX1, cemCNT_COMM, CE_TRUE, 40000 );
// .
cemCfgRingCntr_Get ( cemX1, cemCNT_COMM, @nIsEnable, @fCntMax );
end;
cemSxVMoveStart ( cemX1 );
end;
215
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemSEQM_SKIP_RUN)
[Default]
1 (cemSEQM_WAIT_RUN)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
216
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetSeqMode ()
{
long nSeqMode; // .
// , cemSEQM_ SKIP_RUN .
if ( cemCfgSeqMode_Get ( &nSeqMode ) == ceERR_NONE )
{
if ( nSeqMode != cemSEQM_SKIP_RUN )
{
cemCfgSeqMode_Set ( cemSEQM_SKIP_RUN )
}
}
}
void OnMove ()
{
SxVMoveStart ( cemX1 ); //
Visual Basic
‘ , cemSEQM_ SKIP_RUN .
If cemCfgSeqMode_Get ( nSeqMode ) = ceERR_NONE Then
217
CHAPTER 6:: MOTION ENVIRONMENT CONFIGURATION FUNCTIONS
End If
End Sub
End Sub
Delphi
begin
// , cemSEQM_ SKIP_RUN .
if cemCfgSeqMode_Get ( @nSeqMode ) = ceERR_NONE then
begin
if nSeqMode <> cemSEQM_SKIP_RUN then
begin
cemCfgSeqMode_Set ( cemSEQM_SKIP_RUN );
end;
end;
end;
end;
218
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
7
Chapter
219
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
7
7.1 (Single-Axis)
7.1.1
“ ”
Summary of Functions
r VT_I4 cemSxSpeedRatio_Set ( [in] VT_I4 Axis, [in] VT_I4 SpeedMode, [in] VT_R8 VelRatio,
[in] VT_R8 AccRatio, [in] VT_R8 DecRatio )
.
r VT_I4 cemSxSpeedRatio_Get ( [in] VT_I4 Axis, [out] VT_PI4 SpeedMode, [out] VT_PR8 VelRatio,
[out] VT_PR8 AccRatio, [out] VT_PR8 DecRatio )
.
220
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
r VT_I4 cemSxCorrection_Set ( [in] VT_I4 Axis, [in] VT_I4 CorrMode, [in] VT_R8 CorrAmount,
[in] VT_R8 CorrVel, [in] VT_I4 CntrMask )
.
r VT_I4 cemSxCorrection_Get ( [in] VT_I4 Axis, [out] VT_PI4 CorrMode, [out] VT_PR8 CorrAmount,
[out] VT_PR8 CorrVel, [out] VT_PI4 CntrMask )
.
221
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
7.1.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemSMODE_C)
1 (cemSMODE_T)
2 (cemSMODE_S)
-1 (cemSMODE_KEEP)
222
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
0 (cemSMODE_C)
1 (cemSMODE_T)
2 (cemSMODE_S)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
223
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetSpeed ()
{
long nAxisNo = 1; // .
/* . cemCfgSpeedPattern_Set()
. */
cemSxSpeedRatio_Set ( nAxisNo, //
cemSMODE_T, //
50, // . 1000 * 0.5 = 500 pps
80, // . 10000 * 0.8 = 8000 pps
80 // . 10000 * 0.8 = 8000 pps
);
}
224
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
“ ” ‘ ’ ‘ ’
0 (CE_FALSE)
1 (CE_TRUE)
225
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
RETURN VALUE
‘ ’
SEE ALSO
REFERENCE
226
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAxisNo = 1; // .
void OnSetSpeed ()
{
// .
cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 10000, 50000, 50000 );
}
void OnMove ()
{
/* cemCfgSpeedPattern_Set()
. */
cemSxSpeedRatio_Set ( nAxisNo, cemSMODE_KEEP, 50, 100, 100 );
// ‘10000’ .
if ( cemSxMoveStart( nAxisNo, 10000 ) == ceERR_NONE )
{
// CE_FALSE UI .
cemSxWaitDone ( nAxisNo, CE_FALSE );
}
// cemSxMoveStart(), cemSxWaitDone() .
// cemSxMove ( nAxisNo, 10000, CE_FALSE );
// ‘0’ .
if ( cemSxMoveToStart ( nAxisNo, 0 ) == ceERR_NONE )
{
long nIsDone; // .
While ( 1 )
{
227
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
// .
cemSxIsDone ( nAxisNo, &nIsDone );
if ( nIsDone == CE_TRUE ) break;
}
}
}
Visual Basic
nAxisNo = 1
‘ cemCfgSpeedPattern_Set()
‘ .
Call cemSxSpeedRatio_Set ( nAxisNo, cemSMODE_KEEP, 50, 100, 100 )
‘ ‘10000’ .
If cemSxMoveStart ( nAxisNo, 10000 ) = ceERR_NONE Then
‘ CE_FALSE UI .
Call cemSxWaitDone ( nAxisNo, CE_FALSE )
End If
‘ cemSxMoveStart(), cemSxWaitDone() .
‘ cemSxMove ( nAxisNo, 10000, CE_FALSE )
‘ ‘0’ .
nIsDone = CE_FALSE
If cemSxMoveToStart ( nAxisNo, 0 ) = ceERR_NONE Then
‘ .
While ( nIsDone = CE_FALSE )
Call cemSxIsDone ( nAxisNo, nIsDone )
Wend
End If
End Sub
Delphi
228
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
begin
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 10000, 50000, 50000 );
end;
begin
{ cemCfgSpeedPattern_Set()
. }
cemSxSpeedRatio_Set ( cemX1, cemSMODE_KEEP, 50, 100, 100 );
// ‘10000’ .
if cemSxMoveStart ( nAxisNo, 10000 ) = ceERR_NONE then
begin
‘ CE_FALSE UI .
cemSxWaitDone ( cemX1, CE_FALSE );
end
// cemSxMoveStart(), cemSxWaitDone() .
// cemSxMove ( cemX1, 10000, CE_FALSE );
// ‘0’ .
nIsDone := CE_FALSE;
if cemSxMoveToStart ( cemX1, 0 ) = ceERR_NONE then
begin
// .
while nIsDone = CE_FALSE do
begin
cemSxIsDone ( cemX1, @nIsDone );
end;
end;
end;
229
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
“ ” ‘ ’ ‘ ’
0 (CE_FALSE)
1 (CE_TRUE)
230
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
SEE ALSO
REFERENCE
231
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
232
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemDIR_N)
1 (cemDIR_P)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
233
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* .
, . */
/********************************************************************************************
* (+) Move MouseDown (+) .
********************************************************************************************/
void OnJogBtnDownPos ()
{
cemSxVMoveStart ( cemX1, cemDIR_P );
}
/********************************************************************************************
* (-) Move MouseDown (-) .
********************************************************************************************/
void OnJogBtnDownNeg ()
{
cemSxVMoveStart ( cemX1, cemDIR_N );
}
/********************************************************************************************
* (+)/(-) Move MouseUp .
********************************************************************************************/
void OnJogBtnUp ()
{
// .
cemSxStop ( cemX1, // .
CE_FALSE, // .
CE_FALSE //
);
// cemSxStopEmg () .
}
Visual Basic
‘ .
‘ , .
‘ =============================================================
‘ (+) Move MouseDown (+) .
‘ =============================================================
Private Sub OnJogBtnPos_MouseDown ()
Call cemSxVMoveStart ( cemX1, cemDIR_P )
End Sub
‘ =============================================================
234
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ =============================================================
‘ (+) Move MouseUp .
‘ =============================================================
Private Sub OnJogBtnPos_MouseUp ()
‘ .
Call cemSxStop ( cemX1, CE_FALSE, CE_FALSE )
‘ cemSxStopEmg () .
End Sub
‘ =============================================================
‘ (-) Move MouseUp .
‘ =============================================================
Private Sub OnJogBtnNeg_MouseUp ()
Call cemSxStop ( cemX1, CE_FALSE, CE_FALSE )
End Sub
Delphi
{ .
, .}
// *******************************************************************************************
// (+) Move MouseDown (+) .
// ********************************************************************************************
procedure OnJogBtnPos_MouseDown ();
begin
cemSxVMoveStart ( cemX1, cemDIR_P );
end;
// *******************************************************************************************
// (-) Move MouseDown (-) .
// *******************************************************************************************
procedure OnJogBtnNeg_MouseDown ();
begin
cemSxVMoveStart ( cemX1, cemDIR_N );
end;
// *******************************************************************************************
// (+)/(-) Move MouseUp .
// *******************************************************************************************
procedure OnJogBtn_MouseUp ();
begin
// .
cemSxStop ( cemX1, CE_FALSE, CE_FALSE );
// cemSxStopEmg() .
end;
235
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
“ ” ‘ ’ ‘ ’
RETURN VALUE
‘ ’
0 (ceERR_NONE)
236
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAxisNo = 1; // .
void OnSetSpeed ()
{
// .
cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 1000, 5000, 5000 );
}
void OnMove ()
{
long nRetVal;
/* 2
‘10000’ . */
nRetVal = cemSxMoveStart2V ( nAxisNo, // .
10000, // .
20000 // 2
237
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
if ( nRetVal == ceERR_NONE )
{
// CE_FALSE UI .
cemSxWaitDone ( nAxisNo, CE_FALSE );
}
/* 2
‘0’ . */
Visual Basic
‘ 2
‘ ‘10000’ .
‘ 2
‘ ‘0’ .
nIsDone = CE_FALSE
‘ 2 .
238
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
End Sub
Delphi
begin
{ 2
‘10000’ .}
{ 2
‘0’ .}
// 2 .
while nIsDone = CE_FALSE do
begin
cemSxIsDone (cemX1, @nIsDone );
end;
end;
end;
239
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
“ ” ‘ ’ ‘ ’
RETURN VALUE
‘ ’
0 (ceERR_NONE)
240
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
//* cemSxMoveStart2V .
241
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
0 (CE_FALSE)
1 (CE_TRUE)
242
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
//* cemSxVMoveStart .
243
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
244
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
245
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetSxTargetPos ()
{
double fTargetPos; // .
double fGetPos; // .
246
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Visual Basic
End Sub
Delphi
begin
if cemSxTargetPos_Get ( cemX1, @fTargetPos ) = ceERR_NONE then
begin
cemStPosition_Get ( cemX1, cemCNT_COMM, @fGetPos );
end;
247
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetInitSpeed ()
{
long nAxisNo = 1; // .
double fIniSpeed; // .
/* , ‘100’ .
if ( cemSxOptIniSpeed_Get ( nAxisNo, &fIniSpeed ) == ceERR_NONE )
248
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
{
if ( fIniSpeed != 100 )
{
// ‘100’ .
cemSxOptIniSpeed_Set ( nAxisNo, 100 );
}
}
}
Visual Basic
nAxisNo = 1
‘ , ‘100’ .
If cemSxOptIniSpeed_Get ( nAxisNo, fIniSpeed ) = ceERR_NONE Then
End Sub
Delphi
begin
// , ‘100’ .
if cemSxOptIniSpeed_Get ( cemX1, @fIniSpeed ) = ceERR_NONE then
begin
if fIniSpeed <> 100 then
begin
// ‘100’ .
cemSxOptIniSpeed_Set ( nAxisNo, 100 );
end;
end;
end;
249
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemCORR_DIS)
1 (cemCORR_BACK)
2 (cemCORR_SLIP)
250
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
“ ” ‘ ’
“ ” ‘ ’
BIT0
BIT1
BIT2
BIT3
RETURN VALUE
‘ ’
0 (ceERR_NONE)
251
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAxisNo = 1; // .
void OnSetSxCorrection ()
{
// .
// ( : 1000, : 1000 PPS )
cemSxCorrection_Set( nAxisNo, // .
cemCORR_BACK, // .
1000, // .
1000, //
0x1 // .
);
}
void OnMove ()
{
// (-) (+) ( ) .
// 1000 PPS (+)1000 SxMove() .
cemSxMove ( nAxisNo, 10000, CE_FALSE );
// .
cemSxMove ( nAxisNo, 10000, CE_FALSE );
// .
// 1000PPS (-)1000 SxMove() .
cemSxMove ( nAxisNo, -10000, CE_FALSE );
}
Visual Basic
‘ .
‘( : 1000, : 1000 PPS )
Call cemSxCorrection_Set( nAxisNo, cemCORR_BACK, 1000, 1000, &H1 )
End Sub
252
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ (-) (+) ( ) .
‘ 1000 PPS (+)1000 SxMove() .
Call cemSxMove ( nAxisNo, 10000, CE_FALSE )
‘ .
Call cemSxMove ( nAxisNo, 10000, CE_FALSE )
‘ .
‘ 1000PPS (-)1000 SxMove() .
Call cemSxMove ( nAxisNo, -10000, CE_FALSE )
End Sub
Delphi
{ .
( : 1000, : 1000 PPS ) }
cemSxCorrection_Set( cemX1, cemCORR_BACK, 1000, 1000, $1 );
end;
{ (-) (+) ( ) .
1000 PPS (+)1000 SxMove() .}
cemSxMove ( cemX1, 10000, CE_FALSE );
// .
cemSxMove ( cemX1, 10000, CE_FALSE );
{ .
1000PPS (-)1000 SxMove() .}
cemSxMove ( cemX1, -10000, CE_FALSE )
end;
253
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
“ ”
7.2.1
“ ”
“ ”
7.2.2
“ ”
“ ”
254
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
7.2.3
“ ”
Summary of Functions
r VT_I4 cemIxMapAxes ( [in] VT_I4 MapIndex, [in] VT_I4 NodeID, [in] VT_I4 MapMask1,
[in] VT_I4 MapMask2 )
(Group) .
r VT_I4 cemIxLine ( [in] VT_I4 MapIndex, [in] VT_PR8 DistList, [in] VT_I4 IsBlocking )
.
.
r VT_I4 cemIxLineStart ( [in] VT_I4 MapIndex, [in] VT_PR8 DistList )
. .
r VT_I4 cemIxLineTo ( [in] VT_I4 MapIndex, [in] VT_PR8 PosList, [in] VT_I4 IsBlocking )
.
.
r VT_I4 cemIxLineToStart ( [in] VT_I4 MapIndex, [in] VT_PR8 PosList )
. .
r VT_I4 cemIxArcA ( [in] VT_I4 MapIndex, [in] VT_R8 XCentOffset, [in] VT_R8 YCentOffset,
[in] VT_R8 EndAngle, [in] VT_I4 IsBlocking )
, .
.
r VT_I4 cemIxArcAStart ( [in] VT_I4 MapIndex, [in] VT_R8 XCentOffset, [in] VT_R8 YCentOffset,
[in] VT_R8 EndAngle )
, .
.
r VT_I4 cemIxArcATo ( [in] VT_I4 MapIndex, [in] VT_R8 XCent, [in] VT_R8 YCent,
[in] VT_R8 EndAngle, [in] VT_I4 IsBlocking )
, .
.
255
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
r VT_I4 cemIxArcAToStart ( [in] VT_I4 MapIndex, [in] VT_R8 XCent, [in] VT_R8 YCent,
[in] VT_R8 EndAngle )
, .
.
r VT_I4 cemIxArcP ( [in] VT_I4 MapIndex, [in] VT_R8 XCentOffset, [in] VT_R8 YCentOffset,
[in] VT_R8 XEndPointDist, [in] VT_R8 YEndPointDist, [in] VT_I4 Direction, [in] VT_I4 IsBlocking )
, .
.
r VT_I4 cemIxArcPStart ( [in] VT_I4 MapIndex, [in] VT_R8 XCentOffset, [in] VT_R8 YCentOffset,
[in] VT_R8 XEndPointDist, [in] VT_R8 YEndPointDist, [in] VT_I4 Direction )
, .
.
r VT_I4 cemIxArcPTo ( [in] VT_I4 MapIndex, [in] VT_R8 XCent, [in] VT_R8 YCent,
[in] VT_R8 XEndPos, [in] VT_R8 YEndPos, [in] VT_I4 Direction, [in] VT_I4 IsBlocking )
, .
.
r VT_I4 cemIxArcPToStart ( [in] VT_I4 MapIndex, [in] VT_R8 XCent, [in] VT_R8 YCent,
[in] VT_R8 XEndPos, [in] VT_R8 YEndPos, [in] VT_I4 Direction )
, .
.
r VT_I4 cemIxArc3P ( [in] VT_I4 MapIndex, [in] VT_R8 P2X, [in] VT_R8 P2Y, [in] VT_R8 P3X,
[in] VT_R8 P3Y, [in] VT_R8 EndAngle, [in] VT_I4 IsBlocking )
, .
.
r VT_I4 cemIxArc3PStart ( [in] VT_I4 MapIndex, [in] VT_R8 P2X, [in] VT_R8 P2Y, [in] VT_R8 P3X,
[in] VT_R8 P3Y, [in] VT_R8 EndAngle )
, .
.
r VT_I4 cemIxArc3PTo ( [in] VT_I4 MapIndex, [in] VT_R8 P2X, [in] VT_R8 P2Y, [in] VT_R8 P3X,
[in] VT_R8 P3Y, [in] VT_R8 EndAngle, [in] VT_I4 IsBlocking )
, .
.
r VT_I4 cemIxArc3PToStart ( [in] VT_I4 MapIndex, [in] VT_R8 P2X, [in] VT_R8 P2Y, [in] VT_R8 P3X,
[in] VT_R8 P3Y, [in] VT_R8 EndAngle )
, .
.
r VT_I4 cemIxStop ( [in] VT_I4 MapIndex )
.
r VT_I4 cemIxStopEmg ( [in] VT_I4 MapIndex )
.
r VT_I4 cemIxIsDone ( [in] VT_I4 MapIndex, [out] VT_PI4 IsDone )
.
r VT_I4 cemIxWaitDone ( [in] VT_I4 MapIndex, [in] VT_I4 IsBlocking )
.
256
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
7.2.4
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
“”
“ ”
“”
PARAMETER
257
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
BIT0 (cemX1_MASK)
BIT1 (cemY1_MASK)
BIT2 (cemZ1_MASK)
BIT3 (cemU1_MASK)
BIT4 (cemX2_MASK)
BIT5 (cemY2_MASK)
BIT6 (cemZ2_MASK)
BIT7 (cemU2_MASK)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
#define MAP0 0 //
/* 2 .
Node Master 1 : NodeID = 1, 16 Axes
Node Master 2 : NodeID = 2, 8 Axes
16 , 17 .
,2
0, 1 MapMask . */
// 2 0 1 .
cemIxMapAxes ( MAP0, 2, cemX1_MASK | cemY1_MASK, 0 );
// cemIxMapAxes ( MAP0, 2, 0x3, 0x0 );
// MAP0 .
// cemIxUnMap ( MAP0 );
258
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Visual Basic
‘ MAP0
‘ .
‘2 0 1 .
Call cemIxMapAxes ( MAP0, 2, cemX1_MASK Or cemY1_MASK, 0 )
‘ Call cemIxMapAxes ( MAP0, 2, &H3, &H0 )
‘ MAP0 .
‘ cemIxUnMap( MAP0 )
Delphi
// MAP0
// .
begin
// 2 0 1 .
cemIxMapAxes ( MAP0, 2, cemX1_MASK or cemY1_MASK, 0 );
// cemIxMapAxes ( MAP0, 2, $3, $0 );
// MAP0 .
// cemIxUnMap( MAP0 );
end;
259
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
//* cemIxMapAxes .
260
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
“”
“ ” ‘ ’
‘ ’ “
” “ ”
“”
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
0 (cemSMODE_C)
1 (cemSMODE_T)
2 (cemSMODE_S)
261
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
“ ” “
”
262
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
[ 7-2] X, Y
Dx Dy
∆P = D X + DY
2 2
263
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
Vx
Vy
DX × V DY × V
VX = VY =
D X + DY D X + DY
2 2 2 2
Di × V
Vi =
D X + DY + DZ
2 2 2
Di × V
Vi =
DX + DY + DZ + DU
2 2 2 2
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
#define MAP0 0 //
#define NODE_ID 1 // ID
/* MAP0
1000, 10000, 10000 .*/
cemIxSpeedPattern_Set ( MAP0, //
CE_TRUE, // CE_FALSE : , CE_TRUE :
cemSMODE_T, //
1000, // : , : (PPS)
10000, // : , : (PPS)
10000 // : , : (PPS)
);
264
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Visual Basic
nMapIdx = 0
nNodeID = 1
‘ MAP0
‘ 1000, 10000, 10000 .
Call cemIxSpeedPattern_Set ( nMapIdx, CE_TRUE, cemSMODE_T, 1000, 10000, 10000 )
Delphi
var
nMapIdx : LongInt; //
nNodeID : LongInt; // ID
fDistList : Array[0..1] of Double; //
begin
nMapIdx := 0;
nNodeID := 1;
{ MAP0
1000, 10000, 10000 . }
cemIxSpeedPattern_Set ( nMapIdx, CE_TRUE, cemSMODE_T, 1000, 10000, 10000 );
end;
265
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
266
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
0
1
2 [Default]
1 [Default]
RETURN VALUE
‘ ’
0 (ceERR_NONE)
267
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
#define MAP0 0
#define NODE_ID 1
/*MAP0 ,
(%) . */
// .
cemIxSpeedPattern_Get ( MAP0, &nVelCorrOpt1, &nVelCorrOpt2 );
Visual Basic
nVelCorrOpt1 = 2 ‘ ,
nVelCorrOpt2 = 2 ‘ (%)
‘ nMapIdx ,
‘ (%) . */
‘ .
Call cemIxSpeedPattern_Get ( MAP0, nVelCorrOpt1, VelCorrOpt2 )
Delphi
var
nMapIdx : LongInt; //
nNodeID : LongInt; // ID
nVelCorrOpt1, nVelCorrOpt2 : LongInt; //
begin
268
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
nVelCorrOpt1 := 2; // ,
nVelCorrOpt2 := 2; // (%)
{ nMapIdx ,
(%) .}
// .
cemIxSpeedPattern_Get ( MAP0, @nVelCorrOpt1, @VelCorrOpt2 );
269
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
“
”
0 (CE_FALSE)
1 (CE_TRUE)
270
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
271
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* (Node ID : 1) 0, 1
. */
long nIxMap = 0; //
long nNodeID = 1; // ID
void OnSetIxConfig ()
{
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK | cemY1_MASK, 0 );
/*
. */
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 4000, 20000, 20000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 5000, 20000, 20000 );
/* ( )
. */
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 80, 80 );
}
void OnIxLine_Move ()
{
// .
double fDistList[2] = { 13000, 9000 };
// .
cemIxLine( nIxMap, fDistList, CE_FALSE );
//cemIxLineStart() .
//cemIxLineStart( MAP0, fDistList );
//cemIxWaitDone( MAP0, CE_FALSE );
}
Visual Basic
‘ (Node ID : 1) 0, 1
‘.
‘ MAP0
272
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 4000, 20000, 20000 )
Call cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 5000, 20000, 20000 )
‘ .
Call cemIxSpeedPattern_Set ( MAP0, CE_FALSE, cemSMODE_T, 100, 80, 80 )
End Sub
‘ .
Call cemIxLine ( MAP0, fDistList(0), CE_FALSE )
End Sub
Delphi
{ (Node ID : 1) 0, 1
.}
// MAP0
{
. }
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 4000, 20000, 20000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 5000, 20000, 20000 );
// .
cemIxSpeedPattern_Set ( MAP0, CE_FALSE, cemSMODE_T, 100, 80, 80 );
end;
begin
fDistList[0] := 13000;
fDistList[1] := 9000;
// .
cemIxLine ( MAP0, @fDistList, CE_FALSE );
end;
273
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
“
”
0 (CE_FALSE)
1 (CE_TRUE)
274
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
EXAMPLE
275
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
276
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
277
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
REFERENCE
278
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nIxMap = 0; //
long nNodeID = 1; // ID
void OnSetIxConfig ()
{
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK | cemY1_MASK, 0 );
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
}
void OnIxArcA_Move()
{
/* .
100%, 80%, 80% . */
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 80, 80 );
double fDistList[2];
//P1 P2 .
fDistList[0] = 1000; fDistList[1] = 0;
cemIxLine( nIxMap, fDistList, CE_FALSE );
279
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
// P2 P3 .
cemIxArcA( nIxMap, 0, 500, 90, CE_FALSE );
// P3 P4 .
fDistList[0] = 0; fDistList[1] = 1000;
cemIxLine( nIxMap, fDistList, CE_FALSE );
// P4 P5 .
cemIxArcA( nIxMap, -500, 0, 90, CE_FALSE );
// P5 P6 .
fDistList[0] = 1000; fDistList[1] = 0;
cemIxLine( nIxMap, fDistList, CE_FALSE );
// P6 P7 .
cemIxArcA( nIxMap, 0, -500, 90, CE_FALSE );
// P7 P8 .
fDistList[0] = 0; fDistList[1] = -1000;
cemIxLine( nIxMap, fDistList, CE_FALSE );
// P8 P1 .
cemIxArcA( nIxMap, 500, 0, 90, CE_FALSE );
}
Visual Basic
nIxMap = 0
nNodeID = 1
‘0 1 MAP0 .
Call cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK Or cemY1_MASK, 0 )
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 )
Call cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 )
End Sub
‘ .
‘ 100%, 80%, 80% .
Call cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 80, 80 )
280
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ P1 P2 .
fDistList(0) = 1000
fDistList(1) = 0
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P2 P3 .
Call cemIxArcA ( nIxMap, 0, 500, 90, CE_FALSE )
‘ P3 P4 .
fDistList(0) = 0
fDistList(1) = 1000
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P4 P5 .
Call cemIxArcA ( nIxMap, -500, 0, 90, CE_FALSE )
‘ P5 P6 .
fDistList(0) = 1000
fDistList(1) = 0
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P6 P7 .
Call cemIxArcA ( nIxMap, 0, -500, 90, CE_FALSE )
‘ P7 P8 .
fDistList(0) = 0
fDistList(1) = -1000
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P8 P1 .
Call cemIxArcA ( nIxMap, 500, 0, 90, CE_FALSE )
End Sub
Delphi
var
nIxMap : LongInt; //
nNodeID : LongInt; // ID
begin
nIxMap := 0;
nNodeID := 1;
end;
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
end;
281
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
procedure OnIxArcA_Move();
var
fDistList : Array[0..1] of Double;
begin
{ .
100%, 80%, 80% .}
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 80, 80 );
// P1 P2 .
fDistList[0] := 1000;
fDistList[1] := 0;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P2 P3 .
cemIxArcA ( nIxMap, 0, 500, 90, CE_FALSE );
// P3 P4 .
fDistList[0] := 0;
fDistList[1] := 1000;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P4 P5 .
cemIxArcA ( nIxMap, -500, 0, 90, CE_FALSE );
// P5 P6 .
fDistList[0] := 1000;
fDistList[1] := 0;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P6 P7 .
cemIxArcA ( nIxMap, 0, -500, 90, CE_FALSE );
// P7 P8 .
fDistList[0] := 0;
fDistList[1] := -1000;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P8 P1 .
cemIxArcA ( nIxMap, 500, 0, 90, CE_FALSE );
end;
282
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
283
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
284
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
285
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nIxMap = 0; //
long nNodeID = 1; // ID
void OnSetIxConfig ()
{
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK | cemY1_MASK, 0 );
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
}
void OnIxArcATo_Move ()
{
// .
286
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
// P1 P2 .
fPosList[0] = 500; fPosList[1] = -1000;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
// P2 P3 .
cemIxArcATo ( nIxMap, 500, -500, 90, CE_FALSE );
// P3 P4 .
fPosList[0] = 1000; fPosList[1] = 500;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
// P4 P5 .
cemIxArcATo ( nIxMap, 500, 500, 90, CE_FALSE );
// P5 P6 .
fPosList[0] = -500; fPosList[1] = 1000;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
// P6 P7 .
cemIxArcATo ( nIxMap, -500, 500, 90, CE_FALSE );
// P7 P8 .
fPosList[0] = -1000; fPosList[1] = -500;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
//P8 P1 .
cemIxArcATo ( nIxMap, -500, -500, 90, CE_FALSE );
}
Visual Basic
nIxMap = 0
nNodeId = 1
‘0 1 .
Call cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK Or cemY1_MASK, 0 )
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 )
Call cemCfgSpeedPattern_Set ( nAxis1, cemSMODE_T, 1000, 5000, 5000 )
End Sub
287
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
‘ .
Call cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 )
‘ P1 P2 .
fPosList(0) = 500
fPosList(1) = -1000
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P2 P3 .
Call cemIxArcATo ( nIxMap, 500, -500, 90, CE_FALSE )
‘ P3 P4 .
fPosList(0) = 1000
fPosList(1) = 500
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P4 P5 .
Call cemIxArcATo ( nIxMap, 500, 500, 90, CE_FALSE )
‘ P5 P6 .
fPosList(0) = -500
fPosList(1) = 1000
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P6 P7 .
Call cemIxArcATo ( nIxMap, -500, 500, 90, CE_FALSE )
‘ P7 P8 .
fPosList(0) = -1000
fPosList(1) = -500
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P8 P1 .
Call cemIxArcATo ( nIxMap, -500, -500, 90, CE_FALSE )
End Sub
Delphi
var
nIxMap : LongInt; //
nNodeID : LongInt; // ID
begin
nIxMap := 0;
nNodeId := 1;
end;
// .
288
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
end;
procedure OnIxArcATo_Move ()
ver
fPosList : Array[0..1] of Double;
begin
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
// P1 P2 .
fPosList[0] := 500;
fPosList[1] := -1000;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P2 P3 .
cemIxArcATo ( nIxMap, 500, -500, 90, CE_FALSE );
// P3 P4 .
fPosList[0] := 1000;
fPosList[1] := 500;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P4 P5 .
cemIxArcATo ( nIxMap, 500, 500, 90, CE_FALSE );
// P5 P6 .
fPosList[0] := -500;
fPosList[1] := 1000;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P6 P7 .
cemIxArcATo ( nIxMap, -500, 500, 90, CE_FALSE );
// P7 P8 .
fPosList[0] := -1000;
fPosList[1] := -500;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P8 P1 .
cemIxArcATo ( nIxMap, -500, -500, 90, CE_FALSE );
end;
289
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
290
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
PARAMETER
0 (cemARC_CW)
1 (cemARC_CCW)
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
291
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
REFERENCE
292
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nIxMap = 0; //
long nNodeID = 1; // ID
void OnSetIxConfig ()
{
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK | cemY1_MASK, 0 );
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
}
void OnIxArcP_Move ()
{
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
293
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
// P1 P2 .
fDistList[0] = 1000; fDistList[1] = 0;
cemIxLine ( nIxMap, fDistList, CE_FALSE );
// P2 P3 .
cemIxArcP ( nIxMap, 0, 500, 500, 500, cemARC_CCW, CE_FALSE );
// P3 P4 .
fDistList[0] = 0; fDistList[1] = 1000;
cemIxLine ( nIxMap, fDistList, CE_FALSE );
// P4 P5 .
cemIxArcP ( nIxMap, -500, 0, -500, 500, cemARC_CCW, CE_FALSE );
// P5 P6 .
fDistList[0] = -1000; fDistList[1] = 0;
cemIxLine ( nIxMap, fDistList, CE_FALSE );
// P6 P7 .
cemIxArcP ( nIxMap, 0, -500, -500, -500, cemARC_CCW, CE_FALSE );
// P7 P8 .
fDistList[0] = 0; fDistList[1] = -1000;
cemIxLine ( nIxMap, fDistList, CE_FALSE );
// P8 P1 .
cemIxArcP ( nIxMap, 500, 0, 500, -500, cemARC_CCW, CE_FALSE );
}
Visual Basic
nIxMap = 0
nNodeID = 1
‘0 1 .
Call cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK Or cemY1_MASK, 0 )
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 )
Call cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 )
End Sub
‘ .
Call cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 )
294
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ P1 P2 .
fDistList(0) = 1000
fDistList(1) = 0
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P2 P3 .
Call cemIxArcP ( nIxMap, 0, 500, 500, 500, cemARC_CCW, CE_FALSE )
‘ P3 P4 .
fDistList(0) = 0
fDistList(1) = 1000
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P4 P5 .
Call cemIxArcP ( nIxMap, -500, 0, -500, 500, cemARC_CCW, CE_FALSE )
‘ P5 P6 .
fDistList(0) = -1000
fDistList(1) = 0
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P6 P7 .
Call cemIxArcP ( nIxMap, 0, -500, -500, -500, cemARC_CCW, CE_FALSE )
‘ P7 P8 .
fDistList(0) = 0
fDistList(1) = -1000
Call cemIxLine ( nIxMap, fDistList(0), CE_FALSE )
‘ P8 P1 .
Call cemIxArcP ( nIxMap, 500, 0, 500, -500, cemARC_CCW, CE_FALSE )
End Sub
Delphi
var
nIxMap : LongInt; //
nNodeID : LongInt; // ID
begin
nIxMap := 0;
nNodeId := 1;
end;
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
295
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
end;
begin
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
// P1 P2 .
fDistList[0] := 1000;
fDistList[1] := 0;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P2 P3 .
cemIxArcP ( nIxMap, 0, 500, 500, 500, cemARC_CCW, CE_FALSE );
// P3 P4 .
fDistList[0] := 0;
fDistList[1] := 1000;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P4 P5 .
cemIxArcP ( nIxMap, -500, 0, -500, 500, cemARC_CCW, CE_FALSE );
// P5 P6 .
fDistList[0] := -1000;
fDistList[1] := 0;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P6 P7 .
cemIxArcP ( nIxMap, 0, -500, -500, -500, cemARC_CCW, CE_FALSE );
// P7 P8 .
fDistList[0] := 0;
fDistList[1] := -1000;
cemIxLine ( nIxMap, @fDistList, CE_FALSE );
// P8 P1 .
cemIxArcP ( nIxMap, 500, 0, 500, -500, cemARC_CCW, CE_FALSE );
end;
296
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
297
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
PARAMETER
0 (cemARC_CW)
1 (cemARC_CCW)
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
298
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
299
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nIxMap = 0; //
long nNodeID = 1; // ID
void OnSetIxConfig ()
{
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK | cemY1_MASK, 0 );
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
}
void OnIxArcPTo_Move ()
{
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
300
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
// P1 P2 .
fPosList[0] = 500; fPosList[1] = -1000;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
// P2 P3 .
cemIxArcPTo ( nIxMap, 500, -500, 1000, -500, cemARC_CCW, CE_FALSE );
// P3 P4 .
fPosList[0] = 1000; fPosList[1] = 500;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
// P4 P5 .
cemIxArcPTo( nIxMap, 500, 500, 500, 1000, cemARC_CCW, CE_FALSE );
// P5 P6 .
fPosList[0] = -500; fPosList[1] = 1000;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
// P6 P7 .
cemIxArcPTo ( nIxMap, -500, 500, -1000, 500, cemARC_CCW, CE_FALSE );
// P7 P8 .
fPosList[0] = -1000; fPosList[1] = -500;
cemIxLineTo ( nIxMap, fPosList, CE_FALSE );
// P8 P1 .
cemIxArcPTo ( nIxMap, -500, -500, -500, -1000, cemARC_CCW, CE_FALSE );
}
Visual Basic
nIxMap = 0
nNodeID = 1
‘0 1 .
Call cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK Or cemY1_MASK, 0 )
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 )
Call cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 )
End Sub
301
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
‘ P1 P2 .
fPosList(0) = 500
fPosList(1) = -1000
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P2 P3 .
Call cemIxArcPTo ( nIxMap, 500, -500, 1000, -500, cemARC_CCW, CE_FALSE )
‘ P3 P4 .
fPosList(0) = 1000
fPosList(1) = 500
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P4 P5 .
Call cemIxArcPTo ( nIxMap, 500, 500, 500, 1000, cemARC_CCW, CE_FALSE )
‘ P5 P6 .
fPosList(0) = -500
fPosList(1) = 1000
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P6 P7 .
Call cemIxArcPTo ( nIxMap, -500, 500, -1000, 500, cemARC_CCW, CE_FALSE )
‘ P7 P8 .
fPosList(0) = -1000
fPosList(1) = -500
Call cemIxLineTo ( nIxMap, fPosList(0), CE_FALSE )
‘ P8 P1 .
Call cemIxArcPTo ( nIxMap, -500, -500, -500, -1000, cemARC_CCW, CE_FALSE )
End Sub
Delphi
var
nIxMap : LongInt; //
nNodeID : LongInt; // ID
begin
nIxMap := 0;
nNodeId := 1;
end;
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK or cemY1_MASK, 0 );;
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
302
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
end;
begin
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
// P1 P2 .
fPosList[0] := 500;
fPosList[1] := -1000;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P2 P3 .
cemIxArcPTo ( nIxMap, 500, -500, 1000, -500, cemARC_CCW, CE_FALSE );
// P3 P4 .
fPosList[0] := 1000;
fPosList[1] := 500;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P4 P5 .
cemIxArcPTo ( nIxMap, 500, 500, 500, 1000, cemARC_CCW, CE_FALSE );
// P5 P6 .
fPosList[0] := -500;
fPosList[1] := 1000;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P6 P7 .
cemIxArcPTo ( nIxMap, -500, 500, -1000, 500, cemARC_CCW, CE_FALSE );
// P7 P8 .
fPosList[0] := -1000;
fPosList[1] := -500;
cemIxLineTo ( nIxMap, @fPosList, CE_FALSE );
// P8 P1 .
cemIxArcPTo ( nIxMap, -500, -500, -500, -1000, cemARC_CCW, CE_FALSE );
end;
303
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
304
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
305
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nIxMap = 0; //
long nNodeID = 1; // ID
void OnSetIxConfig ()
{
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK | cemY1_MASK, 0 );
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
}
void OnIxArc3P_Move ()
{
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
// cemIxArc3PStart() .
// cemIxArc3PStart ( nIxMap, fX2, fY2, fX3, fY3, 360 );
// cemIxWaitDone ( nIxMap, CE_FALSE );
}
Visual Basic
306
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
nIxMap = 0
nNodeID = 1
‘0 1 .
Call cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK Or cemY1_MASK, 0 )
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 )
Call cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 )
End Sub
fX2 = 1000
fY2 = 3000
fX3 = 3000
fY3 = 2000
‘ .
Call cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 )
‘ cemIxArc3PStart() .
‘ cemIxArc3PStart ( nIxMap, fX2, fY2, fX3, fY3, 360 )
‘ cemIxWaitDone ( nIxMap, CE_FALSE )
End Sub
Delphi
var
nIxMap : LongInt; //
nNodeID : LongInt; // ID
begin
nIxMap := 0;
nNodeId := 1;
end;
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK or cemY1_MASK, 0 );
307
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
end;
begin
fX2 := 1000;
fY2 := 3000;
fX3 := 3000;
fY3 := 2000;
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
{ cemIxArc3PStart() .
cemIxArc3PStart ( nIxMap, fX2, fY2, fX3, fY3, 360 )
cemIxWaitDone ( nIxMap, CE_FALSE )
}
end;
308
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
309
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
‘ ’
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
310
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nIxMap = 0; //
long nNodeID = 1; // ID
void OnSetIxConfig ()
{
// 0 1 .
cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK | cemY1_MASK, 0 );
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
}
void OnIxArc3PTo_Move ()
{
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
// cemIxArc3PToStart() .
// cemIxArc3PToStart( MAP0, fX2, fY2, fX3, fY3, 360 );
// cemIxWaitDone( MAP0, CE_FALSE );
}
Visual Basic
nIxMap = 0
nNodeID = 1
311
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
‘0 1 .
Call cemIxMapAxes ( nIxMap, nNodeID, cemX1_MASK Or cemY1_MASK, 0 )
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 )
Call cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 )
End Sub
fX2 = 0
fY2 = 3000
fX3 = 3000
fY3 = 0
‘ .
Call cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 )
‘ cemIxArc3PToStart() .
‘ cemIxArc3PToStart( MAP0, fX2, fY2, fX3, fY3, 360 )
‘ cemIxWaitDone( MAP0, CE_FALSE )
End Sub
Delphi
var
nIxMap : LongInt; //
nNodeID : LongInt; // ID
begin
nIxMap := 0;
nNodeId := 1;
end;
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
cemCfgSpeedPattern_Set ( cemY1, cemSMODE_T, 1000, 5000, 5000 );
end;
312
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
fX2 := 0;
fY2 := 3000;
fX3 := 3000;
fY3 := 0;
// .
cemIxSpeedPattern_Set ( nIxMap, CE_FALSE, cemSMODE_T, 100, 70, 70 );
{ cemIxArc3PToStart() .
cemIxArc3PToStart( MAP0, fX2, fY2, fX3, fY3, 360 )
cemIxWaitDone( MAP0, CE_FALSE )
}
end;
313
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
314
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnIxMove ()
{
long nIxMap = 0; //
long nNodeID = 1; // ID
// .
cemIxLineStart ( nIxMap , fDistList );
Sleep (1000);
// .
cemIxStop ( nIxMap );
// cemIxStopEmg() .
// cemIxStopEmg ( nIxMap );
}
Visual Basic
nIxMap = 0
nNodeID = 1
fDistList(0) = 10000
fDistList(1) = 20000
‘ .
Call cemIxLineStart ( nIxMap , fDistList(0) )
Sleep ( 1000 )
‘ .
Call cemIxStop ( nIxMap )
‘ cemIxStopEmg() .
‘ cemIxStopEmg ( nIxMap )
315
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
End Sub
Delphi
begin
nIxMap := 0;
nNodeID := 1;
fDistList[0] := 10000;
fDistList[1] := 20000;
// .
cemIxLineStart ( nIxMap , @fDistList );
Sleep ( 1000 );
// .
cemIxStop ( nIxMap );
{ cemIxStopEmg() .
cemIxStopEmg ( nIxMap );
}
end;
316
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
317
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnIxMove ()
{
long nIxMap = 0; //
long nNodeID = 1; // ID
// .
cemIxLineStart ( nIxMap , fDistList );
while( !nIsDone )
{
// .
cemIxIsDone( MAP0, &nIsDone );
}
Visual Basic
nIxMap = 0
nNodeID = 1
fDistList(0) = 10000
fDistList(1) = 20000
‘ .
Call cemIxLineStart ( nIxMap , fDistList(0) )
nIsDone = CE_FALSE
While ( nIsDone = CE_FALSE )
cemIxIsDone ( nIxMap, nIsDone ) ‘ .
Wend
End Sub
318
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Delphi
begin
nIxMap := 0;
nNodeID := 1;
fDistList[0] := 10000;
fDistList[1] := 20000;
// .
cemIxLineStart ( nIxMap , @fDistList );
nIsDone := CE_FALSE;
end;
319
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
320
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
321
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnIxMove ()
{
long nIxMap = 0; //
long nNodeID = 1; // ID
// .
if ( cemIxLineStart ( MAP0 , fDistList ) == ceERR_NONE )
{
// .
cemIxWaitDone ( nIxMap, CE_FALSE );
}
}
Visual Basic
nIxMap = 0
nNodeID = 1
fDistList(0) = 10000
fDistList(1) = 20000
‘ .
If cemIxLineStart ( MAP0 , fDistList(0) ) = ceERR_NONE Then
Call cemIxWaitDone ( nIxMap, CE_FALSE ) ‘ .
End If
End Sub
Delphi
322
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
var
nIxMap : LongInt; //
nNodeID : LongInt; // ID
nIsDone : LongInt; // .
fDistList : Arrary[0..1] of Double;
begin
nIxMap := 0;
nNodeID := 1;
fDistList[0] := 10000;
fDistList[1] := 20000;
// .
if cemIxLineStart ( MAP0 , @fDistList ) = ceERR_NONE then
begin
cemIxWaitDone ( nIxMap, CE_FALSE ); // .
end;
end;
323
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
‘ ’
‘ ’
‘ ’
‘ ’
‘ ’
7.3.1
324
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
ORG
(Vr)
Action
(Vr)
Vr : Reverse Speed .
ORG
EZ
EzCount = 0
Case1
Vini EzCount = 1
Case2
Vini
EzCount = 2
Case3
325
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
ORG
EZ
Case1
Case2
Case3
ORG
EZ
Case1
(Vr)
Case2
(Vr)
326
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
“ ” “ ”
327
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
“ ” “ ”
“ ” “ ”
EL
EZC=0 EZC=1 EZC=2
EZ
ELM=1
Case1
(Vwork)
Case2
ELM=1
(Vwork)
328
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’
‘ ’
‘ ’
‘ ’
7.3.2
“ ”
329
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
330
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
7.3.3
“ ”
Summary of Functions
r VT_I4 cemHomeConfig_Set ( [in] VT_I4 Axis, [in] VT_I4 HomeMode, [in] VT_I4 Dir,
[in] VT_I4 EzCount, [in] VT_R8 EscDist, [in] VT_R8 Offset )
. Z , ,
.
r VT_I4 cemHomeConfig_Get ( [in] VT_I4 Axis, [out] VT_PI4 HomeMode, [out] VT_PI4 Dir,
[out] VT_PI4 EzCount, [out] VT_PR8 EscDist, [out] VT_PR8 Offset )
. Z , ,
.
(Feedback Pulse) .
r VT_I4 cemHomeSpeedPattern_Set ( [in] VT_I4 Axis, [in] VT_I4 SpeedMode, [in] VT_R8 Vel, [in]
VT_R8 Accel, [in] VT_R8 Decel, [in] VT_R8 RevVel )
. ,
.
r VT_I4 cemHomeSpeedPattern_Get ( [in] VT_I4 Axis, [out] VT_PI4 SpeedMode, [out] VT_PR8 Vel,
[out] VT_PR8 Accel, [out] VT_PR8 Decel, [out] VT_PR8 RevVel )
. ,
.
331
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
7.3.4
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (cemDIR_N)
1 (cemDIR_P)
332
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’
‘ ’ ‘ ’
RETURN VALUE
‘ ’
0 (ceERR_NONE)
333
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetHomeConfig ()
{
long nHomeMode = 0; // . 0 ~ 12 .
long nHomeDir = cemDIR_N; // . cemDIR_N: ( -) , cemDIR_P: (+)
long nEzCount = 0; // Encoder Z . ‘0’ EZ 1 .
double fEscDist = 10.0f; // . ,
// ‘1’ .
double fOffset = 0.0f; // Offset ( )
// cemHomeConf_Get() .
// cemHomeConfig_Get ( cemX1, &nHomeMode, &nHomeDir, &nEzCount, &fEscDist, &fOffset );
}
Visual Basic
nHomeMode = 0 ‘ 0
nHmDir = cemDIR_N ‘ (-).
nEzCount = 0 ‘ Encoder Z 1 .
fEscDist = 10 ‘ ‘1’ .
fOffset = 0 ‘ Offset .
If cemHomeConfig_Set ( cemX1, nHomeMode, nHmDir, nEzCount, fEscDist, fOffset ) <> ceERR_NONE Then
MsgBox ( “cemHomeConfig_Get has been failed” )
End If
End Sub
334
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Delphi
begin
nHomeMode := 0; // . 0 ~ 12 .
nHmDir := cemDIR_N; // . cemDIR_N: ( -) , cemDIR_P: (+)
nEzCount := 0; // Encoder Z . 0 EZ 1 .
fEscDist := 10; // . ,
// 1 .
fOffset := 0; // Offset ( ).
if cemHomeConfig_Set ( cemX1, nHomeMode, nHmDir, nEzCount, fEscDist, fOffset ) <> ceERR_NONE then
begin
ShowMessage ( ‘cemHomeConfig_Get has been failed’ );
end;
end;
335
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
-1 (cemHPCM_DISABLE)
0 (cemHPCM_M0) ‘ ’
1 (cemHPCM_M1)
‘ ’
2 (cemHPCM_M2)
336
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
P C = PF = 0 Clear
ON
OFF
ORG
Action
[ 0]
ON ON
OFF
ORG
(Vr)
Action
(Vr)
P C = PF = 0 Clear
[ 1 ]
337
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
•
•
• ‘ ’
‘ ’
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetHomePosClrMode ()
{
long nPosClrMode = 0; // .
/* */
// -1 (cemHPCM_DISABLE) : .
// 0 (cemHPCM_M0) : HW ON .
// 1 (cemHPCM_M1) : HW .
// 2 (cemHPCM_M2) : 0 Command Feedback .
// , 2 .
if (cemHomePosClrMode_Get ( cemX1, &nPosClrMode ) == ceERR_NONE )
{
if ( nPosClrMode != cemHPCM_M2 )
{
cemHomePosClrMode_Set ( cemX1, cemHPCM_M2 );
}
}
}
Visual Basic
‘ , 2 .
If cemHomePosClrMode_Get ( cemX1, nPosClrMode ) = ceERR_NONE Then
End Sub
Delphi
338
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
begin
// , 2 .
if cemHomePosClrMode_Get ( cemX1, @nPosClrMode ) = ceERR_NONE then
begin
if nPosClrMode <> cemHPCM_M2 then
begin
cemHomePosClrMode_Set ( cemX1, cemHPCM_M2 );
end;
end;
end;
339
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (cemSMODE_C)
1 (cemSMODE_T)
2 (cemSMODE_S)
-1 (cemSMODE_KEEP)
0 (cemSMODE_C)
1 (cemSMODE_T)
2 (cemSMODE_S)
340
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
341
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetHomeSpeedPattern ()
{
long nHSpdMode; // .
double fHVel, fHAcc, fHDec, fHRevVal;
/* S-Curve ,
1000, 10000, 10000, Vr 10 .*/
cemHomeSpeedPattern_Set ( cemX1, // .
cemSMODE_S, // .
1000, //
10000, //
10000, //
10 // Reverse Speed
);
// , , .
cemHomeSpeedPattern_Get ( cemX1, &nHSpdMode, &fHVel, &fHAcc, &fHDec, &fHRevVal );
}
Visual Basic
‘0 S-Curve ,
‘ 2000, 10000, 10000, Vr 10 .
Call cemHomeSpeedPattern_Set ( cemX1, cemSMODE_S, 2000, 10000, 10000 )
‘ , , .
Call cemHomeSpeedPattern_Get ( cemX1, nHSpdMode, fHVel, fHAcc, fHDec, fHRevVal );
End Sub
Delphi
342
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
begin
{0 S-Curve ,
2000, 10000, 10000, Vr 10 .}
cemHomeSpeedPattern_Set ( cemX1, cemSMODE_S, 2000, 10000, 10000, 10 );
// , , .
cemHomeSpeedPattern_Get ( cemX1, @nHSpdMode, @fHVel, @fHAcc, @fHDec, @fRevVal );
end;
343
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
344
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
345
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/*********************************************************************
* .
*********************************************************************/
void OnSetHomeConfig ()
{
/* = 0, = (-), Ez Count = 0,
= 10, Offset = 0 . */
cemHomeConfig_Set ( cemX1, 0, cemDIR_N, 0, 10, 0 );
cemHomeConfig_Set ( cemY1, 0, cemDIR_N, 0, 10, 0 );
/* . */
cemHomeSpeedPattern_Set ( cemX1, cemSMODE_S, 1000, 10000, 10000, 10 );
cemHomeSpeedPattern_Set ( cemY1, cemSMODE_S, 1000, 10000, 10000, 10 );
}
/*********************************************************************
* .
*********************************************************************/
void OnHomeReturn ()
{
long nIsHomming = CE_TRUE; //
/* cemHomeIsBusy() */
if ( cemHomeMoveStart ( cemX1 ) == ceERR_NONE )
{
While ( nIsHomming )
{
cemHomeIsBusy ( cemX1, &nIsHomming );
// 0 (CE_FALSE) : .
// 1 (CE_TRUE) : .
}
}
// cemHomeWaitDone() .
if ( cemHomeMoveStart ( cemY1 ) == ceERR_NONE )
{
cemHomeWaitDone ( cemY1, CE_FALSE ); // .
}
// cemHomeMoveStart(), cemHomeWaitDone() .
// cemHomeMove ( cemY1, CE_FALSE );
}
/*********************************************************************
* .
*********************************************************************/
void OnGetHomeSuccess ()
346
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
{
long nIsSuccess;
// .
cemHomeSuccess_Get ( cemX1, &nIsSuccess );
if ( nIsSuccess == CE_TRUE )
{
// .
}
}
Visual Basic
‘ ==============================================
‘ .
‘==============================================
Private Sub OnSetHomeConfig ()
‘ = 0, = (-), Ez Count = 0,
‘ = 10, Offset = 0 .
Call cemHomeConfig_Set ( cemX1, 0, cemDIR_N, 0, 10, 0 )
Call cemHomeConfig_Set ( cemY1, 0, cemDIR_N, 0, 10, 0 )
‘ .
Call cemHomeSpeedPattern_Set ( cemX1, cemSMODE_S, 1000, 10000, 10000, 10 )
Call cemHomeSpeedPattern_Set ( cemY1, cemSMODE_S, 1000, 10000, 10000, 10 )
End Sub
‘ ==============================================
‘ .
‘ ==============================================
Private OnHomeReturn ()
‘ cemHomeIsBusy()
If cemHomeMoveStart ( cemX1 ) = ceERR_NONE Then
‘ cemHomeWaitDone() .
If cemHomeMoveStart ( cemY1 ) = ceERR_NONE Then
Call cemHomeWaitDone ( cemY1, CE_FALSE ) ‘ .
End If
347
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
‘ cemHomeMoveStart(), cemHomeWaitDone() .
‘ cemHomeMove( cemY1, CE_FALSE )
End Sub
‘ ==============================================
‘ .
‘ ==============================================
Private Sub OnGetHomeSuccess ()
‘ .
Call cemHomeSuccess_Get ( cemX1, nIsSuccess )
‘ .
If nIsSuccess = CE_TRUE Then
MsgBox ( "Home return success" )
End If
End Sub
Delphi
// ********************************************************************
// .
// ********************************************************************
procedure OnSetHomeConfig ();
begin
{ = 0, = (-), Ez Count = 0,
= 10, Offset = 0 .}
cemHomeConfig_Set ( cemX1, 0, cemDIR_N, 0, 10, 0 );
cemHomeConfig_Set ( cemY1, 0, cemDIR_N, 0, 10, 0 );
// .
cemHomeSpeedPattern_Set ( cemX1, cemSMODE_S, 1000, 10000, 10000, 10 );
cemHomeSpeedPattern_Set ( cemY1, cemSMODE_S, 1000, 10000, 10000, 10 );
end;
// ********************************************************************
// .
// ********************************************************************
procedure OnHomeReturn ();
var
nIsHomming : LongInt //
begin
// cemHomeIsBusy()
if cemHomeMoveStart ( cemX1 ) = ceERR_NONE then
begin
nIsHomming := CE_TRUE;
while nIsHomming = CE_TRUE do
348
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
begin
{ 0 (CE_FALSE) : .
1 (CE_TRUE) : .}
cemHomeIsBusy ( cemX1, @nIsHomming );
end;
end;
// cemHomeWaitDone() .
if cemHomeMoveStart ( cemY1 ) = ceERR_NONE then
begin
cemHomeWaitDone ( cemY1, CE_FALSE ); // .
end
// cemHomeMoveStart(), cemHomeWaitDone() .
// cemHomeMove( cemY1, CE_FALSE );
end;
// ********************************************************************
// .
// ********************************************************************
procedure OnGetHomeSuccess ();
var
nIsSuccess : LongInt // .
begin
// .
cemHomeSuccess_Get ( cemX1, @nIsSuccess );
// .
if nIsSuccess = CE_TRUE then
begin
ShowMessage ( ‘Home return success’ );
end;
end;
349
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
Value Meaning
0 (CE_FALSE)
1 (CE_TRUE)
Value Meaning
0 (CE_FALSE)
1 (CE_TRUE)
350
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
EXAMPLE
351
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
Value Meaning
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
352
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
353
CHAPTER 7:: BASIC MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
354
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
355
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
Chapter
8
Chapter:8Advanced Motion Control
.
. ,
.
356
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
8.1 (Overriding)
8.1.1
Summary of Functions
r VT_I4 cemOverrideSpeedSet ( [in] VT_I4 Axis )
.
r VT_I4 cemOverrideMove ( [in] VT_I4 Axis, [in] VT_R8 NewDistance, [in] VT_I4 IsHardApply,
[out] VT_PI4 AppliedState )
, .
r VT_I4 cemOverrideMoveTo ( [in] VT_I4 Axis, [in] VT_R8 NewPosition, [in] VT_I4 IsHardApply, [out]
VT_PI4 AppliedState)
, .
357
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
8.1.2
I N F O R M A T I O N
1
!
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
358
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/*
. */
void OnMove ()
{
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_S, 1000, 10000, 10000 );
// .
cemSxMoveStart ( cemX1, cemDIR_P );
}
void OnOverrideSpeedHigh ()
{
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 2000, 10000, 10000 );
// cemSxSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 200, 100, 100 );
// .
cemOverrideSpeedSet ( cemX1 );
}
void OnOverrideSpeedLow ()
{
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 500, 10000, 10000 );
// cemSxSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 50, 100, 100 );
// .
cemOverrideSpeedSet ( cemX1 );
}
Visual Basic
‘
‘ .
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_S, 1000, 10000, 10000 )
‘ .
Call cemSxMoveStart ( cemX1, cemDIR_P )
359
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
End Sub
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 2000, 10000, 10000 )
‘ cemSxSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 200, 100, 100 )
‘ .
Call cemOverrideSpeedSet ( cemX1 )
End Sub
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 500, 10000, 10000 )
‘ cemSxSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 50, 100, 100 )
‘ .
Call cemOverrideSpeedSet ( cemX1 )
End Sub
Delphi
{
.}
// .
cemSxMoveStart ( cemX1, cemDIR_P );
end;
procedure OnOverrideSpeedHigh ()
begin
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 2000, 10000, 10000 );
// cemSxSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 200, 100, 100 );
// .
cemOverrideSpeedSet ( cemX1 );
end;
360
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 500, 10000, 10000 );
// cemSxSpeedPattern_Set ( cemX1, cemSMODE_KEEP, 50, 100, 100 );
// .
cemOverrideSpeedSet ( cemX1 );
end;
361
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
362
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
REFERENCE
‘ ’
‘ ’
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* ,
. */
/* ‘nIsAbsMode’ / .
0 (CE_FALSE) : / 1 (CE_TRUE) : */
void OnOverrideMove ()
{
long nAppliedState; //
long nIsStopped; //
if ( nIsStopped == CE_TRUE ) // .
{
if ( nIsAbsMode == CE_TRUE )
{
cemSxMoveToStart ( cemX1, 10000 );
}
else
{
cemSxMoveStart ( cemX1, 10000 );
}
}
else // .
{
/* IsHardApply CE_TRUE . */
if ( nIsAbsMode == CE_TRUE )
{
cemOverrideMoveTo ( cemX1, 20000, CE_TRUE, &nAppliedState );
363
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
}
else
{
cemOverrideMove ( cemX1, 20000, CE_TRUE, &nAppliedState );
}
}
}
Visual Basic
‘ ,
‘ .
‘ ‘nIsAbsMode’ / .
‘ 0 (CE_FALSE) : / 1 (CE_TRUE) :
Else ‘ .
‘ IsHardApply CE_TRUE .
If nIsAbsMode = CE_TRUE Then
Call cemOverrideMoveTo ( cemX1, 20000, CE_TRUE, nAppliedState )
Else
Call cemOverrideMove ( cemX1, 20000, CE_TRUE, nAppliedState )
End If
End If
End Sub
Delphi
{ ,
.}
{ ‘nIsAbsMode’ / .
364
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
0 (CE_FALSE) : / 1 (CE_TRUE) : }
else
begin
cemSxMoveStart ( cemX1, 10000 );
end;
end;
else // .
begin
// IsHardApply CE_TRUE .
if nIsAbsMode = CE_TRUE then
begin
cemOverrideMoveTo ( cemX1, 20000, CE_TRUE, @nAppliedState );
end;
else
begin
cemOverrideMove ( cemX1, 20000, CE_TRUE, @nAppliedState );
end;
end;
end;
365
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
366
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
SEE ALSO
REFERENCE
‘ ’
‘ ’
EXAMPLE
//* cemOverrideMoveTo .
367
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
8.2 Master/Slave
8.2.1
Summary of Functions
r VT_I4 cemMsRegisterSlave ( [in] VT_I4 Axis, [in] VT_R8 MaxSpeed, [in] VT_I4 IsInverse )
, Master/Slave Slave .
Master , Slave Master .
368
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
8.2.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
“ ”
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
369
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
REFERENCE
“ ”
“ ”
“ ”
370
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/*****************************************************************************
* Master/Slave .
*****************************************************************************/
void OnSetMsRegisterSalve ()
{
long nRetVal;
// 1 . 0(cemX1) .
nRetVal = cemMsRegisterSlave ( cemY1, //
655350, //
// .
CE_FALSE //
);
if ( nRetVal == ceERR_NONE )
{
// .
long nSlaveState;
cemMsCheckSlaveState ( cemY1, &nSlaveState );
if ( nSlaveState != CE_TRUE )
{
OutputDebugString ( “Slave axis registered failed” );
}
// .
long nMasterAxis;
cemMsMasterAxis_Get ( cemY1, &nMasterAxis );
if ( nMasterAxis != cemX1 )
{
OutputDebugString ( “Slave axis registered failed” );
}
}
}
/*****************************************************************************
* .
* .
*****************************************************************************/
void OnMove ()
{
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_S, 5000, 30000, 30000 );
// .
cemSxMove ( cemX1, 15000, CE_FALSE );
}
Visual Basic
371
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
‘ ===================================================
‘ Master/Slave .
‘ ===================================================
Private Sub OnSetMsRegisterSalve ()
‘1 . 0(cemX1) .
If cemMsRegisterSlave ( cemY1, 655350, CE_FALSE ) = ceERR_NONE Then
‘ .
Call cemMsCheckSlaveState ( cemY1, nSlaveState )
‘ .
Call cemMsMasterAxis_Get ( cemY1, nMasterAxis )
End Sub
‘ ===================================================
‘ .
‘ .
‘ ===================================================
Private Sub OnMove ()
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_S, 5000, 30000, 30000 )
‘ .
Call cemSxMove ( cemX1, 15000, CE_FALSE )
End Sub
Delphi
// ****************************************************************************
// Master/Slave .
// ****************************************************************************
procedure OnSetMsRegisterSalve ();
var
nSlaveState : LongInt; // .
nMasterAxis : LongInt; // .
372
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
begin
// 1 . 0(cemX1) .
if cemMsRegisterSlave ( cemY1, 655350, CE_FALSE ) = ceERR_NONE then
begin
// .
cemMsCheckSlaveState ( cemY1, @nSlaveState );
// .
cemMsMasterAxis_Get ( cemY1, @nMasterAxis );
end;
// ****************************************************************************
// .
// .
// ****************************************************************************
procedure OnMove ();
begin
// .
cemCfgSpeedPattern_Set ( cemX1, cemSMODE_S, 5000, 30000, 30000 );
// .
cemSxMove ( cemX1, 15000, CE_FALSE );
end;
373
CHAPTER 8:: ADVANCED MOTION CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
-1
0
1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
//* cemMsCheckSlaveState .
374
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
EXAMPLE
//* cemMsCheckSlaveState .
375
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
Chapter
9
Input signals related to motion
Chapter::9
376
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
9
9.1 Manual Pulsar (PA/PB)
“
”
f max = V work × f u
377
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
“
”
378
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
9.1.1
Summary of Functions
r VT_I4 cemPlsrInMode_Set ( [in] VT_I4 Channel, [in] VT_I4 InputMode, [in] VT_I4 IsInverse )
, Manual Pulsar .
r VT_I4 cemPlsrInMode_Get ( [in] VT_I4 Channel, [out] VT_PI4 InputMode, [out] VT_PI4 IsInverse )
, Manual Pulsar .
r VT_I4 cemPlsrGain_Set ( [in] VT_I4 Channel, [in] VT_I4 GainFactor, [in] VT_I4 DivFactor )
, Manual Pulsar PA/PB (Command Pulse)
.
r VT_I4 cemPlsrGain_Get ( [in] VT_I4 Channel, [out] VT_PI4 GainFactor, [out] VT_PI4 DivFactor )
, Manual Pulsar PA/PB
.
r VT_I4 cemPlsrMove ( [in] VT_I4 Channel, [in] VT_R8 Distance, [in] VT_I4 IsBlocking )
, Manual Pulsar
. .
r VT_I4 cemPlsrMoveTo ( [in] VT_I4 Channel, [in] VT_R8 Position, [in] VT_I4 IsBlocking )
, Manual Pulsar
. .
379
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
9.1.2
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0 (cemIMODE_AB1X)
1 (cemIMODE_AB2X)
2 (cemIMODE_AB4X)
3 (cemIMODE_CWCCW) – –
380
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
PA
PB
OUTPUT
+/- PA PB .
PA
PB
OUTPUT
+/- PA PB .
381
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
PA
PB
OUTPUT
+/- PA PB .
PA
PB
OUTPUT
(+) (-)
382
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetPlsrInMode ()
{
long nInputMode, nIsInverse; // Pulsar .
Visual Basic
End Sub
Delphi
begin
// Manual Pulsar , ‘CW/CCW’ .
if cemPlsrInMode_Get ( cemX1, @nInputMode, @nIsInverse ) = ceERR_NONE then
begin
if nInputMode <> cemIMODE_CWCCW then
begin
cemPlsrInMode_Set ( cemX1, cemIMODE_CWCCW, CE_FALSE );
end;
end;
end;
383
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
384
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
385
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetPlsrGain ()
{
/* GainFactor DivFactor . */
/* 2 .
Pulsar : CW/CCW, GainFactor : 2, DivFactor : 2048
= * GainFactor * ( DivFactor / 2048 ) = 1 * 2 * 20048/2048 = 2
: =1:2 . */
/* 0.25 .
Pulsar : AB1X, GainFactor : 1, DivFactor : 1024
= * GainFactor * ( DivFactor / 2048 ) = 1 * 1 * 1024/2048 = 0.5
: =2:1 . */
Visual Basic
‘ GainFactor DivFactor .
‘ 4 .
‘ Pulsar : AB2X, GainFactor : 2, DivFactor : 2048
‘ = * GainFactor * ( DivFactor / 2048 ) = 2 * 2 * 2048/2048 = 4
‘ : =1:4 .
386
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ 0.25 .
‘ Pulsar : AB2X, GainFactor : 1, DivFactor : 256
‘ = * GainFactor * ( DivFactor / 2048 ) = 2 * 1 * 256/2048 = 0.25
‘ : =4:1 .
End Sub
Delphi
{ 1 .
Pulsar : AB1X, GainFactor : 1, DivFactor : 2048
= * GainFactor * ( DivFactor / 2048 ) = 1 * 1 * 2048/2048 = 1
: =1:1
.}
{ 10 .
Pulsar : AB2X, GainFactor : 5, DivFactor : 2048
= * GainFactor * ( DivFactor / 2048 ) = 2 * 5 * 2048/2048 = 10
: = 1 : 10
.}
end;
387
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
0
1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
388
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
389
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
“ ”
0 (CE_FALSE)
1 (CE_TRUE)
390
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
391
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetPlsrConfig ()
{
// Manual Pulsar 1:2 .
cemPlsrInMode_Set ( cemX1, cemIMODE_CWCCW, CE_FALSE );
cemPlsrGain_Set ( cemX1, 2, 2048 );
/* PA/PB .
3.25MHz . */
cemCfgFilterAB_Set ( cemX1, cemAB_PULSAR, CE_TRUE );
}
void OnPulsarMove ()
{
/* . ,
. */
cemCfgSpeedPattern_Set ( cemX1, // .
cemSMODE_S, // Pulsar .
655350, // ,
// .
10000, // Pulsar .
10000 // Pulsar .
);
/* Manual Pulsar
Manual Pulsar . Pulsar
cemStReadMotionState 8 ( cemMST_WAIT_PLSR ) . */
// . .
cemPlsrMove ( cemX1, 10000, CE_FALSE );
// cemPlsrMoveStart() .
}
Visual Basic
392
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ PA/PB .
Call cemCfgFilterAB_Set ( cemX1, cemAB_PULSAR, CE_TRUE )
End Sub
‘ . ,
‘ .
Call cemCfgSpeedPattern_Set ( cemX1, cemSMODE_S, 655350, 10000, 10000 )
‘ Manual Pulsar
‘ Manual Pulsar . Pulsar
‘ cemStReadMotionState 8 ( cemMST_WAIT_PLSR ) .
‘ . .
Call cemPlsrMove ( cemX1, 10000, CE_FALSE )
‘ cemPlsrMoveStart() .
End Sub
Delphi
// PA/PB .
cemCfgFilterAB_Set ( cemX1, cemAB_PULSAR, CE_TRUE );
end;
{ Manual Pulsar
Manual Pulsar . Pulsar
cemStReadMotionState 8 ( cemMST_WAIT_PLSR ) .}
// . .
cemPlsrMove ( cemX1, 10000, CE_FALSE );
// cemPlsrMoveStart() .
end;
393
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
“ ”
0 (CE_FALSE)
1 (CE_TRUE)
394
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
EXAMPLE
395
CHAPTER 9:: INPUT SIGNALS RELATED TO MOTION CONTROL BY EXTERNAL SIGNAL FUNCTIONS
I N F O R M A T I O N
1
!
:
K
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
EXAMPLE
396
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Chapter
10
Monitoring Motion Status
Chapter:10
. ceSDK
.
.
397
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
10
10.1 (Status)
10.1.1
Summary of Functions
r VT_I4 cemStCount_Set ( [in] VT_I4 Axis, [in] VT_I4 Target, [in] VT_I4 Count )
(Counter) . ,
(PPS) .
r VT_I4 cemStCount_Get ( [in] VT_I4 Axis, [in] VT_I4 Source, [out] VT_PI4 Count )
. ,
.
r VT_I4 cemStPosition_Set ( [in] VT_I4 Axis, [in] VT_I4 Target, [in] VT_R8 Position )
. ,
(Unit Distance) .
r VT_I4 cemStPosition_Get ( [in] VT_I4 Axis, [in] VT_I4 Source, [out] VT_PR8 Position )
. ,
.
r VT_I4 cemStSpeed_Get ( [in] VT_I4 Axis, [in] VT_I4 Source, [out] VT_PR8 Speed )
Command Feedback ,
.
r VT_I4 cemStGetMstString ( [in] VT_I4 MstCode, [out] VT_PSTR Buffer, [in] VT_I4 BufferLen )
, .
, .
398
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
10.1.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemCNT_COMM)
1 (cemCNT_FEED)
2 (cemCNT_DEV)
3 (cemCNT_GEN)
399
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetCount ()
{
long nCommCount; // Command Count
long nFeedCount; // Feedback Count
Visual Basic
400
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
End Sub
Delphi
begin
// Command, Feedback , ‘0’ .
end;
401
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
“ ”
“ ”
PARAMETER
0 (cemCNT_COMM)
1 (cemCNT_FEED)
2 (cemCNT_DEV)
3 (cemCNT_GEN)
402
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
REFERENCE
EXAMPLE
403
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemCNT_COMM)
1 (cemCNT_FEED)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
404
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemMST_STOP)
1 (cemMST_WAIT_DR)
2 (cemMST_WAIT_STA)
3 (cemMST_WAIT_INSYNC)
4 (cemMST_WAIT_OTHER)
5 (cemMST_WAIT_ERC)
6 (cemMST_WAIT_DIR)
7 (cemMST_RESERVED1)
8 (cemMST_WAIT_PLSR)
9 (cemMST_IN_RVSSPD)
10 (cemMST_IN_INISPD)
11 (cemMST_IN_ACC)
12 (cemMST_IN_WORKSPD)
13 (cemMST_IN_DEC)
14 (cemMST_WAIT_INP)
15 (cemMST_SPARE0)
16 (cemMST_HOMMING)
405
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetMotionStste ()
{
char szMstList[18][20] = {
"Stop",
"Wait DR",
"Wait STA",
"Wait INSYNC",
"Wait Other Axis",
"Wait ERC",
"Wait DIR",
"Reserved1",
"Wait PA/PB",
"On Reverse Speed",
"On Initial Speed",
"On Acceleration",
"On Work Speed",
"On Deceleration",
"Wait INP",
"Reserved",
“In Homming”,
“”
};
long nMotState; // .
// .
cemStReadMotionState ( cemX1, &nMST );
if ( nMotState < 0 ) // .
{
OutputDebugString ( "ReadMotionState Error!" );
}
//DisplayStatus() .
DisplayStatus( sMsg );
}
406
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Visual Basic
‘ Label Component .
Emd Select
End If
End Sub
Delphi
407
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
begin
// , .
if cemStReadMotionState(cmX1, @stateus <> cmERR_NONE then
begin
ShowMessage ( 'cemStReadMotionState has been failed' );
exit;
end;
408
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemIOST_RDY)
1 (cemIOST_ALM)
2 (cemIOST_ELN)
3 (cemIOST_ELP)
4 (cemIOST_ORG)
5 (cemIOST_DIR)
6 (cemIOST_EZ)
7 (cemIOST_LTC)
8 (cemIOST_SD)
9 (cemIOST_INP)
10 (cemIOST_DRN)
11 (cemIOST_DRP)
12 (cemIOST_STA)
13 (cemIOST_STP)
14 (cemIOST_ALMR)
15 (cemIOST_EMG)
16 (cemIOST_SVON)
17 (cemIOST_HOMS)
18 (cemIOST_PLSA)
19 ~31
409
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetMioStates ()
{
long nMioStates; // MIO .
Visual Basic
‘ nMioState , .
‘ ceSDK VB .
Call cemGnBitShift ( nMioStates, cemIOST_RDY, nRdyState )
Call cemGnBitShift ( nMioStates, cemIOST_ALM, nAlmState )
Call cemGnBitShift ( nMioStates, cemIOST_ELN, nElnState )
…
…
410
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
End Sub
Delphi
var
dwMioState : LongInt;
RDY_State : Boolean;
ALM_State : Boolean;
ELN_State : Boolean;
begin
cemStReadMioStatuses ( cmX1,@dwMioState );
end;
411
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
412
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnGetMstString ()
{
char szBuffer[32] = {0, };
413
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
DWORD dwIOMsgCount = 0;
// I/O .
cemStReadIOMessageCount( &dwIOMsgCount );
414
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
10.2.1
Summary of Functions
r VT_I4 cemLtcIsLatched ( [in] VT_I4 Axis, [out] VT_PI4 IsLatched )
(Latch Counter) , .
r VT_I4 cemLtcReadLatch ( [in] VT_I4 Axis, [in] VT_I4 Counter, [out] VT_PR8 LatchedPos )
(Counter) .
r VT_I4 cemLtcQue_Alloc ( [in] VT_I4 Axis, [in] VT_I4 QueSize, [in] VT_I4 SrcCntr )
Queue .
r VT_I4 cemLtcQue_Free ( [in] VT_I4 Axis )
Queue .
r VT_I4 cemLtcQue_GetSize ( [in] VT_I4 Axis, [out] VT_PI4 QueSize )
Queue .
r VT_I4 cemLtcQue_Reset ( [in] VT_I4 Axis )
Queue Push Pop Count .
r VT_I4 cemLtcQue_Check ( [in] VT_I4 Axis, [out] VT_PI4 NonReadCount )
Queue .
r VT_I4 cemLtcQue_Pop ( [in] VT_I4 Axis, [out] VT_PR8 fLtcVal )
Queue . Queue
Pop 1 .
r VT_I4 cemLtcQue_GetAt ( [in] VT_I4 Axis, [in] VT_I4 Idx, [out] VT_PR8 fLtcVal )
Queue .
415
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
416
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
long nIsLatched = CE_FALSE;
cemLtcIsLatched( cemX1, &nIsLatched );
417
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (cemCNT_COMM)
1 (cemCNT_FEED)
2 (cemCNT_DEV)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
418
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
419
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
‘ ’
PARAMETER
0 (cemCNT_COMM)
1 (cemCNT_FEED)
2 (cemCNT_DEV)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
420
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 512 .
long nQueSize = 512;
if(cemLtcQue_Alloc ( cemX1, nQueSize, cemCNT_FEED ) != ceErr_None)
{
OutputDebugString ( “cemLtcQue_Alloc function failed” );
}
421
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
422
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
if(cemLtcQue_Free ( cemX1 ) != ceErr_None)
{
OutputDebugString ( “cemLtcQue_Free function failed” );
}
423
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
424
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
long nQueSize;
if(cemLtcQue_GetSize ( cemX1, &nQueSize ) != ceErr_None)
{
OutputDebugString ( “cemLtcQue_GetSize function failed” );
}
425
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
‘ ’
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
426
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
if(cemLtcQue_Reset ( cemX1 ) != ceErr_None)
{
OutputDebugString ( “cemLtcQue_Reset function failed” );
}
427
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
428
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
long nNonReadCount;
if(cemLtcQue_Check ( cemX1, &nNonReadCount) != ceErr_None)
{
OutputDebugString ( “cemLtcQue_Check function failed” );
}
429
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
430
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
double fLtcVal;
if(cemLtcQue_Pop ( cemX1, &fLtcVal) != ceErr_None)
{
OutputDebugString ( “cemLtcQue_Pop function failed” );
}
431
CHAPTER 10 :: MONITORING MOTION STATUS FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
432
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
double fLtcVal;
long idx = 7;
if(cemLtcQue_GetAt ( cemX1, idx, &fLtcVal) != ceErr_None) // 7 .
{
OutputDebugString ( “cemLtcQue_GetAt function failed” );
}
433
CHAPTER 11 :: MOTION DIGITAL I/O CONTROL FUNCTIONS
Chapter
11
Motion Digital I/O Control
Chapter:11
ceSDK
. S/W ,
.
434
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
11
11.1
“ ”
Summary of Functions
r VT_I4 cemDiOne_Get ( [in] VT_I4 Channel, [out] VT_PI4 State )
.
r VT_I4 cemDiMulti_Get ( [in] VT_I4 IniChannel, [in] VT_I4 NumChannels, [out] VT_PI4 InputState )
.
r VT_I4 cemDoOne_Put ( [in] VT_I4 Channel, [in] VT_I4 OutState )
.
r VT_I4 cemDoOne_Get ( [in] VT_I4 Channel, [out] VT_PI4 OutState )
.
r VT_I4 cemDoMulti_Put ( [in] VT_I4 IniChannel, [in] VT_I4 NumChannels, [in] VT_I4 OutStates )
.
r VT_I4 cemDoMulti_Get ( [in] VT_I4 IniChannel, [in] VT_I4 NumChannels, [out] VT_PI4 OutStates )
.
435
CHAPTER 11 :: MOTION DIGITAL I/O CONTROL FUNCTIONS
11.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
436
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// MDO 1 ON .
if ( cemDoOne_Put ( nMdoChNo, CE_TRUE ) == ceERR_NONE )
{
cemDoOne_Get ( nMdoChNo, &nMdoState );
if ( nMdoState != CE_TRUE )
{
OutputDebugString ( “cemDoOne_Put has been failed” )
}
}
// MDI 1 .
if ( cemDiOne_Get ( nMdiChNo, &nMdiState ) == ceERR_NONE )
{
if ( nMdiState != nMdoState )
{
OutputDebugString ( "cemDiOne_Get has been failed" );
}
}
Visual Basic
nMdiChNo = 1
nMdoChNo = 1
‘ MDO 1 ON .
If cemDoOne_Put ( nMdoChNo, CE_TRUE ) = ceERR_NONE Then
‘ MDI 1 .
437
CHAPTER 11 :: MOTION DIGITAL I/O CONTROL FUNCTIONS
Delphi
var
nMdiChNo : LongInt; // MDI
nMdoChNo : LongInt; // MDO
nMdiState, nMdoState : LongInt; // MDIO
begin
nMdiChNo := 1;
nMdoChNo := 1;
// MDO 1 ON .
if cemDoOne_Put ( nMdoChNo, CE_TRUE ) = ceERR_NONE then
begin
cemDoOne_Get ( nMdoChNo, @nMdoState );
// MDI 1 .
if cemDiOne_Get ( nMdiChNo, @nMdiState ) = ceERR_NONE then
begin
if nMdiState <> nMdoState then
ShowMessage ( ‘cemDiOne_Get has been failed’ );
end;
end;
438
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
439
CHAPTER 11 :: MOTION DIGITAL I/O CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* MDO 0~3 ,
MDO 0~3 MDI 0~3 . */
// MDI 0~3 .
if ( cemDiMulti_Get ( nMdiIniChNo, nMdiChNum, &nMdiStates ) == ceERR_NONE )
{
if ( nMdiStates != nMdoStates )
{
OutputDebugString ( "cemDiMulti_Get has been failed" );
}
}
Visual Basic
‘ MDO 0~3 ,
‘ MDO 0~3 MDI 0~3 .
nMdiIniChNo = 0
nMdiChNum = 4
nMdoIniChNo = 0
nMdoChNum = 4
440
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ MDI 0~3 .
If cemDiMulti_Get ( nMdiIniChNo, nMdiChNum, nMdiStates ) = ceERR_NONE Then
Delphi
// MDO 0~3 ,
// MDO 0~3 MDI 0~3 .
var
nMdiIniChNo, nMdiChNum, nMdoIniChNo, nMdoChNum : LongInt; // MDIO
dwMdiStates, dwMdoStates : LongInt // MDIO
begin
nMdiIniChNo := 0; // MDI
nMdiChNum := 4; // MDI
nMdoIniChNo := 0; // MDO
nMdoChNum := 4; // MDO
// MDI 0~3 .
if cemDiMulti_Get ( nMdiIniChNo, nMdiChNum, @nMdiStates ) = ceERR_NONE then
begin
if nMdiStates <> nMdoStates then
begin
ShowMessage ( ‘cemDiMulti_Get has been failed’ );
end;
end;
end;
441
CHAPTER 11 :: MOTION DIGITAL I/O CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
//* cemDiOne_Get .
442
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
443
CHAPTER 11 :: MOTION DIGITAL I/O CONTROL FUNCTIONS
EXAMPLE
//* cemDiMulti_Get .
444
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Chapter
12
Universal Digital I/O Control
Chapter:12
ceSDK . S/W
,
.
445
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
12
cedioMode_Set
cedioMode_Get
ceD16CM
cedioModeMulti_Set
cedioModeMulti_Get
cedioLogicOne_Set
cedioLogicOne_Get
cedioLogicMulti_Set
cedioLogicMulti_Get
cedioOne_Get ceD16CM
ceDI32N
cedioOne_Put ceDO32N
cedioMulti_Get
cedioMulti_Put
cedioOneF_Get
cedioMultiF_Get
cedioPulseOne ceD16CM ( )
cedioPulseMulti ceDO32N
446
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
12.1
Summary of Functions
r VT_I4 cedioMode_Set ( [in] VT_I4 Channel, [in] VT_I4 InOutMode )
I/O (Mode) .
r VT_I4 cedioMode_Get ( [in] VT_I4 Channel, [out] VT_PI4 InOutMode )
I/O .
r VT_I4 cedioModeMulti_Set ( [in] VT_I4 IniChan, [in] VT_I4 NumChan, [in] VT_I4 InOutModeMask )
I/O .
r VT_I4 cedioMultiF_Get ( [in] VT_I4 IniChan, [in] VT_I4 NumChan, [in] VT_I4 CutoffTime_us,
[out] VT_PI4 States )
I/O .
r VT_I4 cedioPulseOne ( [in] VT_I4 Channel, [in] VT_I4 IsOnPulse, [in] VT_I4 Duration,
[in] VT_I4 IsWaitPulseEnd )
.
r VT_I4 cedioPulseMulti ( [in] VT_I4 IniChan, [in] VT_I4 NumChan, [in] VT_I4 OutStates,
[in] VT_I4 Duration, [in] VT_I4 IsWaitPulseEnd )
.
447
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
12.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
REFERENCE
448
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nDioChNo = 1; //
long nDioMode; // /
// ceD16CM / , .
if ( cedioMode_Get ( nDioChNo, &nDioMode ) == ceERR_NONE )
{
if ( nDioMode != CE_TRUE )
{
cedioMode_Set ( nDioChNo, CE_TRUE );
}
}
Visual Basic
nDioChNo = 1
‘ceD16CM / , .
If cedioMode_Get ( nDioChNo, nDioMode ) = ceERR_NONE Then
Delphi
var
nDioChNo : LongInt; //
nDioMode : LongInt; // /
begin
nDioChNo := 1;
// ceD16CM / , .
if cedioMode_Get ( nDioChNo, @nDioMode ) = ceERR_NONE then
begin
if nDioMode <> CE_TRUE then
begin
cedioMode_Set ( nDioChNo, CE_TRUE );
end;
end;
end;
449
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
450
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
REFERENCE
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nDioIniChNo = 0; //
long nDioChNum = 4; //
long nDioModeMulti; // /
/* ceD16CM 0~3 / ,
0, 1, 3 ch , 2 ch . */
Visual Basic
nDioIniChNo = 0
nDioChNum = 4
‘ ceD16CM 0~3 / ,
‘ 0, 1, 3 ch , 2 ch .
Delphi
var
451
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
nDioIniChNo : LongInt; //
nDioChNum : LongInt; //
nDioModeMulti : LongInt; // /
begin
nDioIniChNo := 0;
nDioChNum := 4;
{ ceD16CM 0~3 / ,
0, 1, 3 ch , 2 ch .}
end;
452
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 ( cemLOGIC_A )
1 ( cemLOGIC_B )
RETURN VALUE
‘ ’
0 (ceERR_NONE)
453
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nDioChNo = 1; //
long nDioLogic; // /
// ceD16CM / ,B .
if ( cedioLogicOne_Get ( nDioChNo, &nDioLogic ) == ceERR_NONE )
{
if ( nDioLogic != cemLogic_B )
{
cedioLogicOne_Set ( nDioChNo, cemLogic_B );
}
}
Visual Basic
nDioChNo = 1
‘ceD16CM / ,B .
If cedioLogicOne_Get ( nDioChNo, nDioLogic ) = ceERR_NONE Then
Delphi
var
nDioChNo : LongInt; //
nDioLogic : LongInt; // /
begin
nDioChNo := 1;
// ceD16CM / ,B .
if cedioLogicOne_Get ( nDioChNo, @nDioLogic ) = ceERR_NONE then
begin
if nDioLogic <> cemLogic_B then
begin
cedioMode_Set ( nDioChNo, cemLogic_B );
end;
end;
end;
454
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 ( cemLOGIC_A )
1 ( cemLOGIC_B )
RETURN VALUE
‘ ’
0 (ceERR_NONE)
455
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nDioIniChNo = 0; //
long nDioChNum = 4; //
long nDioLogicMulti; // /
/* 0~3 ,
0, 1, 3 ch A , 2 ch B . */
Visual Basic
nDioIniChNo = 0
nDioChNum = 4
‘ 0~3 ,
‘ 0, 1, 3 ch A , 2 ch B .
Delphi
var
nDioIniChNo : LongInt; //
nDioChNum : LongInt; //
nDioLogicMulti : LongInt ; // /
begin
nDioIniChNo := 0;
nDioChNum := 4;
456
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
{ 0~3 ,
0, 1, 3 ch A , 2 ch B .}
457
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
458
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nDoChNo = 1; // , .
long nDoState; //
// ON , .
if ( cedioOne_Put ( nDoChNo, CE_TRUE ) == ceERR_NONE )
{
cedioOne_Get ( nDoChNo, &nDoState );
if ( nDoState != CE_TRUE )
{
OutputDebugString ( "cedioOne_Get has been failed" );
}
}
Visual Basic
nDoChNo = 1
‘ ON , .
If cedioOne_Put ( nDoChNo, CE_TRUE ) = ceERR_NONE Then
Delphi
var
nDoChNo : LongInt // , .
nDoState : LongInt //
begin
nDoChNo := 1;
// ON , .
if cedioOne_Put ( nDoChNo, CE_TRUE ) = ceERR_NONE then
begin
cedioOne_Get ( nDoChNo, @nDoState );
459
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
460
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
461
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* 0 ~ 3 .
1, 3 ON, 0, 2 OFF . */
long nDoIniChNo = 0; //
long nDoChNum = 4; //
long nDoStates; //
// , .
if ( cedioMulti_Put ( nDoIniChNo, nDoChNum, 0xA ) == ceERR_NONE )
{
cedioMulti_Get ( nDoChNo, &nDoStates );
if ( nDoStates != 0xA )
{
OutputDebugString ( "cedioMulti_Put has been failed" );
}
}
Visual Basic
‘0~3 .
‘ 1, 3 ON, 0, 2 OFF .
nDoIniChNo = 0
nDoChNum = 4
‘ , .
If cedioMulti_Put ( nDoIniChNo, nDoChNum, &HA ) = ceERR_NONE Then
Delphi
{0~3 .
462
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
1, 3 ON, 0, 2 OFF .}
var
nDoIniChNo : LongInt; //
nDoChNum : LongInt; //
nDoStates : LongInt; //
begin
nDoIniChNo := 0;
nDoChNum := 4;
// , .
if cedioMulti_Put ( nDoIniChNo, nDoChNum, $A ) = ceERR_NONE then
begin
cedioMulti_Get ( nDoIniChNo, nDoChNum, @nDoStates );
463
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
‘ ’
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
464
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* 0 ,1 .
0 Pulse ,
1 . */
long nDoChNo = 0; //
long nDiChNo = 1; //
long nDiState; //
long nRetVal;
// B
cedioLogicOne_Set ( nDoChNo, cemLOGIC_B );
// 10usec .
nRetVal = cedioPulseOne ( nDoChNo, //
CE_TRUE, // B Active High .
10, // . 10usec
CE_FALSE //
);
if ( nRetVal == ceERR_NONE )
{
// ,
// 20 usec .
cedioOneF_Get ( nDiChNo, 20, &nDiState );
/* 10usec 20usec ON . */
Visual Basic
‘0 ,1 .
‘0 Pulse ,
‘1 .
nDoChNo = 0
nDiChNo = 1
‘ B .
465
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
‘ 30usec .
If cedioPulseOne ( nDoChNo, CE_TRUE, 30, CE_FALSE ) = ceERR_NONE Then
‘ ,
‘ 20 usec .
Call cedioOneF_Get ( nDiChNo, 20, nDiState )
‘ 30usec 20usec ON .
End If
Delphi
{0 ,1 .
0 Pulse ,
1 .}
var
nDoChNo : LongInt; //
nDiChNo : LongInt; //
nDiState : LongInt; //
begin
nDoChNo := 0;
nDiChNo := 1;
// B .
cedioLogicOne_Set ( nDoChNo, cemLOGIC_B );
// 30usec .
if cedioPulseOne ( nDoChNo, CE_TRUE, 30, CE_FALSE ) = ceERR_NONE then
begin
{ ,
20 usec .}
cedioOneF_Get ( nDiChNo, 20, @nDiState ) ;
// 30usec 20usec ON .
end;
end;
466
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
‘ ’
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
467
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
/* 0~3 , 4~7 .
Pulse ,
. */
long nDoIniChNo = 0; //
long nDoChNum = 4; //
long nDiIniChNo = 4; //
long nDiChNum = 4; //
long nDiStates; //
long nRetVal;
// 0 ~ 3 B .
cedioLogicMulti_Set ( nDoIniChNo, nDoChNum, 0xF );
// 0 ~ 3 10usec .
nRetVal = cedioPulseMulti ( nDoIniChNo, //
nDoChNum, //
0xF, // B Active High .
10, // . 10usec
CE_FALSE //
);
if ( nRetVal == ceERR_NONE )
{
// 4 ~ 7 ,
// 20 usec .
cedioMultiF_Get ( nDiIniChNo, nDiChNum, 20, &nDiStates );
/* 10usec 20usec ON . */
Visual Basic
‘0~3 ,4~7 .
468
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ Pulse ,
‘ .
nDoIniChNo = 0
nDoChNum = 4
nDiIniChNo = 4
nDiChNum = 4
‘0~3 B
Call cedioLogicOne_Set ( nDoIniChNo, nDoChNum, &HF )
‘0~3 30usec .
If cedioPulseMulti ( nDoChNo, CE_TRUE, 30, CE_FALSE ) = ceERR_NONE Then
‘4~7 ,
‘ 20 usec .
Call cedioMultiF_Get ( nDiIniChNo, nDiChNum, 20, nDiStates )
‘ 30usec 20usec ON .
End If
Delphi
{0~3 ,4~7 .
Pulse ,
.}
var
nDoIniChNo, nDoChNum, nDiIniChNo, nDiChNum : LongInt; //
nDiStates : LongInt; //
begin
nDoIniChNo = 0 //
nDoChNum = 4 //
nDiIniChNo = 4 //
nDiChNum = 4 //
// 0 ~ 3 B
cedioLogicOne_Set ( nDoIniChNo, nDoChNum, $F );
// 0 ~ 3 30usec .
if cedioPulseMulti ( nDoChNo, CE_TRUE, 30, CE_FALSE ) = ceERR_NONE then
begin
469
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
{4~7 ,
20 usec .}
cedioMultiF_Get ( nDiIniChNo, nDiChNum, 20, @nDiStates ) ;
// 30usec 20usec ON .
end;
end;
470
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
471
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
EXAMPLE
//* cedioOneF_Get .
472
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
0 (CE_FALSE)
1 (CE_TRUE)
473
CHAPTER 12 :: UNIVERSAL DIGITAL I/O CONTROL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
//* cedioMultiF_Get .
474
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Chapter
13
Counter Control
Chapter::13
4 Over-
current shutdown .
475
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
13 (Counter)
13.1
Summary of Functions
r VT_I4 cecEdgeOne_Set ( [in] VT_I4 Channel, [out] DWORD EdgeMode )
Edge Mode .
r VT_I4 cecEdgeOne_Get ( [in] VT_I4 Channel, [out] PDWORD EdgeMode )
Edge Mode .
476
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
477
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
13.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 [Default]
1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
478
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nCntChNo = 0; //
long nEdgeMode; // Edge Mode
Visual Basic
nCntChNo = 0
End If
Delphi
var
nCntChNo : LongInt; //
nEdgeMode : LongInt; // Edge Mode
begin
nCntChNo := 0;
479
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
end;
480
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 [Default]
1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
481
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nCntIniChNo = 0; //
long nCntChNum = 4; //
long nEdgeModeMask; // Edge Mode
Visual Basic
nCntIniChNo = 0
nCntChNum = 4
‘ Edge Mode .
Call cecEdgeOne_Set ( nCntIniChNo, nCntChNum, &HA )
End If
End If
Delphi
var
nCntIniChNo : LongInt; //
482
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
nCntChNum : LongInt; //
nEdgeModeMask : LongInt ; // Edge Mode
begin
nCntIniChNo := 0;
nCntChNum := 4;
483
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
484
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nCntChNo = 1; //
long nCntIniChNo = 0; //
long nCntChNum = 4; //
long nNodeID = 1; // ID. ID
// 0 Clear .
if ( cecClearOne ( nCntChNo ) != ceERR_NONE )
{
OutputDebugString ( "cecClearOne has been failed" );
}
// 0 ~ 3 0 Clear .
if ( cecClearMulti ( nCntChNo, nCntChNum ) != ceERR_NONE )
{
OutputDebugString ( "cecClearMulti has been failed" );
}
// 0 Clear .
if ( cecClearAll ( nNodeID ) != ceERR_NONE )
{
OutputDebugString ( "cecClearAll has been failed" );
}
Visual Basic
nCntChNo = 1
nCntIniChNo = 0
nCntChNum = 4
nNodeID = 1
‘ 0 Clear .
If cecClearOne ( nCntChNo ) <> ceERR_NONE Then
MsgBox ( "cecClearOne has been failed" )
End If
‘0~3 0 Clear .
If cecClearMulti ( nCntChNo, nCntChNum ) <> ceERR_NONE Then
MsgBox ( "cecClearMulti has been failed" )
End If
‘ 0 Clear .
If cecClearAll ( nNodeID ) <> ceERR_NONE Then
485
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
Delphi
var
nCntChNo : LongInt; //
nCntIniChNo : LongInt; //
nCntChNum : LongInt; //
nNodeID : LongInt; // ID. ID
begin
nCntChNo := 1;
nCntIniChNo := 0;
nCntChNum := 4;
nNodeID := 1;
// 0 Clear .
if cecClearOne ( nCntChNo ) <> ceERR_NONE then
begin
ShowMessage ( ‘cecClearOne has been failed’ );
end;
// 0 ~ 3 0 Clear .
if cecClearMulti ( nCntChNo, @nCntChNum ) <> ceERR_NONE then
begin
ShowMessage ( ‘cecClearMulti has been failed’ );
end;
// 0 Clear .
if cecClearAll ( nNodeID ) <> ceERR_NONE then
begin
ShowMessage ( ‘cecClearAll has been failed’ );
end;
end;
486
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
487
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nCntChNo = 1; //
long nCount; //
long nOverFlowState = CE_FALSE; // Overflow
// .
cecEnableOne_Set ( nCntChNo, CE_TRUE );
/* .
Overflow Overflow . */
while ( nOverFlowState == CE_FALSE )
{
// .
if ( cec_Get ( nCntChNo, &nCount ) == ceERR_NONE )
{
cecOverflowFlagGetOne ( nCntChNo, &nOverFlowState );
}
}
Visual Basic
nCntChNo = 1
nOverFlowState = CE_FALSE
‘ .
Call cecEnableOne_Set ( nCntChNo, CE_TRUE )
‘ .
‘ Overflow Overflow .
While nOverFlowState = CE_FALSE Then
‘ .
If cec_Get ( nCntChNo, nCount ) = ceERR_NONE Then
Call cecOverflowFlagGetOne ( nCntChNo, &nOverFlowState );
End If
488
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Wend
Delphi
var
nCntChNo : LongInt; //
nCount : LongInt; //
nOverFlowState : LongInt; // Overflow
begin
nCntChNo := 1;
nOverFlowState := CE_FALSE;
// .
cecEnableOne_Set ( nCntChNo, CE_TRUE );
// .
// Overflow Overflow .
while nOverFlowState = CE_FALSE do
begin
// .
if cec_Get ( nCntChNo, @nCount ) = ceERR_NONE then
begin
cecOverflowFlagGetOne ( nCntChNo, @nOverFlowState )
end;
end;
end;
489
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 [Default]
1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
490
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nCntChNo = 1; //
long nCntEnable; // /
// .
if ( cecEnableOne_Get ( nCntChNo, nCntEnable ) == ceERR_NONE )
{
if ( nCntEnable != CE_TRUE )
{
cecEnableOne_Set ( nCntChNo, CE_TRUE );
}
}
Visual Basic
nCntChNo = 1
‘ .
If cecEnableOne_Get ( nCntChNo, nCntEnable ) = ceERR_NONE Then
End If
Delphi
var
nCntChNo : LongInt; //
nCntEnable : LongInt; // /
begin
nCntChNo := 1;
// .
if cecEnableOne_Get ( nCntChNo, @nCntEnable ) = ceERR_NONE then
begin
if nCntEnable <> CE_TRUE then
begin
cecEnableOne_Set ( nCntChNo, CE_TRUE );
end;
end;
end;
491
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 [Default]
1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
492
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nCntIniChNo = 0; //
long nCntChNum = 4; //
long nCntEnableMask; // /
// 0 ~ 3 .
if ( cecEnableMulti_Get ( nCntIniChNo, nCntChNum, &nCntEnableMask ) == ceERR_NONE )
{
if ( nCntEnableMask != 0xF )
{
cecEnableMulti_Set ( nCntIniChNo, nCntChNum, 0xF );
}
}
Visual Basic
nCntIniChNo = 0
nCntChNum = 4
‘0~3 .
If cecEnableMulti_Get ( nCntIniChNo, nCntChNum, nCntEnableMask ) = ceERR_NONE Then
End If
Delphi
var
nCntIniChNo : LongInt; //
nCntChNum : LongInt; //
nCntEnableMask : LongInt; // /
begin
nCntIniChNo := 0;
nCntChNum := 4;
// 0 ~ 3 .
493
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
end;
494
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0
1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
495
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
EXAMPLE
//* cec_Get .
496
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
497
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
//* cec_Get .
498
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
499
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nCntChNo = 1; //
long nCutoffMode; // Cutoff
Visual Basic
nCntChNo = 1
End If
Delphi
var
nCntChNo : LongInt; //
nCutoffMode : LongInt; // Cutoff
begin
nCntChNo := 1;
500
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
501
CHAPTER 13 :: COUNTER CONTROL FUNCTIONS
Chapter
14
Analog Input/Output Control
Chapter:14
.
Over-current shutdown .
502
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
14
14.1.1
Summary of Functions
r VT_I4 ceaiVoltRangeMode_Set ( [in] VT_I4 Channel, [in] VT_I4 RangeMode )
.
r VT_I4 ceaiVoltRangeMode_Get ([in] VT_I4 Channel, [out] VT_PI4 RangeMode )
.
r VT_I4 ceaiRangeDigit_Get ( [in] VT_I4 Channel, [out] VT_PI4 DigitMin, [out] VT_PI4 DigitMax )
Digit .
r VT_I4 ceaiDigit_Get ( [in] VT_I4 Channel, [out] VT_PI4 Digit )
A/D Digit .
r VT_I4 ceaiVolt_Get ( [in] VT_I4 Channel, [out] VT_PR8 fVolt )
A/D ( Volt) .
r VT_I4 ceaiCurrent_Get ( [in] VT_I4 Channel, [out] VT_PR8 fCurrent )
A/D (Current) .
503
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
14.1.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 [Default]
1
2
3
4
5
6
504
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
RETURN VALUE
‘ ’
0 (ceERR_NONE)
505
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAiChNo = 1; //
long nRangeMode; //
long nDigitMin, nDigitMax; // Digit
// , 3 ( 0~10V, 0~20mA) .
if ( ceaiVoltRangeMode_Get ( nAiChNo, &nRangeMode ) == ceERR_NONE )
{
if ( nRangeMode != 3 )
{
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
}
}
/* Digit .
0~4 nDigitMin : 0, nDigitMax : 8192
5~6 nDigitMin : -2048, nDigitMax : 8192 . */
if ( ceaiRangeDigit_Get ( nAiChNo, &nDigitMin, &nDigitMax ) == ceERR_NONE )
{
if ( nDigitMin != 0 || nDigitMax != 8192 )
{
OutputDebugString ( “ceaiRangeDigit_Get has been failed” );
}
}
Visual Basic
nAiChNo = 1 ‘
‘ , 3 ( 0~10V, 0~20m A) .
If ceaiVoltRangeMode_Get ( nAiChNo, nRangeMode ) = ceERR_NONE Then
End If
‘ Digit .
‘0~4 nDigitMin : 0, nDigitMax : 8192
‘5~6 nDigitMin : -2048, nDigitMax : 8192 .
If ceaiRangeDigit_Get ( nAiChNo, nDigitMin, nDigitMax ) = ceERR_NONE Then
506
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Delphi
var
nAiChNo : LongInt; //
nRangeMode : LongInt; //
nDigitMin, nDigitMax : LongInt; // Digit
begin
nAiChNo := 1; //
// , 3 ( 0~10V, 0~20mA) .
if ceaiVoltRangeMode_Get ( nAiChNo, @nRangeMode ) = ceERR_NONE then
begin
if nRangeMode <> 3 then
begin
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
end;
end;
{ Digit .
0~4 nDigitMin : 0, nDigitMax : 8192
5~6 nDigitMin : -2048, nDigitMax : 8192 . }
if ceaiRangeDigit_Get ( nAiChNo, @nDigitMin, @nDigitMax ) = ceERR_NONE then
begin
if ( nDigitMin <> 0 ) or ( nDigitMax <> 8192 ) then
begin
ShowMessage ( ‘ceaiRangeDigit_Get has been failed’ );
end;
end;
end;
507
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
508
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
509
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAiChNo = 1; //
long nDigitVal; // A/D Digit
// 3 (0~10V, 0 ~ 20mA)
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
// A/D Digit .
if ( ceaiDigit_Get ( nAiChNo, &nDigitVal ) != ceERR_NONE )
{
OutputDebugString ( "ceaiDigit_Get has been failed" );
}
Visual Basic
nAiChNo = 1
‘ 3 (0~10V, 0 ~ 20mA)
Call ceaiVoltRangeMode_Set ( nAiChNo, 3 )
‘ A/D Digit .
If ceaiDigit_Get ( nAiChNo, nDigitVal ) <> ceERR_NONE Then
Delphi
var
nAiChNo : LongInt //
nDigitVal : LongInt // A/D Digit
begin
nAiChNo := 1;
510
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
// 3 (0~10V, 0 ~ 20mA)
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
// A/D Digit .
if ceaiDigit_Get ( nAiChNo, @nDigitVal ) <> ceERR_NONE then
begin
ShowMessage ( ‘ceaiDigit_Get has been failed’ );
end;
end;
511
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
512
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAiChNo = 1; //
double fVoltVal; // A/D
// 3 (0~10V, 0 ~ 20mA)
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
// A/D .
if ( ceaiVolt_Get ( nAiChNo, &fVoltVal ) != ceERR_NONE )
{
OutputDebugString ( "ceaiVolt_Get has been failed" );
}
Visual Basic
nAiChNo = 1
‘ 3 (0~10V, 0 ~ 20mA)
Call ceaiVoltRangeMode_Set ( nAiChNo, 3 )
‘ A/D .
If ceaiVolt_Get ( nAiChNo, fVoltVal ) <> ceERR_NONE Then
Delphi
var
nAiChNo : LongInt; //
nVoltVal : Double; // A/D
begin
nAiChNo := 1;
// 3 (0~10V, 0 ~ 20mA)
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
// A/D .
if ceaiVolt_Get ( nAiChNo, @fVoltVal ) <> ceERR_NONE then
begin
ShowMessage ( ‘ceaiVolt_Get has been failed’ );
end;
end;
513
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
-1
RETURN VALUE
‘ ’
0 (ceERR_NONE)
514
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAiChNo = 1; //
double fCurrentVal; // A/D
// A/D .
if ( ceaiCurrent_Get ( nAiChNo, &fCurrentVal ) == ceERR_NONE )
{
if ( fnCurrentVal == -1 ) // .
{
// 3 (0~10V, 0 ~ 20mA) .
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
}
}
Visual Basic
nAiChNo = 1
‘ A/D .
If ceaiVolt_Get ( nAiChNo, fCurrentVal ) = ceERR_NONE Then
If fCurrentVal = -1 Then ‘ .
‘ 3 (0~10V, 0 ~ 20mA)
Call ceaiVoltRangeMode_Set ( nAiChNo, 3 )
End If
End If
Delphi
var
nAiChNo : LongInt; //
fCurrentVal : Double; // A/D
begin
nAiChNo := 1;
// A/D .
if ceaiVolt_Get ( nAiChNo, @fCurrentVal ) = ceERR_NONE then
begin
515
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
if fCurrentVal = -1 then // .
begin
‘ 3 (0~10V, 0 ~ 20mA)
ceaiVoltRangeMode_Set ( nAiChNo, 3 );
end;
end;
end;
516
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
14.2.1
Summary of Functions
r VT_I4 ceaoDigit_Out ( [in] VT_I4 Channel, [in] VT_I4 Digit )
Digit .
r VT_I4 ceaoVolt_Out ( [in] VT_I4 Channel, [in] VT_R8 fVolt )
(Volt) .
r VT_I4 ceaoCurrent_Out ( [in] VT_I4 Channel, [in] VT_R8 fCurrent )
(Current) .
517
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
14.2.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
518
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAoChNo = 1; //
// 10V .
if ( ceaoDigit_Out ( nAoChNo, 32767 ) != ceERR_NONE )
{
OutputDebugString ( "ceaoDigit_Out has been failed" );
}
Visual Basic
‘ 10V .
If ceaoDigit_Out ( nAoChNo, 32767 ) <> ceERR_NONE Then
Delphi
var
nAoChNo : LongInt; //
begin
nAoChNo := 1;
// 10V .
if ceaoDigit_Out ( nAoChNo, 32767 ) <> ceERR_NONE then
begin
ShowMessage ( ‘ceaoDigit_Out has been failed’ );
end;
end;
519
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
520
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAoChNo = 1; //
// 10V .
if ( ceaoVolt_Out ( nAoChNo, 10 ) != ceERR_NONE )
{
OutputDebugString ( "ceaoVolt_Out has been failed" );
}
Visual Basic
‘ 10V .
If ceaoVolt_Out ( nAoChNo, 10 ) <> ceERR_NONE Then
Delphi
var
nAoChNo : LongInt; //
begin
nAoChNo := 1;
// 10V .
if ceaoVolt_Out ( nAoChNo, 10 ) <> ceERR_NONE then
begin
ShowMessage ( ‘ceaoVolt_Out has been failed’ );
end;
end;
521
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
522
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
long nAoChNo = 1; //
// 20mA .
if ( ceaoCurrent_Out ( nAoChNo, 10 ) != ceERR_NONE )
{
OutputDebugString ( "ceaoCurrent_Out has been failed" );
}
Visual Basic
‘ 20mA .
If ceaoCurrent_Out ( nAoChNo, 20 ) <> ceERR_NONE Then
Delphi
var
nAoChNo : LongInt; //
begin
nAoChNo := 1;
// 20mA .
if ceaoCurrent_Out ( nAoChNo, 20 ) <> ceERR_NONE then
begin
ShowMessage ( ‘ceaoCurrent_Out has been failed’ );
end;
end;
523
CHAPTER 14 :: ANALOG INPUT / OUTPUT CONTROL FUNCTIONS
Chapter
15
SERIAL Functions
Chapter::15
524
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
15 (Serial)
15.1
Summary of Functions
r VT_I4 cesOpenPort ( [in] VT_I4 Channel, [in] VT_I4 SerType, [in] VT_I4 BaudId, [in] VT_I4 DataBits,
[in] VT_I4 StopBits, [in] VT_I4 Parity )
(Port) (Open) .
525
CHAPTER 15 :: SERIAL FUNCTIONS
526
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
15.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 [Default]
1
2
0 (BAUD_2400)
1 (BAUD_4800)
2 (BAUD_9600)
3 (BAUD_14400)
4 (BAUD_19200)
5 (BAUD_38400)
6 (BAUD_57600)
7 (BAUD_115200)
527
CHAPTER 15 :: SERIAL FUNCTIONS
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 Open .
if ( cesOpenPort ( nSerialChNo, nSerType, BAUD_9600, nDataBits, nStopBits, nParity ) != ceERR_NONE )
{
OutputDebugString ( "cesOpenPort has been failed" );
}
Visual Basic
nSerialChNo = 0
nSerType = 0
nBaudId = BAUD_9600
nDataBits = 8
nStopBits = 1
nParity = 1
528
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘0 Open .
If cesOpenPort ( nSerialChNo, nSerType, BAUD_9600, nDataBits, nStopBits, nParity ) <> ceERR_NONE Then
MsgBox ( "cesOpenPort has been failed" )
End If
Delphi
var
nSerialChNo, nSerType, nBaudId, nDataBits, nStopBits, nParity : LongInt;
begin
nSerialChNo := 0; // (Port)
nSerType := 0; // . 0: RS232, 1: RS422, 2: RS485
nBaudId := BAUD_9600; // Baud Rate . 0 ~ 7
nDataBits := 8; // Data Bits . 5 ~ 8
nStopBits := 1; // Stop Bits . 1 or 2
nParity := 1; // Parity Bits . 0: None, 1: Odd, 2: Even
// 0 Open .
if cesOpenPort ( nSerialChNo, nSerType, BAUD_9600, nDataBits, nStopBits, nParity )
<> ceERR_NONE then
begin
ShowMessage ( ‘cesOpenPort has been failed’ );
end;
end;
529
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
530
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 Close .
if ( cesClosePort ( nSerialChNo ) != ceERR_NONE )
{
OutputDebugString ( "cesClosePort has been failed" );
}
Visual Basic
‘0 Close .
If cesClosePort ( nSerialChNo ) <> ceERR_NONE Then
Delphi
var
nSerialChNo : LongInt; // (Port)
begin
nSerialChNo := 0;
// 0 Close .
if cesClosePort ( nSerialChNo ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesClosePort has been failed’ );
end;
end;
531
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (CE_FALSE)
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
532
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
if ( cesIsDataReady ( nSerialChNo, &nIsReady ) != ceERR_NONE )
{
if ( nIsReady == CE_TRUE )
{
OutputDebugString ( " " );
}
}
Visual Basic
nSerialChNo = 0 ‘ (Port)
‘0 .
If cesIsDataReady ( nSerialChNo, nIsReady ) <> ceERR_NONE Then
Delphi
var
nSerialChNo : LongInt; // (Port)
nIsReady : LongInt; //
begin
nSerialChNo := 0; // (Port)
// 0 .
if cesIsDataReady ( nSerialChNo, @nIsReady ) <> ceERR_NONE then
begin
if nIsReady = CE_TRUE then
begin
ShowMessage ( ‘ ’ );
end;
end;
end;
533
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 Timeout , 1000 .
if ( cesGetTimeout ( nSerialChNo, &nTimeout ) == ceERR_NONE )
{
// Timeout .
if ( nTimeout != 1000 )
534
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
{
cesSetTimeout ( nSerialChNo, 1000 );
}
}
Visual Basic
nSerialChNo = 0
‘0 Timeout , 1000 .
If cesGetTimeout ( nSerialChNo, nTimeout ) = ceERR_NONE Then
‘ Timeout .
If nTimeout <> 1000 Then
Call cesSetTimeout ( nSerialChNo, 1000 )
End If
End If
Delphi
var
nSerialChNo : LongInt; // (Port)
nTimeout : LongInt; // Timeout
begin
nSerialChNo := 0;
// 0 Timeout , 1000 .
if cesGetTimeout ( nSerialChNo, @nTimeout ) = ceERR_NONE then
begin
// Timeout .
if nTimeout <> 1000 then
begin
cesSetTimeout ( nSerialChNo, 1000 );
end;
end;
end;
535
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
if ( cesTxReset ( nSerialChNo ) != ceERR_NONE )
{
OutputDebugString ( "cesTxReset has been failed" );
}
// 0 .
if ( cesRxReset ( nSerialChNo ) != ceERR_NONE )
{
OutputDebugString ( "cesRxReset has been failed" );
536
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Visual Basic
nSerialChNo = 0
‘0 .
If cesTxReset ( nSerialChNo ) <> ceERR_NONE Then
MagBox ( "cesTxReset has been failed" )
End If
‘0 .
If cesRxReset ( nSerialChNo ) <> ceERR_NONE Then
MsgBox ( "cesRxReset has been failed" )
End If
Delphi
var
nSerialChNo : LongInt; // (Port)
begin
nSerialChNo := 0;
// 0 .
if cesTxReset ( nSerialChNo ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesTxReset has been failed’ );
end;
// 0 .
if cesRxReset ( nSerialChNo ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesRxReset has been failed’ );
end;
end;
537
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
538
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 .
if ( cesGetUnreadDataSize ( nSerialChNo, &nDataSize ) != ceERR_NONE )
{
OutputDebugString ( "cesGetUnreadDataSize has been failed" );
}
Visual Basic
nSerialChNo = 0
‘0 .
If cesGetUnreadDataSize ( nSerialChNo, nDataSize ) <> ceERR_NONE Then
MsgBox ( "cesGetUnreadDataSize has been failed" )
End If
Delphi
var
nSerialChNo : LongInt; // (Port)
nDataSize : LongInt; //
begin
nSerialChNo := 0;
// 0 .
if cesGetUnreadDataSize ( nSerialChNo, @nDataSize ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesGetUnreadDataSize has been failed’ );
end;
end;
539
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
540
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0
if ( cesPeekByte ( nSerialChNo, &byData) != ceERR_NONE )
{
OutputDebugString ( "cesPeekByte has been failed" );
}
// 0
if ( cesPeekByteEx ( nSerialChNo, 5, &byData) != ceERR_NONE ) // zero base 6
{
OutputDebugString ( "cesPeekByteEx has been failed" );
}
Visual Basic
nSerialChNo = 0
‘0
If cesPeekByte ( nSerialChNo, byData) <> ceERR_NONE Then
MsgBox ( "cesPeekByte has been failed" )
End If
‘0
‘ zero base 6 .
If cesPeekByteEx ( nSerialChNo, 5, byData) <> ceERR_NONE Then
MsgBox ( "cesPeekByteEx has been failed" )
End If
Delphi
var
nSerialChNo : LongInt; // (Port)
byData : Byte; // 1
begin
nSerialChNo := 0;
541
CHAPTER 15 :: SERIAL FUNCTIONS
// 0
if cesPeekByte ( nSerialChNo, @byData) <> ceERR_NONE then
begin
ShowMessage ( ‘cesPeekByte has been failed’ );
end;
// 0
// zero base 6 .
if cesPeekByteEx ( nSerialChNo, 5, @byData) <> ceERR_NONE then
begin
ShowMessage ( ‘cesPeekByteEx has been failed’ );
end;
end;
542
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
543
CHAPTER 15 :: SERIAL FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0
if ( cesReadByte ( nSerialChNo, &byData ) == ceERR_NONE )
{
if ( byData != 0x2 ) // STX
{
OutputDebugString ( "cesReadByte has been failed" );
}
}
// 0 1
if ( cesWriteByte ( nSerialChNo, ‘B’ ) == ceERR_NONE )
{
cesCommit ( nSerialChNo ); //
}
Visual Basic
nSerialChNo = 0
‘0
If cesReadByte ( nSerialChNo, byData ) = ceERR_NONE Then
If byData <> &H2 Then ‘ STX
MsgBox ( "cesReadByte has been failed" )
End If
End If
‘0 1
If cesWriteByte ( nSerialChNo, ‘B’ ) = ceERR_NONE Then
Delphi
var
nSerialChNo : LongInt; // (Port)
544
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
byData : Byte: // 1
begin
nSerialChNo := 0;
// 0
if cesReadByte ( nSerialChNo, @byData ) = ceERR_NONE then
begin
if byData <> $2 Then // STX
begin
ShowMessage ( ‘cesReadByte has been failed’ );
end;
end;
end;
// 0 1
if cesWriteByte ( nSerialChNo, ‘B’ ) = ceERR_NONE then
begin
cesCommit ( nSerialChNo ) //
end;
end;
545
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
546
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 8
if ( cesPeekString ( nSerialChNo, 8, &abyData) != ceERR_NONE )
{
OutputDebugString ( "cesPeekString has been failed" );
}
// 0 8
if ( cesReadString (SER_PORT0, 8, &abyData) != ceERR_NONE )
{
OutputDebugString ( "cesPeekString has been failed" );
}
/* */
abyData[0] = 0x2; // STX
abyData[1] = ‘A’;
abyData[2] = ‘B’;
abyData[3] = ‘C’;
abyData[4] = ‘D’;
abyData[5] = ‘E’;
abyData[6] = nCheckSum;
abyData[7] = 0x3; // ETX
Visual Basic
nSerialChNo = 0
nCheckSum = 0
‘0 8
If cesPeekString ( nSerialChNo, 8, abyData(0) ) <> ceERR_NONE Then
547
CHAPTER 15 :: SERIAL FUNCTIONS
‘0 8
If cesReadString ( nSerialChNo, 8, abyData(0) ) <> ceERR_NONE Then
MsgBox ( "cesPeekString has been failed" )
End If
‘
abyData(0) = &H2 ‘ STX
abyData(1) = ‘A’
abyData(2) = ‘B’
abyData(3) = ‘C’
abyData(4) = ‘D’
abyData(5) = ‘E’
For i = 0 To 5
nCheckSum = nCheckSum + abyData(i)
Next i
abyData(6) = nCheckSum
abyData(7) = &H3 ‘ ETX
cesCommit ( nSerialChNo )
End If
Delphi
var
nSerialChNo : LongInt; // (Port)
abyData : Array[0..7] of Byte //
nCheckSum : Integer // CheckSum
begin
nSerialChNo := 0;
nCheckSum := 0;
// 0 8
if cesPeekString ( nSerialChNo, 8, @abyData ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesPeekString has been failed’ );
end;
// 0 8
if cesReadString ( nSerialChNo, 8, @abyData ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesPeekString has been failed’ );
end;
//
abyData[0] := $2; // STX
abyData[1] := ‘A’;
abyData[2] := ‘B’;
abyData[3] := ‘C’;
abyData[4] := ‘D’;
548
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
abyData[5] := ‘E’;
For i := 0 to 5 do
begin
nCheckSum := nCheckSum + abyData[i];
end;
abyData[6] := nCheckSum;
abyData[7] := $3; // ETX
549
CHAPTER 15 :: SERIAL FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
550
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 5 DWORD
if ( cesReadDword ( nSerialChNo, 5, &adwData ) != ceERR_NONE )
{
OutputDebugString ( "cesReadDword has been failed" );
}
/* */
adwData[0] = ‘@’;
adwData[1] = ‘A’;
adwData[2] = ‘B’;
adwData[3] = ‘C’;
abwData[4] = ‘!’;
Visual Basic
nSerialChNo = 0
‘0 5 DWORD
If cesReadDword ( nSerialChNo, 5, adwData ) <> ceERR_NONE Then
MsgBox ( "cesReadDword has been failed" )
End If
‘
adwData(0) = ‘@’
adwData(1) = ‘A’
adwData(2) = ‘B’
adwData(3) = ‘C’
abwData(4) = ‘!’
Delphi
551
CHAPTER 15 :: SERIAL FUNCTIONS
var
nSerialChNo : LongInt; // (Port)
adwData : Array[0..4] of DWORD; // DWORD
begin
nSerialChNo := 0;
// 0 5 DWORD
if cesReadDword ( nSerialChNo, 5, @adwData ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesReadDword has been failed’ );
end;
//
adwData[0] = ‘@’;
adwData[1] = ‘A’;
adwData[2] = ‘B’;
adwData[3] = ‘C’;
adwData[4] = ‘!’;
552
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
// 0 1
if ( cesPeekByte ( nSerialChNo, &byData ) == ceERR_NONE )
{
if ( byData != 0x2 ) // STX .
{
return;
}
}
553
CHAPTER 15 :: SERIAL FUNCTIONS
// 0 8
if ( cesReadString ( nSerialChNo, 8, &abyData ) != ceERR_NONE )
{
OutputDebugString ( "cesPeekString has been ailed" );
}
//
abyData[0] = 0x2; // STX
abyData[1] = ‘A’;
abyData[2] = ‘B’;
abyData[3] = ‘C’;
abyData[4] = ‘D’;
abyData[5] = ‘E’;
abyData[6] = nCheckSum;
abyData[7] = 0x3; // ETX
Visual Basic
nSerialChNo = 0
nCheckSum = 0
‘0 1
If cesPeekByte ( nSerialChNo, byData ) = ceERR_NONE Then
If byData <> &H2 Then ‘ STX .
MsgBox ( "cesPeekByte has been failed" )
End If
End If
‘0 8
If cesReadString ( nSerialChNo, 8, abyData(0) ) <> ceERR_NONE Then
MsgBox ( "cesPeekString has been ailed" )
End If
‘
abyData(0) = &H2 ‘ STX
abyData(1) = ‘A’
abyData(2) = ‘B’
abyData(3) = ‘C’
abyData(4) = ‘D’
abyData(5) = ‘E’
554
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
For i = 0 To 5
nCheckSum = nCheckSum + abyData(i)
Next i
abyData(6) = nCheckSum
abyData(7) = &H3 ‘ ETX
Delphi
var
nSerialChNo : LongInt; // (Port)
byData : Byte; //
abyData : Array[0..7] of Byte; //
nCheckSum : Integer; // CheckSum
begin
nSerialChNo := 0;
nCheckSum := 0;
‘0 1
if ( cesPeekByte ( nSerialChNo, @byData ) = ceERR_NONE then
begin
if byData <> $2 then // STX .
begin
ShowMessage ( ‘cesPeekByte has been failed’ );
end;
end;
// 0 8
if cesReadString ( nSerialChNo, 8, @abyData ) <> ceERR_NONE then
begin
ShowMessage ( ‘cesPeekString has been ailed’ );
end;
//
abyData[0] = $2; // STX
abyData[1] = ‘A’;
abyData[2] = ‘B’;
abyData[3] = ‘C’;
abyData[4] = ‘D’;
abyData[5] = ‘E’;
For i := 0 to 5 do
begin
nCheckSum := nCheckSum + abyData[i];
end;
abyData[6] := nCheckSum;
abyData[7] := $3; // ETX
555
CHAPTER 15 :: SERIAL FUNCTIONS
cesCommit ( nSerialChNo );
end;
end;
556
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Chapter
16
INTERLOCK Functions
Chapter:16
cEIP ,
.
557
CHAPTER 16 :: INTERLOCK FUNCTIONS
16 (Interlock)
16.1
“ ”
Summary of Functions
r VT_I4 ceil_Set ( [in] VT_I4 NodeID, [in] VT_I4 Interlock_Type, [in] VT_I4 bEnable )
.
r VT_I4 ceil_Get ( [in] VT_I4 NodeID, [in] VT_I4 Interlock_Type, [out] VT_PI4 bIsEnabled )
.
r VT_I4 ceilActionModeOne_Set ( [in] VT_I4 NodeID, [in] VT_I4 ModuleType, [in] VT_I4 Channel,
[in] VT_I4 ActionMode )
.
r VT_I4 ceilActionModeOne_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleType, [in] VT_I4 Channel,
[out] VT_PI4 pdwActionMode )
.
r VT_I4 ceilActionModeMulti_Set ( [in] VT_I4 NodeID, [in] VT_I4 ModuleType, [in] VT_I4 IniChan,
[in] VT_I4 NumChan, [in] VT_I4 ActionModes )
.
r VT_I4 ceilActionModeMulti_Get ( [in] VT_I4 NodeID, [in] VT_I4 ModuleType, [in] VT_I4 IniChan,
[in] VT_I4 NumChan, [out] VT_PI4 ActionModes )
558
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
16.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 ( INTLK_DISCONN)
1 (INTLK_SENSOR)
0 (CE_FALSE) [Default]
1 (CE_TRUE)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
559
CHAPTER 16 :: INTERLOCK FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetInterlock ()
{
long nNodeID = 1; // ID
long nIsEnabled; // /
/* Disconnect / , . */
560
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (DT_ PYSICAL)
1 (DT_ LOGICAL)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
561
CHAPTER 16 :: INTERLOCK FUNCTIONS
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
VOID CInterlockTestDlg::OnBtnSetDisconnectCheckTimeout()
{
long val;
562
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (MOD_CPU)
1 (MOD_AO)
2 (MOD_DO)
3 (MOD_MOT)
563
CHAPTER 16 :: INTERLOCK FUNCTIONS
0 (CPU_ACT_RESERVED)
ceNM-SE 1 (CPU_ACT_REBOOT)
2 (CPU_ACT_KEEP)
0 (AO_ACT_MIN)
ceAO02N 1 (AO_RESERVED1)
2 (AO_ACT_KEEP)
0 (DO_ACT_OFF)
ceD16CN,
1 (DO_ACT_ON)
ceDO32N
2 (DO_ACT_KEEP)
0 (MOT_ACT_DECELSTOP)
ceMC02P 1 (MOT_ACT_EMGSTOP1)
2 (MOT_ACT_KEEP)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
564
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
VOID CInterlockTestDlg::OnBtnActModeSetOne
{
long val;
// 1. CPU
// Module Type => 0: ceNM-SE(CPU )
// Channel => CPU , don't care
// Action Mode => 1 Reboot , 1:
long nResult = ceilActionModeOne_Set(NODE_ID, MOD_CPU, 0, CPU_ACT_REBOOT);
// 2. CPU
nResult = ceilActionModeOne_Get(NODE_ID, MOD_CPU, 0, &val);
// 3. AO
// Module Type => 1:
// Channel => 0
// Action Mode => AO_ACT_MIN : (0V, 0mA)
nResult = ceilActionModeOne_Set(NODE_ID, MOD_AO, 0, AO_ACT_MIN);
// 4. AO
nResult = ceilActionModeOne_Get(NODE_ID, MOD_AO, 0, &val);
// 5. DO
// Module Type => 2:
// Channel => 0
// Action Mode => DO_ACT_OFF : OFF
nResult = ceilActionModeOne_Set(NODE_ID, MOD_DO, 0, DO_ACT_OFF);
// 6. DO
nResult = ceilActionModeOne_Get(NODE_ID, MOD_DO, 0, &val);
// 7. MOTION
// Module Type => 3:
// Channel => 0
// Action Mode => MOT_ACT_EMGSTOP : (Emergency Stop)
nResult = ceilActionModeOne_Set(NODE_ID, MOD_MOT, 0, MOT_ACT_EMGSTOP);
// 8. MOTION
nResult = ceilActionModeOne_Get(NODE_ID, MOD_MOT, 0, &val);
}
565
CHAPTER 16 :: INTERLOCK FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
0 (MOD_CPU)
1 (MOD_AO)
2 (MOD_DO)
3 (MOD_MOT)
566
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
0 (CPU_ACT_RESERVED)
ceNM-SE 1 (CPU_ACT_REBOOT)
2 (CPU_ACT_KEEP)
0 (AO_ACT_MIN)
ceAO02N 1 (AO_RESERVED1)
2 (AO_ACT_KEEP)
0 (DO_ACT_OFF)
ceD16CN,
1 (DO_ACT_ON)
ceDO32N
2 (DO_ACT_KEEP)
0 (MOT_ACT_DECELSTOP)
ceMC02P 1 (MOT_ACT_EMGSTOP1)
2 (MOT_ACT_KEEP)
RETURN VALUE
‘ ’
0 (ceERR_NONE)
EXAMPLE
C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
567
CHAPTER 16 :: INTERLOCK FUNCTIONS
VOID CInterlockTestDlg::OnBtnActModeSetOne
{
long val;
// 1. AO
// Module Type => 1:
// IniChan => 0
// NumChan => 2 (0, 1 )
// Action Mode =>
// 2. AO
nResult = ceilActionModeMulti_Get (NODE_ID, MOD_AO, 0, 2, &val);
// 3. DO
// Module Type => 2:
// IniChan => 0
// NumChan => 16 (0 ~15 )
// Action Mode => 8 OFF (0), 8 (2)
// 00000000000000001010101010101010
nResult = ceilActionModeMulti_Set (NODE_ID, MOD_DO, 0, 16, 0x0000AAAA);
// 4. DO
nResult = ceilActionModeMulti_Get (NODE_ID, MOD_DO, 0, 16, &val);
// 5. MOTION
// Module Type => 3:
// IniChan => 0
// NumChan => 4 (0~3 )
// Action Mode => 0: (1), 1:(0), 2:(2), 3: (1)
// 01100001
nResult = ceilActionModeMulti_Set (NODE_ID, MOD_MOT, 0, 4, 0x61);
// 6. MOTION
nResult = ceilActionModeMulti_Get (NODE_ID, MOD_MOT, 0, 4, &val);
}
568
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Chapter
17
Utility Functions
Chapter::17
, .
,
. .
569
CHAPTER 17 :: UTILITY FUNCTIONS
17
17.1
Summary of Functions
r VT_I4 ceutlUserData_Set ( [in] VT_I4 NodeID, [in] VT_I4 NumByte, [in] VT_PSTR szText )
(Node) .
r VT_I4 ceutlUserData_Get ( [in] VT_I4 NodeID, [out] VT_PI4 pNumByte, [out] VT_PSTR szText )
.
570
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
571
CHAPTER 17 :: UTILITY FUNCTIONS
17.2
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
572
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
573
CHAPTER 17 :: UTILITY FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
574
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
575
CHAPTER 17 :: UTILITY FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
576
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
577
CHAPTER 17 :: UTILITY FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
578
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
SEE ALSO
579
CHAPTER 17 :: UTILITY FUNCTIONS
I N F O R M A T I O N
1
!
:
J
DESCRIPTION
PARAMETER
RETURN VALUE
‘ ’
0 (ceERR_NONE)
580
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Chapter
18
Advanced and Extended
Chapter:18
Interface
ceSDK .
.
.
581
APPENDIX D :: INDEX OF CESDK FUNCTIONS
18 /
“ ”
18.1
582
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
Appendix
A
Appendx cEIP Runtime Environment
i:A
. cEIP ,
, . cEIP
.
583
APPENDIX A :: CEIP RUNTIME ENVIRONMENT
I cEIP
I.I cEIPSDK
584
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
585
APPENDIX A :: CEIP RUNTIME ENVIRONMENT
I.II IP Address
586
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I.IV cEIP ID
587
APPENDIX A :: CEIP RUNTIME ENVIRONMENT
I.V cEIP
588
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’
‘ ’
‘ ’
589
APPENDIX B :: CEIP UTILITY
Appendix
B
cEIP Utility
Appendix:B
cEIP . cEIP
590
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I cePowerFlasher
I.I cePowerFlasher
591
APPENDIX B :: CEIP UTILITY
I.II
592
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I.III
593
APPENDIX B :: CEIP UTILITY
I.IV ( )
594
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
‘ ’
“ ”
595
APPENDIX B :: CEIP UTILITY
596
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
II ceNetConfig
II.I
597
APPENDIX B :: CEIP UTILITY
598
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
599
APPENDIX B :: CEIP UTILITY
600
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
601
APPENDIX B :: CEIP UTILITY
III ceNodeViewer
602
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
IV ceErrorLookup
IV.I ceErrorLookup
603
APPENDIX B :: CEIP UTILITY
V ceMADIC
V.I MADIC
V.I.i User Interface
l
l
l
604
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
V.I.iiMain Menu
l
l
l
l
l
l
l
l
l
l
l
l
605
APPENDIX B :: CEIP UTILITY
l
l
l
l
l
l
l
l
606
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
607
APPENDIX B :: CEIP UTILITY
l
l
l
608
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
l
l
609
APPENDIX B :: CEIP UTILITY
l
l
610
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
611
APPENDIX B :: CEIP UTILITY
l
l
l
l
l
l
l
612
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
613
APPENDIX B :: CEIP UTILITY
l
l
614
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
l
l
615
APPENDIX B :: CEIP UTILITY
l
l
l
l
l
l
l
l
l
l
616
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
l
l
l
617
APPENDIX B :: CEIP UTILITY
618
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
619
APPENDIX B :: CEIP UTILITY
l
l
l
l
l
620
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
621
APPENDIX B :: CEIP UTILITY
622
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
623
APPENDIX B :: CEIP UTILITY
l
l
624
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
l
625
APPENDIX B :: CEIP UTILITY
l
l
l
l
l
l
l
626
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
l
l
l
627
APPENDIX C :: MOTION DEFAULT PARAMETER
Appendix
C
Appendx Motion Default Parameter
i:C
. ,
.
.
628
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
VI (Default)
VI.I Command & Feedback
629
APPENDIX C :: MOTION DEFAULT PARAMETER
VI.VII
630
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
VI.VIII
631
APPENDIX D :: LIST OF ERROR CODES
Appendix
D
List of Error Codes
Appendix:D
, . ceSDK
, , .
, ceSDK
.
632
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
I
I.I
ceERR_NONE 0 No error
1 .
2 DIO .
3 AD/DA .
4 .
-1 .
-2 DIO .
-3 AD/DA .
-4 .
ceGnERR_TIMEOUT -101 communication timeout error.
ceGnERR_INVALID_PACKET -102 Packet data error.
ceGnERR_CHECKSUM -103 checksum mismatch.
ceGnERR_FLASH_ERASE_FAIL -104 fail to erase flash-memory.
ceGnERR_UNDEFINE_COMMAND -105 Undefined control command has been received.
cemERR_MEM_ALLOC_FAIL -290 Memory allocation fail.
cemERR_GLOBAL_MEM_FAIL -292 Global memory allocation fail.
cemERR_ISR_CONNEC_FAIL -310 ISR(Interrupt Service Routine) registration fail.
cemERR_DIVIDE_BY_ZERO -400 Cause divide by zero error.
cemERR_WORNG_NUM_DATA -500 Number of data is too small or too big.
cemERR_VER_MISMATCH -600 Version(of file or device) mismatch.
cmERR_FLASH_ERASE_FAIL -601 fail to erase a flash-memory sector.
cmERR_FLASH_WRITE_FAIL -602 fail to write a flash-memory sector.
cmERR_FLASH_COPYSECT_FAIL -603 fail to copy whole data from source sector to target sector.
cmERR_FLASH_CANNOTMODIFY -604 cannot modify the sector.
cmERR_INVALID_SYSCFG -605 TSysConfig dwSign SYS_CFG_SIGN .
cmERR_MAXBYTESLIMIT_SYSCFG -606 TSysConfig dwComment .
cemERR_INVALID_DEVICE_ID -1010 User set invalid device id. Refer to “DeviceId” property.
Device handle is not valid. This means that loading a device has been
cemERR_INVALID_HANDLE -1020
failed or not performed. Refer to “ceGnLoad” function.
cemERR_UNSUPORTED_FUNC -1030 User called an unsupported function for the specified product.
cemERR_INVALID_PARAMETER -1101 Some of the function parameters are invalid.
cemERR_INVALID_CHANNEL -1105 The channel setting parameter(s) is(are) invalid.
cemERR_INVALID_INPUT_RANGE -1111 Invalid range value (AI, AO).
cemERR_INVALID_FREQ_RANGE -1121 User selected invalid frequency range.
cemERR_FILE_CREATE_FAIL -1501 File creation has been failed.
cemERR_FILE_OPEN_FAIL -1511 File openning has been failed.
cemERR_FILE_READ_FAIL -1522 File reading fail.
cemERR_EVENT_CREATE_FAIL -1550 Event handle creation has been failed.
cemERR_INT_INSTANCE_FAIL -1560 Interrupt event instance creation has been failed.
cemERR_DITHREAD_CRE -1570 D/I state change monitor thread creation fail.
cemERR_BUFFER_SMALL -1580 Buffer size is too small.
The installed hardware doesn’t support a high-resolution performance
cemERR_HIGH_TIMER_UNSUPP -1590
counter(when cemUtlDelayMicroSec() had failed).
cemERR_OUT_OF_RANGE -1600 The range of some parameter is out of range that it is occurred.
633
APPENDIX D :: LIST OF ERROR CODES
.
-20004
0 .
634
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
-20005 .
.
-20006
.
.
-20007 , .
, .
-20008 ID .
-20009 .
,
-50000
.
-50001 .
-50002 , .
, DIO, AD/DA
-50003
.
. 0 255
-50004
.
. -50004
-51000
.
-51001 .
-51002 .
-51003 .
-51004 .
.
-61000
SxStop SxStopEmg .
-70000 .
-81000 .
,
-81001
.
,
-81002
.
Default 0
-100000
.
-100001 0 .
-100002 .
0 ,
-100003
.
,
-100004
0 , .
-500000 .
635
APPENDIX E:: INDEX OF CESDK FUNCTIONS
Appendix
E
Appendx Index of ceSDK Functions
i:E
. ceSDK
. .
636
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
General Functions
ceLoadDll ________________________________________________________________________ 60
ceUnloadDll ______________________________________________________________________ 62
ceGnLoad ________________________________________________________________________ 63
ceGnUnload ______________________________________________________________________ 66
ceGnSearchDevice _________________________________________________________________ 67
ceGnUnSearchDevice ______________________________________________________________ 72
ceGnReSearchDevice _______________________________________________________________ 75
ceGnIsSearchedDevice _____________________________________________________________ 77
ceGnResetNode ___________________________________________________________________ 78
ceGnCtrlBoost_Set / ceGnCtrlBoost_Get _______________________________________________ 81
ceGnNodeIsActive _________________________________________________________________ 83
ceGnDebugMode __________________________________________________________________ 86
ceGnTotalNode____________________________________________________________________ 88
ceGnTotalMotionChannel ___________________________________________________________ 90
ceGnTotalDIOChannel _____________________________________________________________ 93
ceGnTotalAIChannel _______________________________________________________________ 94
ceGnTotalAOChannel ______________________________________________________________ 95
ceGnTotalMDIOChannel ___________________________________________________________ 96
ceGnTotalCNTChannel _____________________________________________________________ 97
ceGnModuleCount_Motion __________________________________________________________ 99
ceGnModuleCount_Dio ____________________________________________________________ 102
ceGnModuleCount_Ai _____________________________________________________________ 103
ceGnModuleCount_Ao ____________________________________________________________ 104
ceGnModuleCount_Mdio __________________________________________________________ 105
ceGnModuleCount_Cnt ____________________________________________________________ 106
ceGnChannelCount_Motion ________________________________________________________ 108
ceGnChannelCount_Dio ___________________________________________________________ 112
637
APPENDIX E:: INDEX OF CESDK FUNCTIONS
638
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
639
APPENDIX E:: INDEX OF CESDK FUNCTIONS
640
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
641
APPENDIX E:: INDEX OF CESDK FUNCTIONS
642
COMIZOA COMPACT EIP SERIES SOFTWARE DEVELOPMENT KIT
ceSDK Manual
643