I am attempting to connect a Netbiter EC350 to a Cummins generator set controller via a Cummins ModLon II gateway, which converts the generator controller’s Lonworks network to a Modbus RTU interface. The RS-232 serial port on the EC350 is enabled, and set to 9600 8/N/1, and the device profile for the generator controller is set to Slave ID 1, same settings as the ModLon gateway, and I cannot read registers from it. The activity lights on the ModLon gateway are all blinking. I created the template for the generator controller with all the register addresses from Cummins’ instruction manual for the ModLon , and I have visualizations set up for all of the register addresses I am trying to read as well. I can use ModScan to connect my laptop to the ModLon gateway and read the registers, using the same serial port settings, so I know the data is accessible. What am I doing wrong?
Can you provide me with your account name or system ID so i can take a look at the account and settings?
If you look at the device in Browse devices do you see an error response or any error message?
The account name is DENTON_CO2; when I go to Browse Devices to the generator controller, click the drop down to show the parameters and hit the refresh button; after about 20-30 seconds all the data fields become shaded a light red or pink color, with no data, zeroes, error messages or anything. If I go to Management/Status/Communications Statistics I have no valid responses, 77343 timeouts, and 53737 exceptions. The attachment is the instruction sheet for the Cummins ModLon II gateway.
C673_I5(Updated 5-12).pdf (646 KB)
If you are getting exceptions you can hover over the red boxes to get the error message response.
In your case it looks like you are getting both illegal address errors and timeout. Since you are receiving responses you should be able to rule out serial configurations issues. It looks like you might just not be making the correct requests to the slave. Are you just using one of the built in template? You will want to create one that maps to the data on your slave.
Exactly what does a Modbus Illegal Data Address error mean to Netbiter? All my template register addresses are set to the values listed in the ModLon II installation guide for the default configuration for Generator 0. There is no place in Argos to set the beginning address and length for a device template as is used in the ModScan program where I can read the registers beginning at address 0001 with a length of 49, as seen in the installation guide.
Here are examples of the template parameter settings I am using:
And the same register in the ModLon II manual (Gen0):
That is a response given from the modbus slave device and is a generic modbus response. Some more info can be found here. http://www.simplymodbus.ca/exceptions.htm
You will want to remove the 40000 offset for the address it should be just 35 or 34 depending on what addressing is used.
Something odd is going on, I had to reset my password on hms this morning to login, and now my new password isn’t working.
I did go in and remove the 40000 offset from all the parameters and now I can read several of them, looks like I may have to play with the multiplier a little bit in some cases. The generator state parameter which should be a digit from 0 through 5 is showing up as 255 right now, not sure why.
Not sure what could have been going on with your login we had no other reported login issues.
Usually the modbus register map will give you details about any offset or scale that needs to be applied. I’m not sure about the 255 for the generator state. This would be a full two bytes or a modbus register (0xFF) perhaps this is again explained in the Modus manual for the controller.
I really don’t have any more information to refer to, other than the list of registers and the parameter they report, any multiplier or offset applicable, and the units of the value. For the parameter “Gen State” there is no multiplier, offset or unit type listed, only a footnote for a table listing the options (0=normal, 1=start pending, 2=warmup, 3=running, 4=cooldown@rated, 5=cooldown@idle) presented by the register. I have this entered in the enumeration table for the visualization of this parameter, but obviously it is not being read properly.
Often there isn’t a scale or offset, if they are only giving you an enumeration then most likely you can apply that directly to the value being read. Looking at the response back for “State” you are getting an illegal address response this typically reads the address you are reading is not correct.
I will leave the issue for the ‘state’ register for the moment, on to the other question. Registers 44 and 45 contain the engine runtime in seconds. Please see the following screen shot showing the instructions for interpreting these registers below:
Is there a way in Argos that I can correctly display this double integer?
Yes Argos can read float values. You will need to set the datatype when creating the template. This will have the netbiter read 2 registers and then interpret the data as a float.
What data type do you use for the low value? I can’t seem to find anything that works. I tried 16-bit value and floating point, and neither one seemed to work.
You should only need to set a single read up for it if it is a float. Looking at Eng Runtime you would set up the following
Datetype: Floating point.
Setting the data type to a float tell the Netbiter to read register 44 and 45 then combine them to
interpret the data as a float.
OK, thank you sir, I will make that change and see what happens.
Maintenance Repair Specialist II
Denton County Facilities Department
750 S. Mayhill Rd.
Denton, TX 76208
I’m going to try to contact Cummins Tech Support to see if they can shed any light on the State parameter. In the meantime, I have another issue I’m trying to figure out. When I go to the Presentation screen and look at the Live Values, some of the parameters are coming back blank with a message of ‘DS: Time out’ when I mouse over the empty field. I have the slave timeout set to 10s in the Gateway Settings tab. Why do you think this is happening?
If you are getting a time out error this means the Netbiter sent out the modbus request but did not receive a response back from the server/slave.
Going back to the ‘State’ parameter now. Below is a screen grab of the table shown in the Cummins manual for the genset controller, showing the values for the Modbus address 11.
Each of these values should be available as a reading from this address, which leads me to believe I need to use the mask option in the ‘Add Parameter’ form, but I need help with setting up the mask. I don’t understand what values I need to enter in the mask to result in the “Digital Value” for each entry.