Skip to main content

KanoaMES v1.8

Release Notes

Release Date - 11/25/24

Main Change Summary

To borrow a line from Inductive, 'first we make it possible, then we make it better'. This release is all about performance improvements. We we're already fast, but now we've optimized for gateways that may have hundreds of assets. We were averaging 20 queries per second against our test system database, now we're down to 0.5!

Performance

  • Performance improvements for checkAssetSchedule()
  • Performance improvements for shiftTimer()
  • Revamped Asset Overview to build the enterprise multi-enterprise view from a single query. This is significantly faster for implementations with hundreds of assets. The detail and summary views have been embedded in this view and warning indicators of below performance added to the addState labels.

1.8

Deployment

We have merged our kanoaCore, kanoaOPS and kanoaQuality modules all into one kanoaAPP module. This makes deployment and versioning so much simpler. They were separated to provide flexibility, but we've realized that ops, quality and traceability all really do rely on so many aspects of what the platform provides in terms of asset management and material management, that it just makes sense to keep them altogether. Good news for you is that you only need to install or update one module. No need to worry about in which order to install. Licensing is now handled by license attributes, so you will need an updated license from us before you install.

Quality

The Quality product is really taking off, so we've been busy adding plenty of improvements and making fixes. We've added measurement count aggregation options and significantly sped up how we update calculated checks in the background.

Custom OEE Calculations

We figured out an elegant way to easily provide for the common ask of 'Can we calculate OEE our way?'. Previously we said our functions provide the raw data to calculate however you want, but now we provide the SQL table function mes.fnGetOEEMetrics() that you can modify however you want. And the beauty is that all our pre-built screens will work with your custom OEE calculation.


Resource Changes

This release package has been tested against Ignition 8.1.44.

Modules

  • kanoaAPP_1_8_3.modl
  • ApexCharts-signed 1.0.17.modl
  • BIJC_Calendar_Component_v1.8.1.modl

Projects

  • KANOA_SCRIPTS.zip
  • kanoaAPP.zip
  • kanoaMES.zip
  • kanoaMarquee.zip

Implementation Guidance

For existing implementations where the KANOA_SCRIPTS project has been customized, do not import the KANOA_SCRIPTS. However two functions in this project do need to be updated. Copy over kanoaScripts.custom.quality.calculators.parseQRCode() and kanoaScripts.custom.quality.calculators.leftFourChars(). If the KANOA_SCRIPTS project has not been customized at all, you can update the entire project.

The Gateway Scripting Project setting under Gateway Settings used to have to be set to point to KANOA_SCRIPTS. however in light that a client may already be pointing this setting to their own project, we figured out a way to not need this anymore.

For existing implementations, the following tags will need to manually removed from the Kanoa Tag Provider...

  • [Kanoa]kanoa/shifts/shiftTimer
  • [Kanoa]kanoa/mes/scheduleTimer
  • [Kanoa]types/Kanoa/assetOEE/OEE/refreshShiftTags
  • [Kanoa]types/Kanoa/assetOEE/OEE/updateShiftTimer

We handle updating our tags to take the latest changes. However, very wisely, Ignition prevents us from deleting tags with the update.

Note

The function system.kanoa.event.assetOperationChange() parameters changed to be a dictionary. If you have created custom screens using this function, you'll need to convert the parameters being to it. Sorry about that, but the reason we tend to use dictionaries is to allow us to change the options to avoid this in future, and this was one of the few functions that didn't use dictionaries.


Documentation

  • Updated system.kanoa.shift.deleteShiftEvents() intellisense.
  • Updated system.kanoa.asset.getModes() intellisense.
  • system.kanoa.quality.config.addCheck() intellisense.
  • system.kanoa.quality.config.updateCheck() intellisense.
  • system.kanoa.quality.config.getDataTypes() intellisense.
  • system.kanoa.quality.analysis.getChkItemEventsByColumn() intellisense.

