Version Information

Canary CustomerCare members can upgrade to the latest version for free.

Current Version

Canary V20.3.4 was released on October 1, 2020 and is available for installation.

V20.3.4 Release Notes

Built on WindowsServer 2019 Standard

MSBuild v16.0

MSI: Wix v1.14.2
Released on: 10/1/2020




The script engine in Axiom has been significantly changed. The result is that Axiom applications with scripting may no longer work correctly until the script is modified for the new scripting engine. If you are concerned about this and wish to have your scripting applications converted before upgrading, please contact Canary Support.

Scripting Updates:

File conversion attempts to convert old scripts to new script with no guarantee that scripts will not break. Simple scripts should convert, but more complicated scripts may need to be modified manually. The application will still load if scripts do not work after conversion and the editor will report errors in code with a shortcut to open script editor at the breaking location.

Documentation w/ examples built into Axiom

Per screen (only compiled if screen has scripting)

Recompile screen script without save/reload after script edit

Axiom Applications/ChartFiles Updates:

Converts files on service startup (keeps old files for optional downgrade or conversion fixes if issues are found)

Performance improvements when loading applications/charts

Property Names Updates:

Changes to make names more consistent across controls

Changes to better indicate property purpose

Editor Updates:

Performance improvements when editing

Touch support improvements

Added breadcrumb (single select)

-  Shows all parents of selected control

-  Shows shortcut actions for selected control

Added breadcrumb (multi-select)

-  Shows all controls selected

-  Shows shortcut actions common across selected controls

Properties organized by groups

Screen management UI changes

Asset controls/properties unavailable if no asset templates available on local view

Script controls/properties unavailable if user is not admin (anonymous is no longer an admin user, but anonymous users can be given script access by modifying a settings.json file on the server)

Tag browse context improvements (opens at asset instance context)


Controls Updates:

Can only change “Name” of controls when scripting is enabled. Outside of scripting, the “Name” of a control has little significance.

Grid Updates:

Asset performance improvements

New GridRow control

Editing does not add control to next row on paste (can copy entire row)


AssetTemplate Updates:

Performance improvements

Editing not limited to first instance

Header/Footer stylistic changes

Control Limits Updates:

Added ability to select a tag as a limit value of a control

Playback Updates:

State of playback is persisted when applications/charts are saved/opened


Attempt to close any Canary  client tools that are running before installing


Historian: ability to rename a DataSet

Historian: bulk rename of Historian tags

Historian: bulk obsolete of Historian tags

Calculations: added Switch function

Calculations: added a "Copy" button for calculation groups to the initial Status page

Calculations: modified DurationSinceLastTvq function to return duration since the last value change, not duration since last time extension

Calculations: added Asset Path to the Calculation Status panel

Calculations: added calculation name to error message "could not get view info for"

Views: prevent clients from connecting to Views service until all initial models are cached

Views: parameter to control how frequently views and DataSets can re-cache

Views Model Plugin: support for attaching properties with wildcards on the front and back of a tag pattern

Views Model Plugin: override the Description property with another property from the source tag

Views Model Plugin: ability to pause rule evaluation in model builder

Publisher: sub-millisecond timestamp support using a defined SparkplugB property

Events: add asset name to subject and body of email message when event is generated from an asset instance

Excel Add-In: Fine tuning User Interface


MQTT Collector: support persistent sessions

MQTT Collector: sub-millisecond timestamp support using a defined SparkplugB property


Messages: support for not (!) capability in message text filter

Diagnostic Health System

Add Historian DataSet alert count tag

Bug Fixes


Excel Add-In on computer with 32-bit Excel does not register the Add-In properly

Failing with non-English region settings


Boolean tags using aggregates DurationInStateZero and NonZero not showing correct value on charts in live mode

The AssetFilter for Grids and Asset Templates does not allow the user to click anywhere in the string to change it while in edit mode

Spark Chart scales are not visible in an Asset Template

ValueBoxes not updating when applying new start time to multiple ValueBoxes at once

Some Trend Preferences not getting applied to Trends on a new Chart

Screen freezes after opening aggregate picker


Views: crashing occasionally when trying to release stale client connections

Views: not returning correct tag list when using open query through ODBC looking for tag with [ ] embedded

