Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

TRJ Tracker

Communication Protocol

Customer:

© COPYRIGHT Convert Italia S.p.A.

All rights reserved.

In law terms the present document belongs to CONVERT ITALIA S.p.A.


Any reproduction or publication without our written authorization is forbidden.

FILLED BY: APPROVED BY:

Name: Matteo Frapparelli Date: 30 July 2020 Name: Antonio Timidei Date: 30 July 2020
File: PI1032PEPC00100 -
communication protocol Copyright © Convert Italia S.p.A. Page 1/11
TRJ-TK Comunication Protocol

REVISIONS

No. DATE PAG./S NOTES


EC.
1 30 July 2020 11 Review for Wireless

INDEX

TRJ TRACKER SERIAL COMMUNICATION ..................................................................... 3


RS-485 COMMUNICATION INTERFACE ......................................................................... 3
SERIAL LINE CONNECTION ........................................................................................... 4
COMMUNICATION FRAME ................................................................................................ 5
COMMUNICATION METHOD ........................................................................................... 5
COMMUNICATION FRAME STRUCTURE ....................................................................... 5
CRC GENERATION .......................................................................................................... 6
FUNCTION CODE 0X64: “MULTIFUNCTION READ/WRITE MESSAGE” ...................... 7
MEMORY MAP AND MESSAGE FRAME DETAILS ........................................................ 8

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 2/11


communication protocol
Comunication protocol

TRJ tracker serial communication

Rs-485 communication interface


By an asynchronous RS-485 serial interface, the TRACKER can share information with PC,
PLC, SCADA or other compatible systems.
A single RS485 interface allows a multi drop radio connection with several TRJ TRACKERS in
the same subfield.
Recommended length of the RS485 line, from the external SCADA RS485 interface to
WIRELESS MASTER BOARD, is max 30 m.
Under the same WIRELESS MASTER BOARD a maximum of 60 SKC CONTROL BOARDS
can be radio-connected.
In addition to the 60 SKC, another WIRELESS MASTER BOARD must be installed, and
another radio channel must be used.

Communication parameters

Baud rate: 57600 bps


Data: 8 bit
Stop: 1 bit
Parity: none
Typical polling time for each SKC control board: 2s

For each tracker, a value for the ID address, from 1 to 60, can be saved by configuration
software.

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 3/11


communication protocol
Comunication protocol

Serial line connection


The cable must have a shield and 2 or more twisted pairs; the shield shall be grounded, but
only from the eternal SCADA side. For a safe and stable connection use 0.32 mm^2 or bigger
twisted pair cables with capacity lower than 60pF/m (e.g. Belden EIA RS485 ref. 3105A).
+RS485 and -RS485 cores must be from the same twisted cable pair.

4-wire
RS485 bus

24Vdc
external
GND Wireless SKC tracker
RS485 +
SCADA RS485 - Master control box
Board address 1

.........

SKC tracker
control box
address N

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 4/11


communication protocol
Comunication protocol

Communication frame
Communication method
There is a master-slave communication protocol able to support up to 60 slaves organized as
a multi-drop bus. The communication is half-duplex. The network messages are Query-
Response type. The Query-Response command is transmitted from the Master to an
established Slave and generally it is followed by an answering message.

Communication frame structure

The frame is composed of:

T1
ADDRESS FIELD = 8 bits
FUNCTION CODE = 8 bits
DATA FIELD = N x 8 bits
ERROR CHECK = 16 bit CRC

a) the Address field contains the address of the Slave (SKC CONTROL BOARD) to which the
message is sent
b) the Function field contains the code of the function that must be carried out by the Slave
c) the Data field contains the information needed by the Slave to carry out a specific function or
contains data collected from the Slave in response to a question
d) the CRC field allows to check a message in order to detect any error in transmission.
Sometimes, due to electrical “noise” or other interference, a message may be changed during
the transmission from one unit to another. The error check ensures that neither the SCADA
nor the SKC CONTROL BOX react to messages that have been haltered.
e) the T1 sequence represents the time that separates one REQUEST from the next, and
corresponds to about 2 seconds: during this period it is not allowed any REQUEST and the
external SCADA waits for the REPLY of the SKC CONTROL BOX.

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 5/11


communication protocol
Comunication protocol

CRC generation
The CRC used in this communication protocol follows the standard CRC-16 defined by CCITT.
Many algorithms are ready off-the-shelf; an algorithm written in C, using a look-up table, is
reported below:

word crc16_rev_table[256] =
{ 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,
0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,
0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,
0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,
0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,
0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,
0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,
0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,
0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,
0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,
0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,
0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,
0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,
0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,
0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,
0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,
0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,
0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,
0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,
0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,
0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,
0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,
0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,
0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,
0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,
0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,
0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,
0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,
0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,
0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,
0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040};
unsigned fast_crc16( unsigned char *ucpBuf, int nSize){
register word x;
register word crc;
int i;
crc = 0xFFFF; /* start with all 1's for a reverse CRC */
for( i = 0; i < nSize; ++i) {
/* process each character in the message - 2 steps per char only! */ x = crc ^ ucpBuf[i];
crc = (crc >> 8) ^ crc16_rev_table[x & 0x00FF];
}
return( crc);
}

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 6/11


communication protocol
Comunication protocol

Function code 0x64: “multifunction read/write message”

This function can read the SKC CONTROL BOX status (alarms, measures and saved
parameters), get commands or write a new parameter to each SKC CONTROL BOX; it
depends from the "command" field. Below are described the read request format (from master
to slave) and the reply format (from slave to master).

Request format

SlaveID Function Sent Data (16-bit) CRC (16-bit


(8-bit code (8-bit) Command error check
destination field (8-bit) value)
address)

Request example (read status)

