26.12.2012 Views

Serial Communications Protocol Specifications - Swissvacuum.com

Serial Communications Protocol Specifications - Swissvacuum.com

Serial Communications Protocol Specifications - Swissvacuum.com

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

- 1 -<br />

ANGELANTONI Industrie S.P.A.<br />

<strong>Serial</strong> <strong>Communications</strong> <strong>Protocol</strong><br />

<strong>Specifications</strong><br />

For microPLC Chamber Controller<br />

Vers. 2.02 rev. B - September 1999<br />

REVISION REVISIONED CHAPTERS DATE AUTOR/S Q C. APPROVAL.(date and signature)<br />

A Emissione 22/09/98 Thecnical<br />

Office/pm<br />

11/02/98<br />

B 27/09/99 Software Dept. 27/09/99<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 2 -<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 3 -<br />

INDEX<br />

INTRODUCTION...............................................................................................................................................................................4<br />

ERROR DETECTION.......................................................................................................................................................................5<br />

COMMUNICATION ERRORS .........................................................................................................................................................6<br />

IDENTIFICATION OF A DATA PACKET.........................................................................................................................................7<br />

MODBUS FUNCTIONS....................................................................................................................................................................8<br />

FIELDS DESCRIPTION ...................................................................................................................................................................9<br />

MODBUS FUNCTIONS DESCRIPTION .................................................................................................................................... 10<br />

READ MULTIPLE REGISTERS: FUNCTION CODE: 3 (DECIMALE)....................................................................... 11<br />

WRITING FUNCTION: FUNCTION CODE: 16 (DECIMAL) ......................................................................................... 12<br />

COMMUNICATION PARAMETERS............................................................................................................................................. 13<br />

CODE EXAMPLES......................................................................................................................................................................... 14<br />

C LANGUAGE .......................................................................................................................................................................... 15<br />

VISUAL BASIC.......................................................................................................................................................................... 17<br />

EXAMPLES OF READING AND WRITING QUERY.................................................................................................................. 18<br />

CALCULATED CRC TABLES...................................................................................................................................................... 24<br />

mICROPLC MEMORY LAYOUT VERS. 2.0 ............................................................................................................................... 25<br />

READING AREA............................................................................................................................................................................. 26<br />

PT100 MEASURES................................................................................................................................................................. 26<br />

ANALOGIC INPUTS MEASURES ......................................................................................................................................... 26<br />

CALCULATED INPUTS MEASURES................................................................................................................................... 26<br />

MESSAGES .............................................................................................................................................................................. 28<br />

USER AND REAL SETTINGS ............................................................................................................................................... 29<br />

SETPOINTS READING........................................................................................................................................................... 32<br />

TEST PROGRAM STATUS..................................................................................................................................................... 33<br />

WRITING AREA.............................................................................................................................................................................. 34<br />

NOTE ............................................................................................................................................................................................... 36<br />

APPENDIX A: CONNECTION OF A SERIAL CABLE ......................................................................................................... 37<br />

Figures<br />

Fig. 1 Master and Slave Pag. 3<br />

Fig. 2: Communication overview Pag. 4<br />

Fig. 3: Noise on the line Pag. 4<br />

Fig. 4: Decoding a data packet Pag. 5<br />

Fig. 5: Frame identification Pag. 7<br />

Fig. 6 CRC calculation Pag. 12<br />

Fig. 7: System logic layout Pag. 23<br />

Fig. 8: <strong>Serial</strong> cable Pag. 32<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


INTRODUCTION<br />

- 4 -<br />

The present document contains information on the Modbus protocol for performing data exchange between a PC and<br />

the MicroPLC chamber controller. You can find here a short description of the query and answer sintax for the<br />

Modbus function 3 (read function) and function 16 (write function).<br />

Moreover, a short example of code has been included as a guideline for the development of a <strong>com</strong>plete program.<br />

A <strong>com</strong>munication protocol defines media, data formats and rules which are <strong>com</strong>mon to two or more systems wich<br />

must exchange informations by means of a phisical <strong>com</strong>munication line.<br />

Moreover is described here how the devices (master and salve) connected to the line interact between them to start<br />

and close the <strong>com</strong>munication, and the way to identify error conditons during the data transmission.<br />

Pratically the protocol allows a data exchange between Master device and a Slave device according to the following<br />

situation:<br />

Fig. 1 Master and Slave<br />

PC as MASTER CHAMBER CONTROLLER as SLAVE<br />

SLAVE ADDRESS<br />

FUNCTION CODE<br />

DATA<br />

ERROR CHECK<br />

SLAVE ADDRESS<br />

FUNCTION CODE<br />

DATA<br />

ERROR CHECK<br />

In this architecture, PC always acts as Master while the chamber controller is always the Slave device.<br />

The Master device is the only one that can start the <strong>com</strong>munication.<br />

The <strong>com</strong>munication consists essentially in a query made by the Master device (normally a PC) that is directly<br />

followed by an answer <strong>com</strong>ing from the Slave device (the MicroPLC chamber controller).<br />

The <strong>com</strong>munication task, either is a query or an answer, consists in preparing a data packet wich includes the<br />

identification code of the requested function, the lenght of the query/answer, the data itself and error check<br />

information. This data packet is then transmitted to the device on the other end of the serial <strong>com</strong>munication line.<br />

Thus the Modbus protocol defines the structure of the data packet in wich the relevant information to be exchanged<br />

are encapsulated. The fields consituting the data packet are: destination address, function code of the action to be<br />

performed, the relevant data for the operation and an error verification code.<br />

When a Slave device receives a data packet, it decodes the data and execute the operation that the Master device<br />

has required (operation that can be reading or writing data in the Slave device memory).<br />

At this point the Slave device create the needed data packet and “returns it to sender”. The information in the<br />

response message is the slave device address, the action performed, the data acquired as a result of the action and a<br />

mean of checking errors.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


The entire task can be described as follows:<br />

- 5 -<br />

Fig. 2 Communication overview<br />

MASTER (PC) SLAVE (CHAMBER CONTROLLER)<br />

Prepare query to send<br />

Send query to the slave via serial line.<br />

Wait answer from the Slave<br />

The Modbus protocol implemented in the MicroPLC chamber controller is the binary type (also known as RTU). In<br />

RTU mode data are sent as 8 bits binaries characters. A remote control <strong>com</strong>puter (typically a PC) is always the<br />

master device meanwhile the MicroPLC controller is the slave device.<br />

ERROR DETECTION<br />

As well known, <strong>com</strong>munication errors can occour during data transmission on a serial line. The errors generally <strong>com</strong>e<br />

from noise on the line and electrical or hardware problems on the devices used for the <strong>com</strong>munication.<br />

The software that controls the <strong>com</strong>munication (the PC) takes care to identify the errors and manage them with<br />

appropriate actions.<br />

Specifically, when an error is detected, the data packet must be discarded (not used) because the data inside are<br />

probably corrupted and meaningless.<br />

Only when no error is present, the data packet can be decoded to extract the answer <strong>com</strong>ing from the chamber<br />

controller.<br />

The errors can be present in both sides of the serial line (PC side and chamber controller side). If the error is identified<br />

by the chamber controller, then no answer will be send to the master.<br />

Fig. 3 Noise on the line<br />

Wait data from the master<br />

Decode packet and prepare the<br />

answer<br />

Send packet to the master<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 6 -<br />

Fig. 4 Decoding a data packet<br />

There are 2 types of errors which may occour: transmission errors and programming or operation errors. The Modbus<br />

system has specific methods for dealing with either type of error.<br />

COMMUNICATION ERRORS<br />

This kind of errors happens when a condition of FRAME or PARITY or OVERRUN error is detected (generally due to<br />

same problems of noise on the transmission lines) or when an invalid CRC (cyclical redundancy check) is found in the<br />

received data packet.<br />

When one or more of these errors is detected, the message (probably damaged) is not processed: the Slave<br />

device (microPLC) will not answer to the message.<br />

Operation / programming errors<br />

Are those which present incorrect data in a message. In this case the Slave device (MicroPLC) produces an<br />

“exception” depending on the error type; the exception error code is inserted in the answer data packet, so that it<br />

allows the master device (PC) to identify the error condition.<br />

To identify this exception, the most significant bit of the function code of the answer packet (<strong>com</strong>ing from the<br />

microPLC to the PC) is set to 1.<br />

Exception codes<br />

<strong>Serial</strong> <strong>com</strong>munication line<br />

MASTER SLAVE<br />

Data packet<br />

Any error ?<br />

No<br />

Decode the packet to get the<br />

answer from the slave.<br />

Noise<br />

Ye<br />

01 Illegal function<br />

02 Illegal data address<br />

Do not use the packet<br />

because corrupted<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 7 -<br />

03 Illegal data value<br />

04 Failure in associated device<br />

05 Acknowledge: the slave is processing the request<br />

06 Busy: busy device, rejected message<br />

NAK: It is impossible to execute the requested function<br />

07 Memory parity error<br />

For example, let us say that we want to read data from the slave. Master prepares a data packet (query) with modbus<br />

function code 3 (function code 3 identifies a READ request as we will see later) and send the packet to the slave.<br />

In preparing the answer, the slave will return the same function code if no exception is present, otherwise it will return<br />

the exception code as reported below (note that only the first two bytes of the data packet are showed here: the<br />

detailed explanation of the entire frame will follow in the specific paragraph)<br />

0 ADDRESS Chamber controller address<br />

1 03 dec: 00000011 binary Modbus function code for read operation<br />

2 ….<br />

3 ….<br />

4 ….<br />

0 ADDRESS Chamber controller address<br />

1 03 hex: 00000011 binary Modbus function code for read operation<br />

2 ….<br />

3 ….<br />

4 ….<br />

0 ADDRESS Chamber controller address<br />

1 83 hex: 10000011 binary Modbus function code + exception<br />

2 02 Exception number: illegal data address<br />

3 Error check<br />

4 Error check<br />

IDENTIFICATION OF A DATA PACKET<br />

Two different ways are available to the programmer to identify a data packet in binary mode:<br />

� FRAME SYNCHRONIZATION<br />

� LENGHT SYNCHRONIZATION.<br />

In the following section a short description of both will be done in order to have an overview on advantages and<br />

difficulties of both.<br />

FRAME SYNCHRONIZATION<br />

QUERY FROM THE MASTER TO THE SLAVE<br />

ANSWER FROM THE SLAVE, NO EXCEPTION<br />

ANSWER FROM THE SLAVE, EXCEPTION 02<br />

Frame synchronization can be manteined in binary transmission mode (RTU) only by simulating a<br />

synchronous message. The receiving device monitors the elapsed time between receipt of characters.<br />

Modbus specifications requests that this time (time between the reception of a character and the following) is<br />

less or equal to 3.5 times the time of character transmission because the received data can be considered<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 8 -<br />

as part of the current data packet. If not, the character will be considered as the first character of a new data<br />

packet.<br />

For example, at 9600 bps the time between the transmission of a character and the next one is approximately<br />

800 microsec. If the next character will be received after more than 800 * 3.5 microseconds,<br />

the character will be the first of a new data packet.<br />

The following picture shows how a received character belongs to the current data packet (frame) or begins a<br />

new frame according to the time elapsed since the previous character was detected.<br />

In this picture the horizontal axis is the time axis and each rectangle identifies a character. A packet consists<br />

of all characters with intercharacter time less than time specified by Modbus (T = 800 * 3.5 microseconds at<br />

9600 bps)<br />

More than<br />

T=2800 microsec.<br />

Fig. 5 Frame identification<br />

Note that this method requires a very precise timing to get data from serial line. Considering that Windows is not a real-time<br />

system (and so it cannot garantee the timing required) it is preferable not to use it under this operating system.<br />

LENGHT SYNCHRONIZATION<br />

Each modbus function has a well defined length, both for queries and answers. Knowing these lengths, it is possible<br />

to identify the end of a packet while receiving.<br />

This way of operation is probably the simplest to use, both for development of a <strong>com</strong>mincation software and for the<br />

debug operation.<br />

In effect you always know how many character you are waiting for according to the query you sent to the slave device.<br />

This is also true when an error occours during the <strong>com</strong>munication: the lenght of an answer with an exception is<br />

however known.<br />

MODBUS FUNCTIONS<br />

Previous frame<br />

Data packet<br />

Time between characters is less<br />

than 800*3.5 microseconds: the<br />

characters belongs to the current<br />

New frame<br />

More than<br />

T=2800 microsec.<br />

All the operations with the chamber controller can be done with only two of the Modbus functions:<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


� Read Function: function code 3 (decimal)<br />

� Write Function: function code 16 (decimal)<br />

- 9 -<br />

Master can use these functions in order to take actions on the slave (chamber controller).<br />

READ FUNCTION (FUNCTION CODE: 3)<br />

The Modbus read operation (function code 3) can be described as follows:<br />

FUNCTION<br />

QUERY LENGTH<br />

ANSWER LENGTH<br />

CODE<br />

( without error check field) ( without error check field)<br />

3 (decimal) 6 bytes 3 bytes + content of the 3 rd<br />

WRITE operation (FUNtION CODE: 16)<br />

The write operation (function code 16) is described as following<br />

FUNCTION<br />

QUERY LENGTH.<br />

CODE<br />

( without error check field )<br />

16 (decimal) 7 + the content of the 7 th<br />

byte<br />

In order to get the total data length, add 2 bytes for CRC.<br />

byte of the answer<br />

LUNGHEZZA RISPOSTA<br />

( without error check field)<br />

6 bytes<br />

Each function is organized in fields with specific meaning. In the following section a short description of the fields is<br />

given, and a detailed explanation of the read and write functions follows.<br />

FIELDS DESCRIPTION<br />

ADDRESS FIELD<br />

This is the first field of the structure and consists of 1 byte. This byte identifies the address of the chamber<br />

controller (slave) to work with.<br />

Each slave must have a unique address and only the addressed slave will respond to a query that contains its<br />

address.<br />

The chamber controller address is always 17 (decimal)<br />

FUNCTION FIELD<br />

Tells the addressed slave what function to perform. The high order bit (High Order HO in the following) in this<br />

field is set by the slave device to indicate that other than a normal response is being transmitted to the Master<br />

device (see the discussion regarding the exceptions in the answer). The bit remains 0 if the message is a query<br />

or a normal response message.<br />

DATA FIELD<br />

Contains information needed by the slave to perform the specific function or it contains data collected by the<br />

slave in response to a query.<br />

ERROR CHECK FIELD<br />

The error check field uses a CRC calculation, which described later in the examples.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


MODBUS FUNCTIONS DESCRIPTION<br />

- 10 -<br />

For each function an example is given for the query packet from the PC and the answer packet from the slave. Take<br />

into account that the chamber controller has 17 (decimal) as address and that the addresses of the memory locations<br />

to read from and to write to are listed in the next section of this manual.<br />

Some conventions are used to describe the data inside the functions:<br />

“HO”: High Order or Most Significant (refers to bits or bytes depending on the situation)<br />

“LO”: Low Order or Least Significant (refers to bits or bytes depending on the situation)<br />

“Register”: a memory location inside the chamber controller memory area; it consistes of 2 bytes<br />

Master prepares a query packet to read from or to write to the chamber controller, then waits for the answer. When<br />

the answer is available a check is done to identify the errors (if any). The decode operation is the last action to be<br />

performed when no errors have been encountered in the data packet.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 11 -<br />

READ MULTIPLE REGISTERS: FUNCTION CODE: 3 (DECIMAL)<br />

Allows the user to obtain the binary contents of holding registers in the addressed slave (the chamber controller)<br />

The addressing allows up to 125 registers to be obtained at each request.<br />

The registers are numbered starting from 0.<br />

The below example reads 104 registers from slave starting at address 2000. All values are in decimal format.<br />

Note that the following table is exactly the content of a byte array you can send to the serial device in order to read<br />

from the chamber controller.<br />

QUERY<br />

INDEX MEANING TX BUFFER<br />

0 MPLC ADDRESS 17<br />

1 FUNCTION NUMBER 03<br />

2 DATA START REGISTER, HO 07<br />

3 DATA START REGISTER, LO 208<br />

4 REGISTERS TO BE READ, HO 00<br />

5 REGISTERS TO BE READ, LO 104<br />

6 ERROR CHECK 70<br />

7 ERROR CHECK 57<br />

ANSWER<br />

The addressed slave responds with its address and the function code, followed by the information field. The<br />

information field contains 2 bytes describing the quantity of data bytes to be returned. The contents of the<br />

requested registers (data) are two bytes each, with the binary content right justified within each pair of<br />

characters.<br />

The first byte includes the high order bits and the second the low order bits.<br />

DATA MEANING<br />

17 ADDRESS<br />

03 FUNCTION NUMBER<br />

208 (&HD0) BYTE IN THE PACKET (REG. REQUESTED * 2)<br />

HO OF REG. OF DATA OUTPUT 0<br />

LO OF REG. OF DATA OUTPUT 0<br />

HO OF REG. OF DATA OUTOPUT 1<br />

LO OF REG. OF DATA OUTPUT 1<br />

HO OF REG. OF DATA OUTPUT 2<br />

LO OF REG. OF DATA OUTPUT 2<br />

------<br />

------<br />

ERROR CHECK<br />

ERROR CHECK<br />

The total length of the data packet expected is of 213 bytes (3 bytes of header + 208 + 2 bytes CRC)<br />

Data that must be decoded<br />

according to the description of<br />

microPLC memory<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 12 -<br />

WRITING FUNCTION: FUNCTION CODE: 16 (DECIMAL)<br />

NOTE:<br />

This operation overwrite existing memory values. Be carefull to write only to the right position<br />

according to the microPLC memory layout.<br />

Wrong write operation (wrong address) can damage specific memory contents reserved to the<br />

functionality of the system.<br />

Registers existings within the controller can have their contents changed by this message (a maximum of 60<br />

registers)<br />

The following example shows the writing of 30 registers (60 bytes) at address 2300 (decimal). This address is a<br />

controller memory area reserved to write operations for chamber control. You can find the description of this<br />

area in the specific section of this manual.<br />

All values are in decimal.<br />

QUERY<br />

Data that must<br />

be written in<br />

the controller<br />

memory<br />

ANSWER<br />

DATA MEANING<br />

17 ADDRESS<br />

16 FUNCITON NUMBER<br />

08 REG. ADDRESS HO<br />

252 REG. ADDRESS LO<br />

00 REG. NUMBER HI<br />

30 REG. NUMBER LO<br />

60 BYTES NUMBER<br />

------ DATA HO<br />

------ DATA LO<br />

DATA HO<br />

DATA LO<br />

ERROR CHECK<br />

ERROR CHECK<br />

The normal answer to function 16 returns the following data, with a total packet length of 8 bytes.<br />

DATA MEANING<br />

17 ADDRESS<br />

16 FUNCTION NUMBER<br />

08 ADDRESS HO<br />

252 ADDRESS LO<br />

00 REG. NUM. HO<br />

30 REG. NUM. LO<br />

128 ERROR CHECK<br />

193 ERROR CHECK<br />

Bytes number =<br />

2 * num. Of<br />

registers.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


COMMUNICATION PARAMETERS<br />

- 13 -<br />

The following parameters must be used to configure the serial port of the PC in order to <strong>com</strong>municate with the<br />

chamber controller.<br />

These parameters cannot be changed.<br />

NAME VALUE<br />

BAUD RATE 19200<br />

PARITY NONE<br />

STOP BITS 1<br />

DATA LENGHT 8<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


CODE EXAMPLES<br />

- 14 -<br />

In this section we show how to <strong>com</strong>pute the CRC according to the Modbus protocol requirements. Note that the CRC<br />

must be added to the packet to be sent to the controller and also must be <strong>com</strong>puted on the received packet to verify<br />

its integrity.<br />

Also some little programs are reported on how to prepare a query packet to talk to the controller using C language<br />

and Visual Basic.<br />

QUERY<br />

ANSWER<br />

Prepare data packet<br />

CRC calculation<br />

Add CRC at the end of<br />

data packet<br />

Get the answer from the<br />

serial port buffer<br />

CRC calculation on the<br />

received packet<br />

Compare the <strong>com</strong>puted<br />

CRC calcolato with the<br />

CRC in the data packet<br />

No match: data packet<br />

corrupted: do not use it!<br />

Fig. 6 – CRC calculation<br />

Send packet<br />

Receiving a data packet<br />

CRCs match: data packet<br />

correct: decode it!<br />

Warning! All examples are only suggestions and indications of a possible program organization.<br />

ANGELANTONI Industrie declaims all responsibility for the use (correct or not correct) of this<br />

code.<br />

It is up to the software engineer to modify, <strong>com</strong>plete and test the examples for his own purposes.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


C LANGUAGE<br />

- 15 -<br />

The following examples show how to initialize the CRC table and how to <strong>com</strong>pute the CRC bytes to be added at the<br />

end of the packet to be sent to the controller.<br />

#define CRC16 0xA001<br />

static unsigned char TABLE1[256], TABLE2[256];<br />

//Initialize tables for the calculation of the CRC<br />

static void InitCRC()<br />

{<br />

unsigned char i;<br />

unsigned int mask, crc, mem;<br />

}<br />

for(mask=0;mask 8); /* hibyte */<br />

}<br />

//Calculate the CRC<br />

static unsigned int CalcCRC(unsigned char *buf, unsigned char size)<br />

{<br />

unsigned char car,i;<br />

unsigned char crc0,crc1;<br />

crc0 = 0xff;<br />

crc1 = 0xff;<br />

for(i=0;i


- 16 -<br />

The following code is just an example that shows how to elaborate a data block to be transmitted to the chamber<br />

controller in order to read back others data.<br />

As explained previously, you have to specify the starting address of the data block and the number of the registers to<br />

be read.<br />

QUERY (function 3)<br />

void ModbusReadStatus(void)<br />

{<br />

int r, n, cmd;<br />

unsigned char tx[50];<br />

//Read 104 words starting at address 2000<br />

r = 2000; //starting address<br />

n = 104; //number of registers to read<br />

tx[0] = 17; //mPLC address<br />

tx[1] = 3; //Modbus read (function 3)<br />

tx[2] = (unsigned char)(r >> 8); //first register (HO byte) = 7<br />

tx[3] = (unsigned char)(r & 0xFF); //first register (LO byte) = 208<br />

tx[4] = (unsigned char)(n >> 8); //num. of registers (HO byte) = 0<br />

tx[5] = (unsigned char)(n & 0xFF); //num. Of registers (LO byte) = 104<br />

ModbusTxMsg(tx, sizeof(tx[0]) * 6);<br />

}<br />

//The ModbusTxMsg()function is used to reach the CRC field at the end of<br />

//the packet and and send packet to the controller. Below there is just<br />

//a skeleton of a possible way to implement the code.<br />

memcpy(pData, buffer, size);<br />

*(unsigned int *)(pData+size) = CalcCRC(pData,size);<br />

//send data<br />

In effect, in order to read 104 registers starting from address 2000, the <strong>com</strong>plete packet to be transmitted to the<br />

controller is as follows:<br />

tx[0] = 17;<br />

tx[1] = 3;<br />

tx[2] = 7<br />

tx[3] = 208<br />

tx[4] = 0<br />

tx[5] = 104<br />

tx[6] = 70<br />

tx[7] = 57<br />

ANSWER ( Function 3 )<br />

The PC software waits for the <strong>com</strong>plete packet <strong>com</strong>ing from the controller. As previously seen, a data packet can be<br />

detected using TIME SYNCHRONIZATION or FRAME SYNCHRONIZATION.<br />

All data must be converted into a type according to the specifications of controller memory layout.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


VISUAL BASIC<br />

- 17 -<br />

We assume you are familiar with VISUAL BASIC 5.0 (or upper) for Windows 95. Only the important sections of code<br />

are present in the following description.<br />

CRC CALCULATION<br />

Private Const CRC16 As Long = 40961 '0xA001 in exadecimal<br />

Private table1(255) As Byte<br />

Private table2(255) As Byte<br />

Private Function calcCrc(buf() As Byte, size As Byte) As Long<br />

‘Calculation of CRC<br />

Dim i As Byte<br />

Dim car As Long<br />

Dim crc0 As Long<br />

Dim crc1 As Long<br />

crc0 = &HFF<br />

crc1 = &HFF<br />

For i = 0 To size - 1<br />

car = buf(i)<br />

car = car Xor crc0<br />

crc0 = (crc1 Xor table2(car)) And &HFF<br />

crc1 = table1(car)<br />

Next i<br />

calcCrc = (crc1 * 256 + crc0) And &HFFFF<br />

End Function<br />

Public Sub initCrc()<br />

‘Initialize the tables to use by the calcCrc() function<br />

Dim i As Byte<br />

Dim mask As Long<br />

Dim crc As Long<br />

Dim mem As Long<br />

For mask = 0 To 255<br />

crc = mask<br />

For i = 0 To 7<br />

mem = crc And &H1<br />

crc = crc \ 2<br />

If mem 0 Then crc = crc Xor CRC16<br />

Next i<br />

table2(mask) = crc And &HFF<br />

table1(mask) = crc \ 256<br />

Next mask<br />

End Sub<br />

The query packet to be sent to the controller is reported below:<br />

address = 2000<br />

mbtx(0) = 17 ‘address of µPLC<br />

mbtx(1) = 3 ‘function number (reading))<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


mbtx(2) = address \ 256<br />

- 18 -<br />

‘hi byte (start reg.)<br />

mbtx(3) = address And &HFF ‘low byte (start reg.)<br />

mbtx(4) = 0 ‘hi byte (num. reg.)<br />

mbtx(5) = 104 ‘low byte (num. reg.)<br />

crc = calcCrc(mbtx(), 6) ‘calculate the CRC<br />

mbtx(6) = crc And &HFF ‘low byte CRC<br />

mbtx(7) = crc \ 256 ‘hi byte CRC<br />

EXAMPLES OF READING AND WRITING QUERY<br />

In the following section, a dump of data <strong>com</strong>munication is reported in order to see what really happens in a normal<br />

<strong>com</strong>munication session between master and slave.<br />

WRITING OPERATION<br />

Let’s say that we want to send the following configuration to the chamber controller:<br />

Temperature: 50 Celsius degree<br />

Relative Humidity: 70%<br />

Run bit: ON<br />

Temperature channel: ON<br />

Re. Humidity channel: ON<br />

Dedicated contacts: ON for all the eight contacts available<br />

As described previously, a query packet must be prepared and sent to the chamber controller to write data to the<br />

specific locations we are interested in.<br />

When the controller receives this data packet, it decodes it, acts as requested changing the content of the memory<br />

locations to work with, and answer to the master.<br />

The answer can be a normal answer packet for the function numer 16, or an error packet if an exception has been<br />

detected.<br />

Note also that, if a <strong>com</strong>munication error (frame, parity, overrun or CRC) has been detected by the slave, no answer will<br />

be sent to the master.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 19 -<br />

> Query sent:<br />

> 000: 017 0011 mplc address<br />

> 001: 016 0010 modbus function number<br />

> 002: 008 0008 memory address high<br />

> 003: 252 00FC memory address low<br />

> 004: 000 0000 number of registers high<br />

> 005: 030 001E number of registers low<br />

> 006: 060 003C byte count<br />

> 007: 003 0003 high order data Channels T and RH in ON status<br />

> 008: 001 0001 low order data Run bit in ON status<br />

> 009: 000 0000 high order data<br />

> 010: 255 00FF low order data All dedicated cintacts in ON status<br />

> 011: 000 0000 high order data<br />

> 012: 000 0000 low order data<br />

> 013: 000 0000 high order data<br />

> 014: 000 0000 low order data<br />

> 015: 019 0013 high order data Temperature Set: 50 degrees<br />

> 016: 136 0088 low order data codified as 5000<br />

> 017: 000 0000 high order data<br />

> 018: 000 0000 low order data<br />

> 019: 000 0000 high order data<br />

> 020: 000 0000 low order data<br />

> 021: 027 001B high order data Set of RH: 70%<br />

> 022: 088 0058 low order data codified as 7000<br />

> 023: 000 0000 high order data<br />

> 024: 000 0000 low order data<br />

> 025: 000 0000 high order data<br />

> 026: 000 0000 low order data<br />

> 027: 000 0000 high order data<br />

> 028: 000 0000 low order data<br />

> 029: 000 0000 high order data<br />

> 030: 000 0000 low order data<br />

> 031: 000 0000 high order data<br />

> 032: 000 0000 low order data<br />

> 033: 000 0000 high order data<br />

> 034: 000 0000 low order data<br />

> 035: 000 0000 high order data<br />

> 036: 000 0000 low order data<br />

> 037: 000 0000 high order data<br />

> 038: 000 0000 low order data<br />

> 039: 000 0000 high order data<br />

> 040: 000 0000 low order data<br />

> 041: 000 0000 high order data<br />

> 042: 000 0000 low order data<br />

> 043: 000 0000 high order data<br />

> 044: 000 0000 low order data<br />

> 045: 000 0000 high order data<br />

> 046: 000 0000 low order data<br />

> 047: 000 0000 high order data<br />

> 048: 000 0000 low order data<br />

> 049: 000 0000 high order data<br />

> 050: 000 0000 low order data<br />

> 051: 000 0000 high order data<br />

> 052: 000 0000 low order data<br />

> 053: 000 0000 high order data<br />

> 054: 000 0000 low order data<br />

> 055: 000 0000 high order data<br />

> 056: 000 0000 low order data<br />

> 057: 000 0000 high order data<br />

> 058: 000 0000 low order data<br />

> 059: 000 0000 high order data<br />

> 060: 000 0000 low order data<br />

> 061: 000 0000 high order data<br />

> 062: 000 0000 low order data<br />

> 063: 000 0000 high order data<br />

> 064: 000 0000 low order data<br />

> 065: 000 0000 high order data<br />

> 066: 000 0000 low order data<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


067: 049 0031 error check<br />

> 068: 068 0044 error check<br />

� End packet.<br />

> Data received: (idx) (dec) (hex)<br />

> 000: 017 (0011) mplc address<br />

> 001: 016 (0010) modbus function number<br />

> 002: 008 (0008) high order address<br />

> 003: 252 (00FC) low order address<br />

> 004: 000 (0000) quantity<br />

> 005: 030 (001E) quantity<br />

> 006: 128 (0080) error check<br />

> 007: 193 (00C1) error check<br />

> End packet.<br />

READING OPERATION<br />

- 20 -<br />

Let’ s say that the following data are returned from the slave to the master:<br />

Temperature: 137.6 Celsius degree<br />

Rel. Humidity: 0.0%<br />

Temperature channel: ON<br />

Rel. Humidity channel: ON<br />

Run bit: ON<br />

Dedicated contacts: ON<br />

In the example below we read 104 registers, starting at address 2000. Please note that many of the data returned by<br />

the controller are not used, so it is also possible to read just a sub-block of these registers, containing only the data<br />

we really need to know.<br />

See the controller memory map to know more about the reading area.<br />

> Query sent:<br />

> 000: 017 0011 mplc address<br />

> 001: 003 0003 modbus function number<br />

> 002: 007 0007 memory address high<br />

> 003: 208 00D0 memory address low<br />

> 004: 000 0000 number of registers high<br />

> 005: 104 0068 number of registers low<br />

> 006: 070 0046 error check<br />

> 007: 057 0039 error check<br />

� End packet.<br />

> Data received: (idx) (dec) (hex)<br />

> 000: 017 (0011) mplc address<br />

> 001: 003 (0003) modbus function number<br />

> 002: 208 (00D0) byte count<br />

> 003: 053 (0035) mplc addr. 2000 (h.o. data) [ pt100 sensors ]<br />

> 004: 189 (00BD)<br />

> 005: 000 (0000) mplc addr. 2001 (h.o. data)<br />

> 006: 000 (0000)<br />

> 007: 058 (003A) mplc addr. 2002 (h.o. data)<br />

> 008: 243 (00F3)<br />

> 009: 000 (0000) mplc addr. 2003 (h.o. data)<br />

> 010: 000 (0000)<br />

> 011: 000 (0000) mplc addr. 2004 (h.o. data)<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 21 -<br />

> 012: 000 (0000)<br />

> 013: 000 (0000) mplc addr. 2005 (h.o. data)<br />

> 014: 000 (0000)<br />

> 015: 000 (0000) mplc addr. 2006 (h.o. data)<br />

> 016: 000 (0000)<br />

> 017: 000 (0000) mplc addr. 2007 (h.o. data)<br />

> 018: 000 (0000)<br />

> 019: 000 (0000) mplc addr. 2008 (h.o. data)<br />

> 020: 000 (0000)<br />

> 021: 000 (0000) mplc addr. 2009 (h.o. data)<br />

> 022: 000 (0000)<br />

> 023: 000 (0000) mplc addr. 2010 (h.o. data)<br />

> 024: 000 (0000)<br />

> 025: 000 (0000) mplc addr. 2011 (h.o. data)<br />

> 026: 000 (0000)<br />

> 027: 031 (001F) mplc addr. 2012 (h.o. data) [ analog inputs ]<br />

> 028: 140 (008C)<br />

> 029: 000 (0000) mplc addr. 2013 (h.o. data)<br />

> 030: 000 (0000)<br />

> 031: 135 (0087) mplc addr. 2014 (h.o. data)<br />

> 032: 052 (0034)<br />

> 033: 000 (0000) mplc addr. 2015 (h.o. data)<br />

> 034: 000 (0000)<br />

> 035: 030 (001E) mplc addr. 2016 (h.o. data)<br />

> 036: 025 (0019)<br />

> 037: 000 (0000) mplc addr. 2017 (h.o. data)<br />

> 038: 000 (0000)<br />

> 039: 131 (0083) mplc addr. 2018 (h.o. data)<br />

> 040: 154 (009A)<br />

> 041: 000 (0000) mplc addr. 2019 (h.o. data)<br />

> 042: 000 (0000)<br />

> 043: 000 (0000) mplc addr. 2020 (h.o. data)<br />

> 044: 000 (0000)<br />

> 045: 000 (0000) mplc addr. 2021 (h.o. data)<br />

> 046: 000 (0000)<br />

> 047: 000 (0000) mplc addr. 2022 (h.o. data)<br />

> 048: 000 (0000)<br />

> 049: 000 (0000) mplc addr. 2023 (h.o. data)<br />

> 050: 000 (0000)<br />

> 051: 000 (0000) mplc addr. 2024 (h.o. data)<br />

> 052: 000 (0000)<br />

> 053: 000 (0000) mplc addr. 2025 (h.o. data)<br />

> 054: 000 (0000)<br />

> 055: 000 (0000) mplc addr. 2026 (h.o. data)<br />

> 056: 000 (0000)<br />

> 057: 000 (0000) mplc addr. 2027 (h.o. data)<br />

> 058: 000 (0000)<br />

> 059: 000 (0000) mplc addr. 2028 (h.o. data)<br />

> 060: 000 (0000)<br />

> 061: 000 (0000) mplc addr. 2029 (h.o. data)<br />

> 062: 000 (0000)<br />

> 063: 000 (0000) mplc addr. 2030 (h.o. data)<br />

> 064: 000 (0000)<br />

> 065: 000 (0000) mplc addr. 2031 (h.o. data)<br />

> 066: 000 (0000)<br />

> 067: 000 (0000) mplc addr. 2032 (h.o. data) [ <strong>com</strong>puted measures ]<br />

> 068: 000 (0000)<br />

> 069: 000 (0000) mplc addr. 2033 (h.o. data)<br />

> 070: 000 (0000)<br />

> 071: 000 (0000) mplc addr. 2034 (h.o. data)<br />

> 072: 000 (0000)<br />

> 073: 000 (0000) mplc addr. 2035 (h.o. data)<br />

> 074: 000 (0000)<br />

> 075: 053 (0035) mplc addr. 2036 (h.o. data)<br />

> 076: 189 (00BD)<br />

> 077: 000 (0000) mplc addr. 2037 (h.o. data)<br />

> 078: 000 (0000)<br />

> 079: 000 (0000) mplc addr. 2038 (h.o. data)<br />

> 080: 000 (0000)<br />

> 081: 000 (0000) mplc addr. 2039 (h.o. data)<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 22 -<br />

> 082: 000 (0000)<br />

> 083: 000 (0000) mplc addr. 2040 (h.o. data)<br />

> 084: 000 (0000)<br />

> 085: 000 (0000) mplc addr. 2041 (h.o. data)<br />

> 086: 000 (0000)<br />

> 087: 000 (0000) mplc addr. 2042 (h.o. data)<br />

> 088: 000 (0000)<br />

> 089: 000 (0000) mplc addr. 2043 (h.o. data)<br />

> 090: 000 (0000)<br />

> 091: 000 (0000) mplc addr. 2044 (h.o. data)<br />

> 092: 000 (0000)<br />

> 093: 000 (0000) mplc addr. 2045 (h.o. data)<br />

> 094: 000 (0000)<br />

> 095: 000 (0000) mplc addr. 2046 (h.o. data)<br />

> 096: 000 (0000)<br />

> 097: 000 (0000) mplc addr. 2047 (h.o. data)<br />

> 098: 000 (0000)<br />

> 099: 000 (0000) mplc addr. 2048 (h.o. data)<br />

> 100: 000 (0000)<br />

> 101: 000 (0000) mplc addr. 2049 (h.o. data)<br />

> 102: 000 (0000)<br />

> 103: 000 (0000) mplc addr. 2050 (h.o. data)<br />

> 104: 000 (0000)<br />

> 105: 000 (0000) mplc addr. 2051 (h.o. data)<br />

> 106: 000 (0000)<br />

> 107: 002 (0002) mplc addr. 2052 (h.o. data) [ alarms/messag. ]<br />

> 108: 000 (0000)<br />

> 109: 000 (0000) mplc addr. 2053 (h.o. data) [ alarms/messag. ]<br />

> 110: 000 (0000)<br />

> 111: 000 (0000) mplc addr. 2054 (h.o. data)<br />

> 112: 000 (0000)<br />

> 113: 000 (0000) mplc addr. 2055 (h.o. data)<br />

> 114: 001 (0001)<br />

> 115: 003 (0003) mplc addr. 2056 (h.o. data) [ required settings ]<br />

> 116: 001 (0001)<br />

> 117: 000 (0000) mplc addr. 2057 (h.o. data) [ required settings ]<br />

> 118: 255 (00FF)<br />

> 119: 000 (0000) mplc addr. 2058 (h.o. data)<br />

> 120: 000 (0000)<br />

> 121: 000 (0000) mplc addr. 2059 (h.o. data)<br />

> 122: 000 (0000)<br />

> 123: 003 (0003) mplc addr. 2060 (h.o. data) [ real settings ]<br />

> 124: 001 (0001)<br />

> 125: 000 (0000) mplc addr. 2061 (h.o. data) [ real settings ]<br />

> 126: 128 (0080)<br />

> 127: 000 (0000) mplc addr. 2062 (h.o. data)<br />

> 128: 000 (0000)<br />

> 129: 000 (0000) mplc addr. 2063 (h.o. data)<br />

> 130: 000 (0000)<br />

> 131: 000 (0000) mplc addr. 2064 (h.o. data) [ setpoint readings ]<br />

> 132: 000 (0000)<br />

> 133: 000 (0000) mplc addr. 2065 (h.o. data)<br />

> 134: 000 (0000)<br />

> 135: 000 (0000) mplc addr. 2066 (h.o. data)<br />

> 136: 000 (0000)<br />

> 137: 000 (0000) mplc addr. 2067 (h.o. data)<br />

> 138: 000 (0000)<br />

> 139: 000 (0000) mplc addr. 2068 (h.o. data)<br />

> 140: 000 (0000)<br />

> 141: 000 (0000) mplc addr. 2069 (h.o. data)<br />

> 142: 000 (0000)<br />

> 143: 000 (0000) mplc addr. 2070 (h.o. data)<br />

> 144: 000 (0000)<br />

> 145: 000 (0000) mplc addr. 2071 (h.o. data)<br />

> 146: 000 (0000)<br />

> 147: 000 (0000) mplc addr. 2072 (h.o. data)<br />

> 148: 000 (0000)<br />

> 149: 000 (0000) mplc addr. 2073 (h.o. data)<br />

> 150: 000 (0000)<br />

> 151: 000 (0000) mplc addr. 2074 (h.o. data)<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 23 -<br />

> 152: 000 (0000)<br />

> 153: 000 (0000) mplc addr. 2075 (h.o. data)<br />

> 154: 000 (0000)<br />

> 155: 000 (0000) mplc addr. 2076 (h.o. data)<br />

> 156: 000 (0000)<br />

> 157: 000 (0000) mplc addr. 2077 (h.o. data)<br />

> 158: 000 (0000)<br />

> 159: 000 (0000) mplc addr. 2078 (h.o. data)<br />

> 160: 000 (0000)<br />

> 161: 000 (0000) mplc addr. 2079 (h.o. data)<br />

> 162: 000 (0000)<br />

> 163: 000 (0000) mplc addr. 2080 (h.o. data)<br />

> 164: 000 (0000)<br />

> 165: 000 (0000) mplc addr. 2081 (h.o. data)<br />

> 166: 000 (0000)<br />

> 167: 000 (0000) mplc addr. 2082 (h.o. data)<br />

> 168: 000 (0000)<br />

> 169: 000 (0000) mplc addr. 2083 (h.o. data)<br />

> 170: 000 (0000)<br />

> 171: 000 (0000) mplc addr. 2084 (h.o. data)<br />

> 172: 000 (0000)<br />

> 173: 000 (0000) mplc addr. 2085 (h.o. data)<br />

> 174: 000 (0000)<br />

> 175: 000 (0000) mplc addr. 2086 (h.o. data)<br />

> 176: 000 (0000)<br />

> 177: 000 (0000) mplc addr. 2087 (h.o. data)<br />

> 178: 000 (0000)<br />

> 179: 000 (0000) mplc addr. 2088 (h.o. data)<br />

> 180: 000 (0000)<br />

> 181: 000 (0000) mplc addr. 2089 (h.o. data)<br />

> 182: 000 (0000)<br />

> 183: 000 (0000) mplc addr. 2090 (h.o. data)<br />

> 184: 000 (0000)<br />

> 185: 000 (0000) mplc addr. 2091 (h.o. data)<br />

> 186: 000 (0000)<br />

> 187: 000 (0000) mplc addr. 2092 (h.o. data)<br />

> 188: 000 (0000)<br />

> 189: 000 (0000) mplc addr. 2093 (h.o. data)<br />

> 190: 000 (0000)<br />

> 191: 000 (0000) mplc addr. 2094 (h.o. data)<br />

> 192: 000 (0000)<br />

> 193: 000 (0000) mplc addr. 2095 (h.o. data)<br />

> 194: 000 (0000)<br />

> 195: 000 (0000) mplc addr. 2096 (h.o. data)<br />

> 196: 000 (0000)<br />

> 197: 000 (0000) mplc addr. 2097 (h.o. data)<br />

> 198: 000 (0000)<br />

> 199: 000 (0000) mplc addr. 2098 (h.o. data)<br />

> 200: 000 (0000)<br />

> 201: 000 (0000) mplc addr. 2099 (h.o. data)<br />

> 202: 000 (0000)<br />

> 203: 000 (0000) mplc addr. 2100 (h.o. data)<br />

> 204: 000 (0000)<br />

> 205: 000 (0000) mplc addr. 2101 (h.o. data)<br />

> 206: 000 (0000)<br />

> 207: 000 (0000) mplc addr. 2102 (h.o. data)<br />

> 208: 000 (0000)<br />

> 209: 000 (0000) mplc addr. 2103 (h.o. data)<br />

> 210: 000 (0000)<br />

> 211: 132 (0084) error check<br />

> 212: 244 (00F4) error check<br />

> End packet.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


CALCULATED CRC TABLES<br />

- 24 -<br />

The following tables contain the CRC values <strong>com</strong>puted using C e Visual Basic code previously reported. These tables<br />

can be used as riference in case you want to write a program using languages different from those are indicated in the<br />

examples.<br />

TABLE 1<br />

TABLE 2<br />

0 192 193 1 195 3 2 194 (items from 0 to 7)<br />

198 6 7 199 5 197 196 4 (items from 8 to 15)<br />

204 12 13 205 15 207 206 14<br />

10 202 203 11 201 9 8 200<br />

216 24 25 217 27 219 218 26<br />

30 222 223 31 221 29 28 220<br />

20 212 213 21 215 23 22 214<br />

210 18 19 211 17 209 208 16<br />

240 48 49 241 51 243 242 50<br />

54 246 247 55 245 53 52 244<br />

60 252 253 61 255 63 62 254<br />

250 58 59 251 57 249 248 56<br />

40 232 233 41 235 43 42 234<br />

238 46 47 239 45 237 236 44<br />

228 36 37 229 39 231 230 38<br />

34 226 227 35 225 33 32 224<br />

160 96 97 161 99 163 162 98<br />

102 166 167 103 165 101 100 164<br />

108 172 173 109 175 111 110 174<br />

170 106 107 171 105 169 168 104<br />

120 184 185 121 187 123 122 186<br />

190 126 127 191 125 189 188 124<br />

180 116 117 181 119 183 182 118<br />

114 178 179 115 177 113 112 176<br />

80 144 145 81 147 83 82 146<br />

150 86 87 151 85 149 148 84<br />

156 92 93 157 95 159 158 94<br />

90 154 155 91 153 89 88 152<br />

136 72 73 137 75 139 138 74<br />

78 142 143 79 141 77 76 140<br />

68 132 133 69 135 71 70 134<br />

130 66 67 131 65 129 128 64<br />

0 193 129 64 1 192 128 65 (items from 0 to 7)<br />

1 192 128 65 0 193 129 64 (items from 8 to 15)<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

1 192 128 65 0 193 129 64<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


0 193 129 64 1 192 128 65<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

0 193 129 64 1 192 128 65<br />

0 193 129 64 1 192 128 65<br />

1 192 128 65 0 193 129 64<br />

MICROPLC MEMORY LAYOUT VERS. 2.0<br />

- 25 -<br />

NOTE:<br />

It's very important that writing operations in microPLC are correct and right. In effect it is absolutely<br />

important that the data written to the microPLC are correct from the format point of view and from the<br />

addresses point of view.<br />

Wrong data or wrong addresses for data can be very dangeorus for the functionality of the controller.<br />

It is operator's liability to make sure that all safety conditions are guaranteed, in order to avoid damages to<br />

the chamber controller and chamber devicecs or to prevent its right functioning through wrong operations.<br />

ANGELANTONI Industrie doesn't take any liability on itself, neither directly or inderectly, about problems<br />

caused by bad functioning due to software development based on this manual.<br />

In the following section the memory layout of the chamber controller version 2.00 is shown<br />

In this version the entire area available to the user is divided in two different sections, the first of them dedicated only<br />

for reading and the second one for writing.<br />

Please, note that the microPLC controller provides a wide range of facilities and only a sub-set of these is really used<br />

to control Hygros e Challenge chambers (also called “standard chambers”).<br />

Specifically, standard chambers use 2 regulators (and so only 2 channels for measuring and setting operations).<br />

Non standard chambers could use more deeply the facilities <strong>com</strong>ing from the microPLC, according to the customer<br />

requirements. If this is the case, a manual appendix will be available together with this manual, to specify the<br />

controller memory area really used.<br />

The following section of this manual only refers to standard chambers, even if the general memory layout is shown.<br />

The PC software normally reads the reading area in order to know the status (measures, actiovations, alarms) of the<br />

chamber.<br />

When a new status for the chamber is required (for example, the user wants to change the temperature set for the<br />

chamber from 35 to 75 Celsius degree), the PC software makes a query to the microPLC, writing data into the<br />

writing area. When done, the PC software simply turn back to its normal task: reading from the chamber.<br />

According to the data sent by the PC, chamber controller will try to act in order to satisfy the user requests, if<br />

possible.<br />

A logic layout is shown below:<br />

PC SOFTWARE<br />

Fig. 7 System logic layout<br />

microPLC<br />

READING<br />

AREA<br />

WRITING<br />

AREA<br />

Chamber<br />

control<br />

logic<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 26 -<br />

As already stated, note that if the microPLC is used on chambers different from Challenge and Hygros<br />

(“standard chambers”), the meanings of some channels could be different from those reported here.<br />

Whre the DCTC term appears it means that the corrispondent columns of values are relative to the “Salt<br />

Fogs” systems.<br />

READING AREA<br />

The information in this area allows the user to know the general status of the system.<br />

According to the application to be developed only a part of these information could be necessary.<br />

Note that measures are multiblied by a factor whose value depends from the parameter. The factor is reported in each<br />

table (for example: PT100 n. 0 * 100 means that in the memory location the value is the temperature measure for<br />

PT100 number 0, multiplied by 100).<br />

PT100 MEASURES<br />

For Challenge/Hygros chambers the PT100 no. 0 is the probe of dry bulb, and the no. 1 is the probe of wet bulb.<br />

Note that the PT100 n. 0 is also copied into locatios 2036-2037 (Calculated Input Measures).<br />

ADDRESS MEANING<br />

2000-2001 PT100 NO. 0 * 100<br />

2002-2003 PT100 NO. 1 * 100<br />

2004-2005 PT100 NO. 2 * 100<br />

2006-2007 PT100 NO. 3 * 100<br />

2008-2009 PT100 NO. 4 * 100<br />

2010-2011 PT100 NO. 5 * 100<br />

ANALOGIC INPUTS MEASURES<br />

ADDRESS MEANING<br />

2012-2013 Low stage suction * 1000<br />

2014-2015 Low stage discharge * 1000<br />

2016-2017 High stage suction * 1000<br />

2018-2019 High stage discharge * 1000<br />

2020-2021 Analogic input No. 4 * 1<br />

2022-2023 Analogic input No. 5 * 1<br />

2024-2025 Analogic input No. 6 * 1<br />

2026-2027 Analogic input No. 7 * 1<br />

2028-2029 Analogic input No. 8 * 1<br />

2030-2031 Analogic input No. 9 * 1<br />

CALCULATED INPUTS MEASURES<br />

For standard chambers only 3 parameters are used. Note that the temperature reported below is the same value you can find in<br />

the PT100 measures table at address 2000; in effect it is the dry bulb temperature.<br />

Absolute humidity is the absolute value used by the chamber regulator to control the humidity in the chamber. It is normally not<br />

useful to the operator: Relative humidity and Temperature globally identify the status of the chamber.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 27 -<br />

ADDRESS MEANING<br />

2032-2033 Relative Humidity % * 100<br />

2034-2035 Absolute Humidity g/Kg * 10<br />

2036-2037 Temperature (same as PT100 n. 0) * 100<br />

2038-2039 Calculated input NO. 3<br />

2040-2041 Calculated input NO. 4<br />

2042-2043 Calculated input NO. 5<br />

2044-2045 Calculated input NO. 6<br />

2046-2047 Calculated input NO. 7<br />

2048-2049 Calculated input NO. 8<br />

2050-2051 Calculated input NO. 9<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 28 -<br />

MESSAGES<br />

The following messages list is general: some of them could not be used in your chamber. Note that messages are<br />

associated to bits, so the term “2052.3” means “bit number 3 (counting from 0) at address 2052”<br />

ADDRESS MEANING<br />

2052.0 Protection switches<br />

2052.1 Maximum temperature User<br />

2052.2 Minimum temperature User<br />

2052.3 Low Stage Massimum pressure<br />

2052.4 Maximum pressure High Stage<br />

2052.5 Thermal protection low stage <strong>com</strong>pressor<br />

2052.6 Thermal protection high stage <strong>com</strong>pressor<br />

2052.7 Maximum temperature service<br />

2052.8 Water lack<br />

2052.9 Safety temperature switches<br />

2052.10 General power lack<br />

2052.11 Equipment off<br />

2052.12 Low stage oil pressure switch<br />

2052.13 High stage oil pressure switch<br />

2052.14 Maximum temperature glycol<br />

2052.15 Minimum level glycol<br />

2053.0 Maximum temperature Steam generator<br />

2053.1 Inverter Alarm<br />

2053.2 Air lack<br />

2053.3 Flow switch<br />

2053.4 Minimum temperature glycol<br />

2053.5 Minimum pressure pump glycol<br />

2053.6 Maximum temperature discharge low stage<br />

2053.7 Maximum temperature discharge high stage<br />

2053.8 Door open<br />

2053.9 Minimum level water<br />

2053.10 Air differential pressure switch<br />

2053.11 Smoke detector<br />

2053.12 Salty solution lack<br />

2053.13<br />

2053.14<br />

2053.15<br />

2054.0<br />

2054.1<br />

2054.2<br />

2054.3<br />

2054.4<br />

2054.5<br />

2054.6<br />

2054.7<br />

2054.8<br />

2054.9<br />

2054.10<br />

2054.11<br />

2054.12<br />

2054.13<br />

2054.14<br />

2054.15<br />

2055.0 Critical alarm (The ladder writes)<br />

2055.1 Power lack (The ladder writes)<br />

2055.2 Resume from critical alarm (The firmware writes)<br />

2055.3<br />

2055.4 programme abort into execution (The firmware writes)<br />

2055.5 Natural end of the programme into execution (The firmware writes)<br />

2055.6 Resume time elapsed<br />

2055.7 Critical deviation<br />

2055.8 Not critical deviation<br />

2055.9<br />

2055.10<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


2055.11<br />

2055.12<br />

2055.13<br />

2055.14<br />

2055.15<br />

- 29 -<br />

USER AND REAL SETTINGS<br />

It is important to well understand the logic operations in sending a new data configuration (we intend a new group of<br />

data the chamber has to use, for example new temperature settings, new RUN/STOP status and so on).<br />

In effect, this operation can be seen as <strong>com</strong>posed of 2 different stages:<br />

1. the user prepares the new set of data and send it to the controller (user settings)<br />

2. the controller acts properly to work with the new set (if possible) (real settings)<br />

From the above description you can understand that the final result of the entire operation can or cannot be the same<br />

as requested by the user depending on the chamber and controller status. For example, suppose that an alarm is<br />

present in the system, so the chamber is in alarm condition. If the user send a new set of data in order to change the<br />

status of the RUN bit (the user want the chamber running), no action will take place, beacuase of the alarm.<br />

In other words, we have a “user setting” group of data in which the RUN bit is in ON status, while the same bit in the<br />

“real settings” will be in OFF status.<br />

USER SETTINGS<br />

ADDRESS CHAMBERS DCTC<br />

2056.0 Run Run<br />

2056.1 Alarm Reset Alarm Reset<br />

2056.2 Program(1) Manual(0) Programme(1) Manual(0)<br />

2056.3 Local(1) Remote(0) Local(1) Remote(0)<br />

2056.4 Pause Pause<br />

2056.5 Freeze Freeze<br />

2056.6<br />

2056.7<br />

2056.8 Channel activation 0 (Temperature) Channel activation 0 (Temperature)<br />

2056.9 Channel activation 1 (Rel. Humidity) Channel activation 1 (Rel.Humidity)<br />

2056.10 Channel activation 2 Channel activation 2 (Humid. Temperature)<br />

2056.11 Channel activation 3 Channel activation 3 (H2O temperature)<br />

2056.12 Channel activation 4 Channel activation 4<br />

2056.13 Channel activation 5 Channel activation 5<br />

2056.14 Channel activation 6 Channel activation 6<br />

2056.15 Channel activation 7 Channel activation 7<br />

2057.0 Forced Dehumidification Spraying with humidified air<br />

2057.1 Vibrator Spraying with not humidified air<br />

2057.2 DUT Purging with air (Centrifugal)<br />

2057.3 U.V. Lamp Dry (Compressed air)<br />

2057.4 Water recharge Flooding with Air temperature control<br />

2057.5 Flooding with air+water control (Refrigerator)<br />

2057.6<br />

2057.7 Humidity special control Humidity special control<br />

2057.8 Aux 1 Aux 1<br />

2057.9 Aux 2 Aux 2<br />

2057.10 Aux 3 Aux 3<br />

2057.11 Aux 4 Aux 4<br />

2057.12 Aux 5 Aux 5<br />

2057.13 Aux 6 Aux 6<br />

2057.14 Aux 7 Aux 7<br />

2057.15 Aux 8 Aux 8<br />

2058<br />

2059<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 30 -<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 31 -<br />

REAL SETTINGS<br />

ADDRESS CHAMBERS DCTC<br />

2060.0 Run Run<br />

2060.1 Alarms reset Alarms reset<br />

2060.2 Programme(1) Manual(0) Programm(1) Manual(0)<br />

2060.3 Local(1) Remote(0) Local(1) Remote(0)<br />

2060.4 Pause Pause<br />

2060.5 Freeze Freeze<br />

2060.6<br />

2060.7<br />

2060.8 Channel activation 0 (Temperature) Channel activation 0 (Temperature)<br />

2060.9 Channel activation 1 (Rel. Humidity) Channel activation 1 (Rel.Humidity)<br />

2060.10 Channel activation 2 Channel activation 2 (Humid. Temperature)<br />

2060.11 Channel activation 3 Channel activation 3 (H2O Temperature)<br />

2060.12 Channel activation 4 Channel activation 4<br />

2060.13 Channel activation 5 Channel activation 5<br />

2060.14 Channel activation 6 Channel activation 6<br />

2060.15 Channel activation 7 Channel activation 7<br />

2061.0 Forced dehumidification Spraying with humidified air<br />

2061.1 Vibrator Spraying with not humidified air<br />

2061.2 DUT Purging with air (Centrifugal)<br />

2061.3 U.V. Lamp Dry (<strong>com</strong>pressed air)<br />

2061.4 Water recharge Flooding with air temperature control<br />

2061.5 Flooding with air and water temperature control<br />

2061.6<br />

2061.7 Special humidity control Special humidity control<br />

2061.8 Aux 1 Aux 1<br />

2061.9 Aux 2 Aux 2<br />

2061.10 Aux 3 Aux 3<br />

2061.11 Aux 4 Aux 4<br />

2061.12 Aux 5 Aux 5<br />

2061.13 Aux 6 Aux 6<br />

2061.14 Aux 7 Aux 7<br />

2061.15 Aux 8 Aux 8<br />

2062<br />

2063<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 32 -<br />

SETPOINTS READING<br />

The values reported here are the setpoint values actually used by the regulators inside the chamber controller.<br />

Note that the final setpoint equals the current setpoint only in case of maintenances or slopes at max. speed.<br />

They will be different in case of controlled slopes (gradient different from 0).<br />

For standard chambers (Challenge and Hygros) the values are multiplied by 100.<br />

As previously stated, in the standard chambers channel 0 is the Temperature regulator, while channel 1 is the Rel.<br />

Humidity regulator.<br />

ADDRESS MEANING<br />

2064-2065 User Final Setpoint Channel 0 * 100<br />

2066-2067 Current Setpoint User Channel 0 * 100<br />

2068 Gradient Channel 0 * 100<br />

2069-2070 Final Setpoint user Channel 1 * 100<br />

2071-2072 Current Setpoint user Channel 1 * 100<br />

2073 Gradient Channel 1 * 100<br />

2074-2075 Final Setpoint user Channel 2 * 100<br />

2076-2077 Current Setpoint user Channel 2 * 100<br />

2078 Gradient Channel 2 * 100<br />

2079-2080 Final Setpoint user Channel 3 * 100<br />

2081-2082 Current Setpoint user Channel 3 * 100<br />

2083 Gradient Channel 3 * 100<br />

2084-2085 Final Setpoint user Channel 4 * 100<br />

2086-2087 Current Setpoint user Channel 4 * 100<br />

2088 Gradient Channel 4 * 100<br />

2089-2090 Final Setpoint user Channel 5 * 100<br />

2091-2092 Current Setpoint user Channel 5 * 100<br />

2093 Gradient Channel 5 * 100<br />

2094-2095 Final Setpoint user Channel 6 * 100<br />

2096-2097 Current Setpoint user Channel 6 * 100<br />

2098 Gradient Channel 6 * 100<br />

2099-2100 Final Setpoint user Channel 7 * 100<br />

2101-2102 Current Setpoint user channel 7 * 100<br />

2103 Gradient channel 7 * 100<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 33 -<br />

TEST PROGRAM STATUS<br />

All information on the test cycle status actually running are reported in this section.<br />

Note that the information relative to the table jumps (loop, locations of memory from 2127 to 2146) are divided into<br />

high byte (to the left) and low byte (to the right) and each byte has the meaning reported in the corresponding<br />

position.<br />

Note that “segment flags” and “control flags” are variables used internally by the chamber controller during the<br />

execution of a cycle. These flags are not useful to the normal user.<br />

ADDRESS MEANING<br />

2104 NO. Of segments<br />

2105 First segment<br />

2106 Current segment<br />

2107-2108 Current segment duration (seconds)<br />

2109-2110 Current segment elapsed time (seconds)<br />

2111-2112 Current segment remaining time (seconds)<br />

2113-2114 Test program elapsed time (seconds)<br />

2115 Segment Flags<br />

2116 Control Flags<br />

2117 Channel 0 Flags<br />

2118 Channel 1 Flags<br />

2119 Channel 2 Flags<br />

2120 Channel 3 Flags<br />

2121 Channel 4 Flags<br />

2122 Channel 5 Flags<br />

2123 Channel 6 Flags<br />

2124 Channel 7 Flags<br />

2125 Total loop of the entire test program<br />

2126 Current Loop of the entire test program<br />

2127 Internal Loop 01: FINAL SEGMENT INITIAL SEGMENT<br />

2128 Internal Loop 01: TOTAL REPET. CURRENT REPET.<br />

2129 Internal Loop 02: FINAL SEGMENT INITIAL SEGMENT<br />

2130 Internal Loop 02: TOTAL REPET. CURRENT REPET.<br />

2131 Internal Loop 03: FINAL SEGMENT INITIAL SEGMENT<br />

2132 Internal Loop 03: TOTAL REPET. CURRENT REPET.<br />

2133 Internal Loop 04: FINAL SEGMENT INITIAL SEGMENT<br />

2134 Internal Loop 04: TOTAL REPET. CURRENT REPET.<br />

2135 Internal Loop 05: FINAL SEGMENT INITIAL SEGMENT<br />

2136 Internal Loop 05: TOTAL REPET. CURRENT REPET.<br />

2137 Internal Loop 06: FINAL SEGMENT INITIAL SEGMENT<br />

2138 Internal Loop 06: TOTAL REPET. CURRENT REPET.<br />

2139 Internal Loop 07: FINAL SEGMENT INITIAL SEGMENT<br />

2140 Internal Loop 07: TOTAL REPET. CURRENT REPET.<br />

2141 Internal Loop 08: FINAL SEGMENT INITIAL SEGMENT<br />

2142 Internal Loop 08: TOTAL REPET. CURRENT REPET.<br />

2143 Internal Loop 09: FINAL SEGMENT INITIAL SEGMENT<br />

2144 Internal Loop 09: TOTAL REPET. CURRENT REPET.<br />

2145 Internal Loop 10: FINAL SEGMENT INITIAL SEGMENT<br />

2146 Internal Loop 10: TOTAL REPET. CURRENT REPET.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 34 -<br />

WRITING AREA<br />

This is the “control” area wherein the user must write the new operative configuration he wants for the system. The<br />

term “new operative configuration” means the desired status of the relays, setpoints, gradients and channels in order<br />

to obtain a certain behaviour from the chamber.<br />

The setpoint and gradient values of the various channels must be multiply by 100. So, for instance, if you want to set<br />

the value of 75.0 degrees with gradient of 1.5 Celsius degrees/minute, it will be necsssary to write 7500 and 150 in the<br />

correspondent locations.<br />

As already stated, channel 0 refers to the temperature channels.<br />

ADDRESS CHAMBERS DCTC<br />

2300.0 Run Run<br />

2300.1 Alarms Reset Alarms Reset<br />

2300.2 Program(1) Manual(0) Programme(1) Manual(0)<br />

2300.3 Local(1) Remote(0) Local(1) Remote(0)<br />

2300.4 Pause Pause<br />

2300.5 Freeze Freeze<br />

2300.6<br />

2300.7<br />

2300.8 Activation Channel 0 (Temperature) Activation Channel 0 (Temperature)<br />

2300.9 Activation Channel 1 (Rel. Humidity) Activation Channel 1 (Rel.Humidity)<br />

2300.10 Activation Channel 2 Activation Channel 2 (Humid. Temperature)<br />

2300.11 Activation Channel 3 Activation Channel 3 (H20 Temperature)<br />

2300.12 Activation Channel 4 Activation Channel 4<br />

2300.13 Activation Channel 5 Activation Channel 5<br />

2300.14 Activation Channel 6 Activation Channel 6<br />

2300.15 Activation Channel 7 Activation Channel 7<br />

2301.0 Forced Dehumidification Spraying with humidified air<br />

2301.1 Vibrator Spraying with not humidified air<br />

2301.2 DUT Purging with air (Centrifuge)<br />

2301.3 U.V. Lamp Dry (Compressed air)<br />

2301.4 Water exchange Flooding with Air temp. Control<br />

2301.5 Flooding with Air+water control (Refrigerator)<br />

2301.6<br />

2301.7 Humidity special control Humidity special control<br />

2301.8 Aux 1 Aux 1<br />

2301.9 Aux 2 Aux 2<br />

2301.10 Aux 3 Aux 3<br />

2301.11 Aux 4 Aux 4<br />

2301.12 Aux 5 Aux 5<br />

2301.13 Aux 6 Aux 6<br />

2301.14 Aux 7 Aux 7<br />

2301.15 Aux 8 Aux 8<br />

2302<br />

2303<br />

2304-2305 Final Setpoint user channel 0 * 100 Final Setpoint user channel 0 * 100<br />

2306 Gradient channel 0 * 100 Gradient channel 0 * 100<br />

2307-2308 Final Setpoint user channel 1 * 100 Final Setpoint user channel 1 * 100<br />

2309 Gradient channel 1 * 100 Gradient channel 1 * 100<br />

2310-2311 Final Setpoint user channel 2 * 100 Final Setpoint user channel 2 * 100<br />

2312 Gradient channel 2 * 100 Gradient channel 2 * 100<br />

2313-2314 Final Setpoint user channel 3 * 100 Setpoint finale utente canale 3 * 100<br />

2315 Gradient channel 3 * 100 Gradiente canale 3 * 100<br />

2316-2317 Final Setpoint user channel 4 * 100 Setpoint finale utente canale 4 * 100<br />

2318 Gradient channel 4 * 100 Gradient channel 4 * 100<br />

2319-2320 Final Setpoint user channel 5 * 100 Final Setpoint user channel 5 * 100<br />

2321 Gradient channel 5 * 100 Gradient channel 5 * 100<br />

2322-2323 Final Setpoint user channel 6 * 100 Final Setpoint user channel 6 * 100<br />

2324 Gradient channel 6 * 100 Gradient channel 6 * 100<br />

2325-2326 Final Setpoint user channel 7 * 100 Final Setpoint user channel 7 * 100<br />

2327 Gradient Channel 7 * 100 Gradient Channel 7 * 100<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 35 -<br />

2328 Initial Segment Initial Segment<br />

2329 Cycle repetition Cycle repetition<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


NOTE<br />

- 36 -<br />

� The ALARMS RESET operation is made setting to 1 the corresponding bit. The microPLC will provide in<br />

automatic mode to force it to 0 after few seconds.<br />

� The bit LOCAL/REMOTE, PAUSE and FREEZE are reserved and not actually used. It is advisable to force them<br />

to 0.<br />

� In order to work, a regulator needs both the setpoint value and the enable bit in ON status (bit 2300.8 and<br />

following). For instance, the temperature controller (Channel 0) will be in stand-by and will not execute any<br />

regulation in case that the enabling bit (bit 2300.8) is equal to 0.<br />

� Non standard chambers (other than Hygros and Challenge) could have differencies in some of the parameters<br />

reported in this document. An appendix is normally shipped with chamber in order to focus on these differencies.<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy


- 37 -<br />

APPENDIX A: CONNECTION OF A SERIAL CABLE<br />

In the following are described the connections required to have a serial connection between chamber and PC.<br />

In the following drawing the female connector on the left must be connected to the RS232/485 connector of the<br />

chamber.<br />

TYPE 9 PIN CONNECTOR – RS232<br />

Fig. 8 <strong>Serial</strong> cable<br />

TYPE 25 PIN CONNECTOR – RS232<br />

TYPE 9 PIN CONNECTOR – RS232<br />

<strong>Serial</strong> <strong>com</strong>munications protocol vers. 2.02 Angelantoni Industrie Spa Massa Martana (PG) Italy

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!