Last updated: June 10, 2003
Introduction
The program skeleton.icn
contains the basic structure for many ICON control programs. Each program
module processes data as described below and exports the results as a loop
global (or super global in the case of alarms) values for use by other
modules. Modules that take input data allow exported global variables to
be selected for use within the modules. Modules that generate alarms also
write this information to the historical event files. Optionally
any data in the historical event or periodic files can be emailed.
Module Name | Description | Imported Data | Exported Data |
Modbus inputs | Read Modbus inputs with overrides for testing, 1-wire I/O configuration and alarm on Modbus read failure. | None. | Modbus register input values and Modbus alarm read failure status per Modbus read function. (Modbus read failure alarms written to historical event file.) |
Convert and validate | Data conversion (raw Modbus register inputs) to engineering units with override for testing or simulating data on sensor fail, bounds checking, data filtering (averaging) and data valid status creation with alarm on data invalid. | Raw data per point and data validity (Modbus alarm read failure) for the block of data inputs. | Converted data and data validity status per point. |
Alarms | Create high and/or low alarms on data values with results stored to historical event file. | Data value per alarm. | Alarm status per alarm. (Alarms written to historical event file.) |
Modbus outputs | Write Modbus outputs with overrides for testing and alarm on Modbus write failure. | Control values. | Modbus alarm write failure status per Modbus write function. (Modbus write failure alarms written to historical event file.) |
Historical periodic data | Calculates statistics such as average, standard deviation, maximum and minimum over a period of time and records the results to the historical periodic files. | Data value and validity status per point. | None, results written to historical periodic file. |
Normally the control portion of a program
would be inserted between the "Convert and validate" and "Modbus outputs"
modules. Examples of programs that could make use of this structure include:
Control program example | Control modules |
Greenhouse | The modules to control greenhouse temperature and humidity, watering, lighting, CO2 generation, etc. |
Ambient air or Continuous emissions monitoring | The modules to control calibration sequencing, capture calibration results and create desired emission and pollutant data. |
Weather station | The module to calculate wind speed, wind direction, temperature, relative humidity, dew point, solar radiation barometric pressure and rain fall. |