Parker Automation Gemini GV6K Installation manual

P
C
O
M
P
TI
N
A
I
N
F
NC
O
U
TF
NC
R
ESET
R
E
AD
DR
ES
FOLE
N
FOL
M
A
S
ST
R
GTE
TST
A
T
GOW
H
E
N
C
M
DD
I
R
E
NCCN
T
E
R
ES
GO
K
S
C
PS
LS
LI
M
F
NC
TPE
T
R
GF
N
D
EF
D
EL
E
RA
SE E
ND
ST
AR
TP
E
RR
O
R
V
AR
V
ARB
V
AR
S
SF
B
H
O
M
J
OY
J
OG
TIO
T
A
SF
TSSF
TI
N
OF
DA
TSIZ
TFSF
T
R
EV
TO
U
T
SOFFS
T
D
I
R
M
A
M
C
DR
FE
N
GO
BU
F
P
RUN
IF
W
H
E
N
L
H
ELSE
W
H
ILE
O
N
I
N
O
U
T
H
ELP
GOTO
W
A
IT
V
TS
KA
X
D
Effective: October 1, 2001
p/n 88-019933-01 A
G
e
m
ini
GV
6
K
a
nd
G
e
m
ini
GT
6
K
C
o
mm
a
nd
R
e
f
e
r
e
n
ce
A
u
t
o
m
a
t
ion
www.comoso.com

N
o
r
t
h
A
m
e
r
i
ca
a
nd
A
s
i
a
:
Compumotor Division of Parker Hannifin
5500 Business Park Drive
Rohnert Park, CA 94928
Telephone: (800) 358-9070 or (707) 584-7558
Fax: (707) 584-3793
FaxBack: (800) 936-6939 or (707) 586-8586
e-mail: [email protected]
Internet: http://www.compumotor.com
E
u
r
op
e
(non-German speaking)
:
Parker Digiplan
21 Balena Close
Poole, Dorset
England BH17 7DX
Telephone: +44 (0)1202 69 9000
Fax: +44 (0)1202 69 5750
G
e
r
m
a
n
y
,
A
u
s
t
r
i
a
, S
wi
t
z
e
r
l
a
nd
:
HAUSER Elektronik GmbH
Postfach: 77607-1720
Robert-Bosch-Str. 22
D-77656 Offenburg
Telephone: +49 (0)781 509-0
Fax: +49 (0)781 509-176
T
ec
hni
ca
l
A
ss
i
s
t
a
n
ce
Contact your local automation technology center (ATC) or distributor,
o
r
...
A
u
t
o
m
a
t
ion
E
-
mail
:
T
ech
_
H
elp
@
cmotor
.
com
T
ech nical
S
upport
Gem6K Series products and the information in this user guide are the proprietary property of Parker Hannifin Corporation or its licensers, and
may not be copied, disclosed, or used for any purpose not expressly authorized by the owner thereof.
Since Parker Hannifin constantly strives to improve all of its products, we reserve the right to change this user guide and software and
hardware mentioned therein at any time without notice.
In no event will the provider of the equipment be liable for any incidental, consequential, or special damages of any kind or nature
whatsoever, including but not limited to lost profits arising from or in any way connected with the use of the equipment or this user guide.
©
2001
, P
a
r
ke
r
H
a
nni
f
in
C
o
r
po
r
a
t
ion
A
ll
R
igh
t
s
R
ese
r
ve
d
U
se
r
I
n
f
o
r
m
a
t
ion
W
ARN
I
N
G
Gem6K Series products are used to control electrical and mechanical
components of motion control systems. You should test your motion
system for safety under all potential conditions. Failure to do so can result
in damage to equipment and/or serious injury to personnel.
!!
Motion Planner and Servo Tuner are trademarks of Parker Hannifin Corporation.
Microsoft and MS-DOS are registered trademarks, and Windows, Visual Basic, and Visual C++ are trademarks of Microsoft Corporation.
www.comoso.com

Introduction 1
Introduction
Purpose of this Document
This document is a reference for all the Gem6K Series commands. To gain a full understanding of how the
Gem6K Series commands are used together to implement specific features, refer to the Gem6K Series
Programmer’s Guide (p/n 88-019934-01). For hardware-related information (e.g., electrical wiring
connections, specifications, tuning, etc.), refer to the Gem6K Series Hardware Installation Guide (p/n 88-
019932-01). Information on the Gem6K communications server (COM6SRVR) is provided in the
Communications Server Programmer’s Reference.
NOTE
The contents of this document are
available from the Motion Planner
help system. To access the help
system, use the Info window
(right), or press the F1 key.
This document is also
available in Adobe Acrobat PDF
format from our web site:
http://www.compumotor.com
Table of Contents
Page 1 Introduction:
Command Description Format
Syntax -- Letters and Symbols
Syntax -- General Guidelines
Syntax -- Command Value Substitutions
Programmable I/O Bit Patterns
Programming Error Messages
S-Curve Accel/Decel Profiling
Units of Measure and Scaling
Page 23 Special Programming Characters: Operator symbols for multi-tasking, math and bitwise
operations, relational expressions, bit select operations, etc.
Page 39 Command Descriptions: Operator symbols are described first, followed by the rest of the
Gem6K Series commands in alphabetical order.
Page 343 Appendix A: Gem6K Series Command List: Alphabetical list of all Gem6K Series commands.
Page 349 Appendix B: ASCII Character Table
Page 351 Index
www.comoso.com