Views: DeltaTotalCount aggregate does not always compute the correct value

Views: API and ODBC calls not always honoring localhost as the View name

Views: crashing occasionally when determining if there are DataSet tag changes

Views Model Plugin: not handling tags with backslash dot (\.) in the name correctly

Views Model Plugin: Views service crashing when model pointing to non-existent source View

Views Model Plugin: not returning correct asset instance list to asset template filtering in Axiom when asset comes from multiple source Views

Views Model Plugin: model editor import rules function occasionally reports double the rules than really exist i.e. 18 of 9

Calculations: the "Backfill To" field changes when you close a calculation group then reopen it

Calculations: DeltaTotalCount aggregate does not always compute the correct value

Calculations: sometimes writing excessive error messages

Calculations: bug with replacing calculations and an incorrect backfill time

Events: sometimes generates event with incorrect duration after reconnecting to Views

ODBC: crashes when query string exceeds 4096 characters

Publisher: MQTT tag alias option results in not all tags being discovered by MQTT client

Excel Add-In: tag path control not auto-sizing correctly

Excel Add-In: Find Events fails when trying to pull a lot of events


Logger: clicking the tile is slow to bring up tab or crashes Canary Admin client

Messages: Admin sometimes locks up when quickly scrolling events

Views: crash when trying to rename a View

Diagnostic Health System: causing InvalidOperationException when other services are not responding


CSV Collector: Sender sessions occasionally do not get released after a file is processed

SQL Collector: Sender session does not get released after definition is updated

Canary Logger: when an error is returned from the OPC DA server the Logger should log a NoData after the last Historian time extension

Canary Logger: not handling success error codes (S_FALSE) correctly in OnDataChange callback

Sender: transform not working for culture that uses comma instead of period for numbers

Diagnostic Health System

Health score is incorrect when services are not running


Previous Versions

V20.2.2 Release Notes

Built on Windows Server2019 Standard

MSBuild v16.0

MSI: Wix v1.14.2
Released on: 08/04/2020

Patch for previous V20.2.1 release that features the following Bug Fixes


Views: Multi-view support improvements and bug fix

Views: Tags not being loaded correctly when view is based on other views

Views: View is not able to access properties from a sub-view

V20.2.1 Release Notes

Built on Windows Server2019 Standard

MSBuild v16.0

MSI: Wix v1.14.2
Released on: 07/17/2020

Patch for previous V20.2.0 release that features the following Bug Fixes


Events: fixed issue with Axiom Automated Reporting sending emails for disabled Events when using MSSQL database

Events: fixed issue with duplicate events when service is disconnected from Views

Historian: fixed bug with long log message causing Historian to crash

Sender: fixed bug with Web API /noData method applying 'NoData' to all tags in session instead of only tags listed in request

Views: fixed issue with DeltaTotalCount aggregate returning partial value when encountering bad qualities in data stream

Views: reverted breaking API change to GetTagList function made in 20.2.0

V20.2.0 Release Notes

Built on Windows Server2019 Standard

MSBuild v16.0

MSI: Wix v1.14.2
Released on: 07/01/2020



Consolidated 7 installers into 1 with new styling.

Modified service and program names for consistency.


Added ability to hyperlink to external site from controls that feature a navigate property


Administrator: automatically refresh model properties panel without closing/opening views tile

Administrator: improvements to Calculation Service user interface in the way assets are presented and operated on

Administrator: added mechanism to rename virtual view

Calculations: added option to remove calculated tag data when a calculation is removed

Calculations: added option to user interface to select number of asset branches to preserve an output tag

Calculations: added 'ResettingAnchoredInterval' function to calculation service. Function provides ability to aggregate (accumulate or average) over a period of time using a start time and then reset when hitting the end of the interval. Useful for typical KPIs such as daily run hours or accumulated daily volumes, etc...

Calculations: added 'DurationSinceLastTVQ' function to return the time (in milliseconds) since the last tvq for a particular tag

Calculations: added basic export/import functionality

Calculations: added 'TagIfExists' function to get a tag's value only if it exists. Includes a fallback expression if it doesn't.

CSV Collector: enhance engineering unit replace functionality for instances where engineering units are not part of the tag name in the import

Diagnostic Health System: provides centralized logging of diagnostic data from 2 or more Canary servers

Excel Add-In: added Set button next to start trigger expression in Adhoc Events to reference a cell

Excel Add-In: Moved settings file from Program Files folder to user folder

ODBC Service: upgraded third party dependencies

Publishing Service: Provides publishing of views data via 2 options, MQTT Sparkplug B and JSON over Websockets

Publishing Service, SparkplugB over MQTT3.1.1

Supports publishing tag values from the Canary Views service

Supports compression via GZIP or DEFLATE algorithms

Durable stream option for using the historian to store and forward Views data should the service become disconnected from the MQTT broker

Supports multipleservers for high availability MQTT infrastructure

Supports primary hostid for auto detection of host online/offline state for publishing

Publishing Service, JSON over WebSockets

Supports latest tag values

Can map asset name, tag TVQs (timestamps, value, or quality), and tag properties to a JSON structure.

JSON fields can be configured

Structure is published anytime a mapped tag value changes.

Views: improved views startup time

Views: improved automatic rebuild process

Views: added optimization to prevent model rebuilds if property values do not change

Views: added ability in model builder to trace tag through the list of rules. This aids in troubleshooting modeling rules

Views Model Plugin: Views can now be built upon multiple source Views. Prior versions only support a single source view

Views Model Plugin: added tag count property to root node


VT Scada Collector: minor improvements

OPC Collector: detect array values received from the OPC UA server and skip values to allow logging of other tags to continue

OPC Collector: detect illegal timestamps for the OPC UA server and skip values to allow logging of other tags to continue

MQTT Collector: Sort multiple values for a single tag in a single message to prevent data inserts into the Historian database

Bug Fixes


Fixed ValueBox not updating when using intervals > 7 days

Fixed Spark chart duplicates in Asset Template control

Fixed control naming conflicts when creating 2 or more Asset Templates in an application

Fixed Fallback function not replacing 'NoData' values correctly

Fixed Trends in Trend Graph not connecting to data when asset instance is changed with non-existant tags


Administrator: fixed SQL Collector incompatible with remote admin clients

Calculations: fixed incorrect data for live mode calculations where trigger interval is less than the rate of change for tag values

Calculations: fixed test evaluation showing previous value to that which is stored in the historian

Calculations: fixed test evaluation not displaying an error for aggregate using a tag that doesn't exist

Calculations: fixed having to click twice to select any UI element used to edit an individual expression

Calculations: fixed backfill outputting incorrect data with 2 tags with extreme differences in change rates and slower tag is chosen as value change trigger

Calculations: modified property function to return an object instead of a string to permit arithmetic operations on property values

Calculations: fixed infrequent server crash when becoming disconnected from the Views service

Calculations: fixed fatal KeyNotFoundException when interaction to the Views service timed out

Calculations: fixed Rollup function not treating subsets of 0xC0 qualities as good

Calculations: fixed issue with tag name matching actual tag path

Calculations: fixed error when calculating values and a model rebuild happens at the same time

Excel Add-In: fixed timeout with ValueAt function processing hundreds of tags

Excel Add-In: fixed raw data function not returning most recent value when end time is now

Excel Add-In: processed data function not correctly processing 24:00:00 as an interval

Excel Add-In: fixed bug with tags with no data in the historian causing errors in Excel

Historian: fixed issue with Trend Link unable to read high and low scale properties from the historian

Historian: fixed crash caused by client monitoring live data changes while data is inserted near the end of the current file

Views: prevent rebuild of a DataSet when a model database mapping table references a tag that no longer exists

Views: fixed fatal exception when failing to connect to MSSQL database to load properties

Views: fixed intermittent issue causing all models to rebuild unnecessarily

Views: fixed bug with SQL import throwing exception with duplicate properties

Views Model Plugin: fixed NullReferenceException when getting tag contexts if one or more of the tags didn't exist

Views Model Plugin: fixed models sometimes not getting rebuilt when a source DataSet changed

Messages: fixed issue with messages being logged when Canary base path is modified


CSV Collector: fixed 'NoData' values parameter only working for string values

OPC Collector: Fixed bug with collector not receiving data changes from UA Server when absolute deadband is enabled

