Device status behind gateway
It’s common requirement to indicate device status or trigger alarm upon any communication failure. You can easily check for device connection status using app.device[X], whereby X is the entered device name. However, there are times that your sensors or devices could be connected behind other gateway or any server. Hence you may always get a good connection status from gateway even though the sensor is down. So the only way to check for connection status is to monitor for timeout since the targeted sensor or device’s data change.
The first step is to associate current time as virtual tag, which will be used as limit reference and will be keep on shifting dynamically.
//seconds since 1970 in integer
setTag( "sec1970", ((new Date()).getTime()/1000)|0);
The second step is to update the last known timestamp added with timeout limit, whenever good data is received.
var LIM = 5;
var d = (new Date()).getTime();
setTag( "sensor001_time", (d/1000+LIM)|0); //last known update time plus timeout.
Finally you just need to add 2 tags into alarm for tag to tag comparison.
You only need to trigger this script every second or slower, depending what’s the additional delay that you can accept. Everytime the tags are changed, the Alarm task will be triggered to check. If you have a slow machine, then try to trigger as slow as possible.
TIPS: The trailing
|0 in above examples is just the shortest and fast syntax to convert floating point to integer. You may convert a floating point tag to integer tag with expression just like this:
In order to use SCADA modules / features like Trending, Alarm and Report for your project, it is required to create the database in PostgreSQL before configuring other database dependent module in IGX Project Editor.
The steps to create a database in PostgreSQL are simple.
- Launch pgAdmin from your Windows. (You can simply click on Windows Start and search for “pgAdmin”.
- After the user interface loaded, right click on “Databases” and select “Create” > “Database”.
- A configuration window shall be opened (as shown below). Enter your desired database name for your dedicated SCADA report, and click on “Save”.
- That’s it. Your report database has been created. You may verify it by expanding the “Databases” branch and locate your newly created database.
In case you wonder, you don’t have to create any table for SCADA, as all required tables will be automatically generated for you.
Ecava IGX SCADA is equipped with built-in menu with professional theme, so you could focus on developing your own mimic and have everything accessible from menu. There are times you want to load SVG without built-in menu and having your own fancy theme. All you need to do is to use a SVG loading file in your project folder called
Below is a typical SCADA demo with built-in menu in professional theme.
Using the SVG loader, you will get a full screen mimc without menu.
Ecava IGX SCADA allows you to dynamically turn on/off a pen from display during run-time. And there’s no restriction in any form except your database size. Obviously we don’t save all tags to avoid your database grows to reach disk limit in no time. However, you may have some situations that want to allow operator to choose any tag to trend during run-time, which is not hard to achieve in 4 steps:
- You need to create some buffer tags in advanced that log in your desired frequency e.g. buf001, buf002 & buf003, which is of float datatype. Next, create some source tags e.g. src001, src002 & src003, which is of string datatype
- Then create the same numbers of input fields on the screen which allow operator to enter any tag name during runtime into source tags: src001, src002 & src003, which is of string datatype.
- Then using SAGE, create input fields for the source tags with Set and Get function in Object Properties.
- Lastly you need to have a back-end script that trigger at the same frequency like the logging rate, whereby consist of the following lines:
setTag( 'buf001', +getTag( getTag( 'src001')));
setTag( 'buf002', +getTag( getTag( 'src002')));
setTag( 'buf003', +getTag( getTag( 'src003')));
Note that the inner getTag() is to fetch the tagname that is entered dynamically by operator during runtime. Then the outer getTag() is to get the tag values of the tagname specified by operator. The plus operator in front of getTag is a shortcut to ensure the returned data is of number type.
The concept behind is straightforward. Firstly create some buffer tags that constantly logging into database with your desired trending rate. Secondly, you list down some interested tag names for operator to trending. Then allow them to specify any tag during run-time. Lastly the script keeps getting the values of the specify tag name and write into the buffer tags that constantly being logged.
Please contact support in case you are not clear.
Engineers’ Choice Awards is organized yearly by Control Engineering to select the best of the bests from leading candidates among the world of industrial automation. This year, we are proud to announce that Ecava IntegraXor version 6 has been selected as the finalist in the software category for Engineers’ Choice Award 2018. The best news is we wish to celebrate this achievement by giving you $100 credits* when voting for IntegraXor!
Yes! All you need to do after voting is to email us your CONGRATS Print Screen!
Register to Vote now with 3 Simple Steps:
- Click here to RegisterJust fill in your name, email and a password. Click ‘Register’ button on the bottom right corner when all fill up.
Password shall have min 8 characters long that mixed with at least 1 CAPITAL letter and 1 number.
After registration, click on [X] to close the “Thank You” dialog.
- Click here to go to IntegraXor voting page.You may also search for ‘IntegraXor’ or ‘Ecava’ from products, as shown in screenshot below.
You will find IntegraXor listed as the result. Click on “View Product” to go into IntegraXor’s product page.
- Click “Vote for this Product” button at top left corner to vote for IntegraXor.“Proceed to voting” after fill up your Organization Name, Job Title, and 2 options.
Don’t forget to take the screenshot of your final CONGRATS screen and email to sales (a) integraxor.com
You may redeem your FREE $100 credit* when buying IGX SCADA license that worth $999 or more.
Vote NOW before End of November 2017. Thanks for your support and Happy Voting!
* Terms & Conditions Apply
- This credit cannot be converted to cash.
- The credit can be applied with online purchase only.
- The credit cannot be used together with any other credit/discount code.
- You may use the credit anytime before 31 Dec 2020.
- You may redeem the credit when you spend $999 or more in our online store.
- An email can only redeem the credit for one time.
- All support and warranty are still applicable.
To perform MQTT troubleshooting, you need to establish reliable reference for 3 involved parties separately, namely Subscriber, Publisher and Broker. For subscriber and publisher, you may use MQTT Spy as your MQTT clients, it is a small Java utility that you can run without installing. And it’s preconfigured with some public brokers or servers that you can use right away. So you need to get only one tool to isolate and troubleshoot on any of the scopes.
Connect to public broker from start screen.
MQTT Spy is has a dashboard-like of Control Panel which you can click on any listed public broker.
You will then see a new tab openned with server name in light green indicating broker’s status.
Subscribe to a topic by clicking on ‘New’ tab
Enter your desired topic under Subscriptions and Received Message section , for example
#is the wildcard.
A new Tab with entered topic will be added in Subcriptions section.
Observe New Tab is added for receiving data
You are now good to receive any MQTT data from any Publisher in the specified topic. You may try to publish any data from the Publish Message pane itself to see if data get looped back.
Next step is to automate the publishing work, which is useful despite optional.
Add and Set the Script Directory
filename.js) file in a folder. And then set the directory as the Script Directory, in the pop up option when right clicking on Scripted Publications Pane.
Java.type("java.lang.Thread").sleep(1000); //try to sleep
This script will automate a random data publishing sequence in every second.
Load and Start Script
Your script(s) shall appear in the script list after setting direcotry and refreshing list. Check on the Repeat option, then right click on the script to Start.
Observe messages being sent and received
You can now leave MQTT Spy running in the background, and proceed to your application to see if the same data can be received.
If you need to use Modbus in your work, you might be interested in the Modbus Troubleshooting Guide as well. Also, Ecava IGX SCADA can do both Pub/Sub and has a built-in MQTT broker or server. Download the latest copy for free and start enjoying many advanced benefits now.
We have spent great deal of time to simplify the flow to own SCADA license, so you can perform your complete transaction when it’s urgent. And we also taken care of previously purchased licenses. Just request your new software keys that associated to your existing project configuration and you will be able to authorize any offline license by generating ILA file by yourself. So you no longer need to wait for our admin to authorize your license manually.
Once you get your ILR file from offline or previous version of SCADA, all you need to do is to run License Manager from current IGX version (6+), then choose “I want to activate License from offline machine”. You will be prompted to browse for ILR file, then followed by Activation Screen.
Paste your software keys into this box then click Activate and you will get your own License Authorization (*.ILA) file!
The world is all about IoT (Internet of Things) now. Basically technology developers are aiming for IoT approach for whatever products (if possible). While home automation is another big trend that carries great development potentials, it is now commonly wrapped with IoT technologies as a package to furnish automation to your home.
Why use IoT for home automation? Simple. Because one of the main reasons of building an automated home is to be able to control it outside of your home. Such purpose can be achieved by applying IoT technolgy, there it stores and syncs all your required home data in the cloud. From there, you can then access/control your home while sitting in office or when heading home from your workout sessions.
What do people normally use home automation for? Well, the answer will be depending on what are the main objectives of the owner’s intention to implement an automated home. But for current users’ demand, usually it breaks down to a few main categories,
– Home security
– Power consumption monitor
– Smart control
Those who opt for security clearly will include smart devices like CCTVs, alarms’ sensors, and lock systems. These devices shall be installed to guard the house, at the same time they shall be connected to the main server which allows IoT cloud access, and users can access using portable smart devices (smartphones, tablets, etc.).
There are users who concern alot about their power consumption, despite to watch out for the bills or for resource saving purpose, it is always good to monitor your own house’s consumption. For landlords who rented out their houses, implementing a system to the house which is smart enough to let them monitor all the power usage can be very helpful. There are different ways to achieve the monitoring part. You can trigger to store the running hour of the certain device(s) and perform a calculation for the power consumption based on the records. In addition, you can even set the limit on the maximum allowed consumption, and alert yourself when the limit is coming close, or even cut off the power for that device(s) if you want.
On the other hand, some users think home automation serves for the purpose of convenience. They would love to utilize automation to allow themselves to have full control of their home. Similarly, such system shall include smart sensors built-in for devices like lighting, fan, air cond, heaters, etc. Smart enough where users can control (on/off, adjust) using their phones or tablets, anywhere they want as long as it is connected to the network.
Ecava has also taken the approach and stepped into the IoT Home Automation world. We have even built our own little demo home, in Lego version (built from scratch, brick by brick) and live it up with automation! We may be going a little bit too far and had enough fun for the house building part (who doesn’t like an over-luxury house with pools and chopper?), but the home automation concept should be the focus here.
Our little dream home has automated lights for all rooms, automated car garage gate, automated barrier entrance gate, even an automated chopper! We plugged the home system via wire to workstation (laptop), go through an IoT gateway module, and wirelessly accessible via phones and tablets. Just simply tie the lights and motors to a PLC, create a SCADA project using IntegraXor with a minimalist HMI screen for home device controls/status, map the IO with the PLC, and we are ready to roll.
The demo house automation system was showcased in a developer’s housing property gallery exhibition.
Check out the video for demonstration on controlling lights, barrier gate, garage gate and helicopter using IGX SCADA via HMI screens on laptop, phone or tablet.
Fancy an automated system for your home? Contact us to know more on how to build it.
Do you still support some legacy system that could not speak MQTT? You can easily enable your legacy system with IIoT capability by adding MQTT gateway. IGX I/O module can perfectly help you achieving just that because it’s equipped with complete MQTT elements, which are subscriber, publisher as well as broker or server.
MQTT protocol is event driven and has a Broker/Server to act as middlemen in all transactions. So the traditional read/write transaction doesn’t apply directly, but can briefly associated. For read operation of device, the site will have to publish its tag to the broker when its data is updated. And then the SCADA shall be configured as subscribe from the broker to get notified. Conversely for write operation, the SCADA shall publish any write request (from operator) to the broker, and then the IGX gateway will subscribe to the broker to perform the write operation. So you can see that both pub and sub are involved in both read or write operation. As such, be informed that MQTT driver itself can only read status from sensor/device, change of data/setting will require MQTT publisher.
In the world of industrial automation, there are situations where System Integrators are required to backup the entire system and reinstall it back somewhere. Imagine if you can clone the entire hard disk, and just restore it to your destination drive identically. Forget about needing to install and setup everything again, that could make you save up plenty of time!
Clonezilla Live, it is a partition and disk imaging/cloning program for single machine. Basically it is a useful tool to perform disk backup and recovery. It is a bootable GNU/Linux distribution for both x86 or AMD64 based computers. One of the best things about Clonezilla is despite it is an open sourced tool, you can use it for any OS, regardless it is Microsoft Windows, Linux, or Mac OS. There were tons of tutorials about Clonezilla on the internet, even the official source provided the most detailed steps. However, most of the times we only require something simple. This guide serves as the only guide you need to achieve your maintenance job at site whenever there’s hard disk backup required.
To use Clonezilla Live, first you need to prepare it in a bootable media such as CD/DVD or USB drive. That can be achieved by relevant free tools found online (e.g. Unetbootin, Tuxboot, LinuxLive USB Creator, etc.). Or, simply follow this quick guide to install the tool in a bootable USB device.
Clone the hard drive
Startup your machine, which will boot from the media you have chosen. The boot menu will be displayed as shown in screenshot below.
Proceed to choose your wanted resolution and setting. If you are unsure of what to choose, just go on with the default selection.
Follow the procedures and you will reach the screens to prompt you to choose your language and keyboard layout. Same advice, simply go on with the default selection to make things easier.
Choose Language – English
Keyboard Layout – Don’t touch keymap
Then, you will come across the screen to start Clonezilla Live. Choose ‘Start Clonezilla”.
For industrial automation scenarios, it is often more practical to clone the disk to an image. Thus, in this guide we shall proceed to select “device-image”.
Next is to select your destination to save the image. An USB drive or external hard disk is often the popular choice for SIs. Therefore, pick “local_dev” for saving in local device and proceed.
The detected local drives will be listed out. Note that the disks and drives’ naming are Linux based. Choose a drive from the list as repository to save your image.
Follow the procedures and choose to save the image in top directory of the selected drive. Then the disk space usage and details will be shown by Clonezilla.
You will be asked to select the mode to run cloning wizard. Choose “Beginner mode” will do.
After that, select on how you wish to save your image. In this case, we will be cloning the partition only. Select on “saveparts” to clone the partition to image, then enter a site & project relevant name for the image file when prompted.
Next, the procedures shall lead you to choose the source that you wished to clone / backup. Select the disk to be cloned and proceed with “Skip checking” when prompted.
You will also be prompted with more system and image checking options, as well as encryption. Proceed with your preferences.
There will be one last prompt for your confirmation to clone the disk. Hit on “Y” key when being asked to continue.
After that, the process will start, and you can notice the data block progress bar as the cloning is happening.
When the cloning is done and image saved, Clonezilla will prompt for action to run the same thing again, or you may select to power off or reboot the machine.
Restore the Image
Now that you have cloned the disk or partition of the server, and it is time to restore the image directory into the destination drive. The steps to achieve that is pretty similar to the disk image storing process.
Again, boot into the system from your media with Clonezilla. Then repeat the selections from Step 1 to 4 as mentioned above for cloning.
Note that for the detected local devices, in this case you will need to select the drive that your image directory resides.
Choose “Beginner mode” as usual, and then the list of job selection will be displayed. Now you can see that the restore options are listed, because you have selected the drive with image directory in previous step.
Go on and select on how you wish to restore your image. For example, to restore the partition, choose “restoreparts”.
Next, Clonezilla shall detect the image directory stored in the partition, proceed by selecting the image directory.
Then you will be asked to select the target partition to restore the image. List of detected partitions will be displayed, pick on whichever partition you wish to restore as destination.
Note: target partition should NOT be smaller than the image restore size!
Before the restore starts, there will be several confirmation prompts to notify you that all previous data located in the target partition will be overwritten. Proceed to restore if you are aware of this warning and have backed up everything inside the target drive (if any) to avoid any loss.
After the confirmation prompts, restore process will start.
Wait for the progress to finish, and Clonezilla shall prompt you to either power off, reboot or rerun the process.
Then it is done, your system is clones and restored to your desired destination. No endless configuration job required to get the system running as before!
It is no doubt there are tons of ways (paid or free) to backup and restore a hard drive or partition. There may still be engineers who manually backup every single data from the machine, and then re-installs the system and software, then finally re-configure them to achieve the previous functionalities. However, all these procedures may take up to days, depending on how huge the system is.
The fact is, tools like Clonezilla exists for quite some time, and it is free. It is able to perform the backup/restore job for you in such a short time and easy effort. So, days or hours, it is your choice.
Ecava IntegraXor 6.0 (Stable) is here! The beta label is finally gone for version 6.0, and it is now the new STABLE after uncountable improvements. Just in case you haven’t join the fun, here’re the shiny new features released.
Added new MQTT driver and server support. Ecava team has paid great effort to bring in both MQTT Subscriber and Publisher features to IntegraXor.
MQTT (formerly known as Message Queuing Telemetry Transport) is a publish/subscribe messaging transport protocol based on client-server architecture. It is light weight, open, simple and is suitable for use in many situations, such as for communication in Machine to Machine (M2M) and Internet of Things (IoT).
In IntegraXor, the MQTT subscriber is an MQTT client that is used to subscribe to the topics published by other MQTT clients. The received payload is written to a tag based on the selected data type. All of the IntegraXor data types are supported.
MQTT publisher in IntegraXor is an MQTT client that is used to publish tag values to other MQTT clients. And it’s very convenient that a built-in MQTT Server or Broker will be launched as well when the Publisher is started. So you don’t have to worry about learning and maintaining and managing another Server.
BACnet scheduler is now added. In BACnet Protocol, you can automate repetitive events like daily HVAC On/Off and Lighting On/Off by using Schedule Object. IntegraXor provide a user-friendly and intuitive Scheduler Page as configuration page for Schedule Object.
Added capability in report server to directly embed database result view into report.
UI language selection
In the past, you may add any language support for front end mimic. Now we have added UI language selection to IGX server and editor. Talk to us if you like your native language to be added.
V6 Beta Release:
Added OPC UA client driver (the successor to OPC classic DA) into the supported list of communication protocols. OPC UA provides plug-and-play capabilities without DCOM configuration and also provides secure and reliable connections between OPC servers.
Cluster module allows you to massively scale and distribute your SCADA installation over large geographical area. You may use cluster as I/O gateway, or isolate database related tasks like historian, alarm or report to another machine to break any bottleneck. You may also duplicate any module as many as you like to achieve partial or complete redundancy. Cluster module also facilitate project extension or delegation without interrupting existing configuration.
Download and install IntegraXor 6.0 today!
Portable edition means no installation needed. This is very common in the old days, but not anymore especially for large and complex program like SCADA.
In fact, there are many SCADA out there which requires complicated installation processes, such that to have the list of prerequisites installed first, then follow by core engine, front-end, etc. And you may need up to hours just to get the SCADA installed in your machine.
Nevertheless, Ecava IGX developers have spent a great effort by following Microsoft’s good practice and uses modern development tool for latest version of Windows, so the SCADA can work without registry entry, installing DLL and other unnecessary dependencies. There are too many benefits to make a program portable. Below are some we feel particularly true for SCADA environment.
- You could run your SCADA on portable drive like flash drive on any PC without needing to install.
- You could quickly try out certain version without going through the installation process.
- You could try out different O.S. or environment to confirm your SCADA will work correctly.
- You could have few versions running side-by-side without uninstall and reinstallation.
- You could conduct quick test on site when no system admin right is granted.
Getting a portable SCADA is very easy after version 6, all you need to do is to copy the whole Program folder. You may call it portable edition right away and start running it anywhere. A SCADA typically store its configuration into the project itself, except some minor U.I. like column width will be stored in registry.
To avoid this hassle, you may simply go to Ecava IGX SCADA Download page to grab the latest copy and start making one portable SCADA for yourself!
Image Credit: LiquidSnake @ openclipart.org
HTTPS is a more secure way for a browser (client) and a web server to communicate. This is done by using Secure Sockets Layer (SSL) which is the standard security technology for establishing an encrypted link between a web server and a browser. With this link, users can be sure that the data being sent between web browser and server stays private without the ability of interception by a third party. An SSL certificate is needed by the server to identify itself and send a public key for the browser to use to establish the encrypted link.
An SSL certificate file in the form of a pkcs#12 with the file extension “.pfx” is needed for this to work. Usually a certificate would be requested from a Certificate Authority (CA). These CA are trusted entities that will sign your certificate making it publically trusted. However, based on a some new ruling, they are not allowed to sign certificates for internal domain names or IP addresses.
How to create a self-signed SSL Certificate
A self-signed certificate would suffice for running internally or testing purposes. The following are the steps for creating a self-signed certificate to be used in your SCADA system:
First, you would require a tool called “openssl”. After installation, the path to the use the tool would have to be added to the system path. The path to add is the “bin” folder of the installation which is usually “C:\OpenSSL-Win32\bin”.
Next, open “Command Prompt” by selecting (Start -> Run) and typing “cmd” or simple searching “cmd” on newer Windows systems. Change the directory of the by typing:
cd <full directory>
This directory can be anywhere is the system for creating and storing the certificate files. Here, type the following command to create a self-signed certificate:
openssl req -x509 -days 365 -newkey rsa:2048 -keyout cert.pem -out cert.pem
You will be asked to input a passphrase to encrypt the certificate. Do remember this passphrase to be used when installing the certificate at a later time. Then just fill in the other details requested. Note that the common name is usually the domain name or IP address the SCADA is accessed from.
Next, the following command can be used to convert the “.pem” certificate to a PKCS#12/PFX file:
openssl pkcs12 -export -in cert.pem -inkey cert.pem -out cert.pfx
The passphrase for the “.pem” file would have to be entered and then followed by setting a passphrase for exporting the file. Once this is done, the “.pfx” file would be created in the directory.
From this point, the “.pfx” file would have to be imported into the system certificate store so it can be used. This is already described in the user guide linked here.
Need an app for your SCADA? Do you know you can turn your own SCADA into an app in few seconds?
It is no news that you can access your SCADA/HMI by web browsers, even in smartphones or tablets. But the best and fastest way to add your SCADA project as an icon on your home screen. In this way it is as if you are turning it into an app, and can easily launch it in ONE tap.
The ordinary way (steps):
1. Tap browser app
2. Find bookmark URL / Type URL for SCADA project
3. Enter the URL
The Best & Fastest way:
1. Tap app icon
To add the SCADA app icon to home screen, simply follow the steps below.
Launch the browser app from your smartphone or tablet (despite any Operating System). For example, the Chrome browser app. Then type or open the URL for your IGX SCADA project, as shown in a smartphone screenshot below.
Then, tap on the top right corner to reveal the menu (it should be a drop down with listed options). Then select the option for “Add to Home screen“, as shown in screenshot below.
After that, you can notice an additional app icon now appeared in your homescreen, which is the shortcut to your SCADA system. You can now simply tap on it and open the HMI of your SCADA project instantly.
Every software has its best practice(s) of using. For Ecava IGX SCADA, there is a useful setting called “Triggered By”, which is a compulsory setting for several modules like Script. This setting determines how should the particular action or event be triggered.
Script module is very useful in SCADA projects, especially when you have specific conditions to meet or need to have advanced mathematics function for certain parameters, or other advanced functions to program. Now the question is, how do you configure to execute these scripts in your project? Do you need to keep them running for every second? The clever way here is to use event based trigger, i.e. trigger it by event instead of timer.
For instance, if you want to execute a calculation ONLY when a button in HMI is clicked, then you wouldn’t want to execute it when there is no action sent from the button. In that case, you should configure the script to be triggered by event. This will ensure the system to avoid unnecessary background operation that might drag the process time.
As shown in screenshot below, let’s say ‘calculation’ is a script to calculate some selected parameters from input devices. The requirement here is to only perform the calculation when the operator hits on “Start” button. So that it can capture the correct set of data for calculation execution.
For this scenario, select “Tag” (instead of “Timer”) for the setting “Triggered By”, so that the script will only execute when there is a trigger to the selected tag’s value.