Søg i ofte stillede spørgsmål
Power Monitoring Expert - I can't read an custom OPC tag that I exposed using OPC Server Assistant - error is 'ReadingIDUnknown'
I used OPC Server Assistant to expose a custom tag for OPC. This can be done either within Designer or the MDI. However, when I try to read the tag, I don't get a value. If I use the IONServicesTestClient to try to read the tag, the error displayed is 'ReadingIDUnkown'.
This will happen if you rename a device after you have exposed the custom tag. This happens because the OPC Server Assistant uses the System Name when writing information to IONServicesConfiguration.xml, but the OPC Server looks for the Display Name when exposing the data. Once a device has been renamed, the System Name and the Display Name are no longer the same, thus the problem.
To workaround this, it is necessary to manually edit the IONServicesConfiguration.xml file. You will need to remove the entry for your custom tag so that is is the section under the correct device name, i.e. the Display Name. Be sure to make a copy of this file before doing the manual edit in case an error is made.
As an example, here is a snippet of an example of IONServicesConfiguration.xml. In this case a device was renamed from test.floor7650 to test.floor7650_MSB. Notice how the custom entry, highlighted in red, added by the OPC Server Assistant used the original device name, i.e. the System Name:
<?xml version="1.0"?>
<i:IONServicesConfiguration xmlns="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/MeasurementTemplates/1/" xmlns:i="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/1/">
<i:ION>
<i:Src label="test.floor7650_MSB" name="test.floor7650_MSB">
<i:MTR ref="Full"/>
</i:Src>
<i:Src label="test.floor7650" name="test.floor7650">
<M label="IN47 Result" name="IN47 Result"/>
</i:Src>
</i:ION>
To correct this, the snippet above would be changed to - the custom tag entry, highlighted in red, is moved so it is under the correct device name, i.e. the Display Name, and the rest of the incorrect entry is deleted.:
<?xml version="1.0"?>
<i:IONServicesConfiguration xmlns="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/MeasurementTemplates/1/" xmlns:i="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/1/">
<i:ION>
<i:Src label="test.floor7650_MSB" name="test.floor7650_MSB">
<i:MTR ref="Full"/>
<M label="IN47 Result" name="IN47 Result"/>
</i:Src>
</i:ION>
This will happen if you rename a device after you have exposed the custom tag. This happens because the OPC Server Assistant uses the System Name when writing information to IONServicesConfiguration.xml, but the OPC Server looks for the Display Name when exposing the data. Once a device has been renamed, the System Name and the Display Name are no longer the same, thus the problem.
To workaround this, it is necessary to manually edit the IONServicesConfiguration.xml file. You will need to remove the entry for your custom tag so that is is the section under the correct device name, i.e. the Display Name. Be sure to make a copy of this file before doing the manual edit in case an error is made.
As an example, here is a snippet of an example of IONServicesConfiguration.xml. In this case a device was renamed from test.floor7650 to test.floor7650_MSB. Notice how the custom entry, highlighted in red, added by the OPC Server Assistant used the original device name, i.e. the System Name:
<?xml version="1.0"?>
<i:IONServicesConfiguration xmlns="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/MeasurementTemplates/1/" xmlns:i="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/1/">
<i:ION>
<i:Src label="test.floor7650_MSB" name="test.floor7650_MSB">
<i:MTR ref="Full"/>
</i:Src>
<i:Src label="test.floor7650" name="test.floor7650">
<M label="IN47 Result" name="IN47 Result"/>
</i:Src>
</i:ION>
To correct this, the snippet above would be changed to - the custom tag entry, highlighted in red, is moved so it is under the correct device name, i.e. the Display Name, and the rest of the incorrect entry is deleted.:
<?xml version="1.0"?>
<i:IONServicesConfiguration xmlns="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/MeasurementTemplates/1/" xmlns:i="http://rddl.xmlinside.net/PowerMeasurement/configuration/IONServices/1/">
<i:ION>
<i:Src label="test.floor7650_MSB" name="test.floor7650_MSB">
<i:MTR ref="Full"/>
<M label="IN47 Result" name="IN47 Result"/>
</i:Src>
</i:ION>