V20.1.0 Release Notes

Built on Windows 10, Pro

InstallShield 2018, Version 24 SP1
Released on 03/20/2020

Feature Additions

Specifically adjusted trending of Boolean tags to draw using the StartBound aggregate and automatically set scales to 0 and 1 with no intermediate tick marks.

Changed Views Web API license to allow 25 connections without requiring any licensing.

Calculation Service now supports dependencies between calculations.

Calculation Service supports the release of Sender sessions if all calculations are stopped.

Increased the Calculation Service's fault tolerance with connection to the Views Service.

Canary Admin fatal messages now include the server name.

Limited the ability to write data to the {Diagnostics} DataSet.

Increased the Events Service's fault tolerance with connection to the Views Service.

In the Calculation Service, LastEvaluationTook and TotalEvaluationTime from the expression group status information was removed.


MQTT Collector now supports server groups for multiple MQTT Broker high availability infrastructure.

Bug Fixes


Fixed Axiom reports only showing the "Open Chart" menu.

Fixed right handle not resizing an application

Fixed scale not adjusting for Booleans

Fixed Asset Template source tag picker UI not readable with long source tag paths

Fixed gauge causes null reference exception for no data or bad quality values


Fixed issue with Calculation Service status info not resetting when disconnected from Views Service.

Fixed issue with Calculation Service disconnecting from Views Service if there are no active calculations.

Fixed Excel Add-In: difficulty reading panes with certain Office themes.

Fixed Calculation Service: issue with adding additional output to expression causing all tags to backfill.

Fixed Calculation Service: IF statements not evaluating when large literal decimals are used in the expression.

Fixed Calculation Service: test evaluation causing NullReferenceException.

Fixed Events Service bug: an event with no source and a tag with no period in the expression was causing service to crash.

Fixed error with adding / removing a remote Historian in the Admin.

Fixed cryptography exception when configuring external properties from an Admin on one machine to an Admin Service on a second machine.

Fixed Canary Admin fatal error when underlying .png files are removed from the system.

Fixed issue with some Canary services removing duplicate certificates.


Sender Service bug addressed that was causing service to lock up and stop processing data.

V20.0.0 Release Notes

Built on Windows 10, Pro

InstallShield 2018, Version 24 SP1
Released on 02/06/2020

Feature Additions


Added print functionality to the desktop client for instant image reporting.

Added refresh time to AssetTemplate and Grid asset mode.

Caret (^) is now used as a bitwise operator and not a power operator when creating Axiom calculated trends. Use the Pow() function to give correct information.

Automated Reports now hide UI screen to show captured screenshot.


Included Canary Web API for the Views Service as an unlicensed part of the Canary System.

New service to push live data through websockets for 3rd party clients like ESRI. Currently manual setup.

Added an interface template (IQueueFunction) within the Calculation Server to create and validate new queue functions. Then, changed Property and AssetInstanceCount functions, as well as the Rollup function to use the new function template.

Calculation Server's validation process optimized when dealing with a large number of tags in an equation.

New optional parameter to the Views web API to return bounding values for raw data calls.

Added computer name to email messages sent from the Admin.


Bug Fixes


Fixed Event trends showing incorrect timestamp of event.

Fixed setting the trend display name to the "Description".

Fixed to prevent the "Esc" key from closing an application or chart.

Fixed continuous screen redraw causing Axiom to flash.

Fixed renaming an Axiom application not updating the title.

Automated Reports was updated to fix when the deletion of a report schedule caused an "Object Reference" error.

All gauge values were being converted to a string to pass to the client using the culture
settings of the Axiom service rather than the culture settings of the client.


Excel Add-In: Fixed "Find Events" function adding duplicate properties to the edit pane when opened with a function in the selected cell.

Calculation: Fixed occasional user interface lockup if there was a large rollup expression running.

API: Prevent exception being thrown when API request made for non existent tag in a MergedView.

Canary Admin: Fixed add/remove remote historian in the Views configuration.

Fix to allow both "high scale", "low scale" and "Default High Scale", "Default Low Scale" to work in the Historian.Needed to show the high/low scale properties in Trend Link.


Fix to the WITSML Collector sending properties too frequently.  This caused the Historian to report the DataSet as changed and triggering model rebuilds.

