OPC UA
OPC UA implementation in IRT KilnMonitor does not require any configuration. Also it does not use any authentication and allows anonymous access.
IRT KilnMonitor OPC UA address space contains the following objects.
Kiln1, Kiln2, ...: KilnType
Component |
DataType and Unit |
Description |
---|---|---|
KilnName |
String |
Kiln name specified in the configuration |
Monitoring |
Boolean |
Kiln monitoring is running |
Synchronized |
Boolean |
Signal from the kiln trigger is present and stable |
SystemOk |
Boolean |
No hardware problems (same as system is running signal) |
Alarm |
Boolean |
Kiln alarm state (true if there is at least one active alarm present) |
TemperatureMin |
Double, °C |
Measured minimum temperature value on the kiln shell |
TemperatureMax |
Double, °C |
Measured maximum temperature value on the kiln shell |
ObservedStart |
Double, m |
X coordinate of the starting point of the kiln area observed by the scanners |
ObservedEnd |
Double, m |
X coordinate of the end point of the kiln area observed by the scanners |
KilnRotationType |
Kiln rotation information |
|
KilnTSMType |
Tire slip monitoring information |
|
KilnAlarmZonesType |
Contains information about each alarm zone |
|
KilnProfileType |
Envelope profile of the kiln shell image |
|
KilnRefractoryType |
Information about refractory |
|
BurningZoneType |
Burning zone data |
|
KilnBearingsType |
Bearings data |
Rotation: KilnRotationType
Part of a KilnType object.
Component |
DataType and Unit |
Description |
---|---|---|
LapCounter |
UInt32 |
Kiln revolution counter since monitoring start |
LapTime |
Double, second |
Last kiln revolution duration |
LapTimeVariation |
Double, second |
Kiln revolution time difference during 5 last laps |
RotationSpeed |
Double, revolutions per minute |
Kiln rotation speed |
TSM: KilnTSMType
Part of a KilnType object.
Component |
DataType and Unit |
Description |
---|---|---|
TireSlipType |
Tire slip data of Ring1 |
|
TireSlipType |
Tire slip data of Ring2 |
|
... |
||
TireSlipType |
Tire slip data of RingN |
Ring1, Ring2, ...: TireSlipType
Part of a KilnTSMType object.
Component |
DataType and Unit |
Description |
---|---|---|
TireSlip |
Double, millimeter |
Estimated tire slip. EURange property contains permissible limits defined in the kiln configuration. |
TireSlipStdDev |
Double, millimeter |
Tire slip value standard deviation calculated from several kiln revolutions. EURange property contains permissible limits defined in the kiln configuration. |
Alarm |
Boolean |
Alarm set when the estimated tire slip value is out of permissible range or if measured tire slip values are not uniform. |
AlarmZones: KilnAlarmZonesType
Part of a KilnType object.
Component |
DataType and Unit |
Description |
---|---|---|
AlarmZoneType |
Alarm zone data for Zone1 |
|
AlarmZoneType |
Alarm zone data for Zone2 |
|
... |
||
AlarmZoneType |
Alarm zone data for ZoneN |
Zone1, Zone2, ...: AlarmZoneType
Part of a KilnAlarmZonesType object.
Component |
DataType and Unit |
Description |
---|---|---|
PosStart |
Double, meter |
Positing of the zone in kiln coordinates |
PosEnd |
Double, meter |
Positing of the zone in kiln coordinates |
LimitHigh |
Double, °C |
The upper temperature limit defined in the kiln configuration used to trigger the zone alarm |
LimitLow |
Double, °C |
The lower temperature limit defined in the kiln configuration used to trigger the zone alarm |
Hysteresis |
Double, °C |
Hysteresis to prevent alarm from turning off too quickly (defined in the kiln configuration) |
TemperatureMin |
Double, °C |
The minimum temperature value in the zone |
TemperatureMax |
Double, °C |
The maximum temperature value in the zone |
TemperatureAverage |
Double, °C |
The average temperature value in the zone |
Alarm |
Boolean |
Zone alarm state |
Control |
Boolean |
Zone control condition state |
ControlMargin |
Double, °C |
The margin that defines control condition temperature level |
ControlHysteresis |
Double, °C |
Hysteresis to prevent control output from turning off too quickly (defined in the kiln configuration) |
Profile: KilnProfileType
Part of a KilnType object.
Component |
DataType and Unit |
Description |
---|---|---|
TemperatureMax |
Double Array, °C |
Array size is equal to the kiln shell IR image width. Each element contains the maximum temperature value of the corresponding IR image column (maximum temperature along kiln circumference). |
TemperatureMin |
Double Array, °C |
Each array element contains the minimum temperature value. |
TemperatureAverage |
Double Array, °C |
Each array element contains the average temperature value. |
PixToPosA |
Double |
Coefficient A to convert array index to kiln position:KilnPosX = A + B * index |
PixToPosB |
Double |
See above |
HighAlarm |
Boolean |
State of the envelope high alarm (kiln temperature at some point is higher than the defined envelope profile limit) |
LowAlarm |
Boolean |
State of the envelope low alarm (kiln temperature at some point is lower than the defined envelope profile limit) |
Refractory: KilnRefractoryType
Part of a KilnType object.
Component |
DataType and Unit |
Description |
---|---|---|
BrickThicknessMin |
Double, mm |
An estimation of the minimum brick thickness (of all bricks in the kiln) |
CoatingThicknessMax |
Double, mm |
An estimation of the maximum coating thickness |
BurningZone: BurningZoneType
Part of a KilnType object.
Component |
DataType and Unit |
Description |
---|---|---|
Temperature |
Double, °C |
Measured temperature of the burning zone flame. |
InstrumentTemperature |
Double, °C |
Measuring device internal temperature. |
Alarm |
Boolean |
Set to true if the measured burning zone temperature is higher than the limit defined in the kiln configuration. |
InstrumentAlarm |
Boolean |
Set to true if the measuring device internal temperature is higher than the limit defined in the kiln configuration. |
Bearings: KilnBearingsType
Part of a KilnType object.
Component |
DataType and Unit |
Description |
---|---|---|
BearingType |
Bearing1 data |
|
BearingType |
Bearing2 data |
|
... |
||
BearingType |
BearingN data |
Bearing1, Bearing2, ...: BearingType
Part of a KilnBearingsType object.
Component |
DataType and Unit |
Description |
---|---|---|
Temperature |
Double, °C |
Measured temperature of the bearing |
Alarm |
Boolean |
Set to true if the measured bearing temperature is outside the limit defined in the kiln configuration. |
OPC Classic
If properly configured IRT KilnMonitor gives access to the measured kiln data and monitoring status through OPC DA 2.0 interface. Here is the list of OPC tags available for each monitored kiln:
OPC Tag |
Value type and unit |
Description |
OPCUA analog |
running |
VT_BOOL |
Kiln monitoring is running |
Kiln.Monitoring |
synchronized |
VT_BOOL |
Signal from the kiln trigger is present and stable |
Kiln.Synchronized |
system_ok |
VT_BOOL |
No hardware problems (same as system is running signal) |
Kiln.SystemOk |
config_kiln_name |
VT_BSTR |
Kiln name specified in the configuration |
Kiln.KilnName |
config_observed_start |
VT_R8, meters |
X coordinate of the starting point of the kiln area observed by the scanners |
Kiln.ObservedStart |
config_observed_end |
VT_R8, meters |
X coordinate of the end point of the kiln area observed by scanners |
Kiln.ObservedEnd |
kiln_shell_min |
VT_R8, °C |
Measured minimum temperature value on the kiln shell |
Kiln.TemperatureMin |
kiln_shell_max |
VT_R8, °C |
Measured maximum temperature value on the kiln shell |
Kiln.TemperatureMax |
brick_thickness_min |
VT_R8, mm |
An estimation of the minimum brick thickness (of all bricks in the kiln) |
Kiln.Refractory.BrickThicknessMin |
coating_thickness_max |
VT_R8, mm |
An estimation of the maximum coating thickness |
Kiln.Refractory.CoatingThicknessMax |
zone_1_min .. zone_32_min |
VT_R8, °C |
Measured minimum temperature in alarm zone 1 .. 32 |
Kiln.AlarmZones.Zone.TemperatureMin |
zone_1_max .. zone_32_max |
VT_R8, °C |
Measured maximum temperature in alarm zone 1 .. 32 |
Kiln.AlarmZones.Zone.TemperatureMax |
zone_1_avr .. zone_32_avr |
VT_R8, °C |
Measured average temperature in alarm zone 1 .. 32 |
Kiln.AlarmZones.Zone.TemperatureAverage |
rotation_time |
VT_R8, seconds |
Duration of the last full kiln revolution |
Kiln.Rotation.LapTime |
tire_slip_1 .. tire_slip_8 |
VT_R8, mm |
Estimated tire slip in millimeters (tire 1 .. 8) |
Kiln.TSM.Ring.TireSlip |
tire_delay_1 .. tire_delay_8 |
VT_R8, seconds |
Revolution duration difference compared with the kiln revolution duration (tire 1 .. 8) |
Kiln.TSM.Ring.Delay |
tire_time_1 .. tire_time_8 |
VT_R8, seconds |
Ring revolution time (tire 1 .. 8) |
Kiln.TSM.Ring.LapTime |
OPC Tag |
Value type and unit |
Description |
history_connection_string |
VT_BSTR |
Path to the history folder |
last_short_term_record_time |
VT_DATE |
Time stamp (UTC) of the last short-term history record |
last_middle_term_record_time |
VT_DATE |
Time stamp (UTC) of the last middle-term history record |
last_long_term_record_time |
VT_DATE |
Time stamp (UTC) of the last long-term history record |
Kiln state data saved on disk
After each kiln revolution IRT KilnMonitor saves current kiln state to files on disk. This function does not require configuration.
Kiln state data is saved in the kiln history folder.
<Kiln history folder>\State\last
- state.json
- image.csv
Path to the kiln history folder can be set in the kiln configuration.
state.json contains the followings data:
·update_time_UTC: time when data was updated (UTC);
·image_width, image_height: kiln image dimensions in pixels;
·xA, xB, yC: parameters to convert image pixel coordinates to kiln coordinates;
·rotation: measured kiln rotation data (lap_counter, measured/nosignal/stable states, lap_time_s, lap_time_variation_s);
·rings: measured tire slip for each ring (measured/nosignal/uniform states, tire_slip_mm, tire_slip_stddev_mm);
·burning_zone: measured buring zone temperature;
·alarms: list of alarms with their state (true or false).
image.csv contains kiln shell image temperatures:
·comma is used as columns separator;
·next line (0x0D, 0x0A) is used as lines separator;
·number of columns correspond to image_width from state.json;
·number of lines correspond to image_height from state.json;
·temperature values are always in °C.
To convert image pixel position to kiln position, use the following formulas:
·Image coordinate system: left to right, top to bottom;
·Kiln coordinate system: defined in the kiln configuration (can be left to right or right to left, formulas work in both cases);
·"position along x kiln axis in meters" = xA + xB * x pixel pos";
·"position opposite to kiln rotation in degrees" = yC * "y pixel pos".
Monitoring database
Monitoring database is an SQLITE database containing all measurements made by IRT KilnMonitor, including historical measurements. It also stores kiln refractory information with a history of changes.
The database file for each kiln is stored in the kiln history folder:
<Kiln history folder>
- revs.db
Database structure
Access to this database is possible using free libraries (https://www.sqlite.org) and open source tools (https://sqlitestudio.pl).
TABLE campaigns
: kiln campaigns
CampaignId INTEGER: campaign id (as defined by IRT KilnMonitor)
DisplayName TEXT: campaign display name
StartDate DATE: campaign start date
TABLE brickzones
: information about brick zones
BrickZoneId INTEGER: an id used to reference brick zones from other tables
ZoneName TEXT: zone name as defined in refractory configuration
InstallationDate DATE: date of brick zone installation (start of use); only used if campaign is not defined
InstallationCampaignId INTEGER: reference to campaigns table; first kiln campaign with this brick zone installed
BeginPos_cm, EndPos_cm INTEGER: position of the brick zone along the kiln axis (cm)
BrickType TEXT: brick type used in this brick zone
BrickLifeDays INTEGER: planned brick zone work time in calendar days
InitialBrickThickness INTEGER: working thickness of new bricks
EndOfLifeBrickThickness INTEGER: thickness limit, if brick becomes thinner than this limit it must be replaced
BrickConductivity REAL: brick conductivity used to estimate brick thickness by the shell temperature (W/mK)
InternalTemperature REAL: kiln internal temperature (°C)
Color TEXT: zone color on the refractory diagram
Description TEXT: zone description
TABLE shadowzones
: shadow zone is a part of the kiln monitored area which is not visible for scanners and pyrometers ("special zones" in IRT KilnMonitor configuration)
ShadowZoneId INTEGER: an id used to reference shadow zones from other tables
BeginPos_cm, EndPos_cm INTEGER: shadow zone position along the kiln axis (cm)
Color TEXT: color of the shadow zone on the refractory diagram
TABLE refractories
: refractory is a set of brick zones; when a new brick zone is installed, new refractory version is created
RefractoryId INTEGER: an id used to reference refractories from other tables
KilnBeginPos_cm, KilnEndPos_cm INTEGER: monitored kiln area as defined in the IRT KilnMonitor kiln configuration
RightToLeft BOOLEAN: kiln axis direction
CoatingConductivity REAL: coating conductivity used to estimate brick/coating thickness by the shell temperature (W/mK)
TABLE refractorybrickzones
: defines what brick zones every refractory version contains
RefractoryId INTEGER: reference to refractories table
BrickZoneId INTEGER: reference to brickzones table
TABLE refractoryshadowzones
: defines refractory shadow zones
RefractoryId INTEGER: reference to refractories table
ShadowZoneId INTEGER: reference to shadowzones table
TABLE manipulations
: manipulations with kiln - drillings and shell repairs
ManipulationId INTEGER: defined by IRT KilnMonitor
ManipulationType INTEGER: "1" for drilling, "2" for shell repair
Date DATE: date when manipulation was made
BeginPos_cm, EndPos_cm INTEGER: position along the kiln axis (cm)
BeginArc_deg, EndArc_deg INTEGER: position along kiln circumference (degrees)
Notes TEXT: text defined by operator
Measurement REAL: measured brick thickness for drillings (mm)
TABLE revolutions
: information about kiln revolutions; several revolutions can be combined into one record
RevId INTEGER: an id to reference revolutions from other tables
UpdateTimeUTC DATETIME: Unix time of the record
CampaignId INTEGER: reference to campaigns table
RefractoryId INTEGER: reference to refractories table
RevolutionTimeMin REAL: minimum revolution time since the previous record (seconds)
RevolutionTimeMax REAL: maximum revolution time since the previous record (seconds)
Stable BOOLEAN: stable means there is a reliable signal from kiln trigger and kiln rotation speed variation is within configured limits
SystemAlarmBits INTEGER: bit0 - Kiln Trigger, bit1 - Scanners, bit2 - I/O, bit3 - Maintenance, bit4 - Refractory
KilnAlarmBits INTEGER: bit0 - Envelope Low, bit1 - Envelope High
ZoneAlarmBits INTEGER: bit0 - Alarm Zone 1, bit1 - Alarm Zone 2, ...
RingAlarmBits INTEGER: bit0 - Ring 1, bit1 - Ring 2, ...
TABLE alarms
: information about available alarm types
AlarmId INTEGER: an id used to reference alarms from other tables
AlarmTextId TEXT: text id as it is used in IRT KilnMonitor
DisplayNameTrs TEXT: display name with translation id
SortPriority INTEGER: used to order alarms list
TABLE alarmsregistered
: information about alarm occurrences
AlarmId INTEGER: reference to alarms table
CampaignId INTEGER: reference to campaigns table
RecordTimeUTC DATETIME: Unix time stamp when alarm record was made
AlarmOnDuration INTEGER: duration in seconds this alarm was active since the previous record
TABLE alarmzones
: information about alarm zones (positions, limits, but not measured values)
AlarmZoneId INTEGER: an id used to reference alarm zones from other tables
ZoneIndex INTEGER: index as defined in IRT KilnMonitor alarms configuration
BeginPos_cm, EndPos_cm INTEGER: position along the kiln axis (cm)
AlarmType TEXT: "none" - alarm is off, "upper" - high alarm, "lower" - low alarm, "range" - high/low alarm, "envhigh" - envelope high alarm, "envlow" - envelope low alarm, "envrange" - envelope high/low alarm
HighLimit REAL: alarm high limit (°C)
LowLimit REAL: alarm low limit (°C)
Hysteresis REAL: alarm hysteresis (°C)
Description TEXT: description from alarm zone configuration
TABLE alarmzonesmeasured
: kiln shell temperature values measured within alarm zones and zones' alarm states
AlarmZoneId INTEGER: reference to alarmzones table
RevId INTEGER: reference to revolutions table
TemperatureMin REAL: minimum temperature measured within the alarm zone since the previous record (°C)
TemperatureMax REAL: maximum temperature measured within the alarm zone since the previous record (°C)
TemperatureMean REAL: average temperature measured within the alarm zone since the previous record (°C)
AlarmHigh BOOLEAN: high alarm was detected
AlarmLow BOOLEAN: low alarm was detected
TABLE analysistools
: information about analysis tools/objects (monitoring must be enabled for an object)
ToolId INTEGER: an id used to reference tools from other tables
ToolTextId TEXT: text id as it is used in IRT KilnMonitor
Label TEXT: a label specified by the operator when object monitoring is started
DisplayNameTrs TEXT: display name with translation id
BeginPos_cm, EndPos_cm INTEGER: position on the kiln shell along the kiln axis (cm)
BeginArc_deg, EndArc_deg INTEGER: position on the kiln shell circumference (°)
TABLE analysistoolsmeasured
: values measured by analysis tools/objects when monitoring is enabled for them
UpdateTimeUTC DATETIME: Unix time when record was made
ToolId INTEGER: reference to analysistools table
RevId INTEGER: reference to revolutions table
Type INTEGER: "1" for kiln shell temperature (°C), other values not used
Min REAL: minimum value measured within the tool area since the previous record (value unit depends on Type)
Max REAL: maximum value measured within the tool area since the previous record
Mean REAL: average value measured within the tool area since the previous record
TABLE brickzonesmeasured
: kiln shell temperature measured within every brick zone; estimated brick and coating thickness
BrickZoneId INTEGER: reference to brickzones table
RevId INTEGER: reference to revolutions table
TemperatureMin REAL: minimum kiln shell temperature measured within the brick zone since the previous record (°C)
TemperatureMax REAL: maximum kiln shell temperature measured within the brick zone since the previous record (°C)
TemperatureMean REAL: average kiln shell temperature measured within the brick zone since the previous record (°C)
BrickThicknessMin INTEGER: estimated minimum brick thickness within the brick zone (mm)
BrickThicknessMax INTEGER: estimated maximum brick thickness within the brick zone (mm)
CoatingThicknessMin INTEGER: estimated minimum coating thickness within the brick zone (mm)
CoatingThicknessMax INTEGER: estimated maximum coating thickness within the brick zone (mm)
TABLE rings
: information about kiln rings
RingId INTEGER: an id used to reference rings from other tables
RingIndex INTEGER: ring index defined in IRT KilnMonitor configuration
RingName TEXT: ring name defined in IRT KilnMonitor configuration
AllowedMin REAL: allowed tire slip minimum value (mm)
AllowedMax REAL: allowed tire slip maximum value (mm)
TABLE ringsmeasured
: measured tire slip values
RingId INTEGER: reference to rings table
RevId INTEGER: reference to revolutions table
RevolutionTime REAL: duration of ring revolution (seconds)
DelayToKilnTrigger REAL: ring revolution minus kiln revolution time (seconds)
TireSlip REAL: estimated tire slip value (mm)
TireSlipStdDev REAL: tire slip values standard deviation from several rotations (mm)
StateBits INTEGER: bit0 - tire slip value is measured, bit1 - tire slip value is uniform, bit2 - low alarm, bit3 - high alarm, bit4 - no signal/update timeout/non uniform alarm
TABLE burningzonemeasured
: burning zone measurements
RevId INTEGER: reference to revolutions table
AlarmZoneId INTEGER: reference to alarmzones table
TemperatureMin REAL: minimum burning zone temperature measured since the previous record (°C)
TemperatureMax REAL: maximum burning zone temperature measured since the previous record (°C)
TemperatureMean REAL: average burning zone temperature measured since the previous record (°C)
AlarmHigh BOOLEAN: high alarm was detected
AlarmLow BOOLEAN: low alarm was detected
InstrTemperatureMin REAL: minimum internal instrument temperature since the previous record (°C)
InstrTemperatureMax REAL: maximum internal instrument temperature since the previous record (°C)
InstrAlarm BOOLEAN: instrument internal temperature alarm was detected
TABLE bearings
: bearings names
BearingId INTEGER: an id used to reference bearings from other tables
BearingIndex INTEGER: bearing index defined in IRT KilnMonitor configuration
BearingName TEXT: bearing name defined in IRT KilnMonitor configuration
TABLE bearingsmeasured
: bearings measurements
RevId INTEGER: reference to revolutions table
BearingId INTEGER: reference to bearings table
AlarmZoneId INTEGER: reference to alarmzones table
TemperatureMin REAL: minimum bearing temperature measured since the previous record (°C)
TemperatureMax REAL: maximum bearing temperature measured since the previous record (°C)
TemperatureMean REAL: average bearing temperature measured since the previous record (°C)
AlarmHigh BOOLEAN: high alarm was detected
AlarmLow BOOLEAN: low alarm was detected