Websocket for real time high performant SCADA

This is one point where Ignition beats every SCADA vendor hands down. I have strongly recommended Ignition for this and hope it goes well.

I agree with you. I think, IA can build a custom Ignition data server which simulates a big software Modbus Master/Slave RTU on Linux + retain last tag values + serve Alarms and Tag data as JSON Payload to IT servers + serve web pages to Ignition clients. Other things IT will take care.

I have proposed a pilot project to start with and build upon it gradually. Let’s see how it goes. Thanks for the wonderful discussion.

You love to use MQTT for file transfer and i love to use FTP. I will never use MQTT for file transfer.

I am happy with Modbus + FTP RTU. I don’t want MQTT RTU.

For home automation projects, i 100% support MQTT. But for data collection, i will use only FTP. Again HA is not my core domain and i can’t discuss much on this.

For me as well the ftp bit instead of mqtt or pubnub was confusing ! If you are confident that your RTUs can communicate with a central computer using ftp then it’s not difficult to interface it to ignition server using jython scripts on server or nodejs using JavaScript. I am a fan of JavaScript and modejs. As files are received from RTUs over ftp they can trigger an event on modejs to update ignition tag values in memory. Nodejs is required as JavaScript cannot do file iio , where as it’s excellent in communication. We will not need the other modules of arscada and m scada , they will be optional

As I had mentioned and you also suggested it’s better to pilot it on a simple test case. Both approaches of jython and modejs can be tried. I can do the modejs approach faster and someone else can do the jython approach faster. At least we will understand each others requirements and approaches better.

In reply to you question "python scripts also use wesocket?’ I guess python scripts on server will update ignition tag values using its appropriate communication library, (you can refer to it’s documentation) to update tags values once ftp files are received . There is no wesocket involved here. Njscada also uses socket.io only for communicating with its arscada or mscara clients. If we are not using these modules of njscada then you are using njscada as nodejs server for file io as JavaScript cannot do disk read write.

You can use ignitions unlimited clients for CCC and mobile clients that it supports.

Please go through my specs once again patiently and it’s final. My reply above to Kyle_Chase is what i wanted from Ignition and i hope IA can do it.

Your JS/Python coding skills and deep knowledge on Ignition engineering will be a very good asset for any Ignition project. I have already decided to engage you, if everything goes well.


Please post your views there. Thanks.

Only missing link for the jigsaw puzzle is the FTP RTUs. Pubnub also provides interface with Watson and offers capability of unlimited storage of messages sent or received thru it on it’s servers in cloud for persistence. But we are not yet decided if pubnub or mqtt are required at all if ftp is going the job!

I will be glad to do a pilot with you on experimental basis.

But of course njscada can talk to your RTUs as well on socket.io (web sockets) in addition to mscada and arscada clients (if any!). However On RTUs you have to send packets as stringified JSON files rather than ftp. We have see if nodejs supports FTP client and server npm then it can directly send receive ftp files directly to you RTUs.

Don’t worry. That’s my baby :slight_smile:

I would like to call the front end data server as Commander :slight_smile: My first preference for Commander is customized Ignition. If IA can’t do that, i will look into your offer.

Nevertheless, your njscada experience elevates you as one of the best Ignition experts. My opinion is, you can make more money with Ignition than njscada. Ignition is like Rolls Royce. Whereas njscada is not even a product in the first place. It’s a very good showcase of your coding skills. Can you submit an evaluation copy and compliance statement of njscada to the consultant?. Without this, it will never ever prequalify as a SCADA product anywhere in the world.

I think, you can repackage your njscada for home automation on Ignition Edge platform. If you like. we can discuss at the MQTT thread posted above. i think, you will get very good support from IA too.

Njscada is targeted as an add on to ignition. The front end ftp server can be built in njserver or a third party open source Linux based server that you have used in your project itself! From there data can be pumped in and and out of ignition using jython scripts or njscada.

Another advantage of njscada will be additional interface of arscada and mscada clients if customer prefers.

Regarding your home automation market for njscada it’s possible to integrate with ignition edge thru OPC server. Alternatively it can integrate directly with RTU s on SNMP or ftp protocols without the edge .

How will you collect data from HA devices to the OPC server?.

Sorry for my late and brief responses I am enjoying holidays in Europe till mid June. HA devices I guess communicate over zigbee,modbus, backnet ,modems and rtus We need drivers for these in opc ua server in ignition edge or njscada

No. All those projects have failed and trashed. I have updated my post above. Pls check it.

Which post? Which projects?

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?.