Ignition Release Notes
Fixes, changes and features In Ignition
Version 8.1.2
Released February 3, 2021Area
Change Type
Description
AB Suite
Connectivity
Improved sanitization of device names when using system.device.addDevice() scripting function
Backup & Restore
Platform
Backup/Restore is now more resilient when gateway data folder exists on separate filesystem.
Build
Infrastructure
bundled java version bumped to 11.0.9
Infrastructure
Docker image now supports and defaults to `en_US.UTF-8` locale to properly support UTF-8 operations such as tag imports within the gateway context.
Infrastructure
JxBrowser has been upgraded from v7.10 to v7.12.
Commissioning
Infrastructure
Pre-commissioned, clean installs skip commissioning entirely now.
Deployment
Infrastructure
System Name tag now reflects initial value set within init.properties file on first gateway launch.
Designer Launcher
Infrastructure
Vision Client Launcher's Launch Fallback application now works when one has been set and the target gateway (or any backups) cannot be reached when a retry count of 1 or greater is set.
DNP3
Connectivity
Continue receiving unsolicited messages after DNP3 device is power cycled
Connectivity
DNP3 point values will no longer set current time for source timestamp when points don't have associated timestamp included.
Modbus
Connectivity
Improved sanitization of device names when using system.device.addDevice() scripting function
Omron
Connectivity
XML import support for Omron Fins tag address editor
OPC-UA
Connectivity
Convert well-known StatusCodes to equivalent QualityCode. In addition, introduced the Good_Overload quality code.
Connectivity
Fixed an NPE that occurred while viewing diagnostics against some OPC UA servers.
Connectivity
Keep previous Failover Enabled setting for OPC UA Connection when upgrading from 7.9.x.
Perspective
Visualization
Added a containerStyles property to the Numeric Entry Field component that handles the issues it was having with applying margin correctly.
Visualization
Added context menu items for configuring, removing, enabling, and disabling bindings in the property editor.
Visualization
Added more label customization properties ("inside") and legend customization properties to the Pie Chart component in order to handle it being displayed in a way that labels aren't cut off incorrectly anymore.
Visualization
Adds several component properties under `config.visibility` that allow the user to customize the display of otherwise persistent interface components. ...and in the case of the tag browser where its visibility was temporary, this can now be made persistently visible. All component props listed below can be found under `config.visibility`:
* `showTagBrowser`: The opened/closed state of the tag browser is now surfaced with this component property. If opened (either by setting the property manually, or by the user in a client session), this preference will be persisted.
* `showDateRangeSelector`: Visible state of the dropdown used to modify the date range displayed in the chart.
* `showPenControlDisplay`: Visible state of the tabular pen data shown below the chart. Also applies to the pen legend if the legend is displaying.
* `buttons.showTagBrowserButton`: Visible state of the toggle button that opens the tag browser. This button is normally hidden when the tag browser is open. This will also toggle the visibility of the button that closes the tag browser when it is open.
* `buttons.showPanZoomButton`: Visible state of the pan/zoom button.
* `buttons.showXTraceButton`: Visible state of the x-trace button.
* `buttons.showRangeBrushButton`: Visible state of the range brush button.
* `buttons.showAnnotationButton`: Visible state of the annotation button.
* `buttons.showFullscreenButton`: Visible state of the fullscreen button.
* `buttons.showSettingsButton`: Visible state of the settings button.
* `buttons.showMoreButton`: Visible state of the more button.
Visualization
Adjusted the format of the `time` column data when exporting the chart data to a CSV file. Rather than the millisecond timestamp value used in the raw chart data, the time formatting supplied by the newly added `config.export.dateFormat` and `config.export.timeFormat` component properties are now used to build the values for the time column data in the exported file. This also takes the session's timeZone property into account when creating the value. This also provides a place in component properties to add additional export config in the future (file format, etc...).
Visualization
Both the boundary box and the component display in the non-rotated location when the rotation anchor is grasped.
Visualization
Fixed ArrayIndexOutOfBoundsException issue when selecting components in the Perspective component palette while filtering.
Visualization
Fixed bug that was closing the dropdown component upon clicking the scrollbar of the dropdown if it was nested inside a Popup component OR when trying to use the scrollbar in the Designer preview mode
Visualization
Fixed issue that could case find-replace to fail in rare circumstances where Perspective extension function configuration was corrupted.
Visualization
Fixed issue that was not correctly applying inline styles to markers on the Map component
Visualization
Fixed issue where the popup component could not be resized on touch devices
Visualization
Fixed margins not being appropriately applied to the Numeric Entry Field component by adding a containerStyles prop to handle any styling needed for the root container instead of the input itself.
Visualization
Fixed NPE when attempting to create Perspective components from tag drop.
Visualization
For the Perspective Alarm Journal Table and Alarm Status Table components, the filtering, configuration, and date range modals no longer render offscreen. Their position is determined intelligently based upon available space and their contents are made scrollable when situations require it to be scrollable.
Visualization
For the Perspective AlarmStatusTable and AlarmJournalTable components, the alarm details action button, which becomes visible on mouse hover or touch on mobile if enabled, will no longer get "stuck" on the "first" row of said alarm table.
Visualization
Improved the user interface in the create project dialog in the designer to better support project inheritance.
Visualization
Improved the user interface in the project properties dialog to better indicate project inheritance and allow quick override and reverting.
Visualization
NullPointerException will no longer be thrown when dragging and dropping items onto the Perspective View workspace
Visualization
Overhauled the Perspective component palette UI/UX to now support component variants. Components are shown in a list with variants under each component, or they are shown as a set of tiles that display their variants in a new panel.
Visualization
Perspective Workstation now relies on Hardware Rendering which improves rendering performance.
Visualization
Script calls to system.perspective.* invoked from runScript expressions now can correctly identify the originating session, page, and view.
Visualization
The add widget modal of the Perspective Dashboard component will no longer overflow outside of the viewport in scenarios where the viewport dimensions are constrained.
Visualization
The component now starts in a loading state and throws a component error only if there is no value in the `source` component property.
Visualization
The empty message of the Perspective Table component is now configurable.
Visualization
The Perspective One-Shot Button no longer goes into writing state, or an inconsistent state, when exiting preview mode in the Designer.
Visualization
The time axis labels and date range display on both components now display as expected.
Visualization
The x-trace and Pen Control displays have the ability to display string data that comes back from the query used to populate the chart. Previously, all values had the data format applied to them, but string values are now ignored and allowed to display as-is.
Visualization
This fix involved reading/encoding any view parameters from the following components:
* Accordion
* Flex Repeater
* Carousel
* View Canvas
* Table
* Dashboard
* Tab Container
* Map
# NOTE
If the user has created any workarounds to mimic the structure of a Dataset for any view parameters of the above mentioned components, it is possible that this fix will break their workaround. Removing any workarounds may be necessary.
Visualization
With this first pass at adding locales to the Numeric Entry Field, the following locales are now supported (shown with the locale key that will map to that set of rules):
* Bulgarian --> `bg`, `bg-BG`
* Chinese (Simplified Chinese rules, but we're bundling everything together. Can be broken out in the future.) --> `chs`, `zh`, `zh-CN`, `zh-HK`, `zh-TW`
* Czech --> `cs`, `cs-CZ`
* Danish --> `da`, `da-DK`
* German (Germany, Austria, Luxembourg, Belgium) --> `de`, `de-DE`, `de-LB`
* German (Switzerland) --> `de-CH`
* Australian --> `en-AU`
* English (USA) --> `en`, `en-US`
* English (UK) --> `en-GB`
* English (South African) --> `en-ZA`
* Spanish (general and Mexico) --> `es`, `es-MX`
* Spanish (Spain) --> `es-ES`
* Estonian --> `et`, `et-ET`
* Finnish --> `fi`, `fi-FI`
* French --> `fr`, `fr-FR`
* French (Canadian) --> `fr-CA`
* French (different variant) --> `fr-CH`
* Hungarian --> `hu`, `hu-HU`
* Italian --> `it`, `it-IT`
* Japanese --> `ja`, `ja-JP`
* Latvian --> `lv`, `lv-LV`
* Dutch --> `nl`, `nl-NL`
* Dutch (Belgium) --> `nl-BE`
* Norweigan (Norway, Norwegian Bokmål, Norwegian Nynorsk. Can be broken out in the future.) --> `no`, `no-NO`, `no-NB`, `no-NN`
* Polish --> `pl`, `pl-PL`
* Portuguese --> `pt`, `pt-PT`
* Portuguese (Brazil) --> `pt-BR`
* Ukrainian --> `uk`, `ru-UK`, `ru-UA`
* Ukrainian (Ukraine) --> `uk-UA`
* Russian --> `ru`, `ru-RU`
* Slovakian --> `sk`, `sk-SK`
* Slovenian --> `sl`, `sl-SL`
* Thai --> `th`, `th-TH`
* Turkish --> `tr`, `th-TR`
* Vietnamese --> `vi`, `vi-VI`
The default locale is `en-US` (English, USA), and this will also be used as a fallback locale if the user has selected/provided a locale that doesn't map to any of the above locale keys. Each set of locale rules contains a mapping of how numeric delimiters, abbreviations, ordinals, and currency symbols will be applied to the `format` component property of the Numeric Entry Field. The rule set for French (`fr-FR`) is shown here as an example:
```
...
delimiters: {
thousands: ' ',
decimal: ','
},
abbreviations: {
thousand: 'k',
million: 'm',
billion: 'b',
trillion: 't'
},
ordinal : function (number) {
return number === 1 ? 'er' : 'e';
},
currency: {
symbol: '€'
}
...
```
*NOTE:* The user will need to keep the `format` component property in English (USA) format as the rule mapping expects an `en-US` format in place first before the user-provided locale rules are applied.
Visualization
Fixed NPE when trying to filter Perspective components on an Edge gateway.
Platform - Alarms
Data Model
Deleting alarms will correctly remove alarm from Alarm Status Table.
Data Model
Improved performance of bulk tag acknowledgments to remote tag proivders
Platform - Auditing
Security
Fixed an issue where modifying users within an internal user source would fail on the first try if an audit profile updated and a gateway audit profile defined.
Platform - Databases + S&F
Platform
Inefficiency in forwarding tag group/scan class evaluation records (which happen when tag history uses "Tag Group" evaluation) can cause backups in data in the datacache. This is a regression introduced in 8.0.7.
Platform
System tags now includes information on Store and Forward
Platform
Updated MariaDB JDBC Driver for fresh installations to version 2.7.1.
Platform
Updated PostgreSQL JDBC driver for fresh installations to version 42.2.18.
Platform - Designer
Platform
Cancelling a "New Folder" action in the Tag Browser no longer displays an error
Platform
Displaying exception details in the error console when importing tags in the Designer Tag Browser
Platform
Dragging tag tree nodes to the upper and lower bounds of the Tag Browser now scrolls up and down.
Platform
Expanding/collapsing nodes in the Tag Browser no longer scrolls to selected nodes that are potentially out of view
Platform
Fixed an issue where the "default" user source and identity provider would be inadvertently selected when importing a new project via the designer.
Platform
Fixed issue with undoing a resource-paste, which could cause the original copied resource to be deleted.
Platform
Improved the performance of the new tag browser by reducing the number of times the tree is rebuilt and eliminating unnecessary subscriptions to nodes which are not visible.
Platform
Layout in security permissions panel of Tag Editor now properly resizes with parent frame.
Platform
Selecting a tag provider will now update the OPC browser panel with the servers corresponding to the selected provider's gateway.
Platform
Sorting of Parent Data Type dropdown now matches sorting seen in Tag Browser panel.
Platform
switching projects in the designer no longer throws tag subscription exceptions for the Tag Browser
Platform
The Perspective Designer workspace no longer throws an exception when thumbnails for recently modified views have sizes that are out of bounds.
Platform
The Tag Creator has a right click menu for commonly used actions
Platform
Error dialog with NPE no longer occurs when opening Designer project without a Default Tag Provider defined
Platform - Gateway Network
Enterprise
Gateway Network now sets Access Denied status before an incoming connection can be established.
Platform - IdP + User Sources
Security
- Fixed an issue where internal IdP authentication could fail when the underlying user source was an AD/DB or AD/Internal hybrid and a hard failover occurred to a secondary source
- Fixed an issue where users and roles from failover sources could be returned when managing users or roles for a Database user source profile which is failing over to a secondary source
- Users must now re-authenticate with the primary user source if their authenticated internal IdP session was established with a failover source due to hard-failover if (at the time of re-authentication) the primary user source is no longer failing over
- Users must now re-authenticate with the failover user source if their authenticated internal IdP session was established with the primary source and (at the time of re-authentication) the primary user source is failing over
- On upgrade, users who have opted to be remembered will be forgotten in order to support these changes. Users will have to re-authenticate and opt-into being remembered again.
Platform - Licensing
Security
Fixed an issue where the trial timer would erroneously be set twice on each gateway startup.
Platform - Scripting
Platform
system.tag.importTag() executed from a gateway script now properly handles UTF-8 encoded files on MS Windows.
Platform
Fixed an exception thrown when a user logged in via `system.security.switchUser()` or the `system.security.lockScreen()` modal had assigned roles containing non-ASCII characters.
Platform
Modified the implementation of "Fixed Delay" timer scripts to behave as described instead of like "Fixed Rate".
Platform
Perspective extension functions repeatedly throwing errors will now only log warnings once every 10 seconds to avoid flooding the logs.
Platform - Security Model
Security
Fix an issue where vision clients and designers would establish insecure http connections despite launching with secure https URLs when the target gateway has force secure redirect and auto detect public address both set to disabled. Vision clients and designer should no longer ever downgrade to insecure http connections once an https connection is established.
Security
Added Tag Editing Permissions to the Edge Tag Provider in Gateway Web Interface > Config > System > Gateway Settings
Security
All tags with permissions may now be read when referenced through the .jsonValues property if the user has the appropriate security levels.
Security
Calls to system.db.execSProcCall will respect the Legacy Database permission for Vision Clients.
Platform - Web Interface
Infrastructure
It is now possible to opt into trusting the security levels of remote gateway users when remote gateways read, write, and subscribe to local tags.
Visualization
Fixed an issue where renaming a tag using the designer find/replace would instead move the tag into a newly named folder.
Visualization
Retargeting Vision clients and client restarts which target gateways of a different version now use the target gateway's launchclient.jar increasing the durability and resilience when clients are used in a multi-gateway environment where gateway versions may not be identical across the board.
Visualization
License agreement formatting has been updated. This will require the EULA to be accepted by users upon upgrade to 8.1.2+ versions of Ignition
Serial Support Gateway
Connectivity
Fixed script autocomplete hints/descriptions across various editor contexts.
SFC
Data Model
Enclosing Steps can now use relative paths to reference other charts. A dot (.) will translate to current directory, while a double-dot (..) will translate to up a directory.
Data Model
SFC Python scripts and expressions can now reference Project Scripts.
SQL Bridge
Data Model
Error occurs when attempting to delete the last row of a Key/Value selection condition in a Transaction Group.
Data Model
Prevent Transaction Groups from running at unexpected times on the day of a daylight saving time change.
Data Model
Transaction group executions will correct resume on Job disable/enable, gateway restarts, and SQLBridge module restarts.
Data Model
"Using the 'Name' property in the 'Value Mode' of a tag reference item should return the item name just as it did in 7.9 with the following exceptions:
- UDT Instances used in Transaction groups only support String datatypes. Other datatypes could cause Transaction Groups groups running in previous versions of Ignition to fault.
- UDT Instances do not support the Timestamp property in Transaction Groups
Tag Historian
Data Model
Browsing using system.tag.browseHistoricalTags() will now return results if the gateway name isn't included within the historical path parameter. If not included, the current gateway name will be used instead.
Data Model
Fixed a rare issue where a tag history query for seed values could throw an exception from its comparison method.
Data Model
Stop "Duration On" aggregation mode for tag history bindings from going into the future (to the end of the time window) by stopping at the current time when the value is still "ON"
Data Model
Updated the tag historian to use a more optimized query syntax when fetching history from databases. This new syntax can be opted _out_ of by setting the `ignition.taghistorian.useLegacyQuerySyntax` flag to `true`, in the `ignition.conf` file.
UDP + TCP
Connectivity
Prevent TCP driver from spamming logs when encountering errors from bad field count.
Connectivity
TCP/UDP Driver now has a new tag 'MessageBytes' to allow read/write of Binary data.
Vision
Visualization
Editing a User in the UserManagement component no longer removes the User's badge on save. The User badge is now an editable property in the UserManagement component.
Visualization
Fixed incorrect rendering of tooltips in the Vision property editor table
Visualization
Now setting globals _RETARGET_FROM_PROJECT and _RETARGET_FROM_GATEWAY params on Vision client retarget.
Visualization
Revert to default cursor after SVG import fails
Visualization
Vision components that extend ExtensibleComponent that do not define Extension functions no longer throw a NullPointerException when the component's script editor is opened in the Designer.