AnsweredAssumed Answered

OSI-PI UFL serial interface experience?

Question asked by mdspath on Feb 9, 2015
Latest reply on Feb 10, 2015 by mdspath

Hey Pi Developers:

I've gotten over the hurdles working with the UFL and test based files.Now were are being asked by a customer that has a Applikon ADI 1030 bioreactor weather or not we can talk to it to get data into he historian.

How configurable is the UFL serial port interface? From the documentation, it seems like it isnt programmable. Below is a section of the serial port manual guide from the 1030:


The ADI-protocol uses the following format:

STX N to,from M module F function

B block

L list

U unit CAE




/checksum CR


Node Module Instruction Unit Command Data Checksum

Note that no spaces are used in the command-string.

The command-string always starts with a <STX> (start of text) character, this is the ASCIIcharacter


The NODE-section is optional; if it is used, it is announced with a N character, followed by

the TO-node and FROM-node. The TO-node is the device number of the receiving device, the

FROM-node is the device number of the sending device. The TO-node and FROM-node are

always separated by a comma.

The Node-section is to be used when more than one ADI-instrument is connected to the serialline

(i.e. when using RS422 or RS485); however, the NODE-section can also be used on a

RS232 link although it doesn't make sense.

The MODULE-section should not be used in communication between a Host and an ADI

1030 Bio Controller; it is used for those ADI-instruments that have more than one Module

inside (e.g. the ADI1020). The ADI 1030 Bio Controller has no different modules, so a

received Module-Section will return an error message.

The INSTRUCTION-section holds the function(s) that are requested or commanded. The

Instruction-Section consists of one of the 3 characters F(unction), B(lock) or L(ist), followed

by the respective Function-Code, Block-Code or List-Number.

Function Mode: single command or request,

Block Mode: request adresses a block (group) of functions,

List Mode: request adresses a programmed list of functions.

The UNIT-section is optional and is used when more than one data-section is needed to

transfer all the information specified by the instruction.



Firmware V2.2x, March 1999


The Command-separator has 3 possible forms: the character "C", the character "A" or the

character "E".

When the command-string is send by the HOST, "C" is used to denote a COMMAND (this

can be a request for data or a command).

When the Bio Controller replies to the command, "A" is used to return the requested data or

to acknowledge the command; "E" is used to report an error.

The DATA-section holds the data to be used for the function(s). When the HOST sends data

to the Bio Controller, it uses the Data-section to transport it; when the HOST requests data

from the Bio Controller, the Data-section must be empty (in fact, an empty data-section marks

a request).

Note that when a function is an implicit command (i.e. a function that doesn't need data to

perform some action) the Data-Section is also empty.

The CHECKSUM-section is optional and holds both the Checksum-separator '/' and the

checksum itself. The checksum consists of two characters which represent a byte-value. This

byte-value is the checksum of the transmitted data.

The command-string always ends with a <CR> (carriage return), the use of a <LF> (line feed)

is optional.