Issue
A device data recorder has been configured such that the inputs to the data recorder use labels of the form a@b. The user expects the data to be assigned to source b, but instead, the data is assigned to the physical or a different source.
Product
ION Enterprise
StruxureWare Power Monitoring (SPM) 7.0.x
Power Monitoring Expert (PME) 7.2.x, 8.x
Environement
SQL Sever management Studio
Cause
This will happen if there is an entry in the IAS_MeasurementAddress table (ION_Network database) for the ION register in question, and the IsManual column for this entry is set to 1.
This can happen if a particular module register was used as an input to a particular data recorder, and the downstream device assistant, or other tool is used to create a specific entry in the IAS_MeasurementAddress table. In this case, the IsManual column will be set to 1 which means the Log Inserter will use this mapping verbatim and it will never be changed. Even if the module that was used as an input to the data recorder is subsequently deleted and then recreated, the entry in the IAS_MeasurementAddress table will remain. If a label that uses the @ symbol is used in this new configuration, it will be ignored, since there already is an entry for this register in the IAS_MeasurementAddress table.
Resolution
There is no resolution to the underlying problem, but there is a workaround.
Workaround
*Warning: Irreparable database damage can occur. This procedure should only be performed by users familiar with SQL Server Management Studio. Databases should be backed up prior to performing this procedure.*
Caution: Be sure to shut down the Log Inserter and back up your ION_Network database before proceeding.
Delete the entry from the IAS_MeasurementAddress table that is causing the problem. To do this, you will need to execute some queries against tables in the ION_Network database in order to find the row you want to delete.
A) Open SQL Servermangement studio and connect to the database instance with PME/SPM/ION Enterprise
B) Determine the source ID for the source on which the data recorder is located:
Use ION_Network
SELECT * FROM IAS_Source WHERE Name = '[my source name]'
Take note of the ID. It will be required in subsequent queries.
C) Query the IAS_MeasurementAddress table to return only the entries for which IsManual is set to true:
SELECT * FROM IAS_MeasurementAddress WHERE IsManual = 1AND SourceID = <ID from first query>
D) Identify the row that is causing the problem and take note of its ID. You may need to identify the handle of the data recorder input that you are trying to correct. You can do this by opening the node in Designer, selecting the data recorder that has the bad input, selecting Show diagram text from the Options menu and choosing the Diagnostics view.
E) Once the row has been identified, issue the following query to delete the offending row:
DELETE FROM IAS_MeasurementAddress WHERE ID = <id determined in the step above>
F) Restart the Log Inserter. When the address is resolved, the data will be assigned to the expected source.
More Information
This can happen if a particular module register was used as an input to a particular data recorder, and the OPC Server Assistant, Downstream Device Assistant, or other tool is used to create a specific entry in the IAS_MeasurementAddress table for this register. In this case, the IsManual column will be set to 1 which means the Log Inserter will always use this mapping verbatim. Even if the module is subsequently deleted and then recreated, the entry in the IAS_MeasurementAddress table will remain. If a label that uses the @ symbol is used in this new configuration, it will be ignored, since there already is an entry for this register in the IAS_MeasurementAddress table.