3

I am currently working on a project of real time monitoring, control and optimisation of a system (SCADA), in an Internet of Things context. The acquisition of the data and the control of the assets will be done through REST api and notifications from an IoT platform (Cumulocity or Predix, not sure yet), itself collecting measures from the sensors and sending operations to the equipment.

The server application will then control the state of the system, set alarms, and make optimised decisions (plannings for the equipment for instance).

In order to test the behaviour of the system, the response to a decision and finding a good optimisation solution, I plan to also make a simulation of the system (maybe even a simulation of the real-time measures).

Finally, an HMI in Angular JS will be provided to the user for him to enter the user input data, follow the current state of the system/alarms and its history, and be notified of the decisions made.

I am not sure of the computation needed, but the simulation will probably be quite heavy, and the optimisation solution may be a bit heavy too.

A company would usually implement such an application in C, and it could also be done in Python (fast development is also needed), but I was thinking of doing it with Node.js. I found a JS library for discrete event simulation, Sim.js, but I don't know if this could handle a complex system simulation.

In short, do you see any reason why not use Node.js for that ? Does something alike has already been done, in IoT monitoring for instance ?

Thanks a lot for your help,

Layvier

Layvier
  • 63
  • 1
  • 5
  • In my opinion the question has some value and does not deserve down-voting. (It sits at -2 at this moment). – sg7 Jun 04 '16 at 01:40

2 Answers2

1

Yes, Node.js is a great fast framework for SCADA.

Does something alike has already been done, in IoT monitoring for instance ?

Yes!

a) Commercially, node.js is used in myScada - fully fledged SCADA system!

b) You may also want to check source code for SCADA/HMI node module for node.js on GitHub: https://github.com/vytronics/vytronics.hmi

c) Or sample HMI SCADA project https://github.com/vytronics/vytronics.project - multi-platform support from Raspberry Pi!

sg7
  • 5,365
  • 1
  • 30
  • 39
0

Your question is a bit general, but I'll try to be helpful. I think you are asking a few things:

  1. Is node.js a viable platform for developing / scaling
  2. Is sim.js a viable framework to create simulation and are there alternatives

Ultimately you will need to decide what is important for your project.

For the first question, there are many examples of node.js use in production systems. How well it performs can be controversial and use case specific, so I'll just refer you to related questions: How to decide when to use Node.js?

For the second question, some things you may look for in a framework like sim.js include

a) how much active development is being done

You can look for the last commit date in the source code (5 years ago): source on github

b) how much support does the community provide

You can look for discussion in the community (5 topics over the years): google group

c) does the license work for your application

The license is LGPL according to simjs.com which may or may not work for you: does the lgpl allow me to do this

Depending on the platform you decide to use, there may be alternative simulated data sources you can use or adapt to your needs. For example, Predix machinedata-simulator but there are probably many others.

Hope that helps a bit.

Community
  • 1
  • 1
j12y
  • 1,391
  • 3
  • 13
  • 20