Fixed exception in API Collector by accounting for devices dropping out of the master list.

V19.2.0 Release Notes

Built on Windows 10, Pro

InstallShield 2018, Version 24 SP1
Released on 12/19/2019

Feature Additions


URL Parameter now supports 'inactiveTimeout' which can be configured to release the session based on a predefined time period without any user interaction.

Added a thumbnail in the email notification for new reports.

Automated Reports can now run based an Event trigger.



Disk space limits now generate a warning message at 2 GB and discard new data when space is below 1 GB.

Now allows an empty string value to pass thru to Historian instead of treating as null.

Added protection of Views Service from null reference in NotifyNodeChanged functions.

Calculation Server received a new interface update method that checks to be sure we have the most up to date data for an interval regardless of whether or not we have new data after the interval.

Added ability for Virtual Views RegEx rules engine to allow a tag to appear in multiple locations.

Added ability in Canary Admin to manually rebuild merged/model views without needing to restart Views Service.

Reduce Views memory use by only storing properties in the original view.

Asset based Calculation Server calculations now process live data in their own thread.

Changed the individual Canary Admin tiles to display error counts consistent with Messages.



MQTT Collector now checks for the existence of a tag before adding during births. Additionally added option to 'Auto include' or 'Auto exclude'. Also updates to tags published vs. tags logging on overview.

MQTT Collector had Regex filters changed to only apply on birth not every publish.

Added subscription tags Boolean field for the MQTT Collector.

OPC UA Collector's UI optimized for large tag counts (10K+).

WITSML Collector can now support multiple connections.

Bug Fixes


Fixed timeout with Assets while building a screen.

Fix for Asset instance not being passed through navigation when Asset Template only contained one page.


Calculation Server fix to handle unusable tags placed in the trigger tag field, fix for duplicate expressions not evaluating second expression, and a fix for random crash while viewing calculation tile. Also changed where invalid an View would disconnect from the Views Service and added fix to backfill evaluations stopping and limit property change checks to once per hour.

Fixed potential deadlock issue when rolling up files.

Views WebAPI received a fix for getTagData not showing error for non-existent tags in the error array or report the status code as error as happens when calling for raw or processed data.


OPC UA Collector received fixes for the configuration view displaying tag duplication, logging start/stop causing a flag to be set true, and for more than 15 groups causing the Admin to crash.

V19.1.1 Release Notes

Built on Windows 10, Pro

InstallShield 2018, Version 24 SP1
Released on 10/30/2019

Feature Additions


Calculation Service improved for tag list control.

Calculation Service received updates that changed the tag / function / operator control to add items at the caret (^) position in the expression.    

Improved load time of tags to allow Calculation UI to load immediately.


Implemented logic in the SQL Collector to automatically create new DataSets when the current one reaches a defined capacity.

Bug Fixes


Fix for "Lost Connection" in WebSocket when pushing updates back to client from core.

Resolved drawing issue of a tag with a larger aggregate interval when scrolling back in time.

Corrected Asset switching logic to detect if a child panel may have already been processed
and bypass when processing the parent.

Fixed continuous scroll stopping while holding the arrow key.

Axiom Asset function was not working properly; needed to add code to stop property changes from being sent to the client when the asset trends are added.

Fix push notification of authenticated users.

Fixed the Asset Template filter resetting page even though the page had not changed.


Sender Service updated to detect correct error status code due to BadSessionTokenException.

Multiple fixes to Calculation Service, including:

   -Fixed error in calculations that have tag names with special characters    
   -Property function now displays an error if the tag name is invalid    
   -Fixed bug where a communication fault with the Views service wouldn't always retry the connection    
   -Tag names inside of aggregate functions can now be enclosed in brackets. So '[tagName]' is now valid,
    whereas before only 'tagName' would work    
   -Fixed time spans specified in the hh:mm:ss or hh:mm format with hours >= 24. Previously, 24:00 would
    evaluate to 24 days instead of the expected 24 hours    
   -Fixed bug where test evaluations wouldn't work for aggregates or for calculations with trigger intervals
   -Fixed issues with copying expression groups
   -Fixed bug where stopping a rollup calculation would sometimes result in an error