Tags

  • Moved all timer tags to new folder tag [Kanoa]kanoa/timers.
  • [Kanoa]kanoa/timers/shiftEventTimer now calls much faster system.kanoa.shift.updateShiftEvents() to build the shiftEvents table.
  • Added [Kanoa]kanoa/timers/updateAssetShiftTimer to replace the shift check that was embedded inside each assetOEE tagUDT. We now check for a shift change on all assets once every minute instead once per minute per asset.
  • Refactored [Kanoa]kanoa/timers/checkAssetScheduleTimer to dramatically speed up performance of checking every assets schedule.
  • Moved stateChange() out of KANOA_SCRIPTS into the Input/State tag change event. This means there is no need to point the Gateway Scripting Project to 'KANOA_SCRIPTS'. This also allows for each asset to have a custom stateChange() implementation.
  • The assetOEE had a timer function that would call getAssetProductionEvents() every 5 minutes. We have now moved this to the new [Kanoa]kanoa/timers/updateAssetOEETimer tag timer function that will update all asset tags every minute. It keeps the # of sql queries to 1 per minute rather than x * num of assets per 5 minutes, and reduces the time between refreshes. The old refresh tag is still inside the assetOEE UDT, so an individual assets can be updated any time.

User Management

  • Unable to edit user name or email when logged in as Administrator role. This is fixed.

Asset Management

  • Cannot add or delete asset custom attributes. This got broken when we add time zone selection. It is now fixed.

  • Asset Import button disabled when trying to import assets. If the size of the asset import file is very large, you'll probably have to increase the websocket max memory in the ignition.conf file. This is documented in the Getting Started section of the user manual.

  • Administrator Role cannot add assets under enterprise. This is fixed.

  • Improved speed of linking asset modes and states and added info bar to show progress.

  • Disabling a parent asset does stop the child assets from showing up in the assetOverview screen. It does now, when you enable or disable an asset in the assetTreeEditor view, it will update the asset and it's children automatically.

  • Set websocket max memory size to 4096

Perspective views pass data to popups via websockets. If you have a really large number of materials or assets, you'll probably want to increase the max memory setting. This forum post explains how to update the ignition.conf to do this.

  • We have applied fixes for renaming an asset during Asset Import as well as more debug info when an import fails.

Shift Management

  • Updated system.kanoa.shift.buildShiftEvents() has been deprecated and replaced with faster system.kanoa.shift.updateShiftEvents().

Operations Schedule Management

  • Updated system.kanoa.schedule.checkAssetSchedule() to address issue with mal-formed recurring rules and fixed str args in error message.
  • Updated system.kanoa.schedule.updateClientsScheduleChange() to correct paramsDict.
  • Updated system.kanoa.schedule.decodeScheduleBlock() to check for null siteOffsetMins.
  • Calendar doesn't set itself to current date on startup. This is fixed.

Lot Management

  • Added debug to lot functions. Set the [Kanoa]kanoa/debug/tags/debugLots to true to see lot function behavior in the gateway console logs.

Quality

  • Measurement Count Aggregation. When there are multiple measurements, we use to just take the average value for the chkItemValue. We now provide a drop down selection that allows the user to select what aggregation should be used, i.e. AVG, SUM, MIN, MAX, RANGE, STDEV. We also added 'Sum' to the calculated values shown to the right of the measurements.

  • Added simple range and set point checks alongside full set of engineering limits. Added a specification section under Check Item configuration, where you can choose between 'Tolerance', 'Set Point' and 'Range'. These specs are defined for the check. If an Attribute is assigned to a check, you can also choose whether to use the attribute tolerance.

1.8

  • Add User Interface to creation of Pick List Buttons Previously, you had to enter the picklist button options in json. This has been replaced with a user interface.

