Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page properties
hiddentrue
idconnector-metadata

Property

Value

Sector

AI, Cloud & Network

Group

Network Monitoring

Connector

Cisco Router IR1101 

Name

Cisco

CIsco Router IR1101 or models compatible for app hosting

  • Name: Cisco
  • Version: 1.5.0.0
  • Protocol: n/a
  • Interface: n/a
  • Runtime: .NET 2.0 (Multiplatform)
  • Configuration:
    • Designer

On This Page:

Table of ContentsmaxLevel2minLevel2stylenone

Overview

The

EdgeConnect 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.

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 EdgeConnect: 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

    Cisco IR1101 connector enables deployment of FrameworX EdgeConnect solutions on Cisco industrial routers using the IOx App Hosting framework. The runtime executes as a Docker container with persistent storage, providing:

    • Full FrameworX Runtime embedded in Docker image
    • Data Collection from PLCs via ControlLogix, Modbus, and other protocols
    • MQTT SparkplugB Publishing for structured data exchange
    • Edge Processing with Scripts module for data normalization
    • Remote Management through Designer connection to container

    System Requirements

    ComponentRequirement
    RouterCisco IR1101 with IOx App Hosting enabled
    Docker Imagecisco-edge-gateway-[version]_Full.tar
    ProcessorARM64 or x86 (match router architecture)
    Container ResourcesCPU: 1000, Memory: 800MB, Disk: 300MB
    NetworkStatic IP for container, VirtualPortGroup configured
    DesignerWindows installation for remote configuration
    MQTT BrokerSparkplugB compatible (optional: Built-in Broker)

    Architecture

    The container includes the complete FrameworX runtime. Solutions are stored separately in persistent memory:

    Container (Docker Image):
    ??? /Programs/              - FrameworX runtime executables
    ??? /app/                   - Runtime environment
    
    Persistent Storage:
    ??? /iox_data/appdata/FrameworX/Solutions/ - Solution files

    Installation Procedure

    Step 1: Prepare Router Network

    Configure VirtualPortGroup for App Hosting (if not already configured):

    bash

    # SSH to router
    configure terminal
    interface VirtualPortGroup0
      ip address 192.168.1.1 255.255.255.0
      no shutdown
    exit

    Step 2: Deploy Docker Container

    Using Cisco Local Manager (Recommended)

    1. Access router at https://[router-ip]:8443
    2. Navigate to Configuration → Services → IOx
    3. Go to Applications tab
    4. Click Add New
    5. Upload: cisco-edge-gateway-[version]_Full.tar
    6. Configure application:
      • Name: EdgeConnect
      • Type: Docker container

    Activation Settings

    Click Activate with these parameters:

    ParameterValue
    CPU1000
    Memory800 MB
    Disk300 MB

    Network Configuration

    1. Click EditInterface Settings
    2. Configure:
      • IPv4: Static
      • IPv6: Disabled
      • Container IP: Assign static IP (e.g., 192.168.1.100)
      • Gateway: Router gateway (e.g., 192.168.1.1)
    3. Click OK twice
    4. Click Activate App
    5. Return to Applications and click Start

    Step 3: Verify Container

    bash

    # From Windows machine
    ping [container-ip]        # Should respond
    ping [gateway-ip]          # Should respond
    
    # If only gateway responds, router may need restart

    Solution Deployment

    Connect Designer to Container

    1. Open Solution Center on Windows
    2. Navigate to Server tab
    3. Under Remote, enter: http://[container-ip]:10108
    4. Click Connect
    5. Verify connection shows EdgeConnect license

    Upload Solution

    1. Click Upload File...
    2. Select your .dbsln solution file
    3. Open the uploaded solution
    4. Navigate to Runtime → Startup
    5. Select Execution Profile
    6. Click Run Startup

    MQTT SparkplugB Configuration

    Configure through Devices → Channels in Designer:

    Channel Configuration

    ParameterValueDescription
    NameMQTTSpB_PublisherChannel identifier
    ProtocolMQTT SparkplugBSelect from dropdown
    Broker[broker-address]MQTT server
    Port1883Standard MQTT port
    Client IDCiscoEdge01Unique per router

    SparkplugB Namespace

    ParameterDescriptionExample
    Group IDTop-level groupPlant01
    Node IDEdge node identifierCiscoRouter01
    Device IDDevice within nodePLC1

    → See [MQTT SparkplugB Publisher Connector] for detailed configuration


    Diagnostic Tools

    Remote Diagnostics from Designer

    Create shortcuts with parameters:

    batch

    # Property Watch
    "[FrameworX Path]\PropertyWatch.exe" /ip1:[container-ip] /port1:10108
    
    # Trace Window
    "[FrameworX Path]\TraceWindow.exe" /ip1:[container-ip] /port1:10108
    
    # Module Information
    "[FrameworX Path]\ModuleInformation.exe" /ip1:[container-ip] /port1:10108

    Container Logs

    Using IOx Client:

    bash

    ioxclient application logs EdgeConnect
    ioxclient application status EdgeConnect
    ioxclient application stats EdgeConnect

    Version History

    VersionFeaturesDate
    v514Added exception loggingJune 2025
    v509Minor exception fixJune 2025
    v502SolutionCreator improvements, Designer performanceJune 2025
    v463AutoStart, ForceCommandValueApril 2025
    v314WILL message, ControlLogix performanceSeptember 2024

    Troubleshooting

    App Missing Interface Error

    Router needs VirtualPortGroup configuration. See Step 1 above or Cisco IOx documentation.

    Invalid Address in Trace Window

    Use Data Explorer → PLC Finder to verify tag addresses exist in PLC.

    Container Won't Start

    • Verify IOx is enabled in router
    • Check resource allocation (CPU/Memory/Disk)
    • Review activation logs in Cisco Local Manager

    Designer Connection Fails

    • Ping container IP and gateway IP
    • Verify port 10108 is accessible
    • Check container status in Applications tab

    MQTT Connection Issues

    Check @TagProvider.[ProviderName].IsConnected in Property Watch. If blinking, verify Client ID is unique.


    Related Documentation

    • [Container Deployment (Reference)] - Generic Docker deployment
    • [MQTT SparkplugB Publisher Connector] - MQTT configuration details
    • [Runtime Diagnostics] - Diagnostic tools documentation

    Now for the Tutorial:

    Cisco IR1101 Container (Tutorial)

    Cisco IR1101 Container (Tutorial) teaches you to:

    • Deploy FrameworX Docker container on Cisco routers
    • Configure IOx App Hosting for industrial applications
    • Connect Designer to remote container runtime
    • Set up MQTT SparkplugB data publishing

    Prerequisites:

    • Cisco IR1101 router with IOx enabled
    • Docker image file (cisco-edge-gateway-[version]_Full.tar)
    • Windows computer with Designer installed
    • Basic network configuration knowledge

    In this page: [TOC - maxLevel:2, minLevel:2]


    Container Deployment → Tutorial | [Concept] | [How-to Guide] | [Reference]


    Understanding Container Deployment

    FrameworX can run in Docker containers for edge deployments:

    • Standard Docker: Deploy to any Docker host → See [Container Deployment (Reference)]
    • Cisco IOx App Hosting: Special framework for Cisco routers
    • Container includes full runtime, solution uploaded separately

    Enable IOx App Hosting

    1. Access router: https://[router-ip]:8443
    2. Go to Configuration → Services → IOx
    3. Verify status:
      • IOx Service: Enabled
      • App Hosting: Configured

    If not configured, see [Cisco IR1101 Connector (Reference)] for VirtualPortGroup setup.


    Deploy Container to Router

    1. In IOx interface, go to Applications
    2. Click Add New
    3. Upload Docker image:
      • File: cisco-edge-gateway-[version]_Full.tar
      • Name: EdgeConnect
    4. Activate with resources:
      • CPU: 1000
      • Memory: 800MB
      • Disk: 300MB
    5. Configure network as Static IP
    6. Start the application

    Connect Designer

    1. Open Solution Center
    2. Go to Server tab
    3. Connect remotely:
      • URL: http://[container-ip]:10108
      • Click Connect
    4. Verify EdgeConnect license appears

    Deploy Solution

    1. Click Upload File...
    2. Select your .dbsln file
    3. Open uploaded solution
    4. Start runtime:
      • Go to Runtime → Startup
      • Click Run Startup

    Configure Data Flow

    PLC to Container

    • Use Devices → Channels
    • Add ControlLogix or Modbus
    • Map to UNS tags

    Container to MQTT

    • Add MQTT SparkplugB channel
    • Configure broker connection
    • Set Group/Node/Device IDs

    Verify Operation

    1. Check container status in IOx
    2. Use Runtime → Diagnostics in Designer
    3. Monitor MQTT broker for messages
    4. Review container logs if needed

    Step-by-step guide to deploy FrameworX as a Docker container on Cisco IR1101 routers using IOx App Hosting for edge computing applications.


    Functionality Overview

    The 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).

    Despite being deployed in a docker container, known to have volatile memory (that is not retained), this 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:
    Code Block
    languagetext
    themeConfluence
    firstline1
    linenumberstrue
    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:
    Code Block
    firstline1
    linenumberstrue
    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:
    Code Block
    firstline1
    linenumberstrue
    ioxclient application stop <AppName> ioxclient application deactivate <AppName>
    ioxclient application uninstall <AppName> <PackageName>.tar

    Use the following command to see the application status

    Code Block
    firstline1
    linenumberstrue
    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.

    Image Removed

    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.

    Image Removed

    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 EdgeConnect Solutions are allowed to run under the Cisco License, as it can be seen in the License Tab.

    Image Removed

    Make sure that Solutions uploaded to Cisco have the correct Product Family and Target Framework.

    Image Removed

    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:

    Page Tree
    root@parent