V19.1.0 Release Notes

Built on Windows 10, Pro

InstallShield 2018, Version 24 SP1
Released on 10/18/2019

Feature Additions


Updated existing Grid asset row template functionality to create rows based on the tags
for a given asset type.

Advanced banding capabilities to show linked bands, turn bands off/on and set bands for
discrete tags smaller than analog tags.

Added filtering to Assets based on meta data.

Changed login to preserve the server field when changing credential method.

Added ability to send messages back to the Axiom Core.

Added "Windows Credentials" authentication from Desktop client.

Optimized Axiom application script cache for faster load times.

Added indication of an empty grid on the application screen.

Added ValueTransform feature to allow writing simple expressions to change source tag values
without writing script.

Tooltip shows source tag when hovering over controls with a source tag.

Double clicking a control with a source tag opens a new instance with tag in an Axiom chart.

Added variable number of limits with color parameter to controls with source tags.

Added navigation functionality to buttons and labels to load other applications or charts.

Added code to prevent attributes from being returned to the Core when initializing since we are
receiving the attributes from the Core and it already knows about them.

Made Axiom Menu bars invisible during printing.

Added support for command lines in Axiom Desktop.

Allowed playback to manipulate spark charts.

Improved drawing/style updates to gauges.

Allow user to set TVQ value of control in scripting without assigning a source tag if the TVQ
quality is Good.

ListBox, TextBox, and DateTime Picker were removed from user control list.

ValueBox quality changed to display readable Quality in place of number.

Historian Changes

Created a new Calculation engine within the Canary Admin capable of stored functions,
asset aware, backfill capable, and optional triggers.

Added ModelGetTypeTags method to return the superset of tags for an asset type.

Added Receiver proxy to the service that could buffer & forward logging data on to another
receiver or proxy service.

New aggregates available in Views service, DeltaTotalCount, CountInStateZero and

Added support to Views for GET requests, URL encoded content type along with application/JSON
for passing request parameters in URL for GET requests, passing UserToken in authorization header
and support for PowerBI and Excel PowerQurery.

Added scroll bar to Events configuration page.

Optimized performance when editing a model with a large amount of assets (>6,000).

Moved the Web API continuation code to avoid null reference exception.

Web API browseNodes received check to prevent null reference exception.


Multiple MQTT Collector additions:
   -Add table to track tags added via MQTT by subscription. Split into datasets by count. (optimize for
   number of tags)

   -Add a setting for number of tags to split datasets on (keep this on a per subscription basis).
   Default to 25K

   -Add DataSet prefix to subscription table for auto creating DataSets using an auto-incrementing ID

   -Add table for global properties to be added to each tag by subscription

   -Add inspection mode to collector that will dump the tag names to a text file that includes what will
   be included AND what is excluded as well

   -Add parameter to truncate tag branches

   -Implement primary application for buffering on Cirrus transmission module

   -Added discovery mode to collector that will populate tag table, but not log data (for inspecting the
   tags prior to logging)

Created SQL Collector tile in Canary Admin for configuration, Status and Control.

Collectors maintain a property cache so that only property value changes can be sent.

Add ability for the CSV import to create Eng Unit property for each tag.

Created CSV Collector tile in Canary Admin for Status and Control.

Optimized CSV Property import when used with large file/DataSets.

Bug Fixes


Axiom Desktop received a fix for the Automated Report screen staying open after adding or updating a report job.

Clear the annotation on trends when an Asset instance is switched.

Fixed bugs for negative scale formatting.

Added support for old behavior of timespan picker (1d) as opposed to new behavior (d1).

Try to reconnect Axiom WebSocket when connection is lost for next 1 minute. Show message
trying to reconnect and allow user to cancel.

Fixed spark chart color not working correctly.

Fixed Axiom session time out after and Automated Report completes.

Corrected the baseURL being stored with the Automated Report when running the Desktop client.

Fix when entering LiveMode where tag is not logging will scroll to newest data even when scrolled past the data.

Fixed Axiom Asset selection wizard when there is only a single instance to choose.

Fix for desktop positioning when monitors have different resolutions and zoom factors.

AutoScale updated to no longer change in Live Mode when the tag values have not changed.

