12: Run, Test and Publish Projects
This Chapter discusses procedures for building your applications and running them, either for testing or for production. The following sections describe how to build and test applications:

Running the Application
.i.applications:testing;
.i.projects:testing;
.i.testing:applications;
When your application is ready to try out, you can test it in one of the following ways:

You can run the project using both test and startup at the same time.
For information about using the diagnostic tools available, see "Using the Diagnostic Tools" below.
To test the application:

Using the Diagnostic Tools
After starting the project, the Startup window displays the status (running or not running) of each module in your application. In addition, it lets you enable any or all of the following diagnostic tools: PropertyWatch (Watch), TraceWindow (Trace), and ModuleInformation (Info).

The tools you select will begin running in separate windows as long as your application is running. If you do not see these windows you may find them minimized at the bottom of your screen.
Property Watch
Property Watch is a diagnostic tool used to access tags and internal properties of the system for reading or writing. Type the name of the property in the Object column, and its value, if any, will appear in the Value column.
When you type the name of an object type (e.g. "tag") followed by a dot, Intellisense will provide a list of all the available objects. You may select any object from this list, (e.g. "tag.index"), or you may select the type itself (e.g. "tag"). In each case the value, if any, will be given, and all applicable properties with their values will appear in the right hand panel on the "Object Properties" tab.
If you select the "Modules Status" tab, you will see the original status panel. While the project is running, you can start or stop individual modules at any time.
You can also change object and property values from the Property Watch screen as long as the changes are permitted.

Trace Window
The Trace Window is a tool that displays system messages in a data grid interface. The messages contain status information (based on Edit > Channels > Settings column) about reads, writes, unsolicited, TX frames (sent), and RX (received).

When checking the Devices check box in the Settings, we suggest you enable only the error, info and warning information, not the debug information, otherwise you will create too much data. For ControlLogix devices, it is very important to use this tool, as the system will display the invalid addresses in the configuration.
Click Settings in the Trace Window to select options for message types and modules, data formats, or to save to file. You can also configure a tag in the Object Name field and click Add to select that object to include on the monitoring.

Module Information
Module Information contains information about the operation of the modules. Select the Devices Module and a specific channel to get information about the functioning of the communication channel.
The Read Groups Information provides information about the virtual reading groups, runtime of each item, quantities of readings and readings that have failed, and also reports on the code and date/time of the last error.

To use the Module Information:

When running the Enterprise version in test mode, the system only reads from the field devices, even if you have a configuration to write to field.
You can run the application with online configuration enabled, so you don't need to start and stop the application when modifying the configuration. You can modify PLC addresses, access types, and most of the application and see the real-time the results on your running application. You can use the Startup window or the PropertyWatch "Module Status" tab to start and stop only one module, like Devices, instead of restarting the whole runtime system.
Build and Pack Projects
.i.applications:building;
.i.projects:building;
.i.building:applications;
FactoryStudio is constantly compiling the module you are editing in the background and validating all scripts and displays. If you have not run a full build, the BuildStatus column reflects any warnings or errors found during the background compile process.
Double-click a row with a red X to go to the source of the warning or error. Warnings are informational and do stop the script from running. Errors prevent the specified script from running, but do not affect the whole application. If a script or display has a warning, it will still run.
Periodically, you should run a full build:

To build the application:

When checked, a backup of the project connected with that build is automatically created. It is also possible to pack a project without building. To do this just click on the "Pack" button.
Project Version Control
Tracking configuration changes
FactoryStudio provides many ways to help you to keep track of the project configuration changes:

Publishing the Project
.i.applications:publishing;
.i.projects:publishing;
.i.publishing:applications;
Publishing the project creates a read-only version of the project.
It is NOT necessary to publish the project to install it for production. In scenarios where you intend to have continuous changes to the project in field, it may be simpler to put the main project file, "tproj", directly on the production computer.
The main benefit of publishing is that the system creates a compact and real-only version of the project file. The file created has the same name of the project file, with the publish version number and the extension "trun".
This allows the system to comply with regulated industries.
The typical scenarios that lead to using the publish command are:

The "trun" file is always read-only, but you may optionally hide the project configuration from the end-user as well. This is an independent option defined in the Security System. If you don't want end-users to see the project configuration, remove the permission of the GUEST user and other users to edit the project before publishing it.
To publish the project:

The Info, Server and Client Namespaces
There are a few runtime objects that provide information about running the project.
The Info namespace is the main location for runtime status. The main objects on that namespace are:
Info.Project: information about the project that is running
Info.License: information on the license
Info.Module: Information and start/stop command to Modules
Info.Trace(): displays a message on the TraceWindow
Info.TestMode: shows if the project is running in Test Mode
The Server namespace has information about the server computer.
The Client namespace has information about each client computer. running a graphical interface.
See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming reference on runtime objects.