ComLynx User Guide 16 20120817 A7
ComLynx User Guide 16 20120817 A7
ComLynx User Guide 16 20120817 A7
Contents
1 2 3 4 Revision history ......................................................................................................................................................... 3 Introduction................................................................................................................................................................ 4 2.1 Copyright and Limitation of Liability............................................................................................................... 4 Basic inverter operation ............................................................................................................................................. 5 System overview........................................................................................................................................................ 6 4.1 The ULX inverter.............................................................................................................................................. 6 4.2 The TLX inverter ............................................................................................................................................. 8 4.1 The DLX inverter............................................................................................................................................. 9 4.2 Connecting inverters via the RS485 communication bus................................................................................ 10 4.3 Identifying inverters ........................................................................................................................................ 10 4.3.1 Product- and serial number ......................................................................................................................... 10 4.3.2 Inverter name .............................................................................................................................................. 12 4.3.3 RS485 network address .............................................................................................................................. 12 4.4 Identifying inverter modules ........................................................................................................................... 14 Introduction to the ComLynx protocol .................................................................................................................... 15 5.1 General message format.................................................................................................................................. 15 5.1.1 Byte Stuffing............................................................................................................................................... 16 5.1.2 Invalid messages......................................................................................................................................... 17 5.2 Message content.............................................................................................................................................. 18 5.2.1 Source and destination ................................................................................................................................ 18 5.2.2 Size ............................................................................................................................................................. 19 5.2.3 Type ............................................................................................................................................................ 19 Message types .......................................................................................................................................................... 22 6.1 Ping message................................................................................................................................................... 22 6.2 Get Node Information message....................................................................................................................... 22 6.2.1 Scanning a network..................................................................................................................................... 23 6.3 Embedded CAN Kingdom message................................................................................................................ 24 Appendixes .............................................................................................................................................................. 28 7.1 Appendix A - Words and phrases ................................................................................................................... 28 7.2 Appendix B - C code for FCS calculation....................................................................................................... 29 7.3 Appendix C - Inverter parameters................................................................................................................... 31 7.3.1 Raw Measured Values ................................................................................................................................ 31 7.3.2 Smoothed Measured Values ....................................................................................................................... 32 7.3.3 Status Information ...................................................................................................................................... 35 7.3.4 System Information .................................................................................................................................... 39 7.3.5 Energy production log ................................................................................................................................ 42 7.3.6 Irradiation log ............................................................................................................................................. 44 7.4 Appendix D - Network scan............................................................................................................................ 46
Revision history
Initials Date Description
Version
13
MET
2010-01-13
Revision history created. Inverter serial and product number description has been updated with the new format. ULX event information has been updated. Serial number format changed. Copyright text added User guide has been simplified.
14
MET
2010-03-09
15
THE
2011-05-13
Ping message has been updated. System Information has been updated.
A5 A7
RST JHI
2012-07-31 2012-08-03
Added DLX info Chapter 6.2: Node reply type in example corrected. Chapter 6.3: Embedded CAN Kingdom reply in example corrected.
Introduction
A Danfoss inverter contains a number of intelligent hardware modules, which communicate with each other via internal communication buses. Each inverter module "owns" a number of parameters, which can be requested from outside the inverter via the RS485 interface of the inverter. The parameters include various production- and operation parameters, status parameters, inverter identification parameters and more. The RS485 communication protocol that is used when communicating with inverters via the RS485 interface, is called the ComLynx protocol. This document describes in detail how to access inverter parameters using the ComLynx protocol.
In the morning, when the sun rises, the PV powered components of the inverter are powered up. When irradiation is sufficient for the inverter to produce power, it begins monitoring the grid to ensure, that the grid voltage and the grid frequency is within the allowed limits. When that has been the case for a few minutes, the inverter automatically connects to the grid and starts producing energy. When there is insufficient irradiation for the inverter to feed energy to the grid, it disconnects from grid and after a while the PV powered components of the inverter are powered down in order to save energy.1 It is rare but not impossible that irradiation can be so low during the day that the inverter goes off grid or even powers down completely. Please consult the inverter manual for additional information on the basic operation and specifications of the inverter type in question.
In the case of the ULX inverter, at this point it is no longer possible to communicate with the inverter via the RS485 interface.
Page 5
System overview
There are currently a number of different Danfoss inverter models that all support RS485 communication via the ComLynx protocol. These are: The ULX inverter, which is a transformer-based, single phase inverter. The TLX inverter, which is a transformer-less, three phase inverter. The DLX inverter, which is a transformer- based, single phase inverter.
The following two chapters provide an overview of the hardware modules in the ULX, TLX and DLX Inverter respectively and their functionality.
Figure 1
Power Board
Control Board
AUX Board
Modem
Display
AC out
PV 1 in
PV 2 in
Inverter Master
(e.g. data logger) RS485 addr. = (1, 1, 1)
Inverter
RS485 addr. = (1, 1, 2)
Inverter
RS485 addr. = (1, 1, 3)
Inverter
RS485 addr. = (1, 1, 4)
PV 3 in
RS485
Inverter
RS485 addr. = (1, 1, 5)
RS485 bus
(N, S, A) = (Network, Subnet, Address) Dashed modules may or may not be installed
Figure 2
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 8
Figure 3
Index 0x03 0x02 0x01 Sub-index 3 2 1 0 3 2 1 0 3 2 1 Byte no. in msg. data field 0x20 0x20 0x20 0x20 0x31 0x39 0x35 0x4E 0x31 0x30 0x34 Byte value Note: The Product Number is sometimes also referred to as the Code Number (ULX) and the Part Number (TLX).
0 0x30
Index 0x03 0x02 Sub-index 3 2 1 0 3 2 1 Byte no. in msg. data field 0x20 0x20 0x31 0x32 0x33 0x34 0x35 Byte value Note: If any of the 11 characters are unused they must be set to the value 0x20.
'I'
'J'
'K'
'L'
'M'
'N'
'O'
''
3 0x45
0 0x48
3 0x49
0 0x20
identifying the individual inverters. Furthermore, the network address format allows for a systematic scan of the inverters in the network (see also chapter 6.2.1, Scanning a network). In this document, the notation (Network, Subnet, Address) is used when writing a complete RS485 network address. Example: (10, 20, 100). Network = 10. Subnet = 20. Address = 100. The network address is assigned to the inverter in the production, and it is incremented by one for each new unit produced. When the subnet address reaches its maximum value, it is reset and the subnet number is incremented by 1. When the subnet number reaches its maximum value it is reset, and the network number is incremented by 1. This allows for more than 50.000 unique network addresses, and in practice it can be assumed that all network addresses within a single RS485 network are unique. There is a maximum of how many inverters can be present on one physical RS485 network. The maximum depends on the RS485 hardware driver, but for all Danfoss systems the maximum is 64 inverters.
The ComLynx protocol specifies the rules followed by units communicating with each other on an RS485 network. First some network terms need to be defined: Node: A unit connected to the RS485 bus. Master: A node that can send requests to other nodes (typically a data logger). Slave: A node that can only reply to requests sent by a master (typically an inverter). All communication takes place on a request-reply basis. At the time of writing, the ComLynx protocol does not support multi-master communication. This means that only one master (i.e. one requesting node) is allowed on the RS485 bus at the time. For ULX inverters the worst-case reply time is generally 100 ms, for Ping messages it is 70 ms. However, the typical reply time lies between 50 and 70 ms. For TLX & DLX inverters the worst-case reply time is 60 ms but typically lies between 10 and 20 ms2. In this context the reply time is the elapsed time from the last byte of the request message is sent until the first byte of the reply message is received. The communication speed of the protocol is 19200 baud (8 data bits, no parity bits, 1 stop bit).
The "Start of Frame" and "End of Frame" fields are fixed, except for the two FCS bytes. The frame delimiters are compliant with the international HDLC standard (ISO 3309). Abbr. Start Address Control Content FCS Name Start byte Address byte Control field Message content Frame Check Sequence Description Start flag / Start of a new message. Broadcast. Unnumbered data blocks. See chapter 5.2, Message content. 16 bit checksum The FCS is a 16-bit CRC according to the polynomial X16 + X12 + X5 + 1. Value 0x7E 0xFF 0x03
The typical reply time applies when requesting parameters directly from the Communication Board.
Page 15
Stop
Stop byte
Stop flag.
0x7E
Start and Stop byte Every telegram begins and ends with the byte 0x7E. This byte only appears as the first and the last byte in a message. It never appears within a message. This can be realized by the use of byte stuffing, which is described in chapter 5.1.1, Byte Stuffing. Address HDLC specifies the use of certain addresses for specific purposes. In the ComLynx protocol, only Broadcast messages (0xFF) are used. The receiver of the message is contained within the 6-byte protocol header of the ComLynx message. Control In HDLC, Unnumbered Information command is coded by the value 0x03. FCS (Frame Check Sequence) The FCS value is a 16-bit checksum calculated based on the polynomial X16 + X12 + X5 + 1. The FCS in a message is calculated over the Address-, Control-, Header- and Data fields, i.e. it is calculated over the complete message except the first and last byte (0x7E) and the FCS field itself. LSB of the FCS value is transferred as byte 1 and the MSB as byte 2. The FCS calculation algorithm is designed in such a way that the result of the FCS calculation becomes certain unique value (GOOD_FCS_VALUE) at the moment when the calculation algorithm passes over the 2 FCS bytes of an incoming message. This can be useful if the FCS is calculated "on the fly" as bytes are received, as it can be used to identify the end of a message. C code for the FCS calculation can be found in appendix B. The message content is specified in chapter 5.2, Message content.
After performing reverse byte stuffing, the receiver will have a message identical to the message originally send before it was byte stuffed. Byte stuffing is performed on all bytes within a message just before the message leaves the sender. Reverse byte stuffing is performed on all bytes within a message just after the message arrives at the receiver.
Example Ping message (all values in hex). Before byte stuffing 7E ff 03 00 02 7D 7E 00 15 99 C9 7E After byte stuffing 7E FF 03 00 02 7D 5D 7D 5E 00 15 99 C9 7E
Network number 0 is reserved for the Master and Network numbers from 1 to 14 are reserved for Slaves. Both Masters and Slaves can have Subnet numbers from 0 14, and both Masters and Slaves can have Addresses from 0 254.
5.2.1.1 Broadcasts
Network number 0xF, Subnet number 0xF and Address 0xFF are all reserved for broadcast purposes. These values are wildcards that can be used in the destination address of a message to address a group of nodes in stead of just one single node. Note that when sending a broadcast message to a group of nodes, they will all reply simultaneously. Even though inverter nodes3 back off and stop sending when they realize that other nodes are sending at the same time, the reply that the requesting node sees is unpredictable and likely to be invalid. Therefore, replies to broadcast messages can only be used to confirm or dismiss the presence of one or more nodes with a certain Network number or a certain Subnet number. Examples Send a Ping message to all nodes on the network: Start of frame 0x7E 0xFF 0x03 Source 0x00 0x02 Dest. 0xFF 0xFF Size 0x00 Type 0x15 Data End of frame 0xB1 0x8B 0x7E
Send a Ping message to all nodes on Network 1: Start of frame 0x7E 0xFF 0x03 Source 0x00 0x02 Dest. 0x1F 0xFF Size 0x00 Type 0x15 Data End of frame 0x3B 0x3F 0x7E
ULX only.
Page 18
Send a Ping message to all nodes on Network 1, Subnet 1: Start of frame 0x7E 0xFF 0x03 Source 0x00 0x02 Dest. 0x11 0xFF Size 0x00 Type 0x15 Data End of frame 0x79 0x91 0x7E
The usefulness of broadcasting messages when scanning a network for nodes, is explained in chapter 6.2.1, Scanning a network and illustrated in appendix D.
5.2.2 Size
This field contains the number of bytes in the data field.
5.2.3 Type
This field contains the type of the message. This one-byte field consists of 5 bits holding the message type id and 3 bit flags. Bit 7 (msb) Req. (0) / Reply (1) Bit 6 Transm. error (1) Bit 5 Appl. error (1) Bit 4 - 0 Message type id
The types of messages needed by a master to scan a network and request parameters from the slaves are listed here. Message type id 0x13 0x15 0x01 Message name Network command messages Get Node Information Ping Inverter messages Embedded CAN Kingdom
The content of the data field for these 3 message types is specified in chapter 6, Message types. The message type also contains 3 bit fields. Bit 7 is a request/reply bit. If bit 7 is cleared (0), it is a request message. If bit 7 is set (1), it is a reply message. Bit 5 and 6 are error bits. These bits are used in reply messages to indicate that there was something wrong with the request message. When an error bit is set in a reply message, the size of the data field is one, regardless of the message type. This one-byte data field holds an error code.
Code
Printed: 2012-08-17
Name
File: ComLynx_User_Guide_16_2012-08-17_A7.doc
0x01
0x02
Framing error
0x03 0x04
Provided that a message has no framing error, an inverter replies with this error message if the checksum found in the message does not match the checksum calculated by the node itself. An inverter replies with this message if the first 3 bytes in a message differ from 0x7E 0xFF 0x03, or if the last byte in a message differs from 0x7E. Message lengths vary, and the position of the last byte in a message is determined by the value in the Size-field. A message is longer than the maximum ComLynx message size (i.e. 255 bytes in Data field, not including byte stuffing). Too long time has elapsed between two bytes in a message4.
Code 0x10
0x11
0x12
0xA0
Application error codes Description An inverter replies with this error message in three situations: If it receives a message with a message type id, which is not supported. If it receives a message where the Request/Reply bit is set (this should never occur, as an inverter never sends a request messages and therefore it should never receive a reply message). If it receives a message where one of the error bits are set (this should never occur because the error bits can only be set in reply messages, and inverters should not receive any reply messages because they do not send any request messages). An inverter replies with this error message if it receives a Get Node Information message addressed directly to it, where the node information in the message does not match its own node information (the Get Node Information message is introduced in chapter 6.2, "Get Node Information). An inverter replies with this error message if it receives a message where there value in the Size-field does not match the message type given in the Type-field. Assuming that an inverter has received a request message and forwarded it to an inverter module via the internal CAN bus, the inverter replies with this error message if there was no CAN reply from the inverter module. For instance, this will occur if a message is sent to a non-existing inverter module or to an inverter module that is powered off (see also chapter 6.3, Embedded CAN Kingdom).
For ULX the maximum time allowed between two bytes in a message is 20 ms. For TLX/DLX it is 200 ms.
Page 20
Message types
The message type dictates the size and the format of the data field of the message. In this chapter the data field layout is described for the messages Ping, Get Node Information and Embedded CAN Kingdom.
0x00 0x00
In a Get Node Information request, all bytes in the data field must contain wildcards (0xFF). The reply contains the node information. Example
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 22
A Get Node Information request message is sent to an inverter with network address (1, 2, 3). The inverter has product number A0020000303 and serial number 123400H2106. Request 7E FF 03 00 02 12 03 1D 13 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF C9 35 7E Reply 7E FF 03 12 03 00 02 1D 93 41 30 30 32 30 30 30 30 33 30 33 00 31 32 33 34 30 30 48 32 31 30 36 00 31 32 33 00 00 E0 FB 7E
When the 5 steps are completed, the network addresses of the nodes present in the network are identified and the node information for each of these nodes has been collected.
Field Size of data field Message Type Document number Destination module id
Field Field description value 0x0A (= 10 bytes) 0x01 Data field 0xC8 This value identifies the category of CAN messages that are used to exchange parameters. uuuudddd uuuu: In request messages this unused value can be set to 0. In reply messages the value is unpredictable and should be masked out. dddd: Destination module id. In request messages it is the id of the inverter module the message is intended for. In reply messages it is the Source module id of the preceding request message.5 sssspppp ssss: Source module id. In request messages it is the id of the module that sent the message. The sender does not have the modules of an inverter, but it does have an RS485 interface, so therefore the source module id is often
1 byte
The requesting Master will typically let the Source module id be 0xD = RS485 interface, but in principle it can be any number between 0x0 and 0xF. If the Master has a modular architecture behind its RS485 interface, this may be useful.
Page 24
Field
Field size
Field value
Field description chosen to 0xD. In reply messages it is the Destination module id of the preceding request message (i.e. the id of the inverter module that was requested). pppp: Page number. This value identifies the subcategory of CAN messages used to exchange parameters. The value is always 0. Identifier of parameter group Identifier of specific parameter within the parameter group. zrsctttt z: Reply requested bit (no = 0, yes = 1). This bit should always be set in request messages and is always cleared in reply messages. Request/Reply bit (request = 0, reply = 1). This bit should always be cleared in request messages and is always set in reply messages. Request status bit (success = 0, failure = 1). (NOT USED, use app. error instead) This bit should always be cleared in request and reply messages. The c-bit should always be cleared in request messages and is always cleared in reply messages.
r:
s:
c:
tttt: Data type id. Is not used in request messages and can be set to anything. In reply messages the data type id indicates the data type of the parameter value. Data type ids 0x0: Not defined 0x1: Boolean 0x2: Signed 8 0x3: Signed 16 0x4: Signed 32 0x5: Unsigned 8 0x6: Unsigned 16 0x7: Unsigned 32 0x8: Float 0x9: Visible string 0xA: Packed bytes
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 25
Field
Field size
Parameter value
4 bytes
0xC - 0xF: Reserved In request messages the parameter value is not used, so it can be set to 0. In reply messages the parameter value holds the requested parameter. The byte order is LSB first and MSB last. The data type of the parameter value, which follows the Intel format, is indicated by the data type id.
Example A master with network address (0, 0, 2) is requesting the Total Production from an inverter with network address (1, 2, 3). The total production is 120000 kWh. Source Network number is 0 Source Subnet number is 0 Source Address is 2 Destination Network number is 1 Destination Subnet number is 2 Destination Address is 3 Size of data field is 10 Embedded CAN Kingdom message Document number is always 200 Unused bits are set to 0 Destination module is the AC module Source module is RS485 interface Page number is always 0 Index of Total Production Sub-index of Total Prod. Its a request message Data type is set to 0 Parameter is set to 0 7E FF 03 00 02 12 03 0A 01 C8 04 D0 01 02 80 00 00 00 00 8E E7 7E 7E FF 03 12 03 00 02 0A 81 C8 0D 40 01 02 47 00 0E 27 07 8E E7 7E Param. MSB Parameter LSB Data type unsigned 32 Its a reply message Source module is the AC module Dest. module is RS485 interface Destination Address is 2 Destination Subnet number 0 Destination Network number is 0 Source Address is 3 Source Subnet number is 2 Source Network number is 1
Node: A unit connected to the RS485 bus. Master: A node that can send requests to other nodes (typically a data logger). Slave: A node that can only reply to requests sent by a master (typically an inverter). Word or phrase Node Master Slave AC module Explanation A unit connected to the RS485 bus. A node that can send requests to other nodes on the RS485 bus (typically a data logger). A node that can only reply to requests sent by a RS485 bus master (typically an inverter). A module/PCB in the inverter that takes care of energy conversion. An inverter has 1 AC module. The inverter is connected to the grid through this module. A module/PCB in the inverter that takes care of energy conversion. An inverter has 1, 2 or 3 DC modules. The inverter is connected to the solar panels through these modules. The bus system used for communication between inverter modules internally in the inverter. A module/PCB that works as a communication interface between the ULX inverter modules and an external RS485 unit such as a data logger or a service tool. The RS485 bridge converts RS485 messages complying with the ComLynx protocol format to CAN messages complying with the CAN message format used internally in the ULX inverter and vise versa.
DC module
0xFFFF 0xf0b8
code const { 0x0000, 0x8c48, 0x1081, 0x9cc9, 0x2102, 0xad4a, 0x3183, 0xbdcb, 0x4204, 0xce4c, 0x5285, 0xdecd, 0x6306, 0xef4e, 0x7387, 0xffcf, 0x8408, 0x0840, 0x9489, 0x18c1, 0xa50a, 0x2942, 0xb58b, 0x39c3, 0xc60c, 0x4a44, 0xd68d, 0x5ac5, 0xe70e, 0x6b46, 0xf78f, 0x7bc7, };
UNSIGNED16 FCSTable[256] = 0x1189, 0x9dc1, 0x0108, 0x8d40, 0x308b, 0xbcc3, 0x200a, 0xac42, 0x538d, 0xdfc5, 0x430c, 0xcf44, 0x728f, 0xfec7, 0x620e, 0xee46, 0x9581, 0x19c9, 0x8500, 0x0948, 0xb483, 0x38cb, 0xa402, 0x284a, 0xd785, 0x5bcd, 0xc704, 0x4b4c, 0xf687, 0x7acf, 0xe606, 0x6a4e, 0x2312, 0xaf5a, 0x3393, 0xbfdb, 0x0210, 0x8e58, 0x1291, 0x9ed9, 0x6116, 0xed5e, 0x7197, 0xfddf, 0x4014, 0xcc5c, 0x5095, 0xdcdd, 0xa71a, 0x2b52, 0xb79b, 0x3bd3, 0x8618, 0x0a50, 0x9699, 0x1ad1, 0xe51e, 0x6956, 0xf59f, 0x79d7, 0xc41c, 0x4854, 0xd49d, 0x58d5, 0x329b, 0xbed3, 0x221a, 0xae52, 0x1399, 0x9fd1, 0x0318, 0x8f50, 0x709f, 0xfcd7, 0x601e, 0xec56, 0x519d, 0xddd5, 0x411c, 0xcd54, 0xb693, 0x3adb, 0xa612, 0x2a5a, 0x9791, 0x1bd9, 0x8710, 0x0b58, 0xf497, 0x78df, 0xe416, 0x685e, 0xd595, 0x59dd, 0xc514, 0x495c, 0x4624, 0xca6c, 0x56a5, 0xdaed, 0x6726, 0xeb6e, 0x77a7, 0xfbef, 0x0420, 0x8868, 0x14a1, 0x98e9, 0x2522, 0xa96a, 0x35a3, 0xb9eb, 0xc22c, 0x4e64, 0xd2ad, 0x5ee5, 0xe32e, 0x6f66, 0xf3af, 0x7fe7, 0x8028, 0x0c60, 0x90a9, 0x1ce1, 0xa12a, 0x2d62, 0xb1ab, 0x3de3, 0x57ad, 0xdbe5, 0x472c, 0xcb64, 0x76af, 0xfae7, 0x662e, 0xea66, 0x15a9, 0x99e1, 0x0528, 0x8960, 0x34ab, 0xb8e3, 0x242a, 0xa862, 0xd3a5, 0x5fed, 0xc324, 0x4f6c, 0xf2a7, 0x7eef, 0xe226, 0x6e6e, 0x91a1, 0x1de9, 0x8120, 0x0d68, 0xb0a3, 0x3ceb, 0xa022, 0x2c6a, 0x6536, 0xe97e, 0x75b7, 0xf9ff, 0x4434, 0xc87c, 0x54b5, 0xd8fd, 0x2732, 0xab7a, 0x37b3, 0xbbfb, 0x0630, 0x8a78, 0x16b1, 0x9af9, 0xe13e, 0x6d76, 0xf1bf, 0x7df7, 0xc03c, 0x4c74, 0xd0bd, 0x5cf5, 0xa33a, 0x2f72, 0xb3bb, 0x3ff3, 0x8238, 0x0e70, 0x92b9, 0x1ef1, 0x74bf, 0xf8f7, 0x643e, 0xe876, 0x55bd, 0xd9f5, 0x453c, 0xc974, 0x36bb, 0xbaf3, 0x263a, 0xaa72, 0x17b9, 0x9bf1, 0x0738, 0x8b70, 0xf0b7, 0x7cff, 0xe036, 0x6c7e, 0xd1b5, 0x5dfd, 0xc134, 0x4d7c, 0xb2b3, 0x3efb, 0xa232, 0x2e7a, 0x93b1, 0x1ff9, 0x8330, 0x0f78
static int pppfcs16( INT fcs, BYTE* pByte, INT length ) { while( length-- ) fcs = (fcs >> 8) ^ FCSTable[(fcs ^ *pByte++) & 0xff]; return (fcs); } Calculate checksum of incoming message Initially pFirstByte should point to the first byte to be included in the checksum calculation, which is the second byte in the message, the Address field (0xFF). numberOfBytes is the number of bytes that should be included in the checksum calculation. The constant 2 is added because the checksum in an incoming message is verified by letting the calculation algorithm pass over the two FCS bytes (see chapter 5.1, "General message format").
fcs = pppfcs16( PPPINITFCS16, &pFirstByte, numberOfBytes + 2 ); if( fcs == PPPGOODFCS16 ) { // Checksum approved } else { // Checksum rejected }
Calculate checksum of outgoing message The principle of the calculation is exactly the same as for an incoming message. As the checksum is calculated and not verified the calculation algorithm is not passed over the FCS field. fcs = pppfcs16( PPPINITFCS16, &pFirstByte, numberOfBytes ); fcs ^= 0xFFFF; After all bits have been exclusively or'ed with one, the calculated FCS value can be filled into the FCS field (LSB first, MSB last).
Parameter
Note: For the ULX inverters, production parameters that apply to the AC module (module 4) also apply to the whole inverter. For the TLX & DLX inverter, production parameters that apply to the Communication or GUI Board (module 8) apply to the whole inverter.
6 7
Parameters are supported from the software versions stated in this column. Parameter (2, 70) returns the Instant Energy Production of the TLX or DLX inverter. 8 Parameter (2, 74) returns the Energy Production Today of the TLX or DLX inverter.
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 31
Parameter
0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02
0x01 0x14 0x15 0x16 0x28 0x29 0x2A 0x2D 0x2E 0x2F 0x32 0x33 0x34 0x37 0x38 0x39 0x3C 0x3D
0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x7 0x6 0x6
13 13 13 13 13 13 13 13 13 13 -
8 8 8 8 8 8 8 8 8 8 8 8 8 8
For TLX and DLX Grid power, sum of L1, L2 and L3 [W] must be used. 1.02 1.02 1.02 1.02 1,02 1,02 1,02 1,02 1,02 1,02 -
All All All All All All All All All All All All All All
All All All All All All All All All All All All All All
The software version in this column is the software version of the RS485 bridge, which is the module that holds smoothed values in the ULX inverter.
Page 32
Smoothed measured values Data Module id Index Sub- type index id ULX TLX
& DLX
Grid voltage, phase L3 [V/10] Grid voltage, 10-min. mean, ph L1 [V/10] Grid voltage, 10-min. mean, ph L2 [V/10] Grid voltage, 10-min. mean, ph L3 [V/10] Grid voltage, phase L1 L2 [V/10] Grid voltage, phase L2 L3 [V/10] Grid voltage, phase L3 L1 [V/10] Grid current, phase L1 [mA] Grid current, phase L2 [mA] Grid current, phase L3 [mA] Grid power, phase L1 [W] Grid power, phase L2 [W] Grid power, phase L3 [W] Grid power, sum of L1, L2 and L3 [W] Grid Energy Today, phase L1 [Wh] Grid Energy Today, phase L2 [Wh] Grid Energy Today, phase L3 [Wh] Grid Energy Today, sum of L1, L2 and L3 [Wh] Grid Energy Today, external meter (s0) [Wh] Grid current, DC content, phase L1 [mA] Grid current, DC content, phase L2 [mA] Grid current, DC content, phase L3 [mA] Grid frequency, phase L1 [mHz]
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 33
Parameter
0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02
0x3E 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x3F 0x40 0x41 0x42 0x43 0x44 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x61
0x6 0x6 0x6 0x6 0x3 0x3 0x3 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x4 0x4 0x4 0x7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
All All All All All All All All All All All All All All All All All All All All All All All
All All All All All All All All All All All All All All All All All All All All All All All
Smoothed measured values Data Module id Index Sub- type index id ULX TLX
& DLX
Grid frequency, phase L2 [mHz] Grid frequency, phase L3 [mHz] Grid frequency, mean, phase L1, L2 & L3 [mHz] 0x02 0x02 0x02 0x62 0x63 0x50 0x7 0x7 0x7 8 8 8
Parameter
Global irradiance [W/m2] Total global irradiation [Wh/m2] Irradiance sensor temperature [C] Ambient temperature [C] PV array temperature [C]
8 8 8 8 8
Parameter only valid if sensor is connected to the inverter. Parameter only valid if sensor is connected to the inverter. Parameter only valid if sensor is connected to the inverter. Parameter only valid if sensor is connected to the inverter. Parameter only valid if sensor is connected to the inverter.
Note: Parameters with index = 2 (Smoothed Measured Values) are smoothed in different ways in ULX Inverters and in TLX inverters. For ULX inverters returned value is the average of 4 measurements sampled with 5 seconds in between. For TLX inverters the returned value is the average of a number of measurements sampled over the last second.
Parameter
Latest Event
0x0A
0x28
0x5 / 0x6 10
13
Example If the mask is 00010110 = 0x16, it means that the AC module and DC modules 1 and 2 are powered on at the moment. The event code of the latest event that occurred (most events are cleared when the inverter reconnects to grid). Event codes are listed below this table. The id of the module that generated the latest event.
1.02
All
All
0x0A
0x29
0x5
13
1.02
10
ULX replies with data type Unsigned 8. TLX/DLX replies with data type Unsigned 16.
Page 35
Operation mode
Operation modes, DLX Situation Night time, input voltage < 220 V, no communication w/DSP Sleeping (auto-shutdown) Initialization, Checking input and grid starting conditions Normal operation, tracking power (MPPT) Output power derated due to high internal temperature or power reference (throttled) Shutting down Failure or altering operational conditions Manual override/standby
Operation mode id 0
1 2 3 4
Off Grid
Connecting
On Grid
Fail safe
Off Grid
The complete inverter is shut down The inverter is booting, initializing itself etc. The inverter is monitoring the grid, preparing to connect. The inverter is connected to grid and is producing energy. The inverter is disconnected from grid because of an error situation. The inverter is shut down (except for the user interface and the communication interfaces).
5 6 7
60
69
70
79
80
89
Event information, ULX Event Event code U 3.3 1 U 5.0 2 U 15.0 3 U PV 4 U-SNUBBER 5 U DC-BUS 7 U-GRID 8 F-GRID 9 IPM CURRENT 12 ENS 13 ENS RAM 14 ENS FL. CHKSM 15 ENS EP. CHKSM 16 HW TRIP 17 TEMP HIGH 25 EEPROM_READ 26 EEPROM_COUNTRY_SETTIN 27 GS_CHECKSUM EPRM PAR. LIM 29 ENS COM ERR 44 ENS IMPEDANCE 45 PV-CONFIG-ERR 48 GROUND_FAULT 50 ENS_RAM_DIFF 51 Unspecified event All other codes
Event information, TLX Event code intervals 1-37, 40-99, 246 103-111, 115-200 38-39, 100-102, 112-114, 225-244, 248-251, 350-400 201-211, 213-221, 222-224, 247, 252-299, 212 300-349
Event information, DLX Event Event code 0 PanelFault 1 ICBOpen 2 InverterFault 3 OCBOpen 4 GridFault 5 GUIFault 6 InputVoltHigh 7 InputVoltLow 8 IsolResFault 9 InverterFailPrimary 10 InverterFailSecondary 11 TempHigh 12 TempLow 13 CurrentLim 14 InternalComFail 15 FanFail 16 FuseFault 17 ActivePowerLim 18 ReactivePowerComp 19 CPUFault 20 EarthCurrProt 21 OutputVoltHigh 22 OutputVoltLow 23 FrequencyHigh 24 FrequencyLow 25 OutputDCCurrentFault 26 OutputCurrentImbalance 27 FaultRideThrough 28 VDR_DC
The inverter reference manuals contain a more detailed explanation of the event codes.
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 38
Parameter
Software package version [/100] Inverter Product Number, char 8 1114 Inverter Product Number, char 4 7 Inverter Product Number, char 1 3
8 8 8 8
11 12
See ids in table below. The value must be divided by 100 to get the actual software version. 13 RS485 Bridge (module id = 13): From ver. 1.01. Display (module id = 14): From ver. 1.02. 14 See message examples in table below.
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 39
System information Data Module id Index Sub- type index id ULX TLX
& DLX
Inverter name, char 13 16 Inverter name, char 9 12 Inverter name, char 5 8 Inverter name, char 1 4 Inverter Serial Number, char 8 - 11 Inverter Serial Number, char 4 - 7 Inverter Serial Number, char 1 - 3 0x3C 0x3C 0x3C 0x3C 0x46 0x46 0x46 0x64 0x65 0x66 0x67 0x01 0x02 0x03 0x7 0x7 0x7 0x7 0x7 0x7 0x7 4 4 4 4 13 13 13 8 8 8 8 8 8 8 Character 13 - 16 of the inverter name (see format in tables below). Character 9 - 12 of the inverter name (see format in tables below). Character 5 - 8 of the inverter name (see format in tables below). Character 1 - 4 of the inverter name (see format in tables below). Character 8 - 11 of the inverter serial number (see format in tables below). Character 4 - 7 of the inverter serial number (see format in tables below). Character 1 - 3 of the inverter serial number (see format in tables below). 1.50 1.50 1.50 1.50 All All All All All All All All All All All All All All All All All All
Parameter
Hardware Type Ids Hardware type Id AC module, 1600 W 1 AC module, 3200 W 2 AC module, 4800 W 3 DC module, Medium Voltage (MV) 4 DC module, High Voltage (HV) 5 10 kW inverter 12,5 kW inverter 15 kW inverter Read Nominal AC power
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17
Comments ULX only ULX only ULX only ULX only ULX only TLX only TLX only TLX only TLX only
Page 40
6 7 8 0
DLX 20 All sizes For TLX inverters the Hardware Type Id is not supported from sw ver. 2.10. Instead you should use Nominal AC power. For DLX inverters use Nominal AC power for power size.
Parameter
TLX
All All All All All All All All All All All All All All All All All All All All All All All All All
DLX
All All All All All All All All All All All All All All All All All All All All All All All All All
120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120
10 11 12 13 14 15 16 17 20 21 22 23 24 30 31 32 33 34 35 36 37 38 39 40
0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
Energy production log Data Module id Index Sub- type index id ULX TLX/
DLX
Inverter production last November [Wh] Inverter production last December [Wh] Inverter production this year [Wh] Inverter production last year [Wh] Inverter production 2 years ago [Wh] Inverter production 3 years ago [Wh] Inverter production 4 years ago [Wh] Inverter production 5 years ago [Wh] Inverter production 6 years ago [Wh] Inverter production 7 years ago [Wh] Inverter production 8 years ago [Wh] Inverter production 9 years ago [Wh] Inverter production 10 years ago [Wh] Inverter production 11 years ago [Wh] Inverter production 12 years ago [Wh] Inverter production 13 years ago [Wh] Inverter production 14 years ago [Wh] Inverter production 15 years ago [Wh] Inverter production 16 years ago [Wh] Inverter production 17 years ago [Wh] Inverter production 18 years ago [Wh] Inverter production 19 years ago [Wh] Inverter production 20 years ago [Wh] 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 41 42 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All All
Parameter
Parameter
Inverter irradiation today [Wh/m2] Inverter irradiation last Monday [Wh/m2] Inverter irradiation last Tuesday [Wh/m2] Inverter irradiation last Wednesday [Wh/m2] Inverter irradiation last Thursday [Wh/m2] Inverter irradiation last Friday [Wh/m2] Inverter irradiation last Saturday [Wh/m2] Inverter irradiation last Sunday [Wh/m2] Inverter irradiation this week [Wh/m2] Inverter irradiation last week [Wh/m2] Inverter irradiation 2 weeks ago [Wh/m2] Inverter irradiation 3 weeks ago [Wh/m2] Inverter irradiation 4 weeks ago [Wh/m2] Inverter irradiation this month [Wh/m2] Inverter irradiation last January [Wh/m2] Inverter irradiation last February [Wh/m2] Inverter irradiation last March [Wh/m2] Inverter irradiation last April [Wh/m2] Inverter irradiation last May [Wh/m2] Inverter irradiation last June [Wh/m2] Inverter irradiation last July [Wh/m2] Inverter irradiation last August [Wh/m2] Inverter irradiation last September [Wh/m2] Inverter irradiation last October [Wh/m2] Inverter irradiation last November [Wh/m2]
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17
0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
Irradiation log Data Module id Index Sub- type index id ULX TLX
121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 42 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
Parameter
Inverter irradiation last December [Wh/m2] Inverter irradiation this year [Wh/m2] Inverter irradiation last year [Wh/m2] Inverter irradiation 2 years ago [Wh/m2] Inverter irradiation 3 years ago [Wh/m2] Inverter irradiation 4 years ago [Wh/m2] Inverter irradiation 5 years ago [Wh/m2] Inverter irradiation 6 years ago [Wh/m2] Inverter irradiation 7 years ago [Wh/m2] Inverter irradiation 8 years ago [Wh/m2] Inverter irradiation 9 years ago [Wh/m2] Inverter irradiation 10 years ago [Wh/m2] Inverter irradiation 11 years ago [Wh/m2] Inverter irradiation 12 years ago [Wh/m2] Inverter irradiation 13 years ago [Wh/m2] Inverter irradiation 14 years ago [Wh/m2] Inverter irradiation 15 years ago [Wh/m2] Inverter irradiation 16 years ago [Wh/m2] Inverter irradiation 17 years ago [Wh/m2] Inverter irradiation 18 years ago [Wh/m2] Inverter irradiation 19 years ago [Wh/m2] Inverter irradiation 20 years ago [Wh/m2]
00 00 00 00 00 00 00 00 00 00 00 00 00
15 15 15 15 15 15 15 15 15 15 15 15 15
3F 3A E6 82 93 28 09 B2 7F C4 3D 86 4B
A1 2D 77 98 E7 FB AC B0 95 89 3B 27 02
7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E
Ping node (0x1, 0x1, 0xFB) Ping node (0x1, 0x1, 0xFC) Ping node (0x1, 0x1, 0xFD) Ping node (0x1, 0x1, 0xFE) Ping all nodes on Network 0x1, Subnet 0x2 Ping all nodes on Network 0x1, Subnet 0x3 Ping all nodes on Network 0x1, Subnet 0x4 Ping all nodes on Network 0x1, Subnet 0x5 Ping all nodes on Network 0x1, Subnet 0x6 Ping all nodes on Network 0x1, Subnet 0x7 Ping all nodes on Network 0x1, Subnet 0x8 Ping all nodes on Network 0x1, Subnet 0x9 Ping all nodes on Network 0x1, Subnet 0xA
7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE
FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE 01 FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE 01 FE FE 01
1B 1C 1D 1E 2F 3F 4F 5F 6F 7F 8F 9F AF BF CF DF EF EE E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EE EE EE EE
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FE 00 01 FE
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 95 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 95 15 15 95
F0 D1 6A A7 EE 4F 0A AB 59 F8 D3 72 80 21 64 C5 37 02 CE 75 B8 03 22 99 54 EF 16 AD 60 DB FA 41 8C 02 7F A3 02
1E 49 55 70 20 E3 B9 7A 36 F5 82 41 0D CE 94 57 1B 2C A9 B5 90 8C DB C7 E2 FE 4C 50 75 69 3E 22 07 2C C1 9B 2C
7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E
Ping all nodes on Network 0x1, Subnet 0xB Ping all nodes on Network 0x1, Subnet 0xC Ping all nodes on Network 0x1, Subnet 0xD Ping all nodes on Network 0x1, Subnet 0xE Ping all nodes on Network 0x2 Ping all nodes on Network 0x3 Ping all nodes on Network 0x4 Ping all nodes on Network 0x5 Ping all nodes on Network 0x6 Ping all nodes on Network 0x7 Ping all nodes on Network 0x8 Ping all nodes on Network 0x9 Ping all nodes on Network 0xA Ping all nodes on Network 0xB Ping all nodes on Network 0xC Ping all nodes on Network 0xD Ping all nodes on Network 0xE Reply from one or more nodes on Network 0xE Ping all nodes on Network 0xE, Subnet 0x0 Ping all nodes on Network 0xE, Subnet 0x1 Ping all nodes on Network 0xE, Subnet 0x2 Ping all nodes on Network 0xE, Subnet 0x3 Ping all nodes on Network 0xE, Subnet 0x4 Ping all nodes on Network 0xE, Subnet 0x5 Ping all nodes on Network 0xE, Subnet 0x6 Ping all nodes on Network 0xE, Subnet 0x7 Ping all nodes on Network 0xE, Subnet 0x8 Ping all nodes on Network 0xE, Subnet 0x9 Ping all nodes on Network 0xE, Subnet 0xA Ping all nodes on Network 0xE, Subnet 0xB Ping all nodes on Network 0xE, Subnet 0xC Ping all nodes on Network 0xE, Subnet 0xD Ping all nodes on Network 0xE, Subnet 0xE Reply from one or more nodes on Network 0xE, Subnet 0xE Ping node (0xE, 0xE, 0x00) Ping node (0xE, 0xE, 0x01) Reply from node (0xE, 0xE, 0x01) => Request node information from node (0xE, 0xE, 0x01)
7E FF 03 EE FE EE 01 1D 13 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF A0 E6 7E 7E FF 03 EE 01 EE FE 1D 93 41 30 30 32 30 30 30 30 32 30 34 00 30 35 35 30 30 30 48 30 37 30 35 00 0E 0E 01 03 01 D1 AA 7E 7E FF 03 EE FE EE 02 00 15 C7 74 7E 7E FF 03 EE FE EE 03 00 15 1B 2E 7E
File: ComLynx_User_Guide_16_2012-08-17_A7.doc Printed: 2012-08-17 Page 47
Ping node (0xE, 0xE, 0x02) Ping node (0xE, 0xE, 0x03)
7E FF 03 EE FE EE 04 00 15 1E A2 7E 7E FF 03 EE FE EE 05 00 15 C2 F8 7E 7E FF 03 EE 05 EE FE 00 95 12 01 7E
Ping node (0xE, 0xE, 0x04) Ping node (0xE, 0xE, 0x05) Reply from node (0xE, 0xE, 0x05) => Request node information from node (0xE, 0xE, 0x05)
7E FF 03 EE FE EE 05 1D 13 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 39 33 7E 7E FF 03 EE 05 EE FE 1D 93 41 30 30 32 30 30 30 30 32 30 34 00 31 31 30 30 30 30 48 30 37 30 35 00 0E 0E 05 02 01 F3 C7 7E 7E FF 03 EE FE EE 06 7E FF 03 EE FE EE 07 7E FF 03 EE FE EE 08 7E FF 03 EE FE EE 09 ............ ............ Continue pinging the ............ ............ FF 03 EE FE EE F9 00 FF 03 EE FE EE FA 00 FF 03 EE FE EE FB 00 FF 03 EE FE EE FC 00 FF 03 EE FE EE FD 00 00 00 00 00 15 15 15 15 A6 7A BD 61 17 4D 07 5D 7E 7E 7E 7E Ping node (0xE, 0xE, 0x06) Ping node (0xE, 0xE, 0x07) Ping node (0xE, 0xE, 0x08) Ping node (0xE, 0xE, 0x09)
15 15 15 15 15
55 31 ED E8 34
D1 3E 64 E8 B2
7E 7E 7E 7E 7E
7E 7E 7E 7E 7E
Ping node (0xE, 0xE, 0xF9) Ping node (0xE, 0xE, 0xFA) Ping node (0xE, 0xE, 0xFB) Ping node (0xE, 0xE, 0xFC) Ping node (0xE, 0xE, 0xFD)