Skeleton.icn

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.