2Gemini GV6K/GT6K Command Reference
Description of Format
1. 2. 3.
INEN Input Enable
4. Type Inputs or Program Debug Tools
5. Syntax <!><B>INEN<d><d><d>...<d>
6. Units d = 0, 1, E, or X
7. Range 0 = off, 1 = on, E = enable, X = don't care
8. Default E
9. Response INEN: *INENEEEE_EEEE_EEEE_EEEE_EEEE_EEEE_EEEE
10. See Also [IN], INFNC, INLVL, INPLC, INSTW, TIN, TIO
Product Rev
GT6K 6.0
GV6K 6.0
Item Number Description
1. Mnemonic Code: This field contains the command's mnemonic code. If the command is
in brackets (e.g., [IN ]), it is an operator that must be used within the syntax of another
command (e.g., IN may be used in a conditional expression like IF(IN.3=b1)).
2. Full Name: This field contains the command's full name.
3. Valid Product & Revision: This field lists the Gem6K Series products and the revision of
each product when this command was incorporated or modified per the description. If the
command does not apply to that particular product, the Rev is specified as “n/a”.
You can use the TREV command to determine which product revision you are using. For
example, if the TREV response is *TREV92-016740-01-6.0, the product revision is 6.0.
4. Type: This field contains the command’s type.
5. Syntax: The proper syntax for the command is shown here. The specific parameters
associated with the command are also shown. Definitions of the parameters are described
in the Syntax sections below.
6. Units: This field describes what unit of measurement the parameter (b, d, i, r, or t) in the
command syntax represents.
7. Range: This is the range of valid values that you can specify for an argument (or any
other parameter specified).
8. Default: The default setting for the command is shown in this field. A command will
perform its function with the default setting if you do not provide a value.
9. Response: Some commands allow you to check the status of the command. In the
example above, entering the INEN command by itself, you will receive the response
*INENEEEE_EEEE_EEEE_EEEE_EEEE_EEEE_EEEE (response indicates all inputs are
enabled). The example responses provided are based on the default error level, Error
Level 4, established with the ERRLVL4 command.
10. See Also: Commands related or similar to the command described are listed here.
www.comoso.com

