{}

Markalar

Impact-Company-Logo-English Black-01-177x54

Schneider Electric Web Sitesine Hoş Geldiniz

Web sitemize hoş geldiniz.

SSS'leri Arayın

Device is not Logging data in PME and System log shows error "Arithmetic overflow error converting IDENTITY to data type tinyint. Arithmetic overflow occurred."

Issue

Data for at least one node is not being logged into PME. Error message in PME SystemLog
GroupName.DeviceName failed to write node info to database because 'Arithmetic overflow error converting IDENTITY to data type tinyint. Arithmetic overflow occurred.' Will retry in 60s.

Product Line
Power Monitoring Expert versions 8.x and 9.x
PM5500
Enercept meters

Environment
Power Monitoring Expert

Cause
at least one meter driver is returning random values for the volts mode register, which in result causes the IRM_VoltsMode table to reach its maximum identity value of 255. It needs to be determined which meter(s) are showing this behavior and the corresponding driver(s) will need to be modified to remove the error.

Resolution

**Warning: It is recommended that only those familiar with SQL Management Studio and PME architecture run queries which modify the databases.  Always create recent database backups beforehand.  Failure to do so can leave the databases in an inoperable state and lead to loss of data. **

Debugging procedure:
1) Shutdown **ALL** PME services (including the 3x Application Modules services).
2) Backup ION_Network.
3) Open SQL Management Console and run the following script. This query will delete all columns in IRM_DeviceInfo and IRM_VoltsMode. When LogInserter talks to the nodes again, logging in these two tables will start with Identity Value of 1.

use ION_Network
delete IRM_DeviceInfo
delete IRM_VoltsMode
DBCC CHECKIDENT ('IRM_DeviceInfo', RESEED, 0)
DBCC CHECKIDENT ('IRM_VoltsMode', RESEED, 0)

4) Start the following services:
- Siteserver
- Application Modules Provider Engine Host
- LogInserter (and LogInserter Router Service if present)
Note: DO NOT start other services.
5) Monitor the IRM_VoltsMode table for any entries that do not seem reasonable volts mode values (numbers, random strings, etc).  Record the IDs of those rows.
Note that entries are only added as LogInserter talks to the device for the first time so it may take a few minutes especially in large systems. The query below helps to find the unreasonable volts mode values (numbers, random strings, etc).

use ION_Network
SELECT *  FROM IRM_VoltsMode order by id
SELECT * FROM IRM_DeviceInfo order by id

6) For any IDs noted in step 5 determine which physical device this is by using the entries in IRM_DeviceInfo.  Work backwards to determine which device driver the entries correspond to using the device name column to lookup into the Devices table and from there to the DeviceType table.
7) Open the affected device driver .xml file and find the VoltsMode register.  Check if there is a DefaultEnum attribute for that register (it may be using a named Enumeration so lookup this at the end of the .xml file).  If not present then add a DefaultEnum attribute with a string in enum list (like 4WYE) or something like "Unknown".  This value will be returned whenever the Modbus volts mode register returns a numeric value not on the enum list.  This will also help Vista pick which default diagram to open (first choice will override the invalid value, the second will prevent the default diagram from opening with an error).
Note: If the value is "Illegal Data", or anything else that looks like a Modbus exception string the above fix will not work and other changes to the driver will be required.
8) Repeat the above steps until all the drivers are fixed.
9) Once all drivers are fixed then start all PME services and resume normal operations.

Schneider Electric Turkey

Schneider Electric Türkiye ile İlgili Ürünler
Seri:
Schneider Electric Türkiye ile İlgili Ürünler
Seri: