ProtoLink developed process control and visualization software for a leading provider of optimization solutions for the lumber production industry.
ProtoLink was approached by a leading provider of optimization solutions for the lumber production industry about updating the control and process visualization software that accompanies their machines. The trimmer optimizer produced by this organization uses information retrieved from an array of optical devices to determine how to process raw lumber in order to minimize waste and maximize marketable product.
To meet the client’s objectives, we architected and implemented a multithreaded client-server application suite for Windows NT. The three applications, which were developed using Microsoft Visual C++, achieve interprocess communication through memory-mapped files when co-resident on one computer and named pipes when running on separate network nodes.
The time-critical server component, named Optimizer, runs as an NT service and communicates with a PLC through a third-party kernel-mode device driver. After a raw board is passed under the optics array to determine its thickness, width, and length properties, the Optimizer executes a set of proprietary algorithms to determine the optimal way to cut the board based on the user-configurable set of products currently under production. The Optimizer also performs database operations to support production and quality control reports, and provides diagnostic information through a custom-developed Supervisor application and NT’s Event Log and Performance Monitor facilities. A sophisticated Simulation Mode is supported, whereby a large sampling of a previous shift’s raw data can be fed back through the Optimizer algorithms with modified product constraints, and the resulting yields can be compared to determine the effects of the proposed changes.
The graphically-intensive client application, called OptWin, was developed using the Microsoft Foundation Classes (MFC) and employs a dual splitter-bar approach to achieve a four-pane user interface. The panes operate both independently and in concert, depending on the current viewing context. The raw and processed data received from the Optimizer are presented in a variety of ways, including top-down, side-view and cross-section perspectives. The OptWin application provides a series of dialogs that are used to display and/or modify the current configuration in the Optimizer. OptWin supports passwords for different user levels, allowing for controlled access to configuration, calibration and hardware testing dialogs. OptWin presents Quality Control plots and graphs in a variety of formats, including histograms and multi-line sweep charts. Crystal Reports is utilized to produce sophisticated tally production reports.
An MFC dialog-based application called the Supervisor is used to display status and error notifications from the Optimizer. The Supervisor utilizes this information to provide detailed diagnostics and an accompanying troubleshooting guide. In addition, the Supervisor provides a means to display the Event Log data from any machine on the network. The Optimizer/Supervisor notification framework supports filtering of messages based on severity and category.
All applications support Unicode to facilitate internationalization, and use an internally developed scheme to allow run-time switching between languages.