Playback mode was carried over between applications if it was running when switching applications. Added code to remove referenced callback functions.

Fixed "AssetInstance" parameter in URL to change asset instance on the screen when first loading
an application.

Fixed the date format when running in locales different from US.

Backward compatibility issues resolved for applications that used script to call old methods
or properties.

Fixed source tags picker from selecting multiple tags for a control.

Color picker wasn't hiding when user clicked on a different control.

Hidden trends were being excluded from the tag list options for a variable limit in the EditTrends dialog.

Value Transform control was not being kept in memory correctly.


Adjusted the Event service to not monitor an expression if an asset instance does not contain all the tags.

Correct multiple issues in Virtual Views model rebuild logic

   -Ensure Analyze method called when rebuilding
   -Move child node caching to task based processing to increase speed of Historian DataSet caching
   -Ensure View name to be queued doesn't already exist in the queue
   -Rework tag pattern processing to make logic much faster
   -Additional logging messages to see when DataSets cached and what source triggered a rebuild

Fixed problem with Excel Addin with cultural specific list delimiters.

Manual Data Entry received a fix for a Null reference exception with add/create buttons as well as a fix for the apply button when adding tags and fixed not shutting down properly.

Historian fix for file being taken offline due to inserts causing a TrendVector split and the
TagKey is already full.

Historian fix for rollup or file with empty annotations.

Tag used in Event properties doesn't change when backfill duration is set to zero.


MQTT Collector NullReferenceException bug fix.

Fixed logic to resolve and auto rename duplicate tag names when using CSV Import.

V19.0.2 Release Notes

Built on Windows 10, Pro

InstallShield 2018, Version 24 SP1
Released on 8/7/2019

Feature Additions


Updated timeout logic. Now configurable in Settings.Global["response_timeout"].

Change heartbeat to use ping instead of keepAlive. This should stop false alarms of lost

Add more error catching inside of the asynchronous method that sends messages to make
sure all exceptions are caught in the current scope.


Reworked algorithm to determine font size on dynamic tiles in Canary Admin.

Account for null value when no data returned thru raw ODBC call.

Bug Fixes


Fix for Axiom licenses not being released in certain cases.

Fix for edit script save and apply not working when saving the script.

Fix to Axiom Desktop to shift focus to parent window when that window's child window is


Fix to the Sender to decompress data stored while the Historian is doing a file rollover.

V19.0.1 Release Notes

Built on Windows 10, Pro

InstallShield 2018, Version 24 SP1
Released on 7/15/2019

Feature Additions


Added support for Axiom Desktop client install on 32 bit OS.

Added support in relative time parsing to detect StartTime input of just a time component.

Extended heartbeat response time to allow large applications to load.

Signed Axiom Desktop setup executable with code signing certificate.

Cleared live data cache when Axiom enters Live Mode so old data will not get used when
calculating pixels.

Better notification if Add Trends dialog fails to connect to cached server.

New drawing/scaling methods for String and Boolean tags.


Adjusted Sender status screen to make readable.

Asset View commands return regardless of build complete flag. This allows the model to be
edited or deleted if there is an issue with the underlying source.

Changed import during file recovery to recognize the timestamp extension for tags that have
not changed for long periods of time.

Added logic in Event Service to detect if models have been rebuilt so instances can be refreshed.


CSV Collector changes to support running Regex against branch name.

New parameter in CygNet Collector to convert unreliable status to uncertain quality for TVQ.

Added additional CSV processing logic to allow a file to have a configured amount of elapsed
time between data rows when no timestamp or elapsed time available on each row.

Added MQTT tag filtering capabilities (inclusive and exclusive).

MQTT Collector can now log Inductive Automation's Ignition tag metric properties as Canary properties.

Bug Fixes


Corrected asset dialogs to ensure selected asset in view when window displays.

Fixed Value Box text being dim after modifying properties.

Corrected display of email address for username when using SAML in Axiom.

Fixed the chart naming button to support the Desktop client.

Corrected time span property processing when multiple controls selected.

Fixed automated reports working in the AWS envrionment.

Fixed limit line changes from affecting lines of other trends.

Fix for drawing bug for line color change at limit transition.


Suppressed "Where is the handle" message when DataSets being mirrored from the Historian.

