Websocket for real time high performant SCADA

HA is not in my mind at the moment.

Yes, Ignition can already do the things you listed in your specs. There is no need for a customized version of Ignition,
just integration work to fit the needs of your client.

There is nothing wrong with any of those protocols. Z-Wave and Wifi to sensors and switches works well. For building automation systems, Modbus and BacNet are popular options. While I dislike Zigbee as a general protocol, none of those methods have “failed”.

I am not going to threadjack that thread. First, you can not use JavaScript inside Ignition. Secondly, the MQTT Engine module from Cirrus Link already handles JSON payloads and creates tags from the structure accordingly. Iff you want to talk to MQTT servers, you need to use Cirrus Links’ modules. They have the domain specific expertise, and the modules work very well.

Jython can handle JSON payload very well inside Ignition via web socket. So why do we need Cirrus Link module?.

Your question inside that thread was

I am stating that the existing MQTT modules written by Cirrus Link and handle JSON payloads.

Let’s continue the discussion in the topic below. It will be more relevant. Thanks.

I guess mr Alamsha wants to know if ignition can receive/send Json payloads directly using Jython without the intervention of mqtt.

My solution is using nodejs server in berween ignition and json payloads (from mr Alamsha!) . It will communicate with ignition on tcp/up socket using my gatewaycomm ignition module and json on the other end.

1 Like

I always eagerly wait for your reply. You are a very good teacher and i have learnt certain subtle things in technology from you which is not very obvious. This is the reason, i believe that you know what you claim. Let’s discuss the MQTT stuff in the above link. A hot topic is going on and i would like to know your answer. Thanks…

Well I have nothing to say there as it’s mqtt stuff which I am not conversant with. But I think there is a way of achieving it using jython.

1 Like

I will use Django because it speaks the natural language of Ignition. I can use Python on both side. Ignition+Djanago = IgnitionML.

I have no problem with django if jython 2.5 supports it? Some scripting expert like Kevin McClusky or Phil or Kyle may be able to comment in that. I only need existing jyton server side library for my purpose of handling your json payloads.

Django 2.x supports Python 3.4+. Ignition is currently running on Jython 2.5.3. They are light years apart. It will get closer when Ignition moves to the 2.7 branch, but afaik, Jython will not be moving to 3.x any time soon.

1 Like


Django 1.11 was the last release to support Python 2, specifically 2.7.
Ignition’s Jython implementation is based on python version 2.5.

1 Like

This is the reason i chose Django as the ML engine for Ignition. All the heavy stuff i can do on Django and leave Ignition to do the normal SCADA stuff. Django+Ignition for ML stuff commands very high respect in the minds of big clients(especially IBM guys). SI’s must look into this opportunity seriously.

I am trying to use ML for maintenance optimization aka predictive maintenance. One of the interesting challenge is, using tensor flow to predict possible Alarms in the next 72 hours by analysing the plant history of, say, past 3 yrs. Decision makers get excited about this possibility. They get hooked :slight_smile: I haven’t picked up the tips and tricks of ML yet but certain correlation results i found in my experiment were quite shocking. Very good learning material is available on Youtube.

One thing for sure. ML and AI are the buzz word to make money with old data lying unused in the corner of a control room :slight_smile:

AI and ML stuff as I said before is over rated and hyped in industrial automation world. But I guess analysis of past alarm data can certainly give some actionable insight for future by analysing outliers in present alarms from past data! Only question is which tools to use for training and for online? Will Watson work ? Is tensorflow the solution or other tools required?

Excellent idea. If you’re really trying to get those ‘’‘Decision makers’’’ riled up about your ‘’’’‘solution’’’’’ then it’s almost a necessity to implement blockchain in some fashion. When dealing with such costly errors, it is important to make sure your results are both replicated and validated. https://www.youtube.com/watch?v=aqAajTpzK3o


I don’t know which idea you are talking about, if it is usage of NodeJS, indeed I am a fan of NodeJS for its simplicity. However, while we are going ga ga over nodeJS, there is nothing magical about it as projected in the video. In fact NodeJS is pretty dumb compared to other web technologies. It simply reduces its work to just responding to each request whichever connection it comes from using websockets and be ready for processing next request. The onus of processing the request without blocking it, is shifted to the developer to quickly respond to it or to delegate it to an asynchronous call and return to OS, or else the whole system will hang or crash! Of course there are instances when you just cant afford to use asynchronous calls such as when reading a file to initialize paramaters or read on a tcp socket, then you have to use a blocking call or an async block judiciously. So its more of a challenge for the developer to visualize what’s going on in your system. But that’s an interesting exercise to design a system based on NodeJS. Life is tough in NodeJS but rewards are high!

The ability of handling millions of users in NodejS is irrelevant for SCADA application, as number of users will be few hundred at max! Though unlimited clients is a USP for all web based SCADA’s like Ignition, compared to client/server based traditional SCADAs.

I didn’t understand your suggestion on usage of block-chain ! It looks too far fetched!