963b6805a8
* 2022 Refresh Changes Main Readme Added Alan Kleinert as Contributor Student Challenge 1 Corrected Locations for Device Streams in Challenge 1 (Duplicate Central US to Central US EUAP (Early Updates Access Program) Fixed broken link for "IoT Edge BackGround Deck" and removed capitalization from the G in BackGround. Coach Challenge 1 Added additional guidance and references to creating a "virtual" edge device Student Challenge 2 Removed "Software ToolBox Top OPC Server" from options for OPC as there are no coaches notes on it and the least favorable option out of the 3 Coach Challenge 2 None Student Challenge 3 CommandLine link was broken so replaced it with active link Coach Challenge 3 "Details on container create options" link was broken. Replaced with new active link. Added two additional guides to help with OPC Publisher config if needed. Changed "Details" hyperlink to TPM Attestation Student Challenge 4 TSI is being decommissioned and is no longer being developed on. This challenge should be refactored to use ADX and PowerBI Coach Challenge 4 TSI is being decommissioned and is no longer being developed on. This challenge should be refactored to use ADX and PowerBI Student Challenge 5 Changed bases to based "Create a Query that filters or aggregates your data bases upon business requirements. Test this filter/aggregation (HAVING clause for example) but don't save in the query, only test." Coach Challenge 5 None Student Challenge 6 Removed duplicate of manifest, Switched the wording to "you only target "Push the deployment manifest manifest to the IoT Hub, making sure that only the you target the tag you created in step 1, i.e., only the devices with that tag receive the deployment." Coach Challenge 6 None Student Challenge 7 Recommend removing Device Streaming all together as the new Device SDK no longer includes necessary packages. It doesn't appear any more development is going into this at this point. Azure/azure-iot-sdk-csharp: A C# SDK for connecting devices to Microsoft Azure IoT services (github.com) Coach Challenge 7 Remove * Update Challenge-05.md * Update Challenge-07.md * Update Challenge-01.md Fixing the link so it does NOT open the WTH repo. Co-authored-by: Peter C. Laudati <plaudati@hotmail.com> |
||
---|---|---|
.. | ||
Coach | ||
Student | ||
README.md |
README.md
What The Hack - IoT Process Control at the Edge
Introduction
Azure IoT capabilities offer a number of benefits to customers seeking to manage and operate embedded devices at scale but also to manage, deploy and operate Edge devices deployed to remote endpoints at scale. IoT Edge can be deployed to Windows/Linux devices running ARM/x86 processors of varying sizes up-to and including low-power compute devices like a Raspberry PI.
IoT Edge also offers some unique and powerful capabilities for industrial customers running manufacturing, inspection or control applications inside a plant. These workloads require low-latency connections to align with the tact-time of assembly/manufacturing operations and often times customers are concerned (rightfully so) about relying on WAN connectivity for their plant to operate. This is where IoT Edge can be deployed to offer value to customers needing to run, local in the plant, capabilities to support data collection, processing or to integrate as part of a closed-looped control system where close proximity to devices like Programmable Logic Controllers (PLCs) are running process control functions in a plant. Typically these customers have additional security concerns opening up industrial control system networks that are isolated by design for security reasons directly the Internet or to Internet connected services. IoT Edge can play an important role in this scenario to deploy local to a customer's environment features of Azure such as Azure functions, ML services, data collection/aggregation operations and closed-loop control applications in a secure and low-latency manner while offering the ability to manage and operate these environments at scale from the cloud.
So how can an Edge device connect to these industrial control networks? Usually these networks are specialized to the manufacturer of the PLC such as ControlNet, Profinet, Modbus and many others. For a compute device to easily communicate to these networks manufacturing plants typically employ OPC, or Open Platform Communications as a means to facilitate direct communication to industrial control hardware. This involves software from vendors such as Kepware, Rockwell Automation, Iconics, Siemens and countless others the bridge the gap between the control network and open-APIs that can be used by software to pull/push data to these PLCs running industrial applications/operations.
So how does this extend to the Azure IoT Edge space and how can this help? IoT Edge offers capabilities to run custom 'code' or commercially supported modules on the compute appliance to perform tasks or to be triggered by an external event. Microsoft makes available Industrial IoT modules that can be deployed to IoT Edge devices deployed to plants that allow these devices to easily extract and interact or be triggered by data/state changes on PLCs using OPC! This OpenHack will involve building a solution on how this can be leveraged to solve many common engineering scenarios in the industrial control space.
Background
Contoso has a sophisticated manufacturing environment distributed across many plants in many countries. They use a number of PLCs in these plants but have a common vendor they use for an OPC/UA server to capture data for their plant historian. They would like to take advantage of real-time analytics capabilities of the cloud to stream their production process control data generated by sensors and instrumentation captured by their PLCs in the cloud. Their security team is concerned about opening their OPC server up to public internet connectivity but their quality and maintenance teams would both like to use cloud ML and time-series reporting capabilities to analyze data emitted from PLCs. Your goal as an architect is to help them plan a solution on how to safely extract this data using existing compute resources while addressing their concerns for security.
This hack includes presentations that feature lectures introducing key topics associated with each challenge. It is recommended that the host present each lecture before attendees kick off that challenge.
Learning Objectives
In this hack you will solve common challenges for companies planning to use Azure IoT in Industrial IoT scenarios. This includes:
- Deploying and configuring the IoT Edge runtime
- Deploying modules to the running IoT Edge device
- Managing/monitoring/configuring IoT Edge devices at scale from IoT Hub
- Configuring an OPC (simulator) to generate factory data
- Interfacing IoT Edge to the factory simulator to capture data and push to the cloud
- Consuming data published to the cloud for analysis and reporting
Challenges
-
Challenge 1: Deploy IoTHub/Edge
- Get familiar with the basic concepts of Azure IoT Hub and Azure IoT Edge.
- Iot Hub Creation
- Edge Device creation
-
Challenge 2: Deploy OPC Simulator
- OPC Simulator to serve as our virtual 'factory'
-
Challenge 3: Deploy Industrial IoT solution
- Deploy Industrial IoT platform to the IoT Edge
-
Challenge 4: Route messages and do time-series analysis
- Route IoT Hub data to Event Hub
- Route Event Hub to a time series data store
-
Challenge 5: Process Steaming Data
- Stream processing
- Reading from IoT Hub
- Aggregating/filtering data (querying)
- Output data to data lake & Power BI
- Stream processing
-
Challenge 6: Deploy to devices at scale
- Use Deployment manifests to deploy modules to IoT Edge devices at scale
-
Challenge 7: Connect to Devices with Device Streams
- Use Azure IoT Hub device streams (in preview) to connect to IoT Devices over SSH
- Close down SSH conectivity in a Firewall to confirm remote access is not impacted
Repository Contents
../Coach/Presentations
- Contains all presentations listed in the Introduction above.
../Coach/assets
- Screenshots and ARM templates to deploy PLC simulator
Contributors
- Ryan Berry
- João Pedro Martins (@lokijota)
- Orrin Edenfield
- Amit Agrawal
- Alan Kleinert