Startup EXE not Launching on Real-Time (RT) Target at Controller Reset
Hardware: Compact FieldPoint>>Controllers, Compact FieldPoint>>Controllers>>cFP-2120, Compact FieldPoint>>Controllers>>cFP-2000, Compact FieldPoint>>Controllers>>cFP-2010, Compact FieldPoint>>Controllers>>cFP-2020, Compact FieldPoint>>Controllers>>cFP-2100, Compact FieldPoint>>Controllers>>cFP-2110, Compact FieldPoint>>Controllers>>cFP-2200, Compact FieldPoint>>Controllers, CompactRIO>>Controllers>>cRIO-9002, CompactRIO>>Controllers>>cRIO-9004
Problem: I have a real-time system with a startup EXE embedded on the controller. When I reboot the controller, the EXE does not seem to be running at all. What could be going wrong?
Solution: There are many reasons that a startup EXE won't begin running upon reset of a real-time controller. The following is a list of a few reasons why this could occur.
- The Real-Time Application needs to be set as the startup application. This can be done in the project explorer as seen in the figure below.
Once you set it as the startup application, LabVIEW will inquire if you want to reboot your target. After an affirmative answer, your application should load on start up.
- Some of the real-time controllers will have a dip switch that controls a feature usually referred to as "NOAPP." If this switch is activated, LabVIEW Real-Time will not run the EXE automatically. The location of this switch can be found within the controller's manual.
- If your controller is set to obtain its IP address from a DHCP server, the EXE only launches when the controller is connected to the ethernet/network cable. Whenever the ethernet cable is removed, the startup EXE does not launch on controller reset. This is because the EXE cannot start up while the real-time controller is searching for a network address. Since the controller is not connected to the ethernet, the controller cannot acquire a network address. If the system must start on bootup without an ethernet connection, you can set a static IP address by the following steps
- Detect the remote system in MAX. On the Network Settings page of the controller, disable the Halt System if TCP/IP Fails option.
- Assign a static IP to the Remote Controller by selecting Edit IP Settings instead of Obtain IP address from DHCP server option. Do not use the DHCP server in this case where the controller might be disconnected from the network.
- Reboot the remote system.
The startup EXE will boot up on controller reset regardless of whether the network cable is connected to the controller or not.
- There is an INI file on the root directory of the target called NI-RT.ini that contains tokens that control the startup of an application. You can FTP into the controller to open the file and check to see if the token RTTarget.LaunchAppAtBoot is set to True.
- There may be situations that the EXE is actually running, but because of errors the modules won't be outputing or reading data. In these situations it is best to cause the user LED on the controller to blink on/off every second. This will allow the user to visually see if the EXE is running. In many cases, the executable will take a very long time before it starts running. If you are not immediately seeing the LED blink, wait 4-5 minutes before troubleshooting again.
Related Links: Knowledgebase 4ZL721HY: Deploying A Start-up Application To A Compact RIO Or Real-Time FPGA SystemDeveloper Zone Tutorial: Step by Step Tutorial: How to Embed an Executable VI on a networked RT Series hardwareKnowledgebase 42AH5HE9: What LabVIEW Real-Time Related Settings Can be Changed Using INI Tokens?Knowledgebase3UJACBE9 : FTP Transfer of Files between Host and Real-Time Targets in MAX
Attachments:
Report Date: 10/17/2006
Last Updated: 04/23/2010
Document ID: 42GD4FZ