Python Support for Adapters, Processors, & Sinks #2824
Replies: 4 comments 5 replies
-
Hello @mtaylor-os, thank you for starting this disucssion. Regarding Cheers, |
Beta Was this translation helpful? Give feedback.
-
I did not try out the functions yet, partly because I've not yet found good documentation on where they can and cannot be used and what are their limitations. Regardless, the limited documentation I did find did not appear to say I could use them to create processors, adapters, and data sinks. Our use cases are many, but boil down to adding compute abilities to our existing SCADA systems. First we'd need to ingest data from the SCADA into StreamPipes, which means StreamPipes would need to serve as an OPC-UA client or modbus-tcp client and pull data in. Then do the compute work such as long-term trending, continuous regression analysis, or advanced energy usage modelling with multiple data sources. StreamPipes would then need to provide that computed data back to the SCADA system, which means StreamPipes would need to be an OPC-UA server or modbus-tcp server. Finally the SCADA system would pull data from one of those StreamPipe servers. Based on the documentation, StreamPipes does not appear to currently support the above workflow. Because many of our controls engineers have experience with Python due to its ubiquity, and those same engineers think of coffee when I mention Java, the thought was Python could be used to fill in the gaps...and hence the question. Appreciate the help! |
Beta Was this translation helpful? Give feedback.
-
Dang, I was really hoping to decouple our SCADA system from StreamPipes by having StreamPipes be an OPC-UA server. If StreamPipes can only serve as an OPC-UA client then new tags must be made on the SCADA system, then StreamPipes has to be updated to write to those tags. The idea behind all this is to use our SCADA system to continue collecting some 200k-300k tags as it has always done. Then StreamPipes could pull a few of those tags, manipulate* them in some way, and provide the calculated results as a new set of tags. Our SCADA system could then read those new tags and historize them, alarm on them, send emails on them, all the things our controls engineers already do with the SCADA system.
|
Beta Was this translation helpful? Give feedback.
-
SCADA systems are inherently large, complex, and expensive beasts. As such they typically target mainstream communication protocols commonly in use for industrial control systems. Such communication protocols that can be used include Allen Bradley specific protocols, Siemens specific protocols, ModbusTCP, and OPC-UA. With a few rare exceptions, pushing data to a SCADA runs contrary to how they are designed so support is limited or unavailable. It sounds like StreamPipes may be able to provide the functionality, yes. Of course testing will confirm that in due time. The only missing piece is indeed the ability to pull data from StreamPipes to our SCADA systems. Because controls engineers commonly use Python, they are familiar with it...not so with Java. This means that improved Python support would allow controls engineers across the globe do things like create a new data adapter that can interface to some specialty sensor (for example our ultrasonic flow meters that use a simple but proprietary TCP protocol), create new processors (like how we are looking to create an energy consumption calculator to hone in on high energy users), and custom data sinks (we would love to output data to a different SCADA system another plant uses, and hence allow integration across plants). We do very much appreciate the information and support, thank you. |
Beta Was this translation helpful? Give feedback.
-
The Idea:
Python integration with Apache StreamPipes allowing Python to be used to create custom Adapters, Processors, and Sinks.
Background:
Having worked in industry for many decades now, and seeing where SCADA systems are going, it feels like StreamPipes could be a strong player in the data manipulation workflow if it has improved Python support.
Most SCADA systems already have Python support (Ignition, some iFix) or planning on it (DeltaV) so there's a large group of capable engineers that already understands basic Python scripting. However, the one thing all these SCADA systems lack is robust data processing...aka compute abilities. They take data from PLCs, display it, trend it, and alarm on it. But our organization, like many across the globe, are moving towards computed data analysis such as statistical analysis on a process variable (think 6-Sigma), inference and prediction (think Artificial Intelligence), and energy/green-house-gas reduction (think mass + energy balance). All these calculations are challenging to do in the native SCADA system...I've tried. If Apache StreamPipes provided more robust Python integration it would elevate the platform above NodeRed and NiFi...the two current contenders in this field and what many controls engineers currently lean towards with compute needs arise.
Beta Was this translation helpful? Give feedback.
All reactions