The MQTTspB Simulator can be Started from the DataExplorer User interface, or running its executable directly with the proper command line parameters.
When running, it will create an MQTTspB Client that will connect to the configured Broker, publishing simulated data to mapped Topics. From the Broker point of view, the MQTTspB Simulator, will act as any other MQTT Client.
On this page:
This document has information on the MQTTspB Simulator configuration and Runtime Behavior.
Watch a video on how to use the MQTT Simulator with Tag Provider here. |
This simulator application comes with the default installation of product version 10. The executable file can be found under the ../fx-10/Protocols/MQTTspBSimulator.exe directory.
Make sure to execute the file from inside this folder to ensure all dependencies are satisfied.
The following features are supported:
The Simulator is Write-Only! You will not be able to subscribe to any topic; only publishing is allowed. |
The MQTTspB Simulator is divided in three main regions. Configuration (Connection Parameters and Payload Settings), SimulationControl and View (DataBrowser and EventLog).
Here is configured the necessary information required to establish a connection to a Broker.
The Simulator does not support SSL Protocols. |
The fields can only be modified while the MQTTspB Client is not connected to a Broker. |
In this tab, you will be able to configure the Payload Structure to be published.
The structure is defined based on a hierarchical structure illustrated below:
<GroupID Name="<GroupName>"> |-- <NodeIDs> | |-- <NodeID Name="<NodeName>"> | | |-- <DeviceIDs> | | | |-- <DeviceID Name="<DeviceName>"> | | | | |-- <Variables> | | | | | |-- Var1 | | | | | |-- ... | | | | | |-- VarN | | | |-- <DeviceID Name="<DeviceName2>"> | | | |-- <Variables> | | | | | |-- Var1 | | | | | |-- ... | | | | | |-- VarX | |-- <NodeID Name="<NodeName2>"> | |-- <DeviceIDs> | | |-- <DeviceID Name="<DeviceName>"> | | | |-- <Variables> | | | | | |-- Var1 | | | | | |-- ... | | | | | |-- VarY | | |-- <DeviceID Name="<DeviceName>"> | | |-- <Variables> | | | | | |-- Var1 | | | | | |-- ... | | | | | |-- VarZ |
To edit the structure, click on the Edit Data Structure button and customize your Payloas at the dialog window.
There are some properties to be defined for Variables:
The DataStructure can only be edited while the OPC Server is not running. |
This section is used to define the simulator behavior in runtime.
In this region, you will be able to see the Payload Structure existing in the Broker.
This log displays useful information regarding the MQTTspB Simulator activity.
The MQTTspB Simulator can be executed with custom parameters through the command line. The syntax is as follows:
"..\MQTTspBSimulator.exe" /param1:<param1Value> ... /paramN |
The existing parameters are listed below:
Usage:
"..\MQTTspBSimulator.exe" /Minimized /AutoStart /Config:"C:\Documents\CustomConfig.xml" |
The input parameters are not case-sensitive |
With a custom configuration file, you will be able to define your own Broker Configuration and DataStructure. The syntax for the configuration is described below:
<?xml version="1.0" encoding="utf-8"?> <MQTTspBSimulator> <ConnectionParameters> <BrokerUrl>127.0.0.1</BrokerUrl> <BrokerPort>1883</BrokerPort> <UserName></UserName> <Password></Password> </ConnectionParameters> <PayloadSettings> <GroupID Name="GroupID"> <NodeIDs> <NodeID Name="NodeID1"> <DeviceIDs> <DeviceID Name="DeviceID1"> <Variables> <Variable Name="Name" Type="string" VariationFlag="false" InitialValue="City"/> <Variable Name="State" Type="boolean" VariationFlag="true"/> <Variable Name="Latitude" Type="double" VariationFlag="true" Min="-5" Max="2" InitialValue="0"/> <Variable Name="Longitude" Type="double" VariationFlag="true" Min="40" Max="43" InitialValue="40"/> <Variable Name="PanelPower" Type="double" VariationFlag="true" Min="200" Max="500" InitialValue="200"/> <Variable Name="PanelVoltage" Type="double" VariationFlag="true" Min="-220" Max="220" InitialValue="0"/> <Variable Name="PanelCurrent" Type="double" VariationFlag="true" Min="-10" Max="10" InitialValue="0"/> <Variable Name="TemperaturePort" Type="integer" VariationFlag="true" Min="15" Max="35" InitialValue="0"/> </Variables> </DeviceID> <DeviceID Name="DeviceID2"> <Variables> <Variable Name="Name" Type="string" VariationFlag="false" InitialValue="City"/> <Variable Name="State" Type="boolean" VariationFlag="true"/> <Variable Name="Latitude" Type="double" VariationFlag="true" Min="-5" Max="2" InitialValue="0"/> </Variables> </DeviceID> </DeviceIDs> </NodeID> <NodeID Name="NodeID2"> <DeviceIDs> <DeviceID Name="DeviceID1"> <Variables> <Variable Name="Name" Type="string" VariationFlag="false" InitialValue="City"/> <Variable Name="State" Type="boolean" VariationFlag="true"/> <Variable Name="Latitude" Type="double" VariationFlag="true" Min="-5" Max="2" InitialValue="0"/> <Variable Name="Longitude" Type="double" VariationFlag="true" Min="40" Max="43" InitialValue="40"/> <Variable Name="PanelPower" Type="double" VariationFlag="true" Min="200" Max="500" InitialValue="200"/> <Variable Name="PanelVoltage" Type="double" VariationFlag="true" Min="-220" Max="220" InitialValue="0"/> <Variable Name="PanelCurrent" Type="double" VariationFlag="true" Min="-10" Max="10" InitialValue="0"/> <Variable Name="TemperaturePort" Type="integer" VariationFlag="true" Min="15" Max="35" InitialValue="0"/> </Variables> </DeviceID> <DeviceID Name="DeviceID2"> <Variables> <Variable Name="Name" Type="string" VariationFlag="false" InitialValue="City"/> <Variable Name="State" Type="boolean" VariationFlag="true"/> <Variable Name="Latitude" Type="double" VariationFlag="true" Min="-5" Max="2" InitialValue="0"/> </Variables> </DeviceID> </DeviceIDs> </NodeID> </NodeIDs> </GroupID> </PayloadSettings> <SimulatorControl> <ConnectOnStartup>false</ConnectOnStartup> <PublishDataOnStartup>false</PublishDataOnStartup> <Minimized>false</Minimized> <BlockConfigurationFields>false</BlockConfigurationFields> </SimulatorControl> </MQTTspBSimulator> |
Additional Information:
Solution for when the configurations from the XML MQTTspBSimulator-Demo9.2.exe.config are applied and the tags do not appear.
When you are using the demo project fsAssetsMonitor via the MQTTspB Simulator, it's necessary that the file "MQTTspBSimulator-Demo9.2.exe.config" be copied and pasted into the folder along with the project "fxAssetsMonitor.tproj". Upon opening the project, you can verify in Edit>Scripts>Classes, within the class CheckStatus that this class contains a method called StartMqttSimulator(). When running the project this method will fetch some arguments and together with the .config file, and from these configured arguments, the MQTTSpb Simulator will be called to run the values that are configured within this .config. When running the project this will be done automatically, without needing to manually open the simulator.
The original file "MQTTspBSimulator.exe.config" within the product's installation folder comes with default values for simulation and can be modified to generate new simulation values. To add new attributes, you can follow the pattern of the other attributes in the file.
In this section: