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

Rotation

KilnRotationType

Kiln rotation information

TSM

KilnTSMType

Tire slip monitoring information

AlarmZones

KilnAlarmZonesType

Contains information about each alarm zone

Profile

KilnProfileType

Envelope profile of the kiln shell image

Refractory

KilnRefractoryType

Information about refractory

BurningZone

BurningZoneType

Burning zone data

Bearings

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

Ring1

TireSlipType

Tire slip data of Ring1

Ring2

TireSlipType

Tire slip data of Ring2

...



RingN

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

Zone1

AlarmZoneType

Alarm zone data for Zone1

Zone2

AlarmZoneType

Alarm zone data for Zone2

...



ZoneN

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

Bearing1

BearingType

Bearing1 data

Bearing2

BearingType

Bearing2 data

...



BearingN

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_cmEndPos_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_cmEndPos_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_cmKilnEndPos_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_cmEndPos_cm INTEGER: position along the kiln axis (cm)

BeginArc_degEndArc_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_cmEndPos_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_cmEndPos_cm INTEGER: position on the kiln shell along the kiln axis (cm)

BeginArc_degEndArc_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