[BUG] Clicking on OPC UA SERVER, Device Connections Internal Error

When clicking on the Device Connections section in the config window I’m given an ‘Internal Error’ message.

image

In the logs an error is given, DefaultExceptionMapper( mouseover: org.apache.wicket.DefaultExceptionMapper)
Log is attached.

There are currently two modbus devices configured, one disabled and the other configured for a remote connection to a public IP (which as far as I can tell is working correctly, before and after the internal error message was given). The error started when I added an address mapping to the enabled device.

Edit (10m): It looks as though I cannot read any tag values.
If I stop and start the gateway I can access the device connection page once, if I leave the page I cannot return, the same error is given, if I click to edit one of the devices results in the same as well.

After restarting the gateway for a third time, I can now not access the gateway homepage either.

MobusDevice Error.txt (12.5 KB)

Thanks, I can’t reproduce this but I’ve taken a stab at fixing it based on the stack trace. Unfortunately you won’t be able to test it out until we start releasing nightly builds again.

Thank-you Kevin, I’ve temporarily downgraded to v7.9.10.
I look forward to the next update :slight_smile:

Use a dev system or VM for the next one!

1 Like

This issue should be fixed in the newest build. Let us know if you continue to see this behavior after upgrading.

When clicking on the Device Connections section in the config window, I’m given an ‘Internal Error’ message, too. I import many .csv files configuration for device address, but just two of them could not be saved.

The version I used is Ignition 8.0.2. And I did a test during address configration——If the .CSV file has more than 685 rows, it cannot be imported. Is there a line limit for imported files?

It’s not an explicit line limit but a size limit. The address mapping you create is essentially stored as an encoded CSV file inside the internal database, and we don’t want to make a single table prohibitively large, so, at least for now, the filesize limit is fairly restrictive. You can confirm on Gateway -> Status -> Logs - every time you hit the “Internal Error” page, there should be an error logged by DefaultExceptionMapper that gives you some information about what the error was.

An option to explore if you want to just create the tags from your existing address mapping; I wrote this script a while back to open address mapping .csv files and print out a sequence of OPC item paths, which you could then fairly easy use in a CSV tag import - you just have to provide a naming convention:

import csv

inputfile = system.file.openFile("csv")
device = system.gui.inputBox("Enter device name")

f = open(inputfile, 'r')
csvfile = csv.reader(f)

types = {
	'HoldingRegisterInt16':'HR',
	'HoldingRegisterFloat':'HRF',
	'HoldingRegisterDouble':'HRD',
	'HoldingRegisterUInt16':'HRUS',
	'HoldingRegisterInt32':'HRI',
	'HoldingRegisterUInt32':'HRUI',
	'HoldingRegisterInt64':'HR_64',
	'HoldingRegisterUInt64':'HRUI_64',
	'HoldingRegisterBcd':'HRBCD',
	'HoldingRegisterBcd32':'HRBCD_32',
	'InputRegisterInt16':'IR',
	'InputRegisterFloat':'IRF',
	'InputRegisterDouble':'IRD',
	'InputRegisterUInt16':'IRUS',
	'InputRegisterInt32':'IRI',
	'InputRegisterUInt32':'IRUI',
	'InputRegisterInt64':'IR_64',
	'InputRegisterUInt64':'IRUI_64',
	'InputRegisterBcd':'IRBCD',
	'InputRegisterBcd32':'IRBCD_32',
	'DiscreteInput':'DI',
	'Coil':'C',
	'ULONG': 'HRUI'
}

radix = 10
paths = []
for row in csvfile:
	if row[1] == '':
		radix = row[0]
	else:
		for i in range(int(row[1]), int(row[2])):
			paths.append("[%s]%s.%s%s" % (
				device,
				row[4], #unitid
				types[row[5]], #register type
				int(row[6]) + i
				)
			)
			
f.close()
print '\r\n'.join(paths)

could u please tell me about the size limit? The two .csv file sizes are 31KB and 34KB, respectively.

Hello
I have the same problem, did you resolve this?

thanks