top of page
Writer's pictureBalajikasiram

Blog post 10 : Anatomy of IIoT : The Edge : Edge Computing

Updated: Aug 15, 2020



Edge Computing - Old wine in a new bottle ?

Edge computing is not exactly new. In the Industrial world, computing at the edge (i.e.) computing nearer to the source of data generation has long been in existence in the form PLCs / PACs [1], Intelligent I/O systems and so on.


So, what do today’s Edge devices bring to the table from a computing perspective?

Let us explore further.


Edge computing capabilities of today's Edge devices are a combination of the following.

  1. APIs for accessing and managing system resources

  2. Data processing and Analysis APIs

  3. AI at the edge

  4. Integrated Development environment

  5. Run time environment that supports edge computing

 

1. APIs for accessing and managing system resources

Given below is an illustrative list of APIs that help in accessing and managing the hardware and system resources of edge devices. These APIs help in providing a uniform way of interacting with the hardware and thereby standardize application software development.

Please note that the above set of APIs are illustrative and many more APIs are available for accessing and managing system resources of Edge devices. These APIs enable configuration of device parameters, acquiring data from the field, manage connectivity options, handle power management and so on.

Now we will move on to the next set of APIs that are used for data processing.

 

2. Data processing and Analysis APIs

Given below is an illustrative set of APIs for handling, processing, and analyzing data acquired by edge devices using system resource APIs.

 

3. AI at the Edge Deploying select AI functionalities ( Machine learning [2], Computer vision [3] ) at the edge provides great flexibility and extensibility for developing complex IIoT applications.

AI at the edge shall be covered in detail in a dedicated blog post (Upcoming)

 

4. Integrated development environment

An Integrated development environment is meant to enhance productivity of application developers by providing a unified application development environment for building the complete edge application.


A typical IDE provides features for authoring, editing, compiling, deploying and debugging edge applications. Listed below are some of the key features of IDEs for edge application development.

  • Configuration – Ability to seamlessly create and configure a new edge application project with required hardware, system libraries, and application software libraries

  • Authoring / Editing – Application editor that enables programmers to write modular application programs in programming languages compatible with the edge device. Some IDEs are compatible with specific programming languages, for instance Codesys IDE is compatible with IEC 61131-3 [4] programming languages. IDEs like Eclipse support multiple programming languages. Other authoring features include syntax highlighting, code comparison, import / export of code and configuration, code search, intelligent code completion, code refactoring

  • Compiling – Code compilation for creating binaries compatible with the edge hardware based on hardware configuration in the project

  • Connecting to the target hardware – Ability to securely connect to the edge device hardware either locally or remotely to download configuration, firmware, application programs

  • Debugging – Single step, break points, skipping section of code, connecting to the edge device to monitor data online, forcing values are some of the debugging features needed for an edge device IDE

  • Version Control – Integrated version control system within the IDE to manage edge application programs

  • Visual Programming – This feature lets application developers create programs by using a drag and drop editor. Visual programming has been in existence since quite some time in the Industrial world in the form of ladder logic, function block programming, sequential flow chart. Of late, this method is gaining prominence in the field of Industrial IoT for creating simple application programs using pre-built libraries. Popular visual programming tools include Node red, Reactive blocks for Eclipse, Scratch for Android, PTC Vuforia studio for Industrial AR

  • Emulator – Ability to emulate the target edge hardware device and test the edge application program before deploying in the actual edge device

 

5. Run time environment that supports Edge computing

Run time environment is an execution environment provided by the operating system for execution of edge application programs, sending commands to the processor, accessing system resources such as memory, software libraries, interface with system hardware, and provide all necessary services and processes for executing application programs.


Azure IoT edge runtime, Eclipse 4diac FORTE for constrained devices, OSGi based run time environments, run time environments provided by RTOS (Free RTOS, Azure RTOS) are some examples. Run time environments in the context of AI at the edge shall be covered in a separate blog post (Upcoming)

 

So, is Edge computing "Old wine in a new bottle ?"

Intelligent edge devices with compute capabilities have been in existence in the Industrial world since quite some time. These devices had the capabilities to interface with sensors and controllers, supervisory systems, perform real time computations at the device level and take real time actions. Given below is a comparison are the key features that today's edge computing devices vs. older devices.

Today's edge devices certainly have a lot of functionalities and features borrowed from the devices from the Industrial world. That said, today's edge devices also bring in new features leveraging advancements in technologies.

Today's Edge devices are a delicious combination of very good old wine and fresh cheese.


In this post, we read about edge devices and edge computing. The next post is all about the combination of "Edge and the Cloud" ...

 

[1] Programmable Logic Controllers (PLC) and Programmable Automation Controllers (PAC) are real time, deterministic, programmable, industrial control systems used for automating and controlling operations of equipment and machines in industrial environments

[2] Machine learning is a subset of Artificial intelligence that provides computing systems the ability to learn and apply the learning. Machine learning can be further divided into supervised, unsupervised, reinforcement learning, and deep learning. For example, a machine learning model can be developed and trained using supervised learning techniques.


[3] Computer vision is a field of computer science that enables computers to see, identify and process images similar to human vision. Neural networks and deep learning techniques are used for computer vision.

[4] IEC standard for programming Industrial control systems



120 views0 comments

Comments


bottom of page