Вы находитесь на странице: 1из 13

Windows F-LINK

Version 1.0

Link protocol between Corob dispensers


and external Master devices
Technical specifications
© 1997 COROB S.p.A.

Windows F-LINK
Technical Specifications
Version 1.0
© COPYRIGHT 1997, Corob ® S.p.A.
All rights reserved

This material may not be reproduced in any form or by any means (including recording and
photocopying) for any reason without prior express written authorization from Corob ®
S.p.A..

The information in this document is subject to change without warning, and are not binding
to Corob ® S.p.A.. Any reference to companies, names, dates and addresses used in the
screens and/or examples is purely accidental, unless otherwise stated, and is intended
solely to clarify use of the Corob product.

Corob ® S.p.A. may not be held responsible for any technical or publishing error or
omission found in this manual, nor for damages – accidental or otherwise – relating to
correspondence or use of this manual.

• Microsoft, MS, MS-DOS, Windows are registered trademarks of the Microsoft


Corporation

Address any requests for additional copies of this product or technical information to:

COROB ® S.p.A.

Via Agricoltura 3 • 41038 San Felice s/P • Modena • Italy

Phone: + 39-(0)535-6633 • Fax: + 39-(0)535-663400

Document ID: PS006C010011100


Printed in Italy
F-LINK / 1

CONTENTS

1 INTRODUCTION ..................................................................................................................................... 3
2 THE F-LINK PROTOCOL ....................................................................................................................... 4
2.1 Types of data and conventions ........................................................................................................ 4
2.2 Commands of the F-LINK protocol .................................................................................................. 5
2.3 Examples about the use .................................................................................................................. 9
2 / F-LINK

This page has been left empty on purpose


F-LINK / 3

1 INTRODUCTION

On the Corob machines the dispensing of fluid from a canister is always controlled by expressing the
desired volume for each canister in cc.
However, it is opportune to define the concept of formula, at an application level, as a sequence of
couples colorant-quantity. In this case too these couples are normally expressed in cc, it is though often
necessary considering the different volume units used in different countries. There are cases of formulas
for which the quantities of colorants to be used are expressed in weight.
1
COROB application programs will mediate, as regards all these aspects, the access to the SLAVE .
As a matter of fact it is the MASTER that stores the Canisters-Colorants association, besides this the
dispensing of a formula involves the management of the different accessory activities such as, for
example, the movement of servomechanisms installed on the machines (shelf, punch, humidifying cap) as
well as the updating of the reserves and the print of the labels.
The F-LINK specifications are relevant to the formulas to be used in a text file through which it is possible
to define a formula to dispense. Once the file has been written it can be sent to a remote user using any
link protocol. So the object of the specifications regards the format of the file and not how it is sent.
Thus the objects of this protocol are:
• Simplifying the transmission among the application programs of the information relevant to a formula.
• Allowing an external program to define and program the dispensing of a formula. By external
program we mean, generally speaking, an application program that cannot have access to the
database of the tinting system.
Before proceeding perhaps it would be better to sum shortly up the key aspects of the data management
carried out in the different COROB application programs. This subject might turn out to be not very
understandable for non-expert people since it involves the knowledge of the mechanisms through which
the COROB application programs store, deal and dispense the formulas.
For more detailed information about the matter please refer to the ColorLAB manuals as regards the data
structure and formularies maintenance, ColorTECH as regards the dispenser maintenance, configuration
and management, ColorBOOK (and others) as regards how to dispense a formula. In brief we can say
that the following rules are valid:

• Any tinting system can be organised with various product lines. Moreover, each product can have
further different sub-products.
• It is possible to store lists of formulas differentiated for each sub-product.
• The formulas of the tinting system can be dispensed by different machines and with different
colorant arrangements.
• The quantities of colorant to be used for the different formulas are expressed in different dispensing
units which you can set by using the ColorLAB programs.
• The quantities of colorant used for the formulas can be expressed either in grams or in c.c.
(dispensing in weight or volume).

1
A dispensing machine has a control electronics, that can also be remote, for the management of the user interface. It is usually a
personal computer. The hydraulic circuits are instead controlled by a dedicated hardware installed on the machine. Since the
dispensing machine receives orders sent by a personal computer we got accustomed to calling the latter MASTER and the
dispensing machine SLAVE.
4 / F-LINK

2 THE F-LINK PROTOCOL

By using the mechanism described below it is possible to write a text file containing all the information
necessary to fully define a formula.
• The information are organised in fields inside the file. By field we mean a text line starting with a key
word of three capital letters preceded by the @ character. The key word mnemonically identifies the
meaning of the information that will be later stored on the same line.
• The order of the fields in the file does not affect the interpretation of the formula.
• The data must be separated from the key word by, at least, a space.
• A lot of fields are optional.

2.1 Types of data and conventions

Some conventions relevant to the notation to be used inside the file have been adopted to be able to store
different types of data in each field.
So the typical format of a line of data for a file of the F-LINK type is the following:
@KEY <datum1> <datum2> <datum_n>

The different types of data are stored according to a conventional format that you can find here below
together with some examples.

#id: It contains the piece of information relevant to an id (identifier) as it is stored in


the COROB databases for the filing of the tinting system. An id allows to
retrieve, univocally and very quickly, a record from a database. So, when it is
possible, it is advisable to always use the identifiers.
Example:
@KEY #3 It is a line containing an identifier.

N: It is an indication of a field containing a piece of numeric information.


Example:
@KEY 12.5 It is a line containing a numeric datum.

%N: It is an indication containing a percentage datum.


Example:
@KEY %12.5 It is a line containing a percentage datum.

“string” It represents a string. If it has to contain spaces then it must be between inverted
commas (“).
Example:
@KEY ABCD
@KEY “A B” are lines containing string.
F-LINK / 5

[...] The square brackets specify an optional field the type of which depends on what
is enclosed between the brackets.
Example:
@KEY #id “string” This line of information requires the presence of 2 data that must be an
identifier and a string.
@KEY #id [“string”] This line of information requires the presence of 1 identifier plus one single
optional string.

{. . .} The braces specify a non empty sequence of one or more parameters of


the kind enclosed between the brackets.
Example:
@KEY { #id } {“string”} This line of information requires the presence of a non empty sequence of
identifiers, followed by a non empty sequence of strings.

(.. ; ..) The round brackets specify an array of alternative data separated by the
sign ‘;’ ; virtually you can use any datum as long as it belongs to the types
here listed.
Example:
@KEY (#id; “string”) this line of information requires the presence of a datum that can be either
an identifier or a string.
@KEY {(#id; “string”)} this line of information requires the presence of a non empty sequence of
data that can be either identifiers or strings.

We are now able to interpret the structure and the list of the fields recognised by the F-LINK protocol.

2.2 Commands of the F-LINK protocol

Here below are all the commands available and the relevant parameters.

@RUN Start of the session


@PRD Keyword identifying a line containing the product and/or
sub-product data
format:{(#id; “string”)}
@WGH Keyword identifying a line containing the input of the
weight/volume dispensing
format: N
@UNT Keyword identifying a line containing the metering unit and
the fraction used
format: N N
@CLR Keyword identifying a line containing the description of
and/or comment on the formula
format:(#id; “string1|string2|string3|string4”)
6 / F-LINK

@BAS Keyword identifying a line containing the base required


format:(#id; “string”) N
@CNT Keyword identifying a line containing the formula
expressed as a list of colorants and quantities
format:{( #id; “string” ) (%N;N)}
@CAN Keyword identifying the can
format:(#id;N)
@FRM Keyword identifying the base volume for which the formula
is expressed (for COROB application programs it also
contains the formula)
format:[“string”] N
@END End of the session

Here below we detail the meaning of the information contained in every single line.

@RUN
Its only aim, together with the @END field, is to delimit the description of a formula. It allows a program to
correctly position itself for the reading of a formula in case the file contains more than one formula.

@PRD
format: {(#id; “string”)}
Examples: #1 #2
“PRD 1” “SPRD 1”
#1 “SMALTI”
It contains the indication relevant to the product and sub-product used. These information can be stored
as identifiers of the product and sub-product, that is, through strings containing the code or the
description of the same (products and sub-products) just as they are stored in the COROB database.
The search in this case will proceed in a sequential order on the list of the products and sub-products
available. These fields are “key sensitive”, specifications of a partial type are though not accepted. So, in
the case the “SMALTO LUCIDO” product is required this can indifferently be indicated either by the strings
“Smalto Lucido” or “smalto lucido”, but not by “Smalto luc”. See also the description of the @BAS field.
In case there is just a single id or a string there are two possibilities:
The tinting system is prearranged just for a single product (or group) and various sub-products: in this
case the piece of information stored is meant to identify the sub-product.
The tinting system is prearranged for more products and relevant sub-products: in this case the piece
of information stored is meant to identify the product. This method, in many cases, can be sufficient to
have access to the databases of the formulas if the same method is shared by several sub-products.
By indicating the product or the couple product/sub-product it is possible to leave out the specification
relevant to the (@UNT) dispensing unit, unless you want to input a dispensing unit different from the one
stored in the database (see below).
F-LINK / 7

@WGH
format: N
Example: 1
It shows a piece of information of the Boolean type. If the number has a 0 value the quantities expressed
are meant to be dispensed in volume, if, instead, the value of the flag is 1 the quantities to be dispensed
are meant to be in weight.

@UNT
format: N N
Example: 29.184 32
1 1
It shows the specification of the dispensing unit relevant to the formula stored. It has to be made up by
two numeric fields.
In case of formulas with quantities of colorants expressed in volume, Units and Fractions have to be such
that the following relation is valid:
V( i ) millilitres = Qnt ( i ) * (Unit/Fraction)
But when the quantities of the colorants are expressed in weight the relation to comply with is the
following:
P( i ) grams = Qnt ( i ) * (Unit/Fraction)
As a rule F-LINK does not require the storing of these information in the file because it automatically
inputs the dispensing unit according to the value stored in the selected product. So, also in order to avoid
situations of confusion it is advisable not to write the piece of information relevant to the dispensing unit if
it is equal to the one stored in the COROB databases for the selected product. However, it is possible to
input this way, if necessary, values different from the one stored in the databases. In the end this allows
you to define the formulas besides what you know about the product.

@CLR
format: (#id; “string1|string2|string3|string4”)
Examples #1791
“Arancio brillante”
“0010-Y90R (NCS)”
If the field contains one or more strings (maximum 4 separate by “|” character) this is assumed as a
simple description of the colour stored in the formula received from remote (key1, key2, key3, comment
are 4 different fields visualized in Corob User Interfaces to identify the colour). But when it contains an id
this field allows to retrieve the exact formula from the databases, as long as also the couple product/sub-
product is known too.

@CAN
format: (#id;N)
Examples #8
“1000 cc”
To input a formula it is not compulsory to define the can into which to dispense. It is though often useful to
communicate that the selection of the can has already been carried out. But, generally speaking, it is the
dispensing procedure, and therefore the COROB application program, that has to manage the change of
8 / F-LINK

the can and the adjustments consequent to the volumes to dispense. For reasons relating to the working
2
of dispensers servomechanisms the selection of the can be expressed only by storing the identifier of a
record in the database of the cans. If this it is not possible it is the application program that will select the
can and will then dispense.

@BAS
format: (#id;”string”) N
Examples #12 1000
“Base bianca” 970
It contains the piece of information relevant to the base into which the formula will be dispensed, followed
3
by its “fill_level” .
You can write the id of the base as it is stored in the COROB database file called BASES.DBF. However,
it is possible to use a string that identifies the base required. As in the case of the Product/Sub-product
field a record, the CODE or DESCR field of which is equal to the string given at the beginning, will be
searched in the database. As already said, in these cases differences due to the different use of capital
and small letters are not considered, “incomplete matches” though are not accepted.
Example:
“BASE Gia” to indicate “BASE Gialla” is wrong.
This kind of search may fail even when there is actually a record in the database where the CODE or
DESCR field is identical to the string contained in the @BAS field. This will occur if more than one record
of the COROB database has the CODE or DESCR field identical to the input string.
In this case the ‘match’ is considered ambiguous, therefore not valid. To make an example let’s suppose
the BASES.DBF database contains the following set of records:

ID CODE DESCR
1 MM MM - PROD - A
2 PP PP - PROD - A
3 GG GG - PROD - A
4 MM MM - PROD - B

The following cases might occur:


@BAS #2 OK, it finds id 2
@BAS “PP” OK, it finds id 2
@BAS “MM - PROD - A” OK, it finds id 1
@BAS “PM” error: it does not exist
@BAS “MM” error: ambiguity between stores 1-4

2
In the COROB database it is also possible to store the height of each can. This way the automatic shelf (if present) will
automatically be positioned in the correct way. For this reason it is not possible to understand which can is going to be used just
knowing the capacity of the can.
3
By “ Fill Level “ of a certain base we mean the actual volume of product that is in a can of nominal 1000 cc. The two values might
not coincide because a lot of bases cannot be used as finished products if you do not add a certain quantity of colorant. It is
exactly the addition of this colorant that makes the total volume of the product (base+colourant) reach or exceed the volume stated
on the can.
F-LINK / 9

@FRM
formato: [“string”] N
Example: “1,12.0,6,44.5,12,3.0” 1000 (only for COROB application programs)
1000 (typical)
The F-LINK protocol assumes that in a formula, however it is expressed, the quantities of the colorants
are given for a basic nominal quantity of 1000 cc. If it is not like this you have to store here the basic
nominal quantity for which the formula has been calculated.
This way it is possible to easily calculate the same formula for any basic volumes. If the F-LINK file is
produced by a COROB application program this field also stores the formula directly in the format stored
in the database. This is carried out for convenience in order to speed up the dispensing operations when
there is a dialogue among the COROB application programs.

@CNT
format: {( #id;”string” ) (%N;N)}
Examples: “A” 10.0 “B” 20.0 “C” 30 (1)
“Rosso” 1.0 “Verde” 2.0 “Blu” 3.0 (2)
#1 1.0 #5 2.0 #10 3.0 (3)
“Giallo” %1.0 “Verde” %2.0 “Blu” %3.0 (4)

It is the standard method given by the F-LINK protocol for the definition of a formula to dispense.
The colorant to use can be defined through its id or, as always, by using the Code and Descr. fields. In
this case too the same considerations made for the univocal identification of base when the string for the
matching on the CODE or DESCR. field is exploited are valid.
The quantities we want to dispense for each colorant can be numerically expressed either in volumetric or
in percentage fractions. Mixed formats are not accepted though. The numeric quantities are meant to be
expressed with the metering unit defined either by the selected product or directly mentioned in the file.

@END
This field does not contain any type of information. Together with the field @RUN is needed to delimit all
the text lines defining a single formula.

2.3 Examples about the use

To make the understanding of the F-LINK format easy here are some commented examples with the
object of closely examining some of the technical aspects and automatism adopted while interpreting a file
containing sometimes redundant, sometimes insufficient information. Here are some conventions.
If solving the datum associated with a certain field you can work through an id or through a description,
then the id is preferred. The description in these cases is ignored.
In case of duplicated information the identifier always prevails. If, for example, we are writing in the field of
the base #10 “BASE 8” the F-LINK protocol will privilege the base of the tinting system the id of which has
a 10 value.
We tried to make the transcription mechanism of the formula in the @CNT field versatile. This advantage
will be paid for with a rather complicated syntax. But once you understand the mechanism it should not be
difficult.
The easiest way to describe a formula is to store directly the quantity to dispense for each colorant:
10 / F-LINK

1. @CNT A 2.0 B 3.0


this means that we want to dispense two drops of colorant A and three of colorant B. The volume
associated with the drop will be the one stored in UNIT and FRACTION or the one of the selected product.
If there are no indications as regards this matter the volumes indicated will be expressed in cc.
2. In certain situations, though, it is if useful to specify the percentage ratios between the volumes of the
different colorants and the total volume. In other words it would be helpful to say that in a certain paint
there is 5% of a red colorant and 7% of a yellow colorant, being understood that the remaining 88% of the
product is represented by the base contained in the can into which the dispensing will be performed. This
fact is expressible by adopting the formalism of the percentage numbers; we have then to write:
@CNT A %5.0 B %7.0
the conversion of the concentrations transcribed in the corresponding units will be performed completely
automatically.
3. The default hypothesis is to work with volumetric concentrations. However, if we want to be explicit
we can use the flag @NPC@ (normal paste concentration) that expresses this fact more clearly. Thus,
the formula in the previous example can be written in a completely similar way:
@CNT A %5.0 B %7.0 @NPC@
4. In the end as it occurs that the concentrations represent not only the ratios among the volumes of the
coloured pastes, but rather the ratios in weight of the actual content of the same pastes, an additional
control flag has been introduced in order to let the F-LINK protocol know this fact.
@CNT A %5.0 B %7.0 @RPC@
In the case just shown the concentrations will be considered as percentage ratios of real pigments in
weight.

Example 1
In the following example F-LINK will search the formula with identifier 6 in the database of the product with
id 2 and sub-product with id 2. If the formula in question refers to a base different from the one stored in
the file, F-LINK will overwrite the datum.
@RUN
@PRD #2 “PRODUCT XXX” #2 “SUBPRODUCT YYY”
@CLR #6 “1060:Y40R”
@BAS #17 “THE_BASE”
@CAN #2 “4 L” 4000
@FRM 1000
@END

Example 2
The following example represents the minimum set of information necessary to define a formula.
@RUN
@PRD “PRODUCT A”
@BAS “Basexxx
@CNT “A” 2.5
@FRM 1000
@END
The meaning of the data is the following. To dispense two units and a half of colorant A using units and
fractions of product A. The formula is expressed for nominal 1000cc of the Base: Basexxx. The can has
not been selected.
F-LINK / 11

Let’s now see a complete example of a file of the F-LINK type.

@RUN - Start of the session


@PRD #3 “GRUPPO B” #1 “FARINA DI QUARZO” - Product and sub-product
@WGH 0 - Dispensing in volume
@UNT 31.25 96.00 - Dispensing unit
@CLR #20 “0310 TT|| | |” - Colour card formula
@BAS #23 “BASE TT - GRUPPO B FQ” 993 - Base
@CAN #4 - Can with id 4
@FRM “5,16,10,130,11,225,12,2” 5000.00 - Formula
@END - End of the session

The same formula can be expressed by using these information only.


@RUN - Start of the session
@PRD #3 #1 - Product and sub-product
@CLR #20 - Colour card formula
@CAN #4 - Can with id 4
@END - End of the session
Supposing that the type and dispensing unit are those stored in the COROB database for the #3 product.
And now here is an example of a non standard formula, that is a personalised one.
@RUN - Start of the session
@PRD #3 #1 - Product and sub-product
@CLR “Personalised colour” - Colour card formula
@BAS #23 - Base (compulsory )
@FRM “5,16,10,130,11,225,12,2” 5000.00 - Formula
@END - End of the session

You can write the same formula this way too:


@RUN - Start of the session
@PRD #3 #1 - Product and sub-product
@CLR “Personalised colour” - Colour card formula
@BAS #23 - Base (compulsory)
@CNT #5 16 #10 130 #11 225 #12 2 - Colorants and quantities
@END - End of the session

Remember finally that the @CNT field also admits the names of the colorants instead of the identifiers. If
we suppose that colorant #5 is “ Giallo ossido “ the couple #5 16 can also be written: “Giallo Ossido” 16,
and so on.

Вам также может понравиться