Introduction 3
Syntax – Letters and Symbols
The command descriptions provided within this manual use alphabetic letters and ASCII symbols within
the Syntax description (see example below) to represent different parameter requirements.
INEN Input Enable
Type Inputs or Program Debug Tools
→Syntax <!><%><B>INEN<d><d><d>...<d>
Units d = 0, 1, E, or X
Range 0 = off, 1 = on, E = enable, X = don't care
Default E
Response INEN: *INENEEEE_EEEE_EEEE_EEEE_EEEE_EEEE_EEEE
See Also [IN], INFNC, INLVL, INPLC, INSTW, TIN, TIO
Product Rev
GT6K 6.0
GV6K 6.0
Letter/Symbol Description
a_ ........Represents an address specifier, numeric value from 0 to 99. An address specifier is required if
multiple Gem6K drives are connected in a daisy-chain or multi-drop configuration; in fact, leaving off
the address specifier will cause parameter assignment commands to affect all units and
response/transfer commands to request information from all units at the same time (multiple units
transmitting characters at one time will garble the communication). To assign unique unit addresses
to multiple drives, refer to the ADDR command.
B...........Represents the number of the product's I/O brick. External I/O bricks are represented by numbers 1
through n (to connect external I/O bricks, refer to the Installation Guide). On-board I/O are address at
brick location zero (Ø). If the brick identifier is omitted from the command, the controller assumes the
command is supposed to affect the onboard I/O.
b*.........Represents the values 1, 0, Xor x; does not require field separator between values.
c...........Represents a character (Ato Z, or ato z)
d...........Represents the values 1, 0, Xor x, Eor e; does not require field separator between values. Eor e
enables a specific command field. Xor xleaves the specific command field unchanged or ignored. In
the ANIEN command, the “d” symbol may also represent a real numeric value.
i...........Represents a numeric value that cannot contain a decimal point (integer values only). The numeric
range varies by command. Field separator required.
r...........Represents a numeric value that may contain a decimal point, but is not required to have a decimal
point. The numeric range varies by command. Field separator required.
t...........Represents a string of alpha numeric characters from 1 to 6 characters in length. The string must
start with a alpha character.
!...........Represents an immediate command. Changes a buffered command to an immediate command.
Immediate commands are processed immediately, even before previously entered buffered
commands.
%...........(Multitasking Only) Represents a task identifier. To address the command to a specific task, prefix the
command with “i%”, where “i” is the task number. For example, the 4%CUT command uses task #4 to
execute the program called “CUT”.
,...........Represents a field separator. Commands with the symbol ror iin their Syntax description require
field separators. Commands with the symbol bor din their Syntax description do not require field
separators (but they may be included). See General Guidelines table below.
@...........Represents a global specifier, where only one field need be entered. Applicable to all commands with
multiple command fields. (e.g., @OUT1 sets output #1 on for all I/O bricks).
< > ......Indicates that the item contained within the < > is optional, not required by that command.
NOTE: Do not confuse with <cr>, <sp>, and <lf>, which refer to the ASCII characters
corresponding to a carriage return, space, and line feed, respectively.
[ ] ......Indicates that the command between the [ ] must be used in conjunction with another command,
and cannot be used by itself.
* The ASCII character bcan also be used within a command to precede a binary number. When the bis used in this
context, it is not to be replaced with a 0, 1, X, or x. Examples are assignments such as VARB1=b10001, and
comparisons such as IF(3IN=b1001X1).
Order of Precedence for Command Prefix Characters (from left to right):
1s
t
: Immediate
2nd: Task number
3rd: Apply to all I/O bricks, etc.
3rd: Address number
3rd: I/O brick number
<!><%><@><a_><B>
www.comoso.com

4Gemini GV6K/GT6K Command Reference
Syntax – General Guidelines
Guideline Topic Guideline Examples
Command Delimiters
(<cr>, <lf>, and :) All commands must be separated by a
delimiter. A carriage return is the most
commonly used. The colon (:)allows you to
place multiple commands on one line of code.
Set acceleration to 10 rev/sec/sec:
A10<cr>
A10<lf>
A10: V25 :D25000 :GO<cr>
Neutral Characters
(<sp> and <tab>) Using neutral characters anywhere within a
command will not affect the command. Set velocity to 10 rps:
V<sp>10<cr>
Case Sensitivity There is no case sensitivity. Use upper or
lower case letters within commands. Initiate motion:
GO1
go1
Comment Delimiter (;) All text between a comment delimiter and a
command delimiter is considered program
comments.
Add a comment to the command:
V10<tab> ;set velocity
Field Separator (,) Commands with the symbol ror iin their
Syntax description require field separators. Display variable #1 on the RP240 at the current
cursor location with 3 characters displayed to
the left of the decimal, 2 to the right of the
decimal, and the sign:
DVAR1,3,2,1
Commands with the symbol bor din their
Syntax description do not require field
separators (but they may be included).
Enable error checking for hard limits and drive
faults:
ERROR0101
Global Command
Identifier (@) When you wish to set the command value
equal on all outputs, add the @symbol at the
beginning of the command (enter only the
value for one command field).
Set the digital outputs (#1 & #2) active on all
digital outputs (onboard and external):
@OUT11
The @symbol is also useful for checking
the status of all inputs or
outputs on all I/O bricks.
Check the status of all digital outputs (onboard,
and on external I/O bricks):
@OUT
Bit Select Operator (.)
The bit select operator allows you to affect
one or more binary bits without having to
enter all the preceding bits in the command.
Syntax for setup commands:
[command name].[bit #]-[binary value]
Syntax for conditional expressions:
[command name].[bit #]=[binary value]
Enable error-checking bit #9:
ERROR.9-1
Enable error-check bits #9-12:
ERROR.9-1,1,1,1
IF statement based on value of axis status bit
#12 for axis #1:
IF(1AS.12=b1)
Left-to-right Math
All mathematical operations assume
left-to-right precedence.
VAR1=5+3*2
Result: Variable 1 is assigned the value of 16
(8*2), not 11 (5+6).
Binary and Hexadecimal
Values When making assignments with or
comparisons against binary or hexadecimal
values, you must precede the binary value
with the letter “b” or “B”, and the hex value
with “h” or “H”. In the binary syntax, an “x”
simply means the status of that bit is ignored.
Binary: IF(IN=b1x01)
Hexadecimal: IF(IN=h7F)
Multi-tasking Task
Identifier (%) Use the %command prefix to identify the
command with a specific task. Launch the “move1” program in Task 1:
1%move1
Check the error status for Task 3:
3%TER
Check the system status for Task 3:
3%TSS
NOTE: The command line is limited to 80 characters (excluding spaces).
www.comoso.com

Introduction 5
Syntax – Command Value Substitutions
Many commands can substitute one or more of its command field values with one of these substitution
items (demonstrated in the programming example below):
VAR............. Places current value of the numeric variable in the corresponding field of the command.
VARB........... Uses the value of the binary variable to establish all the fields in the command.
VARI........... Places current value of the integer variable in the corresponding field of the command.
READ........... Information is requested at the time the command is executed.
DREAD ........ Reads the RP240’s numeric keypad into the corresponding field of the command.
DREADF...... Reads the RP240’s function keypad into the corresponding field of the command.
TW ............... Places the current value set on the thumbwheels in the corresponding field of the command.
DAT............. Places the current value of the data program (DATP) in the corresponding field of the command.
Programming Example: (NOTE: The substitution item must be enclosed in parentheses.)
VAR1=15 ; Set variable 1 to 15
A(VAR1) ; Set acceleration to 15
VARB1=b101XX ; Set binary variable 1 to 101XX (bits 4 & 5 not affected)
OUT(VARB1) ; Turn on ouputs 1 & 3, turn off output 2, don’t change outputs 4 &
5.
VARS1="Enter Velocity" ; Set string variable 1 to the message "Enter Velocity"
V(READ1) ; Read in the velocity, output variable string 1 as the prompting
message
; 1. Operator sees "ENTER VELOCITY" displayed on the screen.
; 2. Operator enters velocity prefixed by !' (e.g., !'20).
HOMV(TW1) ; Read in the home velocity from thumbwheel set 1
HOMVF(DAT1) ; Read home final velocity from data program 1.
VARI1=2*3 ; Set integer variable 1 to 6 (2 multiplied by 3)
D(VARI2) ; Set the distance equal to the value of
; integer variable 2.
Rule of Thumb
Not all of the commands allow command field substitutions. In
general, commands with a binary command field (<b> in the
syntax) will accept the VARB substitution. Commands with a real
or integer command field (<r> or <i> in the syntax) will accept
VAR, VARI, READ, DREAD, DREADF, TW or DAT.
www.comoso.com

6Gemini GV6K/GT6K Command Reference
Programming Interface Tools
Motion Planner, a graphical programming interface, is provided as a tool for programming your Gem6K
drive. These are the functions provided:
• Configuration (motor selection, tuning, motor matching and damping, etc.)
• Terminal emulation for sending commands and checking drive status
• Program editor for developing program files to send to the drive
• Downloading and uploading program and operating system files to/from the drive
Motion Planner runs on the Windows 95, Windows 98 and Windows NT operating systems.
Motion Planner is installed from the “Motion Planner” CD which is included in your Gem6k drive
shipment (unless you ordered the -NK option).
Communications Server: Also available on the Motion Planner CD is the Communications Server
(COM6SRVR.EXE). COM6SRVR.EXE is a 32-bit OLE automation server that allows you to add Gem6K
(as well as Gemini and 6K) communication capability to your custom applications created with
programming languages such as Visual Basic, Visual C++, and Delphi. The Motion Planner installation
program installs COM6SRVR.EXE in the Motion Planner directory. Details on the Communication Server
functions are provided in the COM6SRVR Communications Server User Guide.
NOTE
The Gem6K commands described in this document can be used only with Motion
Planner or the COM6SRVR Communications Server.
Using Motion Planner with a Gem6K Drive
Motion Planner is a programming interface for the Gemini product family, as well as the 6K product
family. Motion Planner runs on the Windows 95, Windows 98 and Windows NT operating systems.
Below are instructions on how to use Motion Planner with your Gem6K.
Installing Motion Planner:
System Requirements:
• IBM-compatible PC with a Pentium 166 MHz or higher processor.
• Operating system: Microsoft Windows 95, Microsoft Windows NT Workstation 4.0, or
Microsoft Windows 98.
• 32MB RAM.
• Hard disk space: 16MB minimum.
• PCI VGA with 800 x 600 resolution or higher.
• CD-ROM drive or internet access for installation.
• Mouse or pointing device.
• RS-232C serial port for using serial RS-232C communications.
Insert the Motion Planner CD in your CD-ROM player. The installation program
automatically launches and displays this dialog:
www.comoso.com

Introduction 7
Updating the Drive’s Operating System:
Gem6K drives are digital motor drives that run under an internal software operating system. The
operating system was loaded into your drive during the manufacturing process, and under
ordinary circumstances you will not need to update your drive’s operating system. However,
because Compumotor continues to add enhancements and address software bugs, you may want
to upgrade the operating system. You may obtain a new operating system file from the
Compumotor web site, or from Technical Support (see phone numbers on the inside cover of this
manual).
Web Site Download:
The operating system file is located in the software download section of the Compumotor
Online web site (http://www.compumotor.com). The file name is in this format: GEM_n_nn.ops.
For example, the operating system file for version 1.50 is called GEM_1_50.ops. Download
the file to the Motion Planner directory on your hard drive.
Update Procedure:
1. Using the Gem6K’s RS-232 connector (COM 2), connect to your computer’s RS-232
serial communication port (see instructions in the Hardware Installation Guide).
NOTE: You can download the operating system to only one drive unit at a time and you
must use RS-232 communication (no daisy chains).
NOTE: You must use the Gem6K’s RS-232 connector (COM 2), not the RS-232/485
connector (COM 1).
2. Launch Motion Planner.
3. In the Default Communications Settings dialog box, select your Gem6K drive and select
the serial port to which the drive is connected, then click “OK”.
4. Click on the Terminal tab to expose the terminal emulator.
5. From the
Communications pull-down menu, select Download OS. When presented with
the Locate Gem6K Operating System dialog, locate the operating system file and click the
Open button. This initiates the download to the drive and displays the download status
dialog.
6. When the download is completed successfully, Motion Planner displays a confirmation
message. Also, the drive automatically resets itself and displays the TREV response in
the terminal emulator window. Check the TREV report to verify that the proper operating
system revision is now in the drive (e.g., the response “*TREV-GV-L3E_D1.05_F1.00”
indicates that the drive is using OS revision 1.05, denoted by “D1.05”).
NOTE: If the download is interrupted or corrupted, the drive will
flash the left LED (red) until a valid operating system is downloaded.
www.comoso.com

8Gemini GV6K/GT6K Command Reference
Programmable I/O Bit Patterns
The Gem6K has programmable inputs and outputs. The total number of onboard inputs and outputs (analog
inputs, digital inputs and digital outputs) is fixed. The total number of expansion inputs and outputs depends on
your configuration of expansion I/O bricks.
These programmable I/O are represented by binary bit patterns, and it is the bit pattern that you reference when
programming and checking the status of specific inputs and outputs. The bit pattern is referenced 1 to n, from
left to right.
•Onboard I/O. For example, the status command to check all onboard inputs is TIN.
An example response is: *TIN0100_0.
•Expansion I/O. For example, the status command to check all digital inputs on I/O brick 2 is 2TIN.
An example response is: *2TIN0010_0110_1100_0000_XXXX_XXXX_XXXX_XXXX.
Onboard I/O
I/O Location Programming Status Report, Assignment
Limit Inputs “DRIVE I/O” connector LIMFNC, LIMEN, LIMLVL TLIM, LIM
Inputs (digital) “DRIVE I/O” connector INFNC, INLVL, INEN, ONIN,
INPLC, INSTW TIN, IN
Outputs (digital) “DRIVE I/O” connector OUT, OUTFNC, OUTLVL,
OUTEN, OUTALL, OUTPLC,
OUTTW, POUT
TOUT, [OUT]
Limit Inputs (“DRIVE I/O” connector)
Bit 5
Bit 1 Bit 32
Bit 1
I/O Brick 2
Input bit pattern for LIM, TLIM, LIMEN, LIMFNC, and LIMLVL:
Bit # Pin # Function *
1 28 Positive end-of-travel limit
2 29 Negative end-of-travel limit
3 31 Home limit
* The functions listed are the factory default functions; other
functions may be assigned with the LIMFNC command.
Sample response to TLIM (limit inputs status) command:
*TLIM110
www.comoso.com

Introduction 9
Inputs (“DRIVE I/O” connector)
Outputs (“DRIVE I/O” connector)
Output bit pattern for TOUT, [OUT], OUT, OUTFNC,
OUTLVL, OUTEN, OUTALL, OUTPLC, OUTTW, POUT:
Bit # Pin # Function
1 41 Output 1.
2 43 Output 2.
3 45 Output 3.
4 46 Output 4.
5 48 Output 5.
6 49 Output 6.
7 Relay Output 7.
Sample response to TOUT
(onboard outputs status) command:
*TOUT0000_000
Input bit pattern for TIN, IN, INFNC, INLVL,
INEN, INPLC, INSTW, and ONIN:
Bit # Pin # Function *
1 37 Input 1 (if assigned, TRIG-A)
2 38 Input 2 (if assigned, TRIG-B)
3 39 Input 3
4 34 Input 4
5 35 Input 5 (if assigned, TRIG-M)
* If the input is assigned the “trigger
interrupt” function with the INFNCi-H
command:
TRIG-A must be on Input 1
TRIG-B must be on Input 2
TRIG-M must be on input 5
Sample response to TIN (input status) command:
*TIN0010_1
www.comoso.com

10 Gemini GV6K/GT6K Command Reference
Expansion I/O Bricks
The Gem6K allows you to expand your system I/O by connecting up to eight I/O bricks (see Installation
Guide for connections). Expansion I/O bricks may be ordered separately (referred to as the “EVM32”). Each
I/O brick can hold from 1 to 4 of these I/O SIM modules in any combination:
SIM Type Programming Status Report, Assignment
Digital Inputs SIM (8 inputs) INFNC, INLVL, INEN, ONIN, INPLC, INSTW TIN, IN, TIO
Digital Outputs SIM (8 outputs) OUT, OUTFNC, OUTLVL, OUTEN, OUTALL,
OUTPLC, OUTTW, POUT TOUT, [OUT], TIO
Analog Inputs SIM (8 inputs) •Enable/Disable: ANIEN.
•Voltage range: ANIRNG.
•Joystick setup: JOYAXH, JOYCDB,
JOYCTR, JOYEDB, JOYZ.
•Following master source: ANIMAS, FOLMAS
•Voltage: TANI, ANI, TIO
Analog Outputs SIM (8 outputs) ANO TANO, [ANO], TIO
Each I/O brick has a unique “brick address”, denoted with the “<B>” symbol in the command syntax. The
I/O bricks are connected in series to the “EXPANSION I/O” connector on the Gem6K. The 1st I/O brick has
address #1, the next brick has address #2, and so on. (NOTE: If you leave out the brick address in the
command, the Gem6K will assume you are addressing the command to the onboard I/O.) Each I/O brick
has 32 I/O addresses, referenced as absolute I/O point locations:
•SIM slot 1 = I/O points 1-8
•SIM slot 2 = I/O points 9-16
•SIM slot 3 = I/O points 17-24
•SIM slot 4 = I/O points 25-32
Example:
Slot #1 (I/O points 1-8)
Slot #2 (I/O points 9-16)
Slot #3 (I/O points 17-24)
Slot #4 (I/O points 25-32)
Slot #1 (I/O points 1-8)
Digital Inputs SIM
I/O Brick #1
Gem6K
Drive/Controller
Slot #2 (I/O points 9-16)
Digital Inputs SIM
Slot #3 (I/O points 17-24)
Digital Inputs SIM
Slot #4 (I/O points 25-32)
Analog Inputs SIM
Digital Outputs SIM
I/O Brick #2
Digital Inputs SIM
No SIMM installed
Digital Outputs SIM
Sample response to 1TIN (digital inputs status) command:
*1TIN0000_0010_1100_0000_0100_0001_XXXX_XXXX
The TIO command identifies the connected I/O bricks (and installed SIMs), including the status of each I/O point:
*BRICK 1: SIM Type Status Function
1-8: DIGITAL INPUTS 0000_0000 AAAA_AAAA
9-16: DIGITAL INPUTS 0000_0000 AAAA_AAAA
17-24: DIGITAL INPUTS 0000_0000 AAAA_AAAA
25-32: ANALOG INPUTS 0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000
*BRICK 2: SIM Type Status Function
1-8: DIGITAL OUTPUTS 0000_0000 AAAA_AAAA -- SINKING
9-16: DIGITAL INPUTS 0000_0000 AAAA_AAAA
17-24: NO SIM PRESENT
25-32: DIGITAL OUTPUTS 0000_0000 AAAA_AAAA -- SOURCING
Sample response to 2TOUT (digital outputs status) command:
*2TOUT0000_0000_XXXX_XXXX_XXXX_XXXX_0000_0000
www.comoso.com

Introduction 11
Programming Error Messages
Depending on the error level setting (set with the ERRLVL command), when a programming error is created,
the Gem6K will respond with an error message and/or an error prompt. A list of all possible error messages is
provided in a table below. The default error prompt is a question mark (?), but you can change it with the
ERRBAD command if you wish.
At error level 4 (ERRLVL4—the factory default setting) the Gem6K responds with both the error message and
the error prompt. At error level 3 (ERRLVL3), the Gem6K responds with only the error prompt.
Error Response Possible Cause
ACCESS DENIED Program security feature enabled, but the program access input (INFNCi-Q or
LIMFNCi-Q) is not activated.
ALREADY DEFINED FOR THUMBWHEELS Attempting to assign an I/O function to an I/O that is already defined as a
thumbwheel I/O.
ALTERNATIVE TASK NOT ALLOWED Attempting to execute a LOCK command directed to another task.
AXES NOT READY Compiled Profile path compilation error.
COMMAND NOT IMPLEMENTED Command is not applicable to the Gem6K Series product.
COMMAND NOT ALLOWED IN PROGRAM Command is not allowed inside a program definition (between DEF and END).
COMMAND/DRIVE MISMATCH The command is not appropriate to the type of drive being used (e.g.,
attempting to execute a servo tuning command on a stepper axis)
ERROR: MOTION ENDS IN NON-ZERO
VELOCITY Compiled Motion: The last GOBUF segment within a PLOOP/PLN loop does not
end at zero velocity, or there is no final GOBUF segment placed outside the loop.
FOLMAS NOT SPECIFIED No FOLMAS for the axis is currently specified. It will occur if FMCNEW, FSHFC, or
FSHFD commands are executed and no FOLMASØ command was executed, or
FOLMAS0 was executed.
INCORRECT AXIS Axis specified is incorrect.
INCORRECT BRICK NUMBER Attempted to execute a command that addresses an I/O brick that is not
connected to your Gem6K controller.
INCORRECT DATA Incorrect command syntax.
Following: Velocity (V), acceleration (A) or deceleration (AD) command is zero
(used by FSHFC & FSHFD).
INPUT(S) NOT DEFINED AS
JOYSTICK INPUT Attempted to execute JOYCDB, JOYCTR, JOYEDB, or JOYZ before executing
JOYAXH to assign the analog input.
INSUFFICIENT MEMORY Not enough memory for the user program or compiled profile segments. This
may be remedied by reallocating memory (see MEMORY command description).
INVALID COMMAND Command is invalid because of existing conditions
www.comoso.com

12 Gemini GV6K/GT6K Command Reference
Programming Error Messages (continued)
Error Response Possible Cause
INVALID CONDITIONS FOR COMMAND System not ready for command (e.g., LN command issued before the L
command).
Following (these conditions can cause an error during Following):
•The FOLMD value is too small to achieve the preset distance and still
remain within the FOLRN/FOLRD ratio.
•A phase shift cannot be performed:
FSHFD.... Error if already shifting or performing other time based move.
FSHFC.... Error if currently executing a FSHFD move, or if currently
executing another FSHFC move in the opposite direction.
•The FOLEN1 command was given while a profile was suspended by a
GOWHEN.
INVALID CONDITIONS FOR
S_CURVE ACCELERATION—FIELD nAverage (AA) acceleration or deceleration command (e.g., AA, ADA, HOMAA,
HOMADA, etc.) with a range that violates the equation ½A ≤AA ≤A (A is the
max. accel or decel command—e.g., A, AD, HOMA, HOMAD, etc.)
INVALID DATA Data for a command is out of range.
Following (these conditions can cause an error during Following):
•The parameter supplied with the command is valid.
FFILT Error if: smooth number is not 0-4
FMCLEN.. Error if: master steps > 999999999 or negative
FMCP ...... Error if: master steps > 999999999 or < -999999999
FOLMD.... Error if: master steps > 999999999 or negative
FOLRD.... Error if: master steps > 999999999 or negative
FOLRN.... Error if: follower steps > 999999999 or negative
FSHFC.... Error if: number is not 0-3
FSHFD.... Error if: follower steps > 999999999 or < -999999999
GOWHEN.. Error if: position > 999999999 or < -999999999
WAIT ...... Error if: position > 999999999 or < -999999999
•Error if a GO command is given in the preset positioning mode (MCØ) and:
FOLRN = zero
FOLMD = zero, or too small
(see Following chapter in the Programmer’s Guide)
INVALID FOLMAS SPECIFIED Following: An illegal master was specified in FOLMAS. A follower may never
use its own commanded position or feedback source as its master.
INVALID RATIO Following: Error if the FOLRN:FOLRD ratio after scaling is > 127 when a GO is
executed.
INVALID TASK IDENTIFIER Attempting to launch a PEXE or EXE command into the supervisor task (task 0).
LABEL ALREADY DEFINED Defining a program or label with an existing program name or label name.
MASTER SLAVE DISTANCE MISMATCH Attempting a preset Following move with a FOLMD value that is too small.
MAXIMUM COMMAND LENGTH EXCEEDED Command exceeds the maximum number of characters.
MAXIMUM COUNTS PER SECOND
EXCEEDED Velocity value is greater than 1,600,000 counts/sec.
MOTION IN PROGRESS Attempting to execute a command not allowed during motion (see Restricted
Commands During Motion section in the Programmer's Guide.)
Following: The FOLEN1 command was given while that follower was moving in
a non-Following mode.
NEST LEVEL TOO DEEP IFs, REPEATs, WHILEs, or GOSUBs nested greater than 16 levels (for each type).
www.comoso.com

Introduction 13
Programming Error Messages (continued)
Error Response Possible Cause
NO MOTION IN PROGRESS Attempting to execute a command that requires motion, but motion is not in
progress.
NO PATH SEGMENTS DEFINED Compiled Profile compilation error.
NO PROGRAM BEING DEFINED END command issued before a DEF command.
NOT ALLOWED IN PATH Compiled Profile path compilation error.
NOT VALID DURING FOLLOWING
MOTION A GO command was given while moving in the Following mode (FOLEN1) and
while in the preset positioning mode (MCØ).
NOT VALID DURING RAMP A GO command was given while moving in a Following ramp and while in the
continuous positioning mode (MC1). Following status (FS) bit #3 will be set to 1.
A FOLEN command was given during one of these conditions:
•During a shift (FSHFC or FSHFD)
•During a change in ratio (FOLRN/FOLRD)
•During deceleration to a stop
OUTPUT USED AS OUTFNC Attempting to change an output that is not an OUTFNCi-A output.
PROFILE ALREADY MOVING Compiled Profile compilation error.
PROFILE NOT COMPILED Attempting to execute a profile that has not been compiled.
STRING ALREADY DEFINED A string (program name or label) with the specified name already exists.
STRING IS ACOMMAND Defining a program or label that is a command or a variant of a command.
UNDEFINED LABEL Command issued to product is not a command or program name.
WARNING: POINTER HAS WRAPPED
AROUND TO DATA POINT 1During the process of writing data (DATTCH) or recalling data (DAT), the pointer
reached the last data element in the program and automatically wrapped
around to the first datum in the program.
WARNING: ENABLE INPUT INACTIVE ENABLE input is no longer connected to ground (GND).
WARNING: DEFINED WITH ANOTHER
TW/PLC Duplicate I/O in multiple thumbwheel definitions.
www.comoso.com

14 Gemini GV6K/GT6K Command Reference
Identifying Bad Commands
To facilitate program debugging, the Transfer Command Error (TCMDER) command allows you to transfer
the first command that the controller detects as an error. This is especially useful if you receive an error
message when running or downloading a program, because it catches and remembers the command that
caused the error.
Using Motion Planner: If you are typing the command in a live terminal emulator session, the controller
will detect the bad command and respond with an error message, followed by the ERRBAD error
prompt (?). If the bad command was detected on download, the bad command is reported
automatically (see example below).
NOTE: If you are not using Motion Planner, you'll have to type in the TCMDER command at the error
prompt to display the bad command.
Once a command error has occurred, the command and its fields are stored and system status bit #11
(reported in the TSSF, TSS and SS commands) is set to 1. The status bit remains set until the TCMDER
command is issued.
Example Error Scenario:
1. In Motion Planner's program editor, create and save a program with a programming error:
DEL badprg ; Delete a program before defining and downloading
DEF badprg ; Begin definition of program called badprg
MA1 ; Select the absolute preset positioning mode
A25 ; Set acceleration
AD11 ; Set deceleration
V5 ; Set velocity
VAR1=0 ; Set variable #1 equal to zero
GO1 ; Initiate move
IF(VAR1<)16 ; MISTYPED IF STATEMENT - should be typed as "IF(VAR1<16)"
VAR1=VAR1+1 ; If variable #1 is less than 16, increment the counter by 1
NIF ; End IF statement
END ; End programming of program called badprg
2. Using Motion Planner's terminal emulator, download the program to the Gem6K Series product. Notice
that an error response identifies the bad command as an “INCORRECT DATA” item and displays it:
> *NO ERRORS
*INCORRECT DATA
> *IF(VAR1<)16
www.comoso.com

Introduction 15
S-Curve Acceleration/Deceleration Profiling
The Gem6K allows you to perform S-curve move profiles, in addition to the usual trapezoidal profiles.
S-curve profiling provides smoother motion control by reducing the jerk (rate of change) in acceleration
and deceleration portions of the move profile (see drawing below). Because S-curve profiling reduces jerk,
it improves position tracking performance, especially in linear interpolation applications.
Decel Accel
Time
Decel Velocity
Time
Trapezoidal
Accel
Time
Velocity
Time
S-Curve
Maximum Jerk Less Jerk
S-Curve Programming Requirements
To program an S-curve profile, you must use the average accel/decel commands provided in the Gem6K
programming language. For every maximum accel/decel command (e.g., A, AD, HOMA, HOMAD, JOGA,
JOGAD, etc.) there is an average command for S-curve profiling (see table below).
Maximum Accel/Decel Commands:
Command Function Average (“S-Curve”) Accel/Decel Commands:
Command Function
A Acceleration AA Average Acceleration
AD Deceleration ADA Average Deceleration
HOMA Home Acceleration HOMAA Average Home Acceleration
HOMAD Home Deceleration HOMADA Average Home Deceleration
JOGA Jog Acceleration JOGAA Average Jog Acceleration
JOGAD Jog Deceleration JOGADA Average Jog Deceleration
JOYA Joystick Acceleration JOYAA Average Joystick Acceleration
JOYAD Joystick Deceleration JOYADA Average Joystick Deceleration
LHAD Hard Limit Deceleration LHADA Average Hard Limit Deceleration
LSAD Soft Limit Deceleration LSADA Average Soft Limit Deceleration
Determining the S-Curve Characteristics
The command values for average accel/decel (AA, ADA, etc.) and maximum accel/decel (A, AD, etc.) determine
the characteristics of the S-curve. To smooth the accel/decel ramps, you must enter average accel/decel
command values that satisfy the equation ½ A ≤AA <A , where A represents maximum accel/decel and
AA represents average accel/decel. Given this requirement, the following conditions are possible:
www.comoso.com

16 Gemini GV6K/GT6K Command Reference
Acceleration Setting Profiling Condition
AA > ½ A, but AA < A S-curve profile with a variable period of constant acceleration. Increasing the AA value above
the pure S-curve level (AA > ½ A), the time required to reach the target velocity and the target
distance is decreased. However, increasing AA also increases jerk.
AA =½ A Pure S-curve (no period of constant acceleration—smoothest motion).
AA =A Trapezoidal profile (but can be changed to an S-curve by specifying a new AA value less than A).
AA < ½ A; or AA > A When you issue the GO command, the move will not be executed and an error message,
*INVALID CONDITIONS FOR S_CURVE ACCELERATION—FIELD n, will be displayed.
AA =zero S-curve profiling is disabled. Trapezoidal profiling is enabled. AA tracks A. (Track means the
command’s value will match the other command’s value and will continue to match whatever
the other command's value is set to.) However, if you enter an average decel command (e.g.,
ADA, HOMADA, etc.) equal to zero, you will receive the “INVALID DATA-FIELD n” error.
AA ≠zero and AA ≠A S-curve profiling is enabled only for standard moves. All subsequent standard moves for that
axis must comply with this equation: ½ A ≤AA <A.
AA > ½ A Average accel/decel is raised above the pure S-curve level; this decreases the time required to
reach the target velocity and distance. However, increasing AA also increases jerk. After
increasing AA, you can reduce jerk by increasing A, but be aware that increasing A requires a
greater torque to achieve the commanded velocity at the mid-point of the acceleration profile.
No AA value ever entered Profile will default to trapezoidal. AA tracks A.
If you never change the A or AA deceleration commands, AA deceleration will track AA acceleration.
However, once you change A deceleration, AA deceleration will no longer track changes in AA acceleration.
For example, if you never change the AD or ADA command values, ADA will track the AA command value. But
once you change AD, the ADA command value will no longer track the changes in the AA command value.
Calculating Move Times. The calculation for determining S-curve average accel and decel move times is
as follows (calculation method identical for S-curve and trapezoidal moves):
Time = Velocity
Aor Time = 2 Distance
A
avg avg
∗
Scaling affects the AA average acceleration (AA, ADA, etc.) the same as it does for the A maximum
acceleration (A, AD, etc.). See page 19 for details on scaling.
NOTE: Equations for calculating jerk are provided on page 17.
Programming Example (see move profile drawings below)
; In this example, prog1 executes a pure S-curve and takes 1 second
; to reach a velocity of 5 rps; prog2 executes a trapezoidal profile
; and takes 0.5 seconds to reach a velocity of 5 rps.
SCALE0 ; Disable scaling
DEL Prog1 ; Delete program called prog1
DEF Prog1 ; Begin definition of prog1
MA0 ; Select incremental positioning mode
D40000 ; Set distance to 40,000
A10 ; Set max. accel to 10 revs/sec/sec
AA5 ; Set avg. accel to 5 revs/sec/sec
AD10 ; Set max. decel to 10 revs/sec/sec
ADA5 ; Set avg. decel to 5 revs/sec/sec
V5 ; Set velocity to 5 revs/sec
GO1 ; Execute motion
END ; End definition of prog1
DEL Prog2 ; Delete program called prog2
DEF Prog2 ; Begin definition of prog2
MA0 ; Select incremental positioning mode
D40000 ; Set distance to 40,000
A10 ; Set max. accel to 10 revs/sec/sec
AA10 ; Set avg. accel to 10 revs/sec/sec
AD10 ; Set max. decel to 10 revs/sec/sec
ADA10 ; Set avg. decel to 10 rev/sec/sec
V5 ; Set velocity to 5 revs/sec
GO1 ; Execute motion
END ; End definition of program #2
S-Curve
Trapezoidal
0T
123
0T
V
V
123
Move profiles
www.comoso.com

Introduction 17
Calculating Jerk
V
2
A
(Programmed Accel)
V
(Programmed Velocity)
V
1
t
1
t
2
t
3
Zero Velocity
Zero Acceleration
Ø
(zero)
A B C
Rules of Motion:
Jerk dt
da
=
adt
dv
=
vdt
dx
=(x = distance)
Assuming the accel profile starts
when the load is at zero velocity and
the ramp to the programmed velocity
is not compromised:
A
2
*AA
V (A-AA)
Jerk = JA=
A = programmed acceleration
(A, AD, HOMAD, etc.)
AA = average acceleration
(AA, ADA, HOMAA, etc.)
V = programmed velocity
(V, HOMV, etc.)
A
JA
t1=
V
AA -
t2= A
JA
V
AA
t3=
NOTE: t3- t2= t1
2
JA*t1
2
V1= 2 *JA
A
2
=
V2= V - 2 *JA
A
2
A
t1≥t ≥Ø a (t) = JA*t
2
JA*t
2
v (t) =
6
JA*t
3
d (t) =
Bt2≥t > t1a (t) = A
2JA
A
2
v (t) = + A * (t - t1)
6
JA*t1
3
d (t) = + + V1*(t - t1)
2
A *(t - t1)
2
Ct3≥t > t2a (t) = A - (JA*(t - t2))
v (t) = V - 2
JA*(t3- t)
2
2AA
V
2
d (t) = + - V *(t3- t)
6
JA(t3- t)
3
Starting at a Non-Zero Velocity: If starting the acceleration profile with a non-zero
initial velocity, the move comprises two components: a constant velocity component, and
an s-curve component. Typically, the change of velocity should be used in the S-curve
calculations. Thus, in the calculations above, you would substitute “(VF- VO)” for “V”
(VF= final velocity, VO= initial velocity). This is shown in the jerk equation (right).
A
2
*AA
(VF- VO) (A-AA)
Jerk = JA=
a(t) = acceleration at time t
v(t) = velocity at time t
d(t) = distance at time t
www.comoso.com

18 Gemini GV6K/GT6K Command Reference
Units of Measure and Scaling
Units of Measure without Scaling
Scaling is disabled (SCALEØ) as the factory default condition:
•Stepper axes: All distance values entered are in commanded counts (sometimes referred to as motor
steps), and all acceleration, deceleration and velocity values entered are internally multiplied by the
DRES command value.
•Servo axes: Units of Measure
Motion Attribute Encoder or Resolver
Accel/Decel Revs/sec/sec *
Velocity Revs/sec *
Distance Counts **
* All accel/decel & velocity values are internally multiplied by the ERES command value.
** Distance is measured in the counts received from the feedback device.
What is Scaling?
Scaling allows you to program acceleration, deceleration, velocity, and position values in units of measure
that are appropriate for your application. The SCALE command is used to enable or disable scaling
(SCALE1 to enable, SCALEØ to disable). The motion type(s) you are using in your application determines
which scale factor commands you need to configure:
Type of Motion Accel/Decel Scaling Velocity Scaling Distance Scaling
Standard Point-to-Point Motion SCLA SCLV SCLD
Following SCLA SCLV SCLD for follower distances
SCLMAS for master distances
When Should I Define Scaling Factors?
Scaling calculations are performed when a program is defined or downloaded. Consequently, you must
enable scaling (SCALE1) and define the scaling factors (SCLD, SCLA, SCLV, SCLMAS) prior to defining
(DEF), uploading (TPROG), or running (RUN) the program. NOTE: All scaling settings (SCALE, SCLA,
SCLD, SCLV and SCLMAS) are automatically saved in the Gem6K’s battery-backed RAM.
RECOMMENDED: Place the scaling commands at the beginning of your program file, before the location
of any defined programs. This ensures that the motion parameters in subsequent programs in your program
file are scaled correctly. When you use Motion Planner’s scaling setup wizard, the scaling commands are
automatically placed in the appropriate location in your program file.
ALTERNATIVE: Scaling factors could be defined via a terminal emulator just before defining or
downloading a program. Because scaling command values are saved in battery-backed RAM (remembered
after you issue a RESET command or cycle power to the Gem6K), all subsequent program definitions and
downloads will be scaled correctly.
NOTES
•Scaling commands are not allowed in a program. If there are scaling commands in a program, the Gem6K
will report an error message (“COMMAND NOT ALLOWED IN PROGRAM”) when the program is downloaded.
•If you intend to upload a program with scaled motion parameters, be sure to use Motion Planner. Motion
Planner automatically uploads the scaling parameters and places them at the beginning of the program file
containing the uploaded program from the Gem6K. This ensures correct scaling when the program file is later
downloaded.
www.comoso.com
This manual suits for next models
1
Table of contents