ProtoLink developed a graphical function block programming environment for gas flow meters and related devices.
ProtoLink was asked by a leading manufacturer of gas flow meters to develop a graphical programming tool for its line of gas flow meters and related devices. While these devices already allowed users to build custom programs, the process was extremely tedious because there was no way to view or edit the programs graphically. These custom programs consisted of a large collection of register references and register values organized into function blocks. Each function block used certain registers for its various properties and other registers for its inputs and outputs. The function blocks were “wired” together by having each block reference another block’s input or output registers.
The graphical tool developed by ProtoLink presents a modern graphical programming environment with a toolbox on the left containing the individual function blocks, a central workspace that displays a graphical representation of the program, and a property window on the right that displays the editable properties of the selected function block.
The tool allows the user to drag function blocks onto the work area and edit their respective properties using the property window. The user can connect blocks by clicking on any input or output pin of one block and dragging the mouse to another block’s pin. The tool automatically routes the line representing the connection around any existing blocks.
The tool also allows groups of function blocks and their connections to be collapsed into complex blocks. The tool maintains any connections to other blocks outside the complex blocks by exposing pins on the newly created complex block and maintaining the logical connection between all other blocks in the program. These complex blocks can also be saved as templates that can be reused when building other programs.
The tool allows debugging of the function block programs. While debugging, a watch window is displayed at the bottom of main window allowing users to monitor the values of input and output pins. A “locked pins” window is also displayed at the bottom of the main window that allows users to lock specific pins to fixed values for testing purposes.
The tool can use TCP/IP sockets, an RS-232 serial port, or a USB port to communicate with the devices when uploading or downloading programs.
The tool was developed in C# utilizing .NET and Microsoft’s Windows Presentation Foundation (WPF).