The purpose of Factory Acceptance Testing (FAT) is to review and test the functionality of the systems we deliver and to provide a hands-on demonstration for operations personnel. The FAT process paves the way for a smooth-running, successful start-up. This is done through the deployment of a rigorous simulation environment that closely mimics the actual process, allowing the control system to be tested in a responsive, and realistic manner.
Our FAT plans provide the guidelines for these tests and are structured with the intention of logically progressing through the various operations of the process. We do this to make the most of the time we have with the participants and to keep focused on the tasks of thoroughly testing the system while simultaneously training the operators on the new system functionality.
The test involves the equipment to the extent required for the operator to interact with the system. This would traditionally involve operator desks, operator stations, HMI interface screens, and the processors responsible for running the system and simulating the process environment. The test also provides the perfect situation to test interfaces to special/intelligent field devices, third party equipment, etc. Equipment such as Remote I/O cabinets and Drives can be included as available, however, these items are thoroughly tested on a component level basis and are generally simulated as part of the test. This frees the equipment to be shipped early for construction purposes and is a tremendous help when facing tight project schedule constraints. An example of a test set-up is illustrated below.
As mentioned above, the simulation environment is critical to the test. Since field devices, physical process equipment, and actual product are unavailable, the system simulates feedback signals by reading outputs from the application code, modeling the process response to these outputs, and writing the result to simulated data that is then moved to the input data when the simulator is enabled. The result is that the application code runs as if it were interacting with the real process.