How to set USB port as RS-485 entrance? How to interpret Growatt inverter commands?

I have a solar inverter from Growatt (Model: MAX 70 KTL3 LV datasheet in attachment). I’m trying to read data from it using Modbus. For this, I’ve linked it to my laptop using an RS485 cable (with an USB-converter for my laptop’s USB port).

I’ve been having some trouble reading the parameters. I’ve done some troubleshooting and there are two things I need help with:

-Allegedly, I need to explicitly set the USB port I’m entering the USB-connector to as an RS485 port. This should be do-able in device manager. In demonstrations, I see a check box under the ‘port settings’ tab under the window that opens when clicking the COM-port in question. I, however, can’t find such a thing, also not under the ‘driver’ tab.
RS485 COM-port.png
How should I be doing this?

-I’ve been told solar converters from this brand won’t give off any data if you don’t request it. The producer has given me some documentation with commands (attachement: Growatt Inverter Communication Command), but it’s badly translated from Chinese and I can’t understand them. Is anyone familiar with the commands written in this file and how I should enter them? Is there a specific type of software I need? How do I interpret them anyway?
Growatt inverter commands.png
 

Attachments

First off, that protocol is not Modbus. It's a proprietary protocol, likely specific only to the Growatt Inverter (and possibly other Growatt products). Unless you are using software provided by Growatt or coding your own custom software to implement this protocol, you will need a gateway device to convert this protocol into an open protocol such as Modbus or BACnet. You can then use your choice from a variety of different software packages to communicate Modbus or BACnet to retrieve the data from the inverter. I recommend using ICC's Mirius gateway for this purpose using its Generic Serial driver. ICC can assist you in configuring the gateway to communicate using this proprietary protocol. Details and pricing for the Mirius can be found on its product page here:
http://www.iccdesigns.com/protocol-gateways/66-mirius.html

Regarding the USB to RS-485 adapter and the COM port settings, those port settings you show with the RS-485 checkbox are specific to a certain adapter using a vendor-supplied USB driver. Most USB to RS-485 adapters simply use Windows' built-in serial driver and do not have that setting. Typically, there is no need to change any settings for the COM port using device manager (except maybe for changing the COM port number).

Looking closer at the protocol, it seems it would be possible to use a terminal emulator, such as PuTTY, to send the Read Command and Start Command to cause a single inverter to periodically send data by sending two specific strings.

According to the document, the Read Command (configuring the inverter to send data every 1500ms) is as follows in Hexadecimal
3F 23 7E 34 41 7E 32 59 31 35 30 30 23 3F

Translating this to ASCII (https://www.rapidtables.com/convert/number/hex-to-ascii.html), would result in this string
?#~4A~2Y1500#?

Here is my interpretation of the breakdown of this command string
?# Packet start character sequence
~4A~ Command, where 4 is command type 0 (C0) and A is command type 1 (C1)
2 Data Type, meaning 2 bytes are returned for each parameter
Y Enable periodic transmissions - I assume Y stands for Yes
1500 Periodic transmission interval in milliseconds
#? Packet end character sequence

You would then also need to send the Start Command, which is as follows in Hexadecimal
3F 23 7E 34 42 7E 23 3F

And is as follows in ASCII
?#~4B~#?
 
Thanks for your response. Are you saying that I could communicate with my inverter using these commands through either the Mirius gateway + a matching software package, or the PuTTY emulator? Or do I need them both?

Also, weird question probably, but where did you obtain all this information? Are there specific courses you could follow? Or does it just come from all kinds of different places/experiences?
 
The two options I presented for communicating with your inverter are as follows. You only need to use one of the two options.

1. Use the Mirius to convert the proprietary serial protocol to an open protocol, such as Modbus or BACnet. Then use a third-party software package to communicate from your computer to the Mirius. Examples of such software include:
Modbus Software
ModScan

https://www.win-tech.com/

Modbus Poll
https://www.modbustools.com/modbus_poll.html

Simply Modbus
https://www.simplymodbus.ca/

ICC Modbus Master Tool
http://www.iccdesigns.com/software/43-icc-modbus-master-tool.html
Note: Yes, this tool is also from ICC, but is a general-purpose tool that is used with any Modbus device, regardless of manufacturer.

BACnet Software
Yabe (Yet Another BACnet Explorer)

https://sourceforge.net/projects/yetanotherbacnetexplorer/

2. Use a terminal emulator to send the requests to the inverter and view the responses from the inverter. Examples of terminal emulators include the following:
PuTTY
https://www.putty.org/

Hyperterminal
https://www.hilgraeve.com/hyperterminal/

Terminal
https://sites.google.com/site/terminalbpp/

Please note, though, you may need to use a terminal emulator that supports hexadecimal, such as Terminal above, because upon further inspection of the Growatt protocol, it seems that the actual data bytes are encoded in binary (hex), although other fields in the packet are valid ASCII characters. Therefore, I recommend using Terminal and selecting HEX (instead of ASCII) and enter the Hexadecimal packets I showed in my last post.

What is your end goal with your inverter? All you stated is that you want to read data from it using your laptop. What are you intending to do with the data? Are you trying to integrate the inverter into an automation system or smart home system?

And to answer your other question, I do this professionally. I'm one of the engineers and product specialists at ICC and wrote the Generic Serial driver for our gateways. I specialize in serial communication protocols.
 
Top