Echelon Product Alerts
Updating the 97th Network Variable in Neuron C Code with Neuron Firmware Version 18 |
---|
Date
November 12, 2009
Products Affected
Neuron Firmware Version 18
Summary
Using Neuron Firmware Version 18, the user is unable to update the 97th network variable that is declared in Neuron C code.
The following sample code reproduces the problem.
#pragma num_alias_table_entries 0
network input SNVT_count nvi[100];
network output SNVT_count nvo;
when(nv_update_occurs ) {
nvo = nvi[96];
}
=============
Using a tool such as the LonMaker Browser to update nvi[96] will fail. The device acknowledges the NV update request correctly, but polling the NV value shows that value has not been updated.
The problem still appears even if the NVs are declared independently versus using an array. The problem can also be reproduced if 96 unique NVs are declared in Neuron C. The 97th NV that is declared will not update correctly.
Solution
If you are using an engineering sample Series 5000 processor with Neuron Firmware version 18, you must replace the processor with a production Series 5000 processor with Neuron Firmware version 19, and rebuild your application for Neuron Firmware version 19 with NodeBuider FX SR1. NodeBuilder FX SR1 is available as a free update to all NodeBuilder FX licensees. Contact Echelon Support for more information.
If you are not using one of the Series 5000 chips, you can rebuild your application with a different version of the firmware to avoid this problem. To create an application with more than 96 NVs with Neuron Firmware Version 18, declare a reserved NV for the 97th NV (NV index 96) to ensure that the NV is not used. You can determine which NV in an application has NV index 96 by building the application and examining the device interface (XIF) file. Each NV will have a VAR line in the file, similar to the following:
VAR Node_Alarm 3 0 0 0
The VAR keyword is followed by the NV name and NV index. In the above example, the NV name is “Node_Alarm” and the NV index is 3. Find the NV that has NV index 96, and then insert a declaration in the application source code for a reserved NV immediately prior to the declaration of the 97th NV. Rebuild the application and re-examine the XIF file to ensure that the reserved NV that you added has NV index 96.
If you require further assistance, please contact the nearest Echelon support office.