FieldPoint Family

cancel
Showing results for 
Search instead for 
Did you mean: 

Fieldpoint logo error 18

I have been using Fieldpoint 2010 controllers (3) in three systems. 3digital input modules/3digital output modules/1 TC module.

The program is a pretty simple control loop. Periodically I get a condition where the 2010 module would loose communications with Labview RT and all outputs would be frozen in current state. RT module status LED would be RED and blink 18 times.

the module would require a power cycle to reset

Last week I dumped everything and upgraded all software to current versions. Same error - same solution

************************************
* Here is the text from the module *
************************************
*** REGISTER DUMP FROM EXCEPTION HANDLER (code 18) ***

EAX = 0x00000000 EBX = 0x00000000
ECX = 0x00822F24 EDX = 0x4E564573
ESI = 0x00748804 EDI = 0x00000000

EBP = 0x00822F34 ESP = 0x00822d78
CS = 0x0018 DS = 0x0020 ES = 0x0020
EIP = 0x0079af5f

Thread name: Logos Thread
Thread stack base: 0x00821000 stack size: 8192

Call Stack:
Level 1 : Code pointer: 0x0079B484 Stack Base: 0x00822F80
Level 2 : Code pointer: 0x0079AC98 Stack Base: 0x00822F8C
Level 3 : Code pointer: 0x0052A163 Stack Base: 0x00822FC0
Level 4 : Code pointer: 0x00458E05 Stack Base: 0x00000000


---------------------- NI-Serial v2.5 for LabVIEW RT ----------------------
COM1 - | PXI Controller Built-In Serial Interface
---------------------------------------------------------------------------
*** REGISTER DUMP FROM EXCEPTION HANDLER (code 18) ***

EAX = 0x00000000 EBX = 0x00000000
ECX = 0x00811F24 EDX = 0x4E564573
ESI = 0x00743804 EDI = 0x00000000

EBP = 0x00811F34 ESP = 0x00811d78
CS = 0x0018 DS = 0x0020 ES = 0x0020
EIP = 0x00789f5f

Thread name: Logos Thread
Thread stack base: 0x00810000 stack size: 8192

Call Stack:
Level 1 : Code pointer: 0x0078A484 Stack Base: 0x00811F80
Level 2 : Code pointer: 0x00789C98 Stack Base: 0x00811F8C
Level 3 : Code pointer: 0x0052A163 Stack Base: 0x00811FC0
Level 4 : Code pointer: 0x00458E05 Stack Base: 0x00000000
0 Kudos
Message 1 of 5
(3,823 Views)
Error Code 18 is a general protection fault. In this case, the error is being caused by the Logos thread which is the communication thread for FieldPoint ethernet data transfers. In my experience, this sort of error is generally the result of running out of memory in the controller. You should make sure that your code is efficiently using the memory resources in the controller and are not doing anything that would cause the memory allocation to continue to grow.

Regards,
Aaron
LabVIEW Champion, CLA, CPI
0 Kudos
Message 2 of 5
(3,823 Views)
Thanks Aaron,

I looked into memory. I am not doing anything special. A few arrays (pre allocated arrays of LEDs) A few AND circuits. After downloading the VIs and Startup.exe I have 384K free memory. Graphics are from my DSC package.

Web server is not used
VI is viewed with Labview once or twice per month
no datalogging
no datasocket connections

When it happens MAX (previously fieldpoint explorer) can not see the IP address. Must do a power cycle.
Download All
0 Kudos
Message 3 of 5
(3,823 Views)
When the unit starts blinking the status LED 18 times, it indicates that a fault occured. At this point the processor is halted. To reboot it, a power cycle is necessary. You can configure the RT Watchdog so that the unit resets itself if necessary.

The key here is after downloading the VIs, you only have only 384k of RAM left. As your program runs and uses more memory, you eventually run out causing the GPF. The fact that the crash is in the Logos thread may indicate that a new computer attempted to connect with the FieldPoint module, and when the FieldPoint module attempted to allocate the memory for the new link, there was none availble thus causing the crash.

Looking at your VI, it is extremely heavy in its use of local variabl
es (100 local reads, 26 local writes accoring to VI Metrics). Every local read creates an extra copy of the data in memory. Likewise, having build array functions inside of loops is not memory efficient and is generally not good coding techniques especially on RT Targets.

As a fairly simple way to save on allocating a fair portion of memory. Change the way you display the Channel Names. Instead of displaying all of the channel names for all of the modules. Have a Configuration View Tab which gives a user a choice of which module to view and load the information for that module when the user selects the data. When the user selects a different module, perform the query (Get Item List) a second time and place the data in the same indicator. I have attached an example showing this method.

Regards,
Aaron
LabVIEW Champion, CLA, CPI
0 Kudos
Message 4 of 5
(3,823 Views)
Aaron

I reworked the VI last week and redownloaded it. I eliminated most of the local variables and all but one while loop. Once downloaded and running I had 3.8meg free space. The unit worked until yesterday afternoon when it gave the same error.

Again no web servers or remote access were done during this time.

please advise.
0 Kudos
Message 5 of 5
(3,823 Views)