我目前正在物联网环境中进行系统(SCADA)的实时监控、控制和优化项目。数据的获取和资产的控制将通过REST api和来自物联网平台(Cumulocity或Predix,尚不确定)的通知来完成,物联网平台本身从传感器收集测量值并向设备发送操作。
然后,服务器应用程序将控制系统状态,设置警报,并做出优化决策(例如,设备规划)。
为了测试系统的行为、对决策的响应并找到良好的优化解决方案,我还计划对系统进行模拟(甚至可能对实时测量进行模拟)。
最后,Angular JS中的HMI将提供给用户,让他输入用户输入数据,跟踪系统/警报的当前状态及其历史记录,并被告知所做的决定。
我不确定所需的计算,但模拟可能会非常繁重,优化解决方案可能也有点繁重。
一家公司通常会用C实现这样的应用程序,也可以用Python实现(还需要快速开发),但我想用Node.js来实现。我找到了一个用于离散事件模拟的JS库Sim.JS,但我不知道它是否可以处理复杂的系统模拟。
简言之,你认为为什么不使用Node.js来实现这一点吗?类似的事情已经做了吗,比如在物联网监控方面?
非常感谢你的帮助,
Layvier
类似的事情已经做了吗,比如在物联网监控方面?
是的!
a) 在商业上,node.js被用于myScada-成熟的SCADA系统!
b) 您可能还想检查GitHub上node.js的SCADA/HMI节点模块的源代码:https://github.com/vytronics/vytronics.hmi
c) 或HMI SCADA项目示例https://github.com/vytronics/vytronics.project-树莓派的多平台支持!
您的问题有点笼统,但我会尽力提供帮助。我想你在问一些事情:
- node.js是一个可行的开发/扩展平台吗
- sim.js是创建模拟的可行框架吗?有替代方案吗
最终,你需要决定什么对你的项目很重要。
对于第一个问题,有许多node.js在生产系统中使用的例子。它的性能可能会有争议,并且会针对特定的用例,所以我只向您介绍相关问题:如何决定何时使用Node.js?
对于第二个问题,您可以在类似sim.js的框架中查找一些内容,包括
a) 正在进行多少积极的开发
您可以在源代码中查找最后一次提交日期(5年前):github 上的源
b) 社区为提供多少支持
您可以在社区中寻找讨论(多年来的5个主题):谷歌集团
c) 许可证对你的应用程序有效吗
根据simjs.com的说法,许可证是LGPL,可能对您有效,也可能不适用:lgpl允许我做这个吗
根据您决定使用的平台,可能有其他模拟数据源可供您使用或适应您的需求。例如,Predix机器数据模拟器,但可能还有许多其他模拟器。
希望这能有所帮助。