Serial Communications Protocol Specifications - Swissvacuum.com
Serial Communications Protocol Specifications - Swissvacuum.com
Serial Communications Protocol Specifications - Swissvacuum.com
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