Vykon Pro Modules
Introduction
There are a lot of helpful modules to install on a station; Everything from the AxCommunity package with small utilities to baudrate.io’s Plotly module for charting can be found online. However, of all these, the Vykon Pro modules are arguably the most useful. These tend to pack in incredibly powerful features, often based on optimizing tasks that take up the most time in Niagara. They are also entirely free, leaving very little reason for them to not end up as a standard module in all your JACEs!
The modules themselves are VykonPro and VykonProUtil. VykonProTransform also exists, which expands Niagara’s series transform feature, but this particular module won’t be covered. These modules can most commonly be downloaded through your local Niagara distributor, and acquiring/installing them is also fairly basic, and won’t be covered, as I’m going to focus primarily on the most useful pieces inside of these modules, and how they can be utilized.
Global Commands
Our first component is actually 4 components: the Global Commands. These are under the VykonPro palette, in the GlobalCommands folder. These allow you to issue Set, Override, Auto, Emergency Override, and Emergency Auto commands in bulk. Fortunately, they’re also incredibly easy to use! There are 4 components under this folder, one for each basic Niagara point type. We simply need to drag the appropriate component to the wiresheet (Anywhere in your station will work fine). In our example, we’re going to use the GlobalNumericWritableCommand, and issue temporary bulk Occ Cooling/Occ Heating Setpoint overrides. Below is a screenshot of the folder structure we’re working within, as well as the configuration of our Global Command component for the Cooling setpoints:
In the configuration of our Global Command component, we simply need to specify a base ord and target point name, and then any commands issues to the Global Command component are issued to all matching points as well! You can also uncheck “Find Exact Name” if you’d like to use looser matching requirements, and uncheck “Display Confirmation” if you’re impatient and don’t want to confirm your command worked correctly!
There are the usual Numeric actions on this component (Set, Override, Auto, Emergency Override, Emergency Auto), but there is also a “Check Components” action. This is very helpful to ensure you’ve scoped your command down correctly. No matter how confident you are, it’s always worth spending an extra 10 seconds to verify you won’t cause any problems by mistakenly overriding additional points! When you’re ready, all you have to do is fire your desired action (A 4 hour override on OCC_CLG_SP to 73, in our case). Below is the dialog that will pop up after the command has been sent, summarizing your action:
One thing to remember is that, if there are any issues with these actions, they will show up in this box. Our example worked perfectly, but sometimes in a supervisor where points aren’t subscribed, it will fail to override most of these the first time around. In these cases, you can generally wait 30 seconds and re-fire your action, and it’ll work just fine!
Batch Alarms
The Batch Editor, as covered previously, has a ton of powerful capabilities. However, one major limitation is that you can’t use it to add alarms. Due to the structure of the alarm extensions, multiple different slots need to be added underneath the base alarm extension, which doesn’t play nicely with Batch Editor’s limited access to certain slots. Luckily, the VykonProUtil palette has a component made for adding these alarms!
Much like the Global Command component, we just need to add the relevant type of component anywhere inside your station, then give it a base ord. All of these components are under vykonProUtil→Alarms, and there is an extension for each alarm type. We’re going to use the BatchAddBooleanChangeOfStateAlarmExt component. Below is our configuration, this time for adding alarm extensions to the Freeze Stat alarm under each of our AHUs:
Much like the Global Commands, we need to feed this component a base ord and a point name; It will then add the configured alarm to every point under that base ord matching that point name! There is also the Alarm Config slot; This is simply the configuration of the alarm extension being added. This will all be quite familiar; We give a source name, alarm message text, alarm value, and alarm class here. When you’re ready, you just fire the “Add Alarm Ext” action, and it will add all of our extensions. Below is the confirmation I received:
This particular component doesn’t offer a way to verify the components affected before firing the action like the Global Command component does, so we need to be careful. Fortunately, if these alarms are mistakenly added to extra points, they can easily be removed manually or through the Batch Editor.
Optimal Start/Stop
Niagara has an Optimal Start/Stop component in KitControl, under the Energy folder. This actually works quite well! However, in the VykonPro module, under energy, there is an upgraded version of this component. If you’re unfamiliar with Optimal Start/Stop, the basic function is to intercept a schedule, and based on how long a unit usually takes to satisfy the zone, it will start the unit earlier to ensure the setpoint is achieved by the time your zone is occupied, and can also stop your unit early to save energy and coast on your current temperature if you were to slightly overcool or overheat.
The differences between the KitControl and VykonPro versions of the module are quite small, but important. The biggest impactful feature added to the VykonPro version is that your Heat/Cool mode can be set to do both; The original could only select heat or cool. The VykonPro version also has deadbands for the zone setpoint input, allows you to set your earliest start/stop as an hour offset instead of an absolute time, and can generate an alarm if it fails to achieve setpoint!
Since the usage of OS/S is a complex topic on its own and exists outside of VykonPro, I won’t be going into detail on how it’s used. However, if you’ve previously used OS/S, it’s worth “upgrading” to the VykonPro version!
Min/Max/Avg BQL
The last component I’m going to cover is the MinMaxAvgBql component, stored in VykonPro→hvac→MinMaxAvgBql. There are a few different varieties of this basic component, including ones that work with Enum/Boolean points, but we’re covering the basic Numeric version here. What this component allows you to do is simply gather data based on a BQL query and spit it out to a slot. For example, below is how we’d configure this component to look at VAV zone temps, and what it spits out:
This is incredibly easy to configure; All you have to do is feed it a BQL query (It cuts off in the screenshot, but the full query being used here is “station:|slot:/DemoSite/BuildingA/BuildingA_SSC1/Points|bql:select * from baja:Component where name = 'ZN_T'“). You can also optionally give it a Zone Identifier Format; This alters how it prints out the names of the highest and lowest zones, which can be useful for quickly assessing groups of devices.
This can commonly save a lot of work in a JACE when aggregating VAV info for AHU control, such as if you are resetting Discharge Air Temp Setpoint or Duct Static Pressure Setpoint, or it can even be used on a BMS to simply condense down data to display more efficiently.
Additional Resources
It almost feels unfair to restrict these modules to my 3 favorite features; They are absolutely packed with functionality! There is an immensely useful load balancer for rotation and lead/lag control of devices, unique report export sources for sending out complex formatted data via email service, custom tags to populate tags with info resolved from BFormat, components to resolve BFormat into text in the wiresheet, and much, much more! There are even custom BQL scalar functions included!
I couldn’t possibly do these modules justice in just a single guide, but fortunately, all these features are well-documented in the documentation files included in the modules! As always, use ctrl+L to open up the ord dialog, and paste in the below ords to go straight to the documentation files I list below!
VykonPro: local:|module://vykonPro/doc/index.html
VykonProUtil: local:|module://vykonProUtil/doc/index.html
VykonProTransform: local:|module://vykonProTransform/doc/index.html