Reads data from a supported data source and pushes it to analysis.
The tool can work either as an asynchronous data source that drives
a processing pipeline or synchronously driven by another tool. It
can also work as a master or as a slave device, depending on the
capabilities of the underlying :doc:
data link device
driver </api/c/datalink>. This results in a total of four different
Synchronous master: The tool reads the state of a slave device each time an object is received in the trigger input.
Synchronous slave: The tool updates the values of its internal variables based on requests from a master device. Whenever an object is received in the trigger input, the current values will be sent to analysis.
Asynchronous master: The tool polls the state of a slave device and sends the values of all variables to analysis every time a change is detected in any one of them.
Asynchronous slave: Whenever a master device writes to a variable, all variable values are immediately sent to analysis. Note that in this mode the value of a variable may actually not have changed; all writes by a master device are regarded as changes.
trigger: A trigger input that accepts any object type. If this input is connected, the tool works in synchronous mode and sends all output values each time a trigger signal is received. If the trigger input is not connected, values will be sent every time a change is noticed.
deviceId: The device ID of the data link device. See device IDs.
autoConfig: A flag that enables and disables device auto-configuration. See device configuration.
parameterSet: The name of a parameter set to apply to the selected device at start-up. See device configuration.
outputParameters: A table that defines the output parameters. In slave mode, these are the variables that will become writable by master devices. In master mode, they must exist on the slave device or the driver must be able to create them. Typically, output parameters refer to SQL table column names or PLC tags.
pollingPeriod: Defines polling period in milliseconds. Polling is used to update values if the trigger input is not connected or if the driver does not support notification of changed value for all the parameters.
sendInitialValue: If this flag is
true, the tool will send the initial value of each variable immediately at start-up. Otherwise, the tool will send all the values when something has changed in them. If the trigger input is connected, this property has no effect.
The outputs of the tool are defined by the outputParameters table.