FOUNDATION FIELDBUS technology relies on software-based function blocks to provide the control system capabilities in both field devices and hosts. This month we will discuss how function blocks meet this need while also providing manufacturers the ability to differentiate themselves from each other with their offerings.
One of the ways the Foundation allow manufacturers to differentiate their products from each other is by defining three types of function blocks for each of the available function blocks such as AI (Analog Input), AO (Analog Output), PID, etc. These blocks are defined as:
- Basic Minimum level of functionality required by any block. Basic blocks must be supported by all manufacturers.
- Enhanced Defined by the Fieldbus Foundation but with more capabilities added to the Basic block.
- Extended Manufacturer specific extensions to the block that as a result can impact a Users ability to exchange one manufacturers devices for another and have everything work the same way. The Basic or Enhanced parts of the Function Block will work for every such device.
The Device Description and Capabilities file that comes with fully defines all the functionality to a host so that selection of Basic, Enhanced or Extended is hidden from the end user unless they wish to view the Capabilities file themselves using a text editor to read this information.
The figure below shows the parts of a function block defined by the Fieldbus specifications.
FUNCTION BLOCK MODEL
AS CAN be seen the specifications describe the inputs, outputs, and event handling responses of the block. What is not defined is the algorithm or algorithms used within or inside the function block itself to convert the inputs to outputs and the methods to handle event exceptions.
An analogy to function blocks is to compare a function block to a software subroutine. The main program in the Fieldbus Environment is the Link Active Scheduler and Device master program while the function block is a called subroutine. The main program is not concerned with what happens in a subroutine or function call, provided the input/output variables are defined in both the calling and responding program and that the calculated values are associated with the correct variables so they can be used by other routines and functions in the program.
Continuing with this analogy, those passed parameters that are defined in the Basic function block are similar to global parameters, (Sorry I am an old Fortran coder) or as variables defined and passed via the subroutine if they are unique to the Enhanced function block.
Like subroutines, manufacturers are working to not only add new capabilities to their offerings, they are also doing so more efficiently so that the devices are requiring less power than in the past. The moral of this column therefore is that if you are going to use Extended function blocks in your control system, be sure they are fully supported by the host and if you do not need the extensions, prepare your system configuration using the Basic or Enhanced blocks so that you have maximum interoperability for those inevitable middle of the night problems.
If there is a topic you would like to see discussed in this column please contact me at the information below so we can start a conversation to include it in the development calendar.
|About the Author|