1.8

  • Added debug to quality functions. Set the [Kanoa]kanoa/debug/tags/debugQualityChecks and/or [Kanoa]kanoa/debug/tags/debugQuality to true to see quality function behavior in the gateway console logs.
  • Added system.kanoa.quality.event.getAllChkShtItemEventValues() function to dramatically speed up updating calculated check values.
  • Fixed population of dropdown to trigger a check sheet on failure.
  • Test Fail Action - Triggering a new check sheet prevented test submission on failed check. This is now fixed.
  • Removed print statement from system.kanoa.quality.sheet.getSheetsFilteredBy()
  • Fixed reference to old shiftId with shiftNameId in system.kanoa.quality.schedule.checkIfItemCheckedThisShift(), system.kanoa.quality.schedule.assetChangeEvent(), system.kanoa.quality.schedule.updateScheduledAutoChecks() and system.kanoa.quality.schedule.intervalTimerEvent().
  • Fixed logic so that [Kanoa]kanoa/qds/ScheduledChecks tag updates correctly.
  • On check sheet failure, notification group alerted msg appears when email group is not selected. This is fixed.
  • Persistent check value is not carrying over to next check. This has been fixed.
  • Check Sheet Path not shown in Check Sheet details screen. This has been fixed.
  • Calculated check values are not being saved when checks are taken in the desktop view. It works in the mobile app. This has been fixed.
  • Issue with Auto data collection (maybe when there are string tags). This has been fixed.
  • Tag Browser showing invalid tags. This has been fixed.
  • Issue creating a check sheet attribute associated with a datetime. This has been fixed.
  • Calculation did not work if chkItem was in a different group. It is now possible to have calculations performed on checks in different groups. The checkItemPath is stored rather than just the checkItemName.
  • Couldn't delete Check sheet with history. This has been fixed.
  • Cannot add 0 as an attribute tolerance. This has been fixed.
  • Fix Alert notification on test fail and add method to create and edit alert Groups.
  • Added check for null @column in system.kanoa.quality.analysis.getShiftHeatMap().
  • Fix shift dropdown in triggerEditor view.
  • Barcode script functions are not working. This has been fixed.

Operations Analysis

  • Added param {'strictDates': True} to system.kanoa.event.getAssetProductionEventsSummary(). This will now only return counts, runtime etc. for the date range passed. Setting strictDates to False or default behavior (not passing strictDates as param) will return production data for the beginning and end of any runs that started or ended or crossed the date range.
  • Marquee Editor allows Guest to edit marquee displays. This has been fixed.
  • Summary Utilization chart tooltip says 'Mins' but is in 'Hrs'. This is fixed.
  • Run Review table wouldn't populate for the active shift when 'By Shift' was selected. This has been fixed.
  • Asset Overview screen has been revamped to build the enterprise multi-enterprise view from a single query. This is significantly faster for implementations with hundreds of assets. The detail and summary views have been embedded in this view and warning indicators of below performance added to the addState labels.

Operator Screen

  • Operation Live Dashboard screen now has time units standardized across all charts.
  • Custom date range can now be selected in addition to drop down 'Current run', 'Last 24 hrs', 'Last 7 days'.
  • Downtime Dashboard included downtime events that occurred during an idle mode event. It now only shows downtime during a production mode event.
  • Added table footer on the Run Review screen to show total summation of counts and times.
  • Changed downtime duration filter to minutes from seconds.
  • Fixed toast message on mode change.
  • Updated Downtime Dashboard tooltips to show duration in minutes, not seconds.
  • Updated system.kanoa.event.assetOperationChange() to handle when previousModeEventId is null.

Utility Functions

  • system.kanoa.utilities.convertDatasetToDict() extended to add all column items to the dictionary by passing null for valueCol.

Simulator

  • Added simulation tag udt to install package.

Licensing

  • Licensing is now handled by license attributes. You will need an updated license from us before you install.
  • Unlicensed kanoaMES modules needs to be restarted when the trial is reset. This is fixed.