Fixed possible duplicate model entries are being written to the SQLite database.

Corrected Interpolative aggregate calculations - was returning same values as TimeAverage2.

Fix for bug returning an annotation from the Historian with blank description.

Fix for relative end times greater than 2 hours.

V19.0.0 Release Notes

InstallShield 2018, Version 24 SP1
Released on 5/10/2019

Built on Windows 10, Pro

Feature Additions


Added Automated Reporting, a scheduled reporting option to save and email an image of an Axiom application at specific time.

Real time trending performance increased.

Replaced Axiom Desktop with a Desktop app running the Axiom Browser code.

IE is not a supported browser of the Axiom browser client. Accessing Axiom from this browser
will provide the desktop download app. With this limitation removed, users can edit there own themes using CSS.

SVG symbol files were moved to a well known location relative to the Core. Old XAML symbols
are no longer used.

Can assign an Asset to the Panel control.

Added ability to show a scale on the Spark Chart with the high and low of the scale.

A Spark Chart will allow one scale to be configured and auto scale the one that is not

Created better scale bounds for discrete tags (0-1).

Changed scales to only show significant digits to give more trending area.

Reworked scale sizing especially when scales were staggered.

Added the "Live Scroll Percent from Live Edge" to Axiom. This was an option in Trend Link.

Added scale dragging, resizing and hi/low scale edits.

Added Display property to Linear Gauge to be "Standard", "Fill", or "Cutaway". The "Fill"
display will have a scale next to the "Cutaway".

Provided a new function Fallback(,) for adhoc trend calculation to allow a user to provide a value
when an input trend's pixel doesn't have a value.

Added Browser only "Full screen" button and "Esc" or F11 to toggle Full Screen mode.

Added icon in menu bar to Add Trends without opening Edit dialog.

Setting the "Aggregate Interval" to 00:00:00 in the export will output the raw data (only
when a value or quality changed).

Removed aggregates "Start", "End" and "Delta" which are replaced with "Startbound", "Endbound"
and "Deltabounds".

Reserving licenses for a multi-tenant security group will limit multi-tenant users of that
group to the number of reserved licenses.

Added better prompts to save scripting changes.

Added option to stay logged in until cookies are cleared from the machine.

Added a CanaryBasePath registry entry to move meta data (charts, applications, sender buffer)
to a user defined location.

Historian Changes

Added mechanism for models to be rebuilt if something changes in the DataSet (adding tags).

Added ability for the Historian to send annotations to a redundant historian.

Added ability to execute adhoc event queries and find events functionality to the Web API.

Annotation audit was changed to use Axiom user credentials in place of Windows credentials.

Powershell script examples to call Web API for process data & raw data and export to CSV file.

Enhancement to Historian trend vectors to prevent file corruption when being split.

Collectors Changes

Added MQTT Sparkplug B Collector.

For OPC UA Collector, users can specify a full endpoint of an OPC UA server in place of host name, port.

Reworked the CygNet Collector to rebuild the tag list in the background and then swap it in
after a resync.

Added several new options to CSV import.

Added logic in CygNet Collector/Sender/Receiver to externally store tag properties in a
SQLite database and make the Views Service aware.

Bug Fixes


Fixed duplicate session creation in axiom audit from the web interface.

Fixed parsing of tags with "\" escape character in front of embedded "." so the legend properly displays tag names.

Fix to allow Administrators to add folders under Read Only directory.

Axiom will rename any reserved names used for screens or controls without throwing an error.


Fix to allow the Views service to fully load the browse tree for large models. Accessing the
Views while it was loading could cause slow down of the system.

Fixed a case in the Historian when viewing an annotation over 512 bytes using the Admin.


Fix bug to allow OPC UA Collector to reconnect to UA server when the UA server no longer has the
Session ID.

Excel Add-in

Fixed Excel Add-In problem with Adhoc Events returning data for Cloud tenants.

The Excel Add-In was changed to release the license/connection after every Add-In call.

Canary Version 12

Enter Notes Here

Canary Version 13

Enter Notes Here

Canary Version 14

Enter Notes Here

Canary Version 15

Enter Notes Here

Canary Version 16

Enter Notes Here

Request Version Upgrade