Component: Modbus Master (SCADA) (Comms: System)

From Flowcode Help
Jump to navigationJump to search


Author Matrix TSL
Version 2.1 (Release)
Category Comms: System


Image Modbus Master (SCADA) component

Modbus component for talking to Modbus compatible hardware via RS232 or RS485.

Examples

No additional examples


Downloadable macro reference

ReadHoldingRegister

This command requests the analogue holding register values starting from the start RegAddress and going through to RegAddress plus RegCount.

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT RegAddress
Address: 0=40001, 1=40002, ...
UINT RegCount
Number of consecutive registers to read, starting from RegAddress


Return value

BYTE


ForceMultipleCoils

This command writes the contents of a series of discrete coils at the location starting at CoilAddress through to CoilAddress + CoilCount.

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT CoilAddress
Coil Address: 0=Coil1, 1=Coil2, 2=Coil3, ...
UINT CoilCount
Number of consecutive coils to try and read
BYTE CoilData
An array of bytes each containing 8 1-bit coil values


Return value

BYTE


ForceSingleCoil

This command writes the contents of a discrete coil at the location CoilAddress.

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT CoilAddress
Coil Address: 0=Coil1, 1=Coil2, 2=Coil3, ...
BYTE CoilState
0=Off, 1=On


Return value

BYTE


GetResponse

Collects as much incoming data as possible and stored into the response buffer. The number of bytes received will be stored into location 0 of the response buffer.

Return value indicates validity of incoming CRC. 0 = OK, 1 = CRC fail, 255 = No Data

Parameters

This macro has no parameters


Return value

BYTE


ReadCoilStatus

This command requests the ON/OFF status of discrete coils starting from the start CoilAddress and going through to CoilAddress plus CoilCount.

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT CoilAddress
Coil Address: 0=Coil1, 1=Coil2, 2=Coil3, ...
UINT CoilCount
Number of consecutive coils to try and read


Return value

BYTE


GetResponseByte

Reads a byte from the last received response. The Index parametes specifies which byte to read back.

Parameters

BYTE Index
0=NumBytes, 1=SlaveAddress, 2=FunctionCode/ExceptionCode, .....


Return value

BYTE


ReadInputStatus

This command requests the ON/OFF status of discrete inputs starting from the start DataAddress and going through to DataAddress plus DataCount.

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT DataAddress
Input Address: 0=10001, 1=10002, 2=10003, ...
UINT DataCount
Number of consecutive inputs to read, starting from RegAddress


Return value

BYTE


ChangeFrameType

Default frame type is the type set in the component properties.

Parameters

BYTE Type
0 = Modbus RTU / 1 = Modbus ASCII


Return value

This call does not return a value


PresetSingleRegister

This command writes the contents of a analogue output holding registerl at the location RegAddress.

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT RegAddress
Address: 0=40001, 1=40002, ...
UINT RegValue
Value to send to the selected register


Return value

BYTE


GetResponseInt

Reads a 16-bit value from the last received response.

The Index parametes specifies the byte index of the value to read back.

Parameters

BYTE Index
0=NumBytes, 1=SlaveAddress, 2=FunctionCode/ExceptionCode, .....


Return value

UINT


ReadInputRegister

This command requests the analogue input register values starting from the start RegAddress and going through to RegAddress plus RegCount.

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT RegAddress
Input Address: 0=10001, 1=10002, 2=10003, ...
UINT RegCount
Number of consecutive inputs to read, starting from RegAddress


Return value

BYTE


PresetMultipleRegisters

This command writes the contents of several analogue output holding registers starting at the location RegAddress through to location RegAddress + RegCount .

Returns 0 for success, 1 for CRC fail and 255 for no reply.

Parameters

UINT SlaveID
The ID of the MODBUS slave
UINT RegAddress
Address: 0=40001, 1=40002, ...
UINT RegCount
Number of consecutive registers to write, starting from RegAddress
UINT RegValue
Array of values to send to the registers


Return value

BYTE


Initialise

Starts up the UART to allow communications

Parameters

This macro has no parameters


Return value

This call does not return a value


Simulation macro reference

This component does not contain any simulation macros


Property reference

Frame Type

This property is of type Fixed list of ints and can be referenced with the variable name FrameType.

Switches between RTU and ASCII forms of Modbus

Receive Buffer Size

This property is of type Unsigned integer and can be referenced with the variable name ReceiveBufferSize.

Maximum number of bytes the receive buffer can hold

Slave ID Bytes

This property is of type Unsigned integer and can be referenced with the variable name AddressBytes.

Number of bytes used when passing a slave ID, usually 1 but sometimes 2

Silent Interval

This property is of type Unsigned integer and can be referenced with the variable name SilentInterval.

Configures how much time to wait after each master modbus command before another command can be sent.

A silent interval of 60ms minimum is required in order to guarentee successful reception of the next transmission.

0=No Delay

60 = 60mS - Default

Range : 0 - 65535

UART Receive Timeout

This property is of type Unsigned integer and can be referenced with the variable name RXTOUT.

Amount of time to wait before timing out when listening for a slave's response.

Range: 0 - 255.

0 = Don't Wait

1 - 254 = X ms

255 = Wait Forever

Receive Timeout Count

This property is of type Unsigned integer and can be referenced with the variable name TOUTCNT.

Number of timeouts in a row to wait for until we decide the slave is not responding or finished responding

to a message.

Range: 0 - 255

0 = First Timeout Only

1 = First Timeout + 1

2 = First Timeout + 2

Label

This property is of type Line of text and can be referenced with the variable name label.

A text label to appear on the Modbus panel object.

Console Data

This property is of type True or false and can be referenced with the variable name scada_uart1::ConsoleData.

Selects if the console data is automatically generated or not

Console Columns

This property is of type Unsigned integer and can be referenced with the variable name scada_uart1::ConsoleColumns.

Number of characters that can be displayed on a single line of the console.

Data Source

This property is of type Fixed list of ints and can be referenced with the variable name scada_uart1::DataSource.

Simulation data source used to allow the component to connect to various remote devices

   Nothing - Simulation data is ignored
   COM port - Routes the communication data to and from a physical or virtual COM port 
   Injector - Routes the communication data via a data injector component on the Panel.

COM Port

This property is of type Fixed list of ints and can be referenced with the variable name scada_uart1::com_port.

Lists all the current available COM port hardware on your PC.

Baud Rate

This property is of type Unsigned integer and can be referenced with the variable name scada_uart1::baud.

COM port data rate in bits per second