Notprotoe10v6us R03
Notprotoe10v6us R03
e10-V6
www.sic-marking.com
NOTPROTOE10V6US-R03
CONTENTS
3 - BINARY PROTOCOL.......................................................................................................................................................... 15
a) String to be sent : ......................................................................................................................................................... 15
b) The control response to all commands: ........................................................................................................................ 15
c) Commands list : ............................................................................................................................................................ 16
d) Commun functions :...................................................................................................................................................... 16
LOAD FILE Code 'c' (0x63 in hexadecimal) ................................................. 16
FILE SET VAR Code '7' (0x37 in hexadecimal) ............................................... 17
START MARKING Code 'g' (0x67 in hexadecimal) .............................................. 17
RESET_ERREUR Code 'E' (0x45 in hexadecimal) ............................................... 17
e) managing files functions ............................................................................................................................................... 17
NEW_FILE Code 'f' (0x66 in hexadecimal) ................................................. 17
INSERT_LINE_TO_FILE Code 'l' (0x6C in hexadecimal) ........................................ 18
FILE_SET_OPTION Code 'o' (0x6F in hexadecimal) Marking file Option ........................ 19
LINE_SET_OPTION Code 'a' (0x61 in hexadecimal) last line of marking file Option ........... 19
SAVE_FILE Code 'e' (0x65 in hexadecimal) ................................................. 19
FILE LIST Code 'L' (0x4C in hexadecimal) ................................................. 19
PC_TO_E6 Code 'G' (0x47 in hexadecimal) ................................................. 20
E6_TO_PC Code 'S' (0x53 in hexadecimal) ................................................. 21
DEL_FILE Code 'D' (0x44 in hexadecimal) ................................................. 21
f) File options definition: .................................................................................................................................................. 22
Diameter Option Setting the part diameter ( for the D-Axis use only ) ..................... 22
Comment Option Setting the file comment (free text) ........................................ 22
g) Last marking file line option description : ................................................................................................................... 22
Attribut option Pritable setting ........................................................... 22
Indexor Option D-axis setting .............................................................. 22
h) Manual programming................................................................................................................................................... 23
ORIGINE Code 'H' (0x48 in hexadecimal).................................................... 23
IMPACT Code 'P' (0x50 in hexadecimal).................................................... 23
SET_OUPUT Code 'Z' (0x5A in hexadecimal) ................................................. 23
1 - General information
Guide conventions:
The following typographical conventions are used throughout this manual.
Text in [] is a data, it is written with one byte
Text in [...(n byte)] is a data, it is written with n bytes
Text in <> is a group of data
A char in ‘’ is written as itself, for example, ‘1’ is the 49 ASCII code, ‘A’ is the 65 ASCII code.
Examples:
[0x41] is the 65 ASCII code (in decimal base), which is the letter A
[0x42] is the ASCII code 42 in hexadecimal base, which is the letter B
[ETX] is ASCII code ETX (0x02 in hexadecimal base)
- BINARY Protocol: data are compact and written using the full ASCII table
--> no limits for the data
--> the string to be transferred is compact (fast communication)
--> data are coded, it is not easily readable
Remark: For historical compatibility, you can use the communication protocol of 4A version
(see the end of document)
where
<Command> is the command code
<Data> is the data of the command ( without Space char)
[CR] is the 0x0D char ( obsolet )
[LF] is the 0x0A char
c) Commun fuctions
These functions let you select a marking file in the controller, affect variables and run the marking cycle.
LOADFILE load a marking file
Syntaxe :
Answer :
LOADFILE OK[CR][LF] OK
LOADFILE ERROR [CR][LF] file not found
Data :
Example :
String to send :
LOADFILE MYFILE[LF]
String received:
LOADFILE OK[CR][LF] the file MYFILE is loaded
LOADFILE ERROR[CR][LF] the file MYFILE is not found
Syntaxe :
Answer :
SETVAR OK[CR][LF] OK
SETVAR VAR NOT FOUND [CR][LF] variable introuvable
Data :
Example :
String to send : setting the value 53H805 to the var named OF
SETVAR OF 53H805[LF]
String received:
SETVAR OK[CR][LF]
RUN <Simulation>
Answer :
Data :
Simulation (optonnal)
Marking at force 0 if “Simulation”, else marking at normal force
Erri if an error occurse, see fig 1 on annexe
Note :
If there is PAUSE in the marking file :
At a PAUSE line, the control send the char P [0x50] and wait for :
- response p [0x70] from RS232,
- or the Start button to be pressed,
to continue the marking,
Example :
Start marking
String to send :
RUN[LF]
String received:
RUN OK[CR][LF] start of marking
[EOT] last dot marked
[NAK][0x00][0x88][0x00] Error : 88 = 80 + 8 = Z axis + Error Sensor : Z axis is not at home position
Start a simulation
String to send :
RUN SIMULATION[LF]
String received:
RUN OK[CR][LF] start of marking
[EOT] last dot marked
[ENQ] End of simulation OK
Syntaxe :
RESETERROR [CR][LF]
Answer :
RESETERROR OK[CR][LF]
With these functions, you will be able to transfer all marking parameters :
First, create a free file using NEWFILE command, then insert the line with the INSERT*LINE function, then you
can save the file for a later use with the SAVEFILE command or run the cycle with the RUN command.
NEWFILE create a new marking file
Syntaxe :
NEWFILE <Marking speed> <Fast speed> <Crossed zero> <File name> [CR][LF]
Answer :
NEWFILE OK[CR][LF] OK
NEWFILE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
Marking speed from 1 to 9
Fast speed from 1 to 9
Crossed zero 0 for zero not crossed, 1 for crossed zero
File name (optional) 11 char max, in upper case
Example :
String to send :
NEWFILE 5 7 0 MYFILE[LF]
String received:
Answer :
SETFILEOPTION OK[CR][LF] OK
SETFILEOPTION BAD ARGUMENTS [CR][LF] errors in parameters
Data :
Dismater the part diameter in 10th of mm
Answer :
INSERTTEXTLINE OK[CR][LF] OK
INSERTTEXTLINE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
X, Y, Z Coordonate of the line, in tenth of mm
W, H Width and height of the chars, in tenth of mm
Angle In hundredth of degrees from –18000 to 18000
Radius In tenth of mm
Space space between chars ( from 0 to 50 )
Force From 0 to 9
Quality From 1 to 9
Text Text to be marked
Example : Line at X=10mm, Y=12mm, 5x7mm chars at force 5, quality double, text=HELLO WORLD
String to send :
INSERTTEXTLINE 100 120 0 50 70 0 0 2 5 2 HELLO WORLD[LF]
String received:
INSERTTEXTLINE OK[CR][LF]
Answer :
INSERTPAUSELINE OK[CR][LF] OK
INSERTPAUSELINE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
X, Y, Z Coordonate of the line, in tenth of mm
Syntaxe :
INSERTLOGOLINE <X> <Y> <Z> <W> <H> <Angle> <Radius> <Prop.> <Force> <Quality> <Type> <Logo> [CR][LF]
Answer :
INSERTLOGOLINE OK[CR][LF] OK
INSERTLOGOLINE BAD ARGUMENTS [CR][LF] errors in parameters
Example : Vectorial logo named SIC at X=10mm, Y=12mm, 10x10mm chars at force 5, quality 4, text=HELLO WORLD
String to send :
INSERTLOGOLINE 100 120 0 100 100 0 0 1 5 4 V SIC[LF]
String received:
INSERTLOGOLINE OK[CR][LF]
Syntaxe :
INSERTECC200LINE <X> <Y> <Z> <W> <H> <Angle> <Format> <Force> <Ref> <Speed> <Text> [CR][LF]
Answer :
INSERTECC200LINE OK[CR][LF] OK
INSERTECC200LINE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
X, Y, Z Coordonate of the line, in tenth of mm
W, H Width and height of the chars, in tenth of mm
Angle In hundredth of degrees from –18000 to 18000
Format format of the DataMatrix from 0 to 16 :
0 = AutoSquare, 1=AutoRectangular, 2= "10x10", 3="12x12", 4="14x14", 5="16x16", 6="18x18", 7="20x20", 8="22x22",
9="24x24", 10="26x26", 11=" 8x18", 12=" 8x32", 13="12x26", 14="12x36", 15="16x36", 16="16x48"
Force From 0 to 9
Ref 0 for simple reference, 1 for double reference
Speed From 1 to 9
Text Text to be marked
Example : Ecc200 at X=15mm, Y=14mm, 10x10mm chars at force 5, Simple reference, speed=3, text to encode=HELLO WORLD
String to send :
INSERTECC200LINE 150 140 0 100 100 0 0 5 0 3 HELLO WORLD[LF]
String received:
INSERTECC200LINE OK[CR][LF]
Syntaxe :
INSERTAUTOZLINE <X> <Y> <1st dot> <DZ> <Zmin> <Zmax >[CR][LF]
Answer :
INSERTAUTOZLINE OK[CR][LF] OK
INSERTAUTOZLINE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
X, Y Coordonate of the line, in tenth of mm
1st dot “1” for YES and “0” for NO
DZ Stylus/Workpiece marking distance, in tenth of mm ( fom 0mm to 9.9 mm)
Zmin, Zmax minimum move and maximum move, in tenth of mm
Example : Auto Sensing at 1st dot with part between 50mm and 60 mm and a Stylus/Workpiece marking distance of 6mm
String to send :
INSERTAUTOZLINE 100 120 1 60 500 600[LF]
String received:
INSERTAUTOZLINE OK[CR][LF]
Example : running a new file with one AutoZ and marking the text AZERTY
NEWFILE 5 7 0[LF]INSERTAUTOZLINE 100 120 1 60 500 600[LF]
INSERTTEXTLINE 100 100 0 50 50 0 0 2 2 2 AZERTY[LF]RUN[LF]
Syntaxe :
Answer :
INSERTMOVEZLINE OK[CR][LF] OK
INSERTMOVEZLINE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
X, Y Coordonate of the line, in tenth of mm
DZ relative coordonate from urrent Z position
A negative value moves the head up
A positive value moves the head toward the part
Example : move 10 mm up
String to send :
INSERTMOVEZLINE 100 100 -100[LF]
String received:
INSERTMOVEZLINE OK[CR][LF]
Syntaxe :
INSERTROTATIONLINE <X> <Y> <Anle> <PASS TO XY>[CR][LF]
Answer :
INSERTROTATIONLINE OK[CR][LF] OK
INSERTROTATIONLINE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
X, Y Coordonate of the line, in tenth of mm
Angle In hundredth of degrees from –18000 to 18000
Pass to XY 1 : the marking head goes to XY coordonate before executug the rotation,
0 : the rotation is made without movong the marking head
SETLINEOPTION Set options for the last inserted line of the current file
Syntaxe :
SETLINEOPTION <FontName>[CR][LF]
SETLINEOPTION <FontName> <Inclination>[CR][LF]
SETLINEOPTION <FontName> <Inclination> <Orientation>[CR][LF]
SETLINEOPTION <FontName> <Inclination> <Orientation> <Mirror>[CR][LF]
SETLINEOPTION <FontName> <Inclination> <Orientation> <Mirror> <Center>[CR][LF]
SETLINEOPTION <FontName> <Inclination> <Orientation> <Mirror> <Center> <His>[CR][LF]
SETLINEOPTION <FontName> <Inclination> <Orientation> <Mirror> <Center> <His> <Speed>[CR][LF]
Answer :
SETLINEOPTION OK[CR][LF] OK
SETLINEOPTION BAD ARGUMENTS [CR][LF] errors in parameters
Data :
FontName OCR, OCRA, COURIER, ARIAL
Inclination from -120 to 120
Orientation 0:
1:
2:
3:
Mirror 0:
1:
2:
Center 0 : No
1 : Yes
His 0 : No
1 : Yes
Speed from 1 to 9
Syntaxe :
SAVEFILE <File name> [CR][LF]
Answer :
SAVEFILE OK[CR][LF] OK
SAVEFILE BAD ARGUMENTS [CR][LF] errors in parameters
Data :
File name (optional) 11 char max, in upper case
Example :
String to send :
SAVEFILE MYFILE[LF]
String received:
SAVEFILE OK[CR][LF]
Data :
File name File name to delete in upper case, up to 11 chars
File kind : 2 = for a marking file
4 = for a dot logo
5 = for a vectorial logo
Syntaxe :
HOMEPOSITION <Motors>
Answer :
HOMEPOSITION OK[CR][LF]
HOMEPOSITION ERROR <Err1> <Err2> <Err3>[CR][LF]
Data :
Motors (optionnal)
1 : X motor only 2 : Y motor only
3 : X et Y motors 4 : Z motor only
7 : X, Y and Z motors
<Erri> if an error occurse, see fig 1 on page 6
After resolving the probleme,clear the error and go back to home position for Z
String to send :
RESETERROR[CR][LF]HOMEPOSITION 4[CR][LF]
String received:
RESETERROR OK[CR][LF]
HOMEPOSITION OK[CR][LF]
Syntaxe :
IMPACT <Speed> <X> <Y> <Z> <Force> [CR][LF]
Answer :
IMPACT OK[CR][LF] OK
IMPACT ERROR <Err1> <Err2> <Err3>[CR][LF] Error
Data :
Speed marking speed : de ‘1’ à ‘9’
X, Y, Z Coordonate from home position de l’impact en Pas
Force Force of impact : from ‘0’ to‘9’ ( dot marking machine )
Or stylus position : ‘0’ for up, and ‘1’ for down ( scratching machine )
Erri if an error occurse, see fig 1 on page 6
Example :
String to send :
IMPACT 5 500 500 0 6[LF]
String received:
IMPACT OK[CR][LF] OK
String to send :
IMPACT 5 500 -500 0 6[LF]
String received:
IMPACT ERROR 0 80 0[CR][LF] error : 80 = 64 + 16 = Y axis error + out of bound error
f) settings functions
These functions let you access to system functions of the controller, as setting the date-time, setting global variables,
get the program version.
SETSHIFTINCVAR setting settting a shift increment to the current file
Syntaxe :
SETSHIFTINCVAR < Increment name > <Shift> < Value >[CR][LF]
Answer :
SETSHIFTINCVAR OK[CR][LF] OK
SETSHIFTINCVAR VAR NOT FOUND [CR][LF] not found
Data :
Increment name in upper case
Shift shift number
Value caution, the value is the decimal value of the increment.
Example : setting the value12 for the first shift to the increment named NB_PART
String to send :
SETSHIFTINCVAR NB_PART 1 12[LF]
String received:
SETSHIFTINCVAR OK[CR][LF]
Syntaxe :
SETGLOBALVAR <Number> <Value>[CR][LF]
Answer :
SETGLOBALVAR OK[CR][LF] OK
Data :
Number number of the global var ( from 1 to 10)
Value Value to set
Syntaxe :
Answer :
SETGLOBALINC OK[CR][LF] OK
Data :
Example :
String to send :
GETVERSION [LF]
String received:
GETVERSION 5-0b4[CR][LF]
Response :
GETDATETIME <Year> <Month> <Day> <Hour> <Minutes> <Secondes>
Year 4 digits
Month, Day, Hour, Minutes, Secondes written with 2 digits, with a zero on the left if necesary
Data :
Control code CheckSum : In order to detect a possible error in the transmission, the CheckSum is calculated depending on the string sent by the
main system and receptioned by the machine. If the string has been correctly transmitted, the code calculated by the marking machine is the same
as the code sent by the main system..
The CheckSum corresponds to an "EXCLUSIVE OR" of all codes transmitted in the string, including the STX code and the ETX code.
String (a) : [STX][NULL][Version]<Command 1><Command 2>...<Command n>[ETX]
String (b) : [STX][Version]<Command 1>...<Command n>[ETX][Check-sum]
Syntax of a Command:
A command is build with :
The command code ( written with 1 byte )
The size of the data ( a 16-bit integer Written with 2 bytes)
The data ( written with n bytes).
The command code can be any value of the ASCII table between [0x04] and [0xFF]
Any byte of data can take any value of the ASCII code
If you do not wish to specify the size of the data, you can format the command using a break-code :
The command code ( written with 1 byte )
The ASCII code 255 to specify you are using a break code ( written with 1 byte )
The break-code ( written with 1 byte )
The data ( written with n bytes)
Make sure that the data do not have the break-code inside
Conventions :
Green : start and end of the string
Blue : Command code
pink : Data size
Yellow : Data
- when the string is correct, the control respond to all commands with the following string.
String sent by control : [STX]<Command 1 answer>< Command 2 answer>...< Command n answer>[ETX]
The command are built : [original command code][answer size(2 bytes)][anwer(n bytes)]
In many cases, the anwer is the return code of the execution of the command :
[original command code][0x00][0x01][return code (1 byte)]
the [return code] can be one of the following value
[ACK] successful
[HT] wrong data syntax
[BEL] file not found
[LF] Variable not found
- Commun fuctions :
These functions let you select a marking file in the controller, affect variables and run the marking cycle.
- Settings functions:
These functions let you access to system functions of the controller, as setting the date-time, setting global
variables, get the program version, get the machine configuration.
Command name Command code Description
RESTART '*' restart the control
SYNCHRO_DATEHEURE 'h' set the control date/time
VITESSE_COM 'v' change speed of a control communication port
GET_OPTION '1' \
SET_OPTION '2' } control option management
DEL_OPTION '3' /
RELOAD_CONFIG 128 \
GET_MACHINE 129 } Machine management
GET_CONFIG_MACHINE 130 /
d) Commun functions :
LOAD FILE Code 'c' (0x63 in hexadecimal)
Example :
Loading file named TEST
[0x02][0x00][0x35][0x63][0x00][0x04]TEST[0x03]
a b c d e f g
a b c d e f g h i
Setting an incrementation named SERIAL_NUM with value 24568
[0x02][0x00][0x35][0x37][0x00][0x0F]SERIAL_NUM=[0x00][0x00][0x5F][0xF8][0x03]
a b c d e’ f g i
a = Start of Text [STX] b = Desable check-sum
c = Protocol version d = Command code
e = break-code setting e’ = size
f = Name de la variable g = value
h = break-code i = End of text [ETX]
Data = no data
Answer = [Return code (1)]
You must reset the error if the machine status show errors (see fig 1 at the end of the document)
Data = [Marking speed(1)][ fast speed (1)][ crossed zero (1)][File name (0 to 11 bytes)]
Answer = [Return code (1)]
Marking speed : speed from [0x01] to [0x09] ( or ‘1’ to ‘9’ )
Fast speed speed from [0x01] to [0x09] ( or ‘1’ to ‘9’ )
Crossed zero '1', '0', 1, ou 0
Example :
New file named MY_FILE, with marking speed 4 ,fast speed 8 and zero not crossed
[0x02][0x00][0x35][0x66][0x00][0x0A][0x04][0x08][0x00]MY_FILE[0x03]
a b c d e f g h i
new file, with marking speed 6 ,fast speed 9 and zero crossed
[0x02][0x00][0x35][0x66][0x00][0x03][0x06][0x09][0x01][0x03]
a b c d e f g i
a = Start of Text [STX] b = Desable check-sum
c = Protocol version d = Command code
e = Data size f = speed
g = crossed zero h = File name
i = End of text [ETX]
Data = [X (2)][Y (2)][Z (2)][W (2)][H (2)][Esp (1)][F (1)][Qua (1)][Kind (1)][Text (0 to 127 bytes)]
Answer = [Return code(1)]
X, Y, Z : a 16-bit signed integer (in thenth of mm)
W, H : a 16-bit signed integer (in thenth of mm)
E : space between char : a 8-bit integer from [0x00] to [100]
F : Force of impact : from [0x00] to [0x09]
Qua : Quality of marking from [0x01] to [0x09]
Kind and Text : See below :
Kind text zone format
[0x00] for Text [Font kind (1)][Font name (11)][Reserved(1)][Text(0 to 114 bytes)]
Font kind = [129] for Font_9x13 (OCR and OCRA), and [131] for Font_TT ( COURIER and ARIAL )
Font name = File name of the font written with 11 bytes, padding with NULL char to the right
Reserved = a NULL char
Text = text to print, can include variables, date-time, shift, ….
[0x01] for Logo [Logo kind (1)][Prop(1)][Reserved(1)][Logo name(11)][Reserved(1)]
Logo kind = [0x04] for dot logo, and [0x05] for vectorial logo
prop = [0x01] to keep proportion of the logo Width and Height, [0x00] to stretch the logo to W and H
Reserved = a NULL char
Logo name = File name of the logo Written with 11 bytes, padding with NULL char to the right
[0x02] for Ecc200 [Format(1)][ Text(0 to 126 bytes)]
Format = [0x00] Auto-Square, [0x01] Auto-Rectangle
Text = text to print, can include variables, date-time, shift, ….
[0x03] for RS232 [Port(1)][Stop][TimeOut(2 bytes)][S-Send][S-Resp][Send][Response]
Port = [0x00] for the SERAIL port et [0x01] for the HOST port
Stop = [0x01] Stop marking if timeout is reached before the response is received, [0x00] go to next line after time-out or respose received
TimeOut = in mili-seconds : a 16-bit integer, the most significant byte to the left.
S-Send = size of the text to send : a 8-bit integer
S-Resp = size of the text of the response to wait for: a 8-bit integer
Send = text to send, can include variables, date-time, shift, ….
Response = Response to wait for, can include variables, date-time, shift, ….
[0x04] for I/O managing [Output(1)][Val(1)][Action(1)][Input(1)][Val(1)][Delay(2)][Stop[0x01])
Output = Output number to set : [0x01] to [9 ] , [0x00] for none
Val = Value of the output to set : [0x01] Output is close, [0x00] output is open
Action = [0x01] Set the output to the oposit stat of Val at the end.
Input = Input number to scan : [0x01] to [9 ] , [0x00] for none
Delay = in mili-seconds : a 16-bit integer, the most significant byte to the left.
Stop = [0x01] Stop marking if timeout is reached before the response is received, [0x00] go to next line after time-out or response received
[0x05] for Pause No data
At a PAUSE line, the control send the char P [0x50] and wait for :
{ - response p [0x70] from RS232
- or the Start button to be pressed
, to continue the marking,
1st dot = [0x01] to do the Autosensing at the first impact, [0x00] to do the Autosensing at the XY coordonate of that line.
Dz = from [0x01] to [0x63] : Stylus/part distance in 10th of mm
Dmax = Maximum move in 10th of mm
the Dmin move is set in the Z filed
Examples :
a b c X Y Z L H E F Q T
[0x81]OCR[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]SIC-MARKING[0xFF][0x03]
1 2 3 4 d e
a b c X Y Z L H E F Q T
[0x05][0x01][0x00]SIC[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0xFF][0x03]
5 6 3 7 3 d e
a b c X Y Z L H E F Q T
[0x00]FABRIQUE LE : #(DD) #(M) #(AAAA)[0xFF][0x03]
8 4 d e
a b c X Y Z L H E F Q T
[0x07][0x01][0x01][0x00][0x00][0x00][250][0x00][0xFF][0x03]
10 d e
MoveZ de 20mm
[0x02][0x00][0x35][0x6C][0xFF][0xFF][0x00][0x00][0x00][0x00][0x00][0xC8][0x00][0x63][0x00][0x63][0x02][0x05][0x08][0x07]
a b c X Y Z L H E F Q T
[0xFF][0x03]
d e
a b c X Y Z L H E F Q T
[0x01][0x0F][0x01][0xC2][0xFF][0x03]
11 DZ Dma d e
LINE_SET_OPTION Code 'a' (0x61 in hexadecimal) last line of marking file Option
Example :
Saving current file to MY_FILE2
[0x02][0x00][0x35][0x65][0x00][0x08][0x4D][0x59][0x5F][0x46][0x49][0x4C][0x45][0x32][0x03]
a b c d e f g
a = Start of Text [STX] b = Desable check-sum
c = Protocol version d = Command code
e = Data size f = File name
g = End of text [ETX]
a b c d e f g h i
Answer string:
- When there is two files TEST : one marking file of 77 bytes, and one DOT LOGO file of 520 bytes
[0x02][0x00][0x35][0x4C][0x00][0x26]
a b c d e
[0x54][0x45][0x53][0x54][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x02][0x00][0x4D][0x00][0x00][0x00][0x00]
[0x54][0x45][0x53][0x54][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x04][0x02][0x08][0x00][0x00][0x00][0x00][0x03]
f g h j g i
- When there is no file TEST
[0x02][0x00][0x35][0x4C][0x00][0x00][0x03]
a b c d e i
a = Start of Text [STX] b = Desable check-sum
c = Protocol version d = Command code
e = Data size f = File name
g = reserved h = File kind
i = End of text [ETX] j = File size
Example :
[0x02][0x00][0x35][0x47][0x02][0x22]
a b c d e
[0x54][0x45][0x53][0x54][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x02][ File contents (533)][0x03]
f g h j i
a = Start of Text [STX] b = Desable check-sum
c = Protocol version d = Command code
e = Data size ( 13 for file name + 533 for contents file = 546 with is 0x02 0x22 in bytes) f = File name
g = reserved h = File kind
i = End of text [ETX] j = File contents
Example :
W H X1 Y1 X2 Y2 X3 Y3
Example :
String to send :
[0x02][0x00][0x35][0x53][0x00][0x0D]
a b c d e
[0x54][0x45][0x53][0x54][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x02][0x03]
f g h i
Answer string:
- When the TEST file has been found
[0x02][0x00][0x35][0x53][0x02][0x22]
a b c d e
[0x54][0x45][0x53][0x54][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x02][File contents(533)][0x03]
f g h j i
- When there is not TEST file
[0x02][0x00][0x35][0x53][0x00][0x00][0x01][0x03]
a b c d e
Example :
[0x02][0x00][0x35][0x44][0x00][0x0D]
a b c d e
[0x54][0x45][0x53][0x54][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x02][0x03]
f g h i
Example :
Home position for X, Y et Z
[0x02][0x00][0x35]H[0x00][0x00][0x03]
Data = [Speed(1)] ( [X1(4)] [Y1(4)] [Z1(4)] [F1(1)] ) ( [X2(4)] [Y2(4)] [Z2(4)] [F2(1)] ) …
Answer = [machine status (3)]
Vitesse : marking speed from [0x01] to [0x09]
Xi : X coordonate of impact number i ( a 32 bit signed integer, the most significant byte to the lest) in step
Yi : Y coordonate of impact number i ( a 32 bit signed integer, the most significant byte to the lest) in step
Zi : Z coordonate of impact number i ( a 32 bit signed integer, the most significant byte to the lest) in step
Fi : - force of impact ([0x00]=no impact, [0x09]=maximum impact) for percussion machine,
- [0x01] Stylus Up, [0x00] = Stylus Down for scratching machine.
Data = none
Answer = [Input status (1)]
i) Settings functions
RESTART Code '*' (0x2A in hexadecimal)
Data = no data
Answer = [Return code(1)]
Example :
[0x02][0x00][0x35]*[0x00][0x00][0x03]
Example :
[0x02][0x00][0x35]h[0x00][0x13]2003-05-14 14:02:31[0x03]
a b c d e f g
a = Start of Text [STX] b = Desable check-sum
c = Protocol version d = Command code
e = Data size ( 19 ) f = Date-Time
g = End of text [ETX]
Data = [Port(1)][Speed(1)]
Answer = [Return code(1)] then serial port change speed
you must wait 0.5 second before using the serial port again
[0x02][0x00]52[0x00][0x0D]MP62[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]3[0x00][0x01]y3[0x00][0x01]z[0x80][0x00][0x00][0x03]
[0x02][0x00][0x35]2[0x00][0x0D]MC150[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
2[0x00][0x35]y[0x00][0x00][0x1A][0x09][0x00][0x00][0x05][0x35][0x03][0x15][0x01][0x89][0x00][0x00][0x00][0x00]
[0x06][0x2B][0x9A][0x61][0x06][0x30][0x97][0x81][0x07][0x34][0x95][0x91][0x08][0x3B][0x93][0xA1][0x09][0x43]
[0xA2][0xB1][0x0B][0x4D][0xA2][0xC1][0x0E][0x5B][0xA2][0xD2][0x12][0x6F][0xC2][0xF4][0x16][0x8C][0xC1][0xF5]
3[0x00][0x01]z
[0x80][0x00][0x00][0x03]
Set a i111s system with lost step control and no 3rd axis
String to send :
1 : Set the “MACHINE_NAME” option to “I111S”
2 : Del the “MACHINE_ACCESSORY” option
3 : Set the “MACHINE_ADVANDED” option
4 : Reload the system configuration
[0x02][0x00][0x35]2[0x00][0x0D]MI111S[0x00][0x00][0x00][0x00][0x00][0x00][0x00]
3[0x00][0x01]y
2[0x00][0xAB]z[0x15][0x10][0x00][0x08][0x03][0x10][0x00][0x00][0x00][0x00][0x00][0x00]
[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x00][0x00][0x00][0x00][0x01][0x02][0x02][0x02][0x02][0x02][0x02][0x01][0x02][0x03][0x04]
[0x05][0x06][0x07][0x00][0x00][0x02][0x20][0x00][0x00][0x00]…[0x00]
[0x80][0x00][0x00][0x03]
Note: After setting or deleting option, you need to restart the control.
If Slave = 0: when user press START button: the system start the marking cycle
If Slave = 7: when user press START button: the system send [0x0D] to serial port and host port
Example:
Setting an AZERTY external keyboard
[0x02][0x00][0x35]2[0x00][0x07]C[0x00][0x01][0x00][0x01][0x00][0x00][0x03]
Nb Cycle : Number of cycles: a 32-bit integer, the most significant byte to the left
Nb Char : Number of char: a 32-bit integer, the most significant byte to the left
Force : Number of impact for each force: 9 integers each 32-bit, the most significant byte to the left
NbPas : Number of step ran for each motor: 3 integers each 48-bit, the most significant byte to the left
Option : Number for the options: a table of 10 integers each 48-bit, the most significant byte to the left
1st value for the number of autosensing ran
2nd value, for scratching machine: the number of step ran, stylus up
3rd value, for scratching machine: the number of step ran, stylus down
for now, only these 3 values are used
Example:
Getting the control statistics
[0x02][0x00][0x35]1[0x00][0x01]D[0x03]
the answer is
[0x02]1[0x00][123]D[0x00][0x00][08][62][0x00][0x0C][64][0x00][0x00][0x0C][0x17][0x00][0x0C][0x17][0x00][0x00][0x0C]
[0x00][0x00][0x00][0x0C][0x0C][64][0x00][0x00][0x00][0x0C][0x17][100][0x00][0x00][0x00][0x00][0x01][0x17]
[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]...[0x03]
MACHINE_NAME Option machine name (C150, I80, …) caution : letters must be in upper case
Code ‘M’ (0x4D in hexadecimal)
Data= [Machine Name(11)][Reserved(1)]
Total command data size =13
Example:
Setting for the C151
a, b, c, d : optional data depend on the 3rd axie kind. Tey are 8 bit integers each
for Z num :
a: 0 if no Autosensig and 1 if AutoSensing actif
b: internal length of Autosensing piston in 10th mm from 0 to 99
c: input where the autosensing is linked
d: value of the sensor when active (0 or 1)
for Z binary
a: activation mode :0 for file activation and 1 for Line activation
b: input where retract sensor is connected (0 if no sensor)
c: input where out sensor is connected (0 if no sensor)
d: output to drive the axie (from 1 to 8)
Offset: for this axie, Offset represents the delay “IN” in millisecond
Ratio: for this axie, Ratio represents the delay “OUT” in millisecond
for D-Axis
a, b, c, d : not used
Ratio: for this axie, Ratio represents the number of step per turn
for Feeder
a: hidden time return (1 for YES and 0 for NO)
b: part detection sensor (0 for none)
c: output clamping(0 for none)
d: not used
Offset: for this axie, Offset represents the offset from the marking position to the evatuation position in step.
Example:
Setting for a Z axie of 50 mm
[0x02][0x00][0x35]2[0x00][0x35]y[0x00][0x00][0x1A][0x09][0x00][0x00][0x05][0x35][0x03][0x15][0x01][0x89][0x00][0x00][0x00][0x00][0x
06][0x2B][0x9A][0x61][0x06][0x30][0x97][0x81][0x07][0x34][0x95][0x91][0x08][0x3B][0x93][0xA1][0x09][0x43][0xA2][0xB1][0x0B][0x4D][0xA2][0
xC1][0x0E][0x5B][0xA2][0xD2][0x12][0x6F][0xC2][0xF4][0x16][0x8C][0xC1][0xF5][0x03]
MACHINE_ADVANCED Option advanced configuration of the system (IO config, axies priority, …)
Code ‘z’ (0x7A in hexadecimal)
Data= [Table(30)][Buffer(140)]
Total command data size =171
Example:
Default IO setting + lost step test at end of cycle.
[0x02][0x00][0x35]2[0x00][0xAB]z[0x15][0x10][0x00] [0x08][0x03][0x10] [0x00][0x00][0x00] [0x00][0x00][0x00]
[0x00][0x00][0x00] [0x00][0x00][0x00] [0x00][0x00][0x00] [0x00][0x00][0x00] [0x00][0x00][0x00] [0x00][0x00][0x00]
[0x00][0x01][0x02][0x02][0x02][0x02][0x02][0x02] [0x01][0x02][0x03][0x04][0x05][0x06][0x07][0x00]
[0x00][0x02][0x20] [0x00][0x00][0x00]…[0x00][0x03]
Example:
Setting 3 shift named MATIN starting at 01h30, MIDI starting at 12h30 and SOIR starting at 20h30
[0x02][00][0x35]2[00][221]EMATIN[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][230]
MIDI[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][0x05][0x32]
SOIR[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][0x07][258]
[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]
... .
[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][0x03]
Example: setting the two first global var to value GLOB1 ane GLOB2.
[0x02][0x00][0x35]2[0x00][251]G[0x05][0x05][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
GLOB1[0x00][0x00][0x00][0x00][0x00][0x00]…[0x00]
GLOB2[0x00][0x00][0x00][0x00][0x00][0x00]…[0x00]
[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]…[0x00]
…
[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]…[0x00][0x03]
Example: Setting the 1 and 2 increments ( the rest of the 8 increments are not used )
[0x02][0x00][0x35]2[0x00][251]G[0x05][0x05][0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x00][0x00][0x03][0x19]
[0x00][0x01][0x05][129]
[0x00][0x00][0x00][0x00]
…
[0x00][0x00][0x00][0x00][0x03]
The string sent to the controller must start with the characters STX (Start TeXte: 02h), followed by a list of functions
(described on the next pages) and the string must end with ETX (End TeXte: 03h).
b) String to be sent:
String String
Start End
Control code CheckSum: In order to detect a possible error in the transmission, the CheckSum is calculated
depending on the string sent by the main system and receptioned by the machine. If the string has been correctly
transmitted, the code calculated by the marking machine is the same as the code sent by the main system.
The CheckSum corresponds to an "EXCLUSIVE OR" of all codes transmitted in the string, including the STX code
and the ETX code.
c) List of functions:
Each function starts with a control code, followed by the data corresponding to the function to be used :
Code Description
[NUL] Deactivate the control code CheckSum
[ No data ]
[SOH] File Selection
[ Data: Name of the file to be loaded (max 11 characters) ]
[ACK] Marking release right after receiving the string without waiting for the confirmation through the Start
Cycle button.
[ No data ]
[ENQ] Definition of a variable in the valid file or after loading a file through the [SOH] function
[ Data: name of the variable + ‘=’ + value to be attributed]
[LF] Definition of the marking speed (standard is speed 5)
[Data : 0 to 9 ]
[VT] Transfer all marking parameters
Data: Each line of the file is transferred with the following format:
d) Examples de communication :
Select the ‘AB12’ file, without CheckSum and without launching the marking :
Send the string :
[STX] [NUL] [SOH] AB12 [ETX]
or in hexadecimal:
02 00 01 41 42 31 32 03
Select the ‘AB12’ file, with CheckSum and launching the marking :
Send the string :
[STX] [SOH] AB12 [ACK] [ETX] [ACK]
or in hexadecimal:
02 01 41 42 31 32 06 03 4B(checksum)
Transfer of a complete string with marking launching and selection of speed 9:
Send the string :
[STX] [NUL] [LF] 9 [VT] +0100+0500000002002000000005N1ABCdef [VT]
+0100+1000000003003000000005N2Z123 [ACK] [ETX]
or in hexadecimal:
02 00 0A 39 0B 2B 30 31 30 30 2B 30 35 30 30 30 30 30 30 30 32 30 30 32 30 30 30 30 30 30
30 30 35 4E 31 41 42 43 64 65 66 0B 2B 30 31 30 30 2B 31 30 30 30 30 30 30 30 30 33 30 30
33 30 30 30 30 30 30 30 30 35 4E 32 5A 31 32 33 06 03
Save the parameters in a file called "XJK" :
Send the string :
[STX] [NUL] [DLE] XJK [ETX]
or in hexadecimal:
02 00 10 58 4A 4B 03
Transfer of a complete string in OCR-A font, spacing 5 between characters and parameters saving in a "XJK"
file :
Send the string :
[STX] [NUL] [SO] 1 [CR] 5 [VT] +0100+0500000002002000000005N1ABCdef
[VT] +0100+1000000003003000000005N2Z123 [DLE] XJK [ETX]
or in hexadecimal:
02 00 0E 31 0D 35 0A 39 0B 2B 30 31 30 30 2B 30 35 30 30 30 30 30 30 30 32 30 30 32 30 30
30 30 30 30 30 30 35 4E 31 41 42 43 64 65 66 0B 2B 30 31 30 30 2B 31 30 30 30 30 30 30 30
30 33 30 30 33 30 30 30 30 30 30 30 30 35 4E 32 5A 31 32 33 10 58 4A 4B 03
Marking of a logo called "ZX3" in X=10, Y=20:
Send the string :
[STX] [NUL] [VT] +0100+0200000010010000000005N1[EOT]Logo ZX3 [ACK] [ETX]
or in hexadecimal:
02 00 0B 2B 30 31 30 30 2B 30 32 30 30 30 30 30 30 31 30 30 31 30 30 30 30 30 30 30 30 30
35 4E 31 04 4C 6F 67 6F 20 5A 58 33 06 03
Datamatrix ECC200 string
EEC200( [Speed] [Format] [Reference], [text] )
Speed : one digit from '0' to '9'
Reference = 'S' for Simple or 'D' for Double
Format : one character depending on the following:
AutoSquare:0 - AutoRect:1 - 10x10:A - 12x12: B - 14x14: C - 16x16: D - 18x18: E - 20x20: F - 22x22:
G- 24x24: H - 26x26: I - 8x18: J - 8x32: K - 12x26: L - 12x36: M - 16x36: N - 16x48:O
Example with marking speed 3, AutoSquare, simple reference and including the text 12345:
Send the string:
+0100+0200000010010000000005N1[EOT]ECC200(30S,12345)
In hexadecimal:
2B 30 31 30 30 2B 30 32 30 30 30 30 30 30 31 30 30 31 30 30 30 30 30 30 30 30 30 35 4E 31
04 45 43 43 32 30 30 28 33 30 53 2C 31 32 33 34 35 29
Pause string:
Send the following string:
[VT] +0100+0200000010010000000005N1[EOT]Pause
In hexadecimal:
Remark : "Logo " "Pause" and"ECC200" are reserved words ; you absolutely must respect the character case
(upper/lower) as well as the space character between "Logo" and the name of the logo file to be marked.
ASCII Codes:
[NUL] = 0x00 [SOH] = 0x01 [STX] = 0x02 [ETX] = 0x03
[EOT] = 0x04 [ENQ] = 0x05 [ACK] = 0x06 [BEL] = 0x07
[BS] = 0x08 [HT] = 0x09 [LF] = 0x0A [VT] = 0x0B
[FF] = 0x0C [CR] = 0x0D [SO] = 0x0E [SI] = 0x0F
[DLE] = 0x10 [DC1] = 0x11 [DC2] = 0x12 [DC3] = 0x13
[DC4] = 0x14 [NAK] = 0x15
Code Code Val Code Code Val Code Code Val Code Code Val Code Code Val Code Code Val Code Code Val
Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex
32 20 64 40 @ 96 60 ‘ 192 C0
33 21 ! 65 41 A 97 61 a 129 81 ü 193 C1 225 E1 ß
34 22 “ 66 42 B 98 62 b 194 C2
35 23 # 67 43 C 99 63 c 195 C3
36 24 $ 68 44 D 100 64 d 132 84 ä 196 C4
37 25 % 69 45 E 101 65 e 197 C5 ч
38 26 & 70 46 F 102 66 f 134 86 å 166 A6 б
39 27 ’ 71 47 G 103 67 g 167 A7 в
40 28 ( 72 48 H 104 68 h 200 C8 ш
41 29 ) 73 49 I 105 69 i 201 C9 щ
42 2A * 74 4A J 106 6A j 170 AA г 202 CA Ь
43 2B + 75 4B K 107 6B k 171 AB д 203 CB ы
44 2C , 76 4C L 108 6C l 172 AC ж 204 CC э
45 2D - 77 4D M 109 6D m 205 CD ю
46 2E . 78 4E N 110 6E n 142 8E Ä 174 AE з 206 CE я 238 EE Л
47 2F / 79 4F O 111 6F o 143 8F Å 175 AF и 207 CF Б 239 EF Ю
48 30 0 80 50 P 112 70 p 176 B0 й 208 D0 æ 240 F0 П
49 31 1 81 51 Q 113 71 q 177 B1 к 209 D1 Æ 241 F1 Ф
50 32 2 82 52 R 114 72 r 178 B2 л 242 F2 Ц
51 33 3 83 53 S 115 73 s 179 B3 м 211 D3 Ё 243 F3 У
52 34 4 84 54 T 116 74 t 148 94 ö 180 B4 н 244 F4 Ш
53 35 5 85 55 U 117 75 u 213 D5 Г 245 F5 Щ
54 36 6 86 56 V 118 76 v 246 F6 Ь
55 37 7 87 57 W 119 77 w 247 F7 Ы
56 38 8 88 58 X 120 78 x 248 F8 °
57 39 9 89 59 Y 121 79 y 153 99 Ö 185 B9 п 217 D9 Д 249 F9 Ъ
58 3A : 90 5A Z 122 7A z 154 9A Ü 186 BA т 218 DA Ж 250 FA Э
59 3B ; 91 5B [ 123 7B { 155 9B ø 187 BB ф 219 DB З 251 FB ¹
60 3C < 92 5C \ 124 7C | 188 BC ц 220 DC И 252 FC ³
61 3D = 93 5D ] 125 7D } 157 9D Ø 221 DD Й 253 FD ²
62 3E > 94 5E ^ 126 7E ~ 190 BE у 254 FC Я
63 3F ? 95 5F _ 191 BF 223 DF К
STX No LF No
received received
Yes Yes
String reception
No Coherent
string
Yes
V4 No
protocol
Start No
Error code back : cycle
[BEL] : missing file
[BS] : CheckSum error
[HT] : Format error Yes
[LF] : Missing Variable
[NAK] : TimeOut Home position
[NAK] error
Home No code back with
position marking error
OK
Yes
Marking cycle
[EOT] code back : last point marked
home position
[NAK] error
Home No code back with
position marking error
OK
Yes
Decimal Hexa
Code Code Binary value description
(3 bytes) (3 bytes)
00 00 01 00 00 01 0000 0000 0000 0000 0000 0001 Error with marking font
00 00 02 00 00 02 0000 0000 0000 0000 0000 0010 Error with dot logo
00 00 04 00 00 04 0000 0000 0000 0000 0000 0100 Error with vectorial logo
00 00 08 00 00 08 0000 0000 0000 0000 0000 1000 Error with Ecc200
00 00 16 00 00 10 0000 0000 0000 0000 0001 0000 Error with the syntax of text zone
00 00 32 00 00 20 0000 0000 0000 0000 0010 0000 Error with variable
00 00 64 00 00 40 0000 0000 0000 0000 0100 0000 Error with I/O
00 00 128 00 00 80 0000 0000 0000 0000 1000 0000 Error with RS232
00 01 00 00 01 00 0000 0000 0000 0001 0000 0000 Error : Stop button activated
00 02 00 00 02 00 0000 0000 0000 0010 0000 0000 Error with stylus
00 04 00 00 04 00 0000 0000 0000 0100 0000 0000 Error with motor
00 08 00 00 08 00 0000 0000 0000 1000 0000 0000 Error with sensor
00 16 00 00 10 00 0000 0000 0001 0000 0000 0000 Error out of marking window bound
00 32 00 00 20 00 0000 0000 0010 0000 0000 0000 Error with the X axis
00 64 00 00 40 00 0000 0000 0100 0000 0000 0000 Error with the Y axis
00 128 00 00 80 00 0000 0000 1000 0000 0000 0000 Error with the accessory axis
- Error blocked feeder
01 00 00 01 00 00 0000 0001 0000 0000 0000 0000
Or - Error with Autosensing : no part detection
- Error empty feeder
02 00 00 02 00 00 0000 0010 0000 0000 0000 0000 Or - Error with Autosensing : part detected out of bound
Or - Error with binary axis
04 00 00 04 00 00 0000 0100 0000 0000 0000 0000 The marking head did loose steps
08 00 00 08 00 00 0000 1000 0000 0000 0000 0000 Error with external motor
16 00 00 10 00 00 0001 0000 0000 0000 0000 0000 Historique full
32 00 00 20 00 00 0010 0000 0000 0000 0000 0000 Doubble detected for historique
64 00 00 40 00 00 0100 0000 0000 0000 0000 0000 Error : stylus need to be changed
128 00 00 80 00 00 1000 0000 0000 0000 0000 0000 Error : stylus as to be changed
Examples:
00 01 00 : Emergency stop activated
1 - SERIAL COMMUNICATION
a) TEXT format of the communication protocol
String format to be sent: ASCII CODES
<Command>└┘ <Data1>└┘ < Data2> [CR][LF] Codes Hexa decimal
[CR] 0D 13
where [LF] 0A 10
< Command > is the command code └┘ 20 32
< Datai> are the data of the command [NUL] 00 00
[CR] is the 0x0D in hexadecimal ( facultative) [SOH] 01 01
[LF] is the 0x0A in hexadecimale [STX] 02 02
└┘ space char [ETX] 03 03
[EOT] 04 04
Response of the system [ENQ] 05 05
[ACK] 06 06
<command> <Answer>[CR][LF] [BS] 08 08
The control response to every command. Mostly, the anwer will be OK or BAD FORMAT. [VT] 0B 11
[NAK] 15 21
Commun functions
Command Description Data to send Response of the system
Select and lod a file Name of the file to be loaded (11 chars max) OK : file loaded
LOADFILE ERROR : File nor found
Set a variable to the current file <Name of the var> <Value> OK
SETVAR VAR NOT FOUND
Start the marking Start cycle No data OK cycle in process
RUN If there is PAUSE in the marking file : [EOT] last dot marked
At a PAUSE line, the control send the char
P [0x50] and wait for : [ENQ] back to home position
- response p [0x70] from RS232, [NAK][Err1][Err2][Err3]
- or the Start button to be pressed, if an error occurse (see
to continue the marking,
apendix)
If an error occurse, you need to No data OK
RESETERROR clear the machin status ( Same as if
you press the start button)
Create a new file Marking speed (1 à 9), OK : empty file created
NEWFILE Fast speed (1 à9), BAD ARGUMENT
Crossed zéro (0 ou 1),
Name of the fole (optional )
Add a line to the current file X, Y, Z, W, H ( in 10th of mm) OK
INSERTTEXTLINE Angle (in hendredth of dedrees from –18000 to BAD ARGUMENT:
18000)
radius ( in 10th of mm)
Space between chars (from 0 to 10)
Force (0 à 9)
Quality (1 à 9)
Text to be printed
Examples
Select the ‘AB12’ file without running the cycle
Send the string : LOADFILE AB12[CR][LF]
in hexadecimal : 4C 4F 41 44 46 49 4c 45 20 41 42 31 31 0D 0A
Select the ‘AB12’ file and start the cycle
Send the string: LOADFILE AB12[CR][LF]RUN[CR][LF]
in hexadecimal: 4C 4F 41 44 46 49 4c 45 20 41 42 31 31 0D 0A 52 55 4E 0D 0A
Select the ‘AB12’ file, set the ‘OF’ variable with ‘12345’ value and start the cycle
Send the string: LOADFILE AB12[CR][LF]SETTEXTVAR OF 12345[CR][LF]RUN[CR][LF]
in hexadecimal: 4C 4F 41 44 46 49 4c 45 20 41 42 31 31 0D 0A 53 45 54 54 45 58 54 56 41 52 20
4F 46 20 31 32 33 34 35 0D 0A 52 55 4E 0D 0A
Sent a complete marking trame in a ‘TEMP’ named file and start the cycle
X=10mm, Y=12mm, Char of 5x7mm, Force=5, Quality=double with text=HELLO WORLD
String to be sent :
String String
start end
Control code CheckSum : In order to detect a possible error in the transmission, the CheckSum is calculated depending on the string sent by the main system
and receptioned by the machine. If the string has been correctly transmitted, the code calculated by the marking machine is the same as the code sent by the
main system. When a check sum error is detected, the syctem send back the [BS] code.
The CheckSum corresponds to an "EXCLUSIVE OR" of all codes transmitted in the string, including the STX code and the ETX code.
List of functions
Each function starts with a control code, followed by the data corresponding to the function to be used :
Cmde Description
[NUL] Deactivate the control code CheckSum
[ No data ]
[SOH] File Selection
[ Data: Name of the file to be loaded (max 11 characters) ]
[ACK] Marking release right after receiving the string without waiting for the confirmation through the Start Cycle button.
[ No data ]
[ENQ] Definition of a variable in the valid file or after loading a file through the [SOH] function
[ Data: name of the variable + ‘=’ + value to be attributed]
[LF] Definition of the marking speed (standard is speed 5)
[Data : 0 to 9 ]
[VT] Transfer all marking parameters
Data: Each line of the file is transferred with the following format:
Examples
Select the ‘AB12’ file without checksum and without running the cycle:
Send the string:
[STX] [NUL] [SOH] AB12 [ETX]
in hexadecimal:
02 00 01 41 42 31 32 03
Affect the ‘OF’ variable in the current file and start the cycle:
Send the string:
[STX] [ENQ] OF=142BH05 [ACK] [ETX] [Check-summ]
in hexadecimal:
02 05 4F 46 3D 31 34 32 42 48 30 35 06 03 0E
Sent a complete marking trame, and start the cycle, and select speed 9:
Send the string:
[STX] [NUL] [LF] 9 [VT] +0100+0500000002002000000005N1ABCdef [VT] +0100+1000000003003000000005N2Z123
[ACK] [ETX]
in hexadecimal:
02 00 0A 39 0B 2B 30 31 30 30 2B 30 35 30 30 30 30 30 30 30 32 30 30 32 30 30 30 30 30 30 30 30 35 4E 31 41 42 43 64
65 66 0B 2B 30 31 30 30 2B 31 30 30 30 30 30 30 30 30 33 30 30 33 30 30 30 30 30 30 30 30 35 4E 32 5A 31 32 33 06 03
Dec Hex Val Dec Hex Val Dec Hex Val Dec Hex Val Dec Hex Val Dec Hex Val Dec Hex Val
Code Code Code Code Code Code Code Code Code Code Code Code Code Code
00 00 NUL 01 01 SOH 02 02 STX 03 03 ETX 04 04 EOT 05 05 ENQ 06 06 ACK
07 07 BEL 08 08 BS 09 09 HT 10 0A LF 11 0B VT 12 0C FF 13 0D CR
21 15 NAK
32 20 64 40 @ 96 60 ‘ 192 C0
33 21 ! 65 41 A 97 61 a 129 81 ü 193 C1 225 E1 ß
34 22 “ 66 42 B 98 62 b 194 C2
35 23 # 67 43 C 99 63 c 195 C3
36 24 $ 68 44 D 100 64 d 132 84 ä 196 C4
37 25 % 69 45 E 101 65 e
38 26 & 70 46 F 102 66 f 134 86 å
39 27 ’ 71 47 G 103 67 g
40 28 ( 72 48 H 104 68 h
41 29 ) 73 49 I 105 69 i
42 2A * 74 4A J 106 6A j
43 2B + 75 4B K 107 6B k
44 2C , 76 4C L 108 6C l
45 2D - 77 4D M 109 6D m
46 2E . 78 4E N 110 6E n 142 8E Ä
47 2F / 79 4F O 111 6F o 143 8F Å
48 30 0 80 50 P 112 70 p
49 31 1 81 51 Q 113 71 q
50 32 2 82 52 R 114 72 r
51 33 3 83 53 S 115 73 s
52 34 4 84 54 T 116 74 t 148 94 ö
53 35 5 85 55 U 117 75 u
54 36 6 86 56 V 118 76 v
55 37 7 87 57 W 119 77 w
56 38 8 88 58 X 120 78 x 248 F8 °
57 39 9 89 59 Y 121 79 y 153 99 Ö
58 3A : 90 5A Z 122 7A z 154 9A Ü
59 3B ; 91 5B [ 123 7B { 155 9B ø 251 FB ¹
60 3C < 92 5C \ 124 7C | 252 FC ³
61 3D = 93 5D ] 125 7D } 157 9D Ø 253 FD ²
62 3E > 94 5E ^ 126 7E ~
63 3F ? 95 5F _ 191 BF
Decimal Hexa
Code Code Binary value description
(3 bytes) (3 bytes)
00 00 01 00 00 01 0000 0000 0000 0000 0000 0001 Error with marking font
00 00 02 00 00 02 0000 0000 0000 0000 0000 0010 Error with dot logo
00 00 04 00 00 04 0000 0000 0000 0000 0000 0100 Error with vectorial logo
00 00 08 00 00 08 0000 0000 0000 0000 0000 1000 Error with Ecc200
00 00 16 00 00 10 0000 0000 0000 0000 0001 0000 Error with the syntax of text zone
00 00 32 00 00 20 0000 0000 0000 0000 0010 0000 Error with variable
00 00 64 00 00 40 0000 0000 0000 0000 0100 0000 Error with I/O
00 00 128 00 00 80 0000 0000 0000 0000 1000 0000 Error with RS232
00 01 00 00 01 00 0000 0000 0000 0001 0000 0000 Error : Stop button activated
00 02 00 00 02 00 0000 0000 0000 0010 0000 0000 Error with stylus
00 04 00 00 04 00 0000 0000 0000 0100 0000 0000 Error with motor
00 08 00 00 08 00 0000 0000 0000 1000 0000 0000 Error with sensor
00 16 00 00 10 00 0000 0000 0001 0000 0000 0000 Error out of marking window bound
00 32 00 00 20 00 0000 0000 0010 0000 0000 0000 Error with the X axis
00 64 00 00 40 00 0000 0000 0100 0000 0000 0000 Error with the Y axis
00 128 00 00 80 00 0000 0000 1000 0000 0000 0000 Error with the accessory axis
- Error blocked feeder
01 00 00 01 00 00 0000 0001 0000 0000 0000 0000 Or - Error with Autosensing : no part detection
Or - Error with binary axis
- Error empty feeder
02 00 00 02 00 00 0000 0010 0000 0000 0000 0000
Or - Error with Autosensing : part detected out of bound
04 00 00 04 00 00 0000 0100 0000 0000 0000 0000 The marking head did loose steps
08 00 00 08 00 00 0000 1000 0000 0000 0000 0000 Error with external motor
16 00 00 10 00 00 0001 0000 0000 0000 0000 0000 Historic full
32 00 00 20 00 00 0010 0000 0000 0000 0000 0000 Double detected for historique
64 00 00 40 00 00 0100 0000 0000 0000 0000 0000 Error : stylus need to be changed
128 00 00 80 00 00 1000 0000 0000 0000 0000 0000 Error : stylus as to be changed
Examples :
00 01 00 : Emergency stop activated
Note : SIC TERMINAL use the decimal display of the ASCII codes .
"SERIAL"
This function let you test serial communication with the e6. You can send string
and see received string
b) Electric limit
A maximum of 6 inputs are assigned to this task (inputs 3 to 8). Each "input" may be open (state "0") or
closed (state "1") by dry contacts (*) to form a binary code.
(*) A dry contact can be assimilated to an open or closed switch connecting contact 9 or 10 (input
common) to one of the inputs, without any voltage.
This binary chain, converted into decimal values, corresponds to a number varying from 0 to 63
(maximum). This is the value which will be associated with a marking file.
You will be able to assign a marking file to each binary input combination.
Remarks:
The state of the inputs is scanned only when the cycle starts. Be sure to set the state of
the inputs before activating the cycle start.
Some accessories or options use inputs. These inputs will no longer be available for
selecting the file which is limited.
d) Input/Output test
You can manually test the input/output stats of the e6. Goes to menu : .
Follow screen will appear :
In a standard configuration
Output « Cycle in progress » is active when the contact is close between bornes 20 et 21
Output « End of marking » is active when the contact is close between bornes 22 et 23
Output « default » is active when the contact is close between bornes 24 et 25
Output « pause » is active when the contact is close between bornes 27 et 29
Output « e6 Ready » is active when the contact is close between bornes 15 et 16
1
Départ cycle : entrée 1
0
Temps
1
Cycle en cours : sortie 1
0
1
Dernier point : sortie 2
0
1
Défaut : sortie 3
0
1
Pause : sortie 4
0
1
Système prêt : sortie 5
0
Prises Prises
d’origine Marquage d’origine
1
Départ cycle : entrée 1
0
Temps
1
Cycle en cours : sortie 1
0
1
Dernier point : sortie 2
0
1
Défaut : sortie 3
0
1
Pause : sortie 4
0
1
Système prêt : sortie 5
0
Prises Prises
d’origine Marquage Erreur d’origine
Cabling examples
E6 SubD 37
7
input 7
9
End-of-stroke Withdrawn position
commun
8
End-of-stroke Marking position
input 8
Approach jack
27
output 4
+24V 29
Use of an electro-pneumatic
electro-valve with a solenoid
(24V DC) which needs less
than 500mA.
Use of the I/O with the clamping of a part being marked, and defaut announced by a light.
22
Out 2
(end of cycle)
23
24 Part clamping
Out 3
(deflaut)
25
ground 24V 28
+24V 29
In the case of I/O communication with a PLC, the inputs of the controller must be dry contacts with no
tension.
To avoid any trouble, we recommend that you interface the static relay output by an external mechanical
relay.
Important note: The use of an optional communication boards on the e10 controller
disable the RS232 port.
a) Ethernet
Power up the E10 controller (switch 15, figure 1) by pressing on F1 at the same time
Press F12
Press F5
Press F6 to save
The marking system can be controlled by Profibus, Profinet or Ethernet/IP protocol with a bus
width of 16 bytes (standard).
The protocols cannot send the complete data string at once to the E10 controller, as the bus
width is restricted to 16 bytes.
Please refer to the previous pages for the commands list.
a) Prerequisite
The PROFIBUS module requires the e10v6.1.001 (2-3 axes), e10v6.0.011 (4 axes) software or
later versions installed on the controller.
The PROFINET and ETHERNET/IP modules require the e10v6.1.002 (2-3 axes), e10v6.0.012
(4 axes) software or later versions installed on the controller.
b) Integration
These modules are integrated as COM boards inside the e10 controller.
PROFIBUS :
Important note: To be active, two identical and successive sending must be separate by a
neutral sending (null string). The system read only sendings after an I/O’s state change.
d) Example 1
Select file ‘SIC’, no checksum and do not start the marking process:
Send this string: [STX] [NUL] [SOH] SIC [ETX]
First sequence is the only one.
Hex values: FF 02 00 01 53 49 43 03 00 00 00 00 00 00 00 00
e) Example 2
Send a complete string including start command for the marking sequence and select speed 9:
send this string: [STX] [NUL] [LF] 9 [VT] +0100+0500000002002000000005N1 SICTST [VT]
+0100+1000000003003000000005N2 MARKING [ACK] [ETX]
Hex values:
Seq. 1 : 01 02 00 0A 39 0B 2B 30 31 30 30 2B 30 35 30 30
Seq. 2 : 02 30 30 30 30 30 32 30 30 32 30 30 30 30 30 30
Seq. 3 : 03 30 30 35 4E 31 53 49 43 54 53 54 0B 2B 30 31
Seq. 4 : 04 30 30 2B 31 30 30 30 30 30 30 30 30 33 30 30
Seq. 5 : 05 33 30 30 30 30 30 30 30 30 35 4E 32 4D 41 52
Seq. 6 : FF 4B 49 4E 47 06 03 00 00 00 00 00 00 00 00 00
Hardware configuration:
Double click on the hardware element to open the configuration window (HW config).
In order to address properly in an EtherNet/IP network, an eds file is provided with the
EtherNet/IP card (« sicmarking.eds » available in the SIC files directory). This file contains the
information so that a programmable logic controller (PLC) can send information to the e10 controller and
read back information from it.
The eds file contains the definition of the e10 controller. So before adding an e10 controller in the
network, the e10 definition must be extracted from the eds file and added to the list of device already
recognized by the development environment. The following steps are done in the Logix Designer Studio
5000.
From the “Tools” menu, select the “EDS Hardware Installation Tool” option :
From the Rockwell Automation EDS Wizard, select the “Register an EDS file” option and click the
“Next” button :
In the next step, select the “Register a single” option. Either enter directly the path of the provided
eds file, or click the “Browse…” to select the file. Once the file is entered in the “Named” text box, click
the “Next” button again :
When the eds file is read by the wizard, the definition of the SIC Marking controller will be
presented to the user in the next wizard’s page. Click the “Next” button to confirm the product type
extraction :
This final wizard page is to confirm the SIC Marking e10 controller definition was properly
extracted from the EDS file and added to the Logix Designed devices definition. Click the “Finish” button
to complete the process :
With a SIC Marking e10 controller with an EtherNet/IP card installed and the product definition
added to the Logix Designer, you can now proceed with adding an e10 controller in your industrial
network. The following steps are done the Logix Designer.
In the Controller Organizer view, do a right-click on the “Ethernet” branch. Select the “New
Module…” to add a new device to your network.
You must now select the SIC Marking device from the catalog. The easiest way is to perform a
search is by searching for “SIC Marking” as the keyword. If the eds file was properly loaded (see
previous section) you should be able to see the definition.
Click on the “Create” button to add a new e10 controller in your network :
Give your new e10 controller in your network a meaningful name in the “Name” textbox. The
other critical information is the Ethernet address. The information you enter in the Ethernet address must
match what you have entered in the controller itself (first section of this document).
Click the “Ok” button when the appropriate information is entered :
NOTE: Depending on the version of your RSLogix Software, the connection tab may also present
the option “Use Unicast Connection over EtherNet/IP. Please make sure to disable this option as
the device does not support it.
Am Bruch 21 - 23
Remscheid D-42857
Germany
Tel.: +49 (0) 2191 46240-0
[email protected]
http://www.sic-marking.com