The EdgeGateway integration with Cisco Routers reads data from PLCs and publishes it to MQTT Brokers using the SparkplugB specification. This integration allows for data collection from industrial devices, transformation, and network transmission.
Deploying the Linux-based software platform on the router extends its utility beyond data publication to include network management and integration functionalities.
On this page:
Key Features:
- Data Collection: Reads data from PLCs, including Rockwell ControlLogix.
- MQTT Publishing: Uses SparkplugB for structured data exchange.
- Extended Scripts Functionality: The built-in Scripts Module allows you to run custom code in the device for data normalization and other requirements.
- Manageable distributions: Docker distribution deployment for easier management and integration.
System Requirements
- Cisco Router, model IR1101, and the Cisco Local Manager software.
- *.tar file, containing the docker image with the application to be installed.
- iox-edge-gateway-Arm64.tar, if your Router's processor is ARM.
- iox-edge-gateway-X86.tar, if your Router's processor is x86.
- MQTT Broker with support to SparkPlugB specification.
- Windows computer with installation files for the Designer configuration tools.
Where to get the required components:
- Cisco Hardware and Software: Directly from Cisco and its distributors.
- Docker Image with EdgeGateway: From Tatsoft and its integration partners.
- MQTT Broker: You can use the Built-in Broker, or any broker compatible with MQTT or MQTT SparkplugB.
- Designer configuration software: Download the Designer configuration software free of charge here.
Functionality Overview
The EdgeGateway application consists of a docker image that contains a ProjectServer application, which is a server that allows the Solution Designer on Windows to connect to it and deploy the necessary files to run any solution in Linux (or Cisco in this scenario).
By having the full platform capabilities running inside your Cisco Router, you will have access to many communication protocols (e.g., MQTTspB, ControlLogix, Modbus, etc.) as well as scripting (to make calculations based on the data being exchanged through your devices).
One example of a program behavior is illustrated as per the image below.
EdgeGateway on Cisco Routers, getting data from ControlLogix, publishing to MQTT
Despite being deployed in a docker container, known to have volatile memory (that is not retained), this EdgeGateway application makes use of a retentive memory area inside the router to store the installation and Solution Files.
Installing and Deploying Apps
The first step is to make sure you have downloaded the *.tar file with support to your Router's processor. Then, choose one of the following ways to install the application.
Using Cisco Local Manager
Cisco Local Manager is a platform-specific application that is installed on a host system as part of the installation of the Cisco IOx framework on that device. It provides a web-based user interface that you can use to manage, administer, monitor, and troubleshoot apps on the host system, and to perform various related activities.
For more information about it, please refer to the Cisco official documentation. To install and deploy your application, follow the procedure below.
- Go to Applications Tab in the Menu Bar.
- Click Add New.
- Select the *.tar file and enter a friendly name to the Application. It will be used as an Identifier.
- Click Activate to activate the app.
Below you will find some definitions for terms frequently used when dealing with applications in Cisco Environment:
- Deployed: Means the Application has been imported.
- Activate: Reserves host system resources that the app requires to run, designates the network from which the app obtains its IP address, and assigns host system serial ports for use by the app, if requested.
- Start: Starts the app container for the app on the host system. CPU and memory (RAM) resources that were reserved for the app become in use.
Using Cisco IOx Client
For this procedure, you must have IOx Client installed on your environment.
The official installation guide and documentation for IOx Client is available here.
- Launch the IOxClient.exe in your OS command line terminal. It is easier if you add it to PATH and run the terminal from the same folder as your *.tar file.
- If your IOxClient does not have a profile connected to the Router already, do as follows:
ioxclient profiles create // here you will connect to the Router // values inside brackets will be used by default if empty Your / your organization's name : <OrganizationName> Your / your organization's URL : <OrganizationUrl> Your IOx platform's IP address[127.0.0.1] : <RouterIPAddress> Your IOx platform's port number[8443] : <RouterPortNumber> Authorized user name[root] : <UserName> Password for <UserName> : <PasswordForUser> Local repository path on IOx platform[/software/downloads]: <Repository> URL Scheme (http/https) [https]: <TransferProtocol> API Prefix[/iox/api/v2/hosting/]: <ApiPreffix> Your IOx platform's SSH Port[2222]: <SshPortForRouter>
- Run the following commands to install, activate and start the package:
ioxclient application install <AppName> <PackageName>.tar ioxclient application activate --payload activation.json <AppName> ioxclient application start <AppName>
Where AppName is a friendly name used to identify the application inside the Router.
- Use the following commands to stop/disable and uninstall the application:
ioxclient application stop <AppName> ioxclient application deactivate <AppName> ioxclient application uninstall <AppName> <PackageName>.tar
Use the following command to see the application status
ioxclient application status <AppName>
Deploying Solutions
For those who are familiar with Solution Deployment in Linux Environments, this will be the exact same procedure.
With the Cisco application running, open your software's Welcome app and navigate to Server Tab.
Under ProjectServer click on Remote and enter your Cisco's IP Address (syntax: http://<IpAddress>:3100/
) and click on Connect.
Now click on Update to upload the files for the Runtime. A popup will open asking if you want to copy all files or just the new ones.
If you already have a Solution created, click on Upload Solution to send it to the Router. If you don't, then a new Solution must be created in your Windows Environment to be uploaded to Cisco (meaning that you will have to disconnect from the router, create a new Solution, then reconnect and upload it).
Only EdgeGateway Solutions are allowed to run under the Cisco License, as it can be seen in the License Tab.
Make sure that Solutions uploaded to Cisco have the correct Product Family and Target Framework.
Finally, all we have to do now is configure our Solution with the desired Communication Protocols to have our gateway working.
Troubleshooting
App was missing at least one interface
If you encounter this error, it means that your router is missing a network configuration for applications. To solve it, follow the procedure described at Configure a VirtualPortGroup to a Layer 3 Data Port section.
Connect to your Router via SSH (either via terminal or in Cisco Local Manager) and do as follows.
In this section: