I’d like to put my data on PV OUTPUT but I have problems to retrieve data from my new ABB.
I’m looking for the instruction to get data from this ABB inverter, I see that is a little bit new and there aren’t informations about it on the net.
This inverter doesn’t have the rs485 port so the only way to get data I think is to use the modbus tcp that it has.
Aurora Manager Lite not has this functionality and I don’t know if there is another way to get data.
Anyone can help me.
I found this about your inverter https://new.abb.com/power-converters-inverters/solar/string/single-phase/uno-dm-6.0-tl-plus. They say it has an integrated webserver and possibly you can get something out of it. Also, manual says that version X has the COM-Kit board with RS485 (I suppose by your question that this is not the case), the E version has Ethernet and RS485 (again may be not the case). However, at page 116 you can read:
In the Modbus TCP sub-menu it’s possible to enable exchanging of
data with third party monitoring and control systems over wireless
channel in compliance with Sunspec register map, by setting “ON” the
“Modbus TCP Server” parameter.
Hence, you configure your wifi (I guess you already have it done), than activate ModbusTCP. Now you need any application that can read Modbus (there some for Windows but if you are going to monitor the inverter I suggest a $40 raspberrypi with Linux and modbus python script or shell script). As per manual, they follow “Sunspec register map”. Googled it and found: https://sunspec.org/modbus/ which lead me here https://sunspec.org/sunspec-python-library/ and ultimately here: https://github.com/sunspec/pysunspec
Provides access to SunSpec Modbus RTU and TCP devices
High level object model allowing easy device scripting
Minimal dependencies for core package allowing it to run in more constrained Python environments
Runs on Windows, Mac, and Linux.
Now have proper library to monitor you ABB over Modbus TCP wireless, fantastic!
If you encounter any difficulties let us know.
I see all the informations so now I need only to study how to implement the protocol and after generate the correct output for pvoutput…
If you find something useful please tell me.
I suggest you first try enable Modbus TCP in the inverter config as suggested by manual. After that, use a modbus software (any would do the job - like http://www.modbusdriver.com/modpoll.html). If you can communicate with the inverter and see the registers I can help you with getting data from inverter and sending to PVoutput. Sending part is done in project I keep for Growatt inverters, getting data through modbus is similar too but first need to know if communications are ok. (take look: https://github.com/jrbenito/canadianSolar-pvoutput).
that’s great, the test gone well.
But I see all registers to 0… I hope the problem is only that I don’t know what register to invoke…
By your picture I see you are using
-t4:float. This tells modpoll to poll for “holding registers” that are normally related to configurations (like ip address, max voltage, max power etc). You are interested in “input registers” hence, use
-t3 instead of
-t4. Based on documentation I downloaded from Sunspec website, registers you are interested in are 101 ~ 199 (100 series are inverter regisers, 200 series are meter registers and so on).
Try read with -t3 and -r 101 -c 50 and send outputs
Thanks for the help
Here the response… but i think that is not the correct register.
What do you think about it?
Sorry for late reply, I was in a business trip last week and I am still suffering jetlag effect.
Try to play with -r parameter, start from 1 and increase each by 50 it time (
-r 1 -c 50, then
-r 50 -c 50, then
-r 100 -c 50) and see if you get some readings. Also, please use
-t3 without the float option (or change it to int if you get 0.000 readings). Let me know.
thanks for all no prolem
At the end i find the fields that I need and are at addresses starting from 40080
The only way to access them is to use t4 and not t3…
Now can you help me to get output for pvoutput?
I will upload a python test code for you, if it works as command line tool we are good to go. Please, post the output of registers you found, I will need them.
Ok for the moment we can take this basic inputs
40085 Watts (W) supported R P_AC to grid
40081 Phase Voltage AN (PhVphA) supported R V_AC
40188 ActWh AC lifetime active (real) energy output
this last register is in acc64 format and I can’t read with modpoll utility
when you read this value what you get back? If I understood the 64-bit description, you have to get registers 400188, 400189, 400190 and 400191 to compose the value by shifting it into a 64-bit integer variable. Could you please send the output of modpoll reading values of those registers? (those first two you are interested and if possible reading 400188~40191 as integers)
Here all registers about the 122 model
converting values from 4188 to 40191 from hex to int64 is the actual total production of the inverter
Perfect, let me adapt my code to this and come back.
Please, give a try to this code: https://github.com/jrbenito/canadianSolar-pvoutput/tree/abb-support-test
It is just a test version, I hard-coded the inverter address as 192.168.1.60 (based on your screenshot above), change it if necessary. Configuration file will be required with proper pvouput system id and API key, on inverter section, provide any value to the port since I hard-coded IP it will not be used but will be required by config validation code. Value of address is the unit address of your inverter, based on your screen shot it shall be 1 (0x01). OWM key section is optional.
Please provide me errors so I can correct it for you.
Thanks for all I will try in the next days.