Slave ID = 0x04
Function code = 0x64
Command field = 0x00
Data H = 0x00
Data L = 0x00
CRC 1 = 0xCA
CRC 2 = 0xF0

In the example above, the external SCADA sends the ‘0x64 function’ to the SKC CONTROL
BOX with address = 0x1F (31th CONTROL BOX of the same radio channel).
The CRC closes the data stream.

Reply format

SlaveID Function code Number of Data (Nx8- CRC (16-bit


(8-bit sender (8-bit) following data bit) error check
address) bytes without value)
CRC (8-bit)

Reply example

Slave ID = 0x1F
Function code = 0x64
following data bytes = 0x60

………………….

CRC 1 = 0xNN
CRC 2 = 0xMM

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 7/11


communication protocol
Comunication protocol

Memory map and message frame details


The following table indicates the correspondence between the data, the number of accessible
words beginning with that address, the description of the measurement values, the unit of
measurement and the binary format.

message (0x64)
REQUEST frame

SlaveID
Fcode Sent Command Data CRC
address

8bit 8bit 8bit 16bit 16bit


0-15 0-15
1 0x64 (argument) (command) - - - -
H L H L

Fcode Command Command description


0x64 0 0 read status
0 2 go to a specific tracking angle
0 5 alarm reset
0-9, 10(all axis) 10 write IN position parameter for axis N
write motor LEN parameter for axis
0-9, 10(all axis) 11 N
0 write parameter 0-axis azimuth [degree*10]
1 1-axis tilt parameter [degree*10]
2 2-pitch A [cm] (distance between 2 axis)
3 3-pitch B [cm] (distance between 2 axis, motor side)
4 4-pv module width along est-west direction [mm]
5 5-wind alarm threshold [m/s]
12
6 6-parA [mm] (lower motor arm)
7 7-parB [mm] (upper motor arm)
8 8-parC [mm] (vertical motor arm)
9 9-night position [degree*10]
10 10-wind safe position [degree*10]
11 11-slave ID address

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 8/11


communication protocol
Comunication protocol

message (0x64)
REPLY frame

Number of
SlaveID following Received
Fcode Data CRC
address data bytes Command
without CRC

8bit 8bit 8bit 8bit 16bit 16bit


1 0x64 0x60 0-255 - - - -
H L

Fcode Len Command Data


0x64 0x60 0
REPLY byte counter description
0 1 2 3 4
motor position 1 [degree*10]
5
6
motor position 2 [degree*10]
7
8
motor position 3 [degree*10]
9
10
motor position 4 [degree*10]
11
12
motor position 5 [degree*10]
13
14
motor position 6 [degree*10]
15
16
motor position 7 [degree*10]
17
18
motor position 8 [degree*10]
19
20
motor position 9 [degree*10]
21
22
motor position 10 [degree*10]
23
24 wind speed [m/s]

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 9/11


communication protocol
Comunication protocol

-, -, -, IN1, MNP1, MF1, DF1, MOV1


25
-, -, -, IN2, MNP2, MF2, DF2, MOV2
26
-, -, -, IN3, MNP3, MF3, DF3, MOV3
legend: 27
bimap -, -, -, IN4, MNP4, MF4, DF4, MOV4
msb,…,lsb 28
-, -, -, IN5, MNP5, MF5, DF5, MOV5
29
IN sensor enabled -, -, -, IN6, MNP6, MF6, DF6, MOV6
Motor Not Present 30
Motor Fault -, -, -, IN7, MNP7, MF7, DF7, MOV7
31
Direction Fault -, -, -, IN8, MNP8, MF8, DF8, MOV8
actually in MOVing 32
"-" not used bit -, -, -, IN9, MNP9, MF9, DF9, MOV9
33
-, -, -, IN10, MNP10, MF10, DF10, MOV10
34
35 night,-,-,-,-,-,wind alarm,gps fail

36
IN position parameter for motor 1 [degree*10]
37
38
IN position parameter for motor 2 [degree*10]
39
40
IN position parameter for motor 3 [degree*10]
41
42
IN position parameter for motor 4 [degree*10]
43
44
IN position parameter for motor 5 [degree*10]
45
46
IN position parameter for motor 6 [degree*10]
47
48
IN position parameter for motor 7 [degree*10]
49
50
IN position parameter for motor 8 [degree*10]
51
52
IN position parameter for motor 9 [degree*10]
53
54
IN position parameter for motor 10 [degree*10]
55
56
LEN parameter for motor 1 [mm*10]
57
58
LEN parameter for motor 2 [mm*10]
59
60
LEN parameter for motor 3 [mm*10]
61
62
LEN parameter for motor 4 [mm*10]
63
64
LEN parameter for motor 5 [mm*10]
65
66
LEN parameter for motor 6 [mm*10]
67

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 10/11


communication protocol
Comunication protocol

68
LEN parameter for motor 7 [mm*10]
69
70
LEN parameter for motor 8 [mm*10]
71
72
LEN parameter for motor 9 [mm*10]
73
74
LEN parameter for motor 10 [mm*10]
75
76
axis azimuth parameter [degree*10]
77
78
axis tilt parameter [degree*10]
79
80 pitch A parameter [cm]
(distance between 2 axis)
81
82 pitch B parameter [cm]
(distance between 2 axis, motor side)
83
84 pv module width along est-west direction
parameter [mm]
85
86 wind alarm threshold parameter [m/s]

87
parA [mm] (lower motor arm parameter)
88
89
parB [mm] (upper motor arm parameter)
90
91
parC [mm] (vertical motor arm parameter)
92
93
wind safe position parameter[degree*10]
94
95
extended address (SKC serial number)
96
97
night position parameter [degree*10]
98

File: PI1032PEPC00100 - Copyright © Convert Italia S.p.A. Page 11/11


communication protocol

You might also like