Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

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 data

    I 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 01

    If 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:

    alt text


  • 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!