About SMA cluster controller
-
I am using sma cluster controller as a gateway to communicate with pv inverter thought modbus tcp.
However, cluster controller always respond modbus exception illegal function for the command I used below
00 01 00 00 00 06 03 04 00 04 00 02
to read the 30005 dataI have enable modbus tcp function and config my inverter to be Unit ID 3
Anyone with experience in sma can help? -
Hi ctgbmoz,
You are not using Mango?
When I read 30005 (in Mango, Input Register offset 4 slave ID 3), my request looks like:
00 00 00 00 00 06 03 04 00 04 00 01If that's helpful.
-
One of my sources is a SMA Webbox through Modbus TCP, which more or less works the same way as a SMA clusterbox. Assign Webbox (or Clusterbox) connected devices a Unit ID. This because the slave number on the IP address. So in this example a TP has been set to Unit 7, slave 7. On webbox reading the holding register for TP Power Output is 30775.
So: -
Hmm. Have you assigned the modbus device ID correctly? There are some hints in this thread here:
http://infiniteautomation.com/forum/topic/1816/sma-cluster-controller/3
It might be worth reaching out to SMA support as they will be able to help you set up Modbus on the Cluster Controller. There are various 'gotchas' such as firmware version and plant configuration options. And some registers are simply not supported (despite the documentation saying they are).
If it helps, here is the JSON for an Sunny Island inverter attached to a SMA Cluster Controller.
{"dataPoints":[{ "xid":"DP_12341234", "name":"AC Active Power (All Phases)", "enabled":true, "loggingType":"ON_CHANGE", "intervalLoggingPeriodType":"MINUTES", "intervalLoggingType":"INSTANT", "purgeType":"YEARS", "pointLocator":{ "range":"HOLDING_REGISTER", "modbusDataType":"FOUR_BYTE_INT_SIGNED", "writeType":"NOT_SETTABLE", "additive":0.0, "bit":0, "charset":"ASCII", "multiplier":0.001, "offset":30775, "registerCount":0, "slaveId":4, "slaveMonitor":false }, "eventDetectors":[ ], "plotType":"STEP", "unit":"kW", "chartColour":"", "chartRenderer":{ "type":"IMAGE", "timePeriodType":"MINUTES", "numberOfPeriods":60 }, "dataSourceXid":"DS_12341234", "defaultCacheSize":1, "deviceName":"Sunny Boy 1", "discardExtremeValues":false, "discardHighLimit":0.0, "discardLowLimit":0.0, "intervalLoggingPeriod":15, "intervalLoggingSampleWindowSize":0, "overrideIntervalLoggingSamples":false, "purgeOverride":true, "purgePeriod":1, "readPermission":null, "setPermission":null, "textRenderer":{ "type":"ANALOG", "useUnitAsSuffix":true, "unit":"kW", "renderedUnit":"kW", "format":"#0.###" }, "tolerance":0.0 } ]}
-
Thanks for sharing Jeremy! I edited your post to make the JSON importable through the emport page (added the '{"dataPoints":[{ .... ]}' )
-
Thanks Phil!