Plugin: DDS (GInsDDSVariable)

The GInsDDSVariable plugin is a DDS application for exchanging variables between controllers.

Introduction

Data Distribution Service (DDS) is an Object Management Group (OMG) standard for real-time systems that address data communication between the nodes of a publish/subscribe-based messaging architecture. DDS enables data, events, commands, and other related communication between a message/data publisher and its associated subscribers. DDS works by providing scalable, high-performance, and real-time interaction for publishers and subscribers. It totally eliminates the need for network programming that handles communications, as all connected nodes and applications rely on DDS, which automates their interaction.

The GInsDDSVariable plugin is a DDS application for exchanging variables between controllers. The published process variables are automatically available to any controller connected to the network. The current values of the variables can be transferred (subscribed) to their own process variables if required.

Minimum system requirements

Plugin installation

Download the correct plugin version that matches the controller firmware version from the Gantner public download area.

For installation instructions please refer to page: installing a plugin.

Network configuration

  • DDS is by default based on UDP Multicast
    • the Multicast IP address for DDS is 239.255.0.1
    • Configuration for operation without multicast is possible
    • Configuration for operation with TCP is possible
  • DDS uses standardized UDP ports
    • The GInsDDSVariable plugin uses 4 UDP ports:
      • DiscoveryMulticastPort = 7400
      • UserMulticastPort = 7401
      • DiscoveryUnicastPort = 7410
      • UserUnicastPort = 7411

👉 For operation with UDP Multicast, the participating controllers should be located in the same network (e.g. network with IP addresses '192.168.5.xxx') and interconnected via multicast-enabled network switches.

👉 If the participating controllers are not in the same network, or if the controllers are connected via a non-multicast-capable network (e.g. VPN, WLAN), the configuration for the DDS run-time system must be adjusted!

Plugin configuration

👉 The configuration of a plugin is done through a plugin-specific configuration interface using GI.monitor.

  1. The DDS plugin can read and write data to the controller's virtual variables. The controller virtual variables must be created first before configuring the plugin. The virtual variables should be configured as Setpoint and the Data direction should be Input to publish data (send) or Output for subscribing to data (receive) writing data.
  2. Start GI.monitor from the GI.bench menu in the system tray. To connect to the plugin, enter the Server Address (IP address of your controller), set the Server Port to 1200, and click Connect. If you do not know the IP address of your Q.series controller, use the Search button to find all controllers connected to your network.
  3. Next to the Route dropdown list click Reload and then select /GInsDDSVariable.

  4. Select ConfigurePublisher under GInsDDVariable/PluginAPI to select which controller variables are published and in which cycle time the data values are updated. By default, all process variables with the data direction Input are published. Set the parameters for variables to be published and click Send to store the new plugin configuration on the controller.



    VariablePublication
    List of controller virtual variables with their current publication status:
    - not published (0)
    - published (1)

    SystemCycleCounter
    - The update of published data values occurs at or a multiple of the controller's system sample rate (PublisherCycleTime = SystemCycleCounter * SystemCycleTime).
    - SystemCycleCounter is an integer value (the minimum cycle time for updating the data values is 10 ms).

    SetPublicationForAllVariables
    Possible settings:
    - undefined (-); the settings from the list VariablePublication are used
    - published (1); the settings from the list “VariablePublication” are ignored
    - default (2); the settings from the list VariablePublication are ignored

  5. Select ConfigureSubscriber under GInsDDVariable/PluginAPI to select which published variables are assigned to controller variables. Published variables can only be assigned to controller virtual variables with the same data type and the data direction set to Output. Set the parameters for variables to be published and click Send to store the new plugin configuration on the controller.



    The selection list Subscription contains the currently available variables with the appropriate data type.

    VariableSubscription shows a list of controller virtual variables with their current assignment to a published variable.

Plugin Info

Current plugin configuration settings can be retrieved with the PluginInfo method.

PublisherCycleTime
Current cycle time for updating published variables.

SystemCycleTime
Current system cycle time of the controller.

VariableSubscription
List of current subscriptions and their variable assignment.

Set Log Level

With the SetLogLevel method, the log entry types can be set. After selecting the LogLevel click Send to save the setting.

When the plugin starts (and if the LogLevel is set to 'none'), a log file “GInsDDSVariable.log” is created in directory /var/volatile/tmp/gins_tmp/ on the controller. Access to the log files via FTP connection (username “6”, password “6”); Directory /tmp/.
👉 The log file GInsDDSVariable.log must not be deleted!
👉 When exiting or reinstalling the plugin, an existing log file will be deleted; the stored data is lost!
👉 The log file is stored in a temporary directory. When the controller is switched off, the log file is deleted!
👉 The timestamp on the log entries is UTC time.