Component: Modbus Slave (SCADA) (Comms: System): Difference between revisions
Appearance
m Text replacement - "width="10%" align="center" style="background-color:#D8C9D8;" align="center"" to "width="10%" align="center" class="mtx-class-macrohead"" |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 93: | Line 93: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ChangeFrameType''' | ||
|- | |- | ||
| colspan="2" | Default frame type is the type set in the component properties. | | colspan="2" | Default frame type is the type set in the component properties. | ||
| Line 112: | Line 112: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''CheckForIncoming''' | ||
|- | |- | ||
| colspan="2" | Checks for an incoming message and if the data address is within range then also automatically replies with the correct reply. Returns 0 if no comms received, 1 for a succesful transaction, 255 for an error. | | colspan="2" | Checks for an incoming message and if the data address is within range then also automatically replies with the correct reply. Returns 0 if no comms received, 1 for a succesful transaction, 255 for an error. | ||
| Line 126: | Line 126: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetLastIncoming''' | ||
|- | |- | ||
| colspan="2" | Gets a value from the last incoming command. Index 0 = 0 Read / 1 Write Index 1 = 0 Coils / 1 DigInput / 2 AnInput / 3 Register Index 2 = Address Index 3 = Number | | colspan="2" | Gets a value from the last incoming command. Index 0 = 0 Read / 1 Write Index 1 = 0 Coils / 1 DigInput / 2 AnInput / 3 Register Index 2 = Address Index 3 = Number | ||
| Line 145: | Line 145: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | Starts up the UART to allow communications and initialises the states of the various Modbus Coils, Inputs and Registers to 0. | | colspan="2" | Starts up the UART to allow communications and initialises the states of the various Modbus Coils, Inputs and Registers to 0. | ||
| Line 159: | Line 159: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReadAnalogInput''' | ||
|- | |- | ||
| colspan="2" | Reads the value of a single analogue input. | | colspan="2" | Reads the value of a single analogue input. | ||
| Line 178: | Line 178: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReadCoils''' | ||
|- | |- | ||
| colspan="2" | Reads the state of up to eight digital coils. Can pack a max of 8-bits together in a single operation | | colspan="2" | Reads the state of up to eight digital coils. Can pack a max of 8-bits together in a single operation | ||
| Line 202: | Line 202: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReadDigitalInputs''' | ||
|- | |- | ||
| colspan="2" | Reads the state of up to eight digital inputs. Can pack a max of 8-bits together in a single operation | | colspan="2" | Reads the state of up to eight digital inputs. Can pack a max of 8-bits together in a single operation | ||
| Line 226: | Line 226: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReadHoldingRegister''' | ||
|- | |- | ||
| colspan="2" | Reads the value of a single holding register. | | colspan="2" | Reads the value of a single holding register. | ||
| Line 245: | Line 245: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetAnalogInput''' | ||
|- | |- | ||
| colspan="2" | Sets the state of a single analogue input. | | colspan="2" | Sets the state of a single analogue input. | ||
| Line 269: | Line 269: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetCoil''' | ||
|- | |- | ||
| colspan="2" | Sets the state of a single digital coil. | | colspan="2" | Sets the state of a single digital coil. | ||
| Line 293: | Line 293: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDigitalInput''' | ||
|- | |- | ||
| colspan="2" | Sets the state of a single digital input. | | colspan="2" | Sets the state of a single digital input. | ||
| Line 317: | Line 317: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetHoldingRegister''' | ||
|- | |- | ||
| colspan="2" | Sets the state of a single holding register. | | colspan="2" | Sets the state of a single holding register. | ||
| Line 341: | Line 341: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetSlaveAddress''' | ||
|- | |- | ||
| colspan="2" | Allows the slave address to be overridden from the default slave address specified in the component property. The number of bytes used for the address is fixed by the Slave ID Bytes property to save on RAM usage. | | colspan="2" | Allows the slave address to be overridden from the default slave address specified in the component property. The number of bytes used for the address is fixed by the Slave ID Bytes property to save on RAM usage. | ||
| Line 360: | Line 360: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Modbus Properties | ||
|- | |- | ||
|- | |- | ||
| Line 403: | Line 403: | ||
| colspan="2" | Controls if the last command from the master is logged allowing for easier value updates. No - Do not log commands Yes - Commands are logged and available via the GetLastIncoming macro | | colspan="2" | Controls if the last command from the master is logged allowing for easier value updates. No - Do not log commands Yes - Commands are logged and available via the GetLastIncoming macro | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Runtime Properties | ||
|- | |- | ||
|- | |- | ||
| Line 442: | Line 442: | ||
| colspan="2" | COM port data rate in bits per second | | colspan="2" | COM port data rate in bits per second | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Modbus Coils - Single bit values | ||
|- | |- | ||
|- | |- | ||
| Line 456: | Line 456: | ||
| colspan="2" | Specifies how many Coils are available on the slave. Each address consumes a single bit of RAM, 8 Addresses are packed together into a single RAM Byte. | | colspan="2" | Specifies how many Coils are available on the slave. Each address consumes a single bit of RAM, 8 Addresses are packed together into a single RAM Byte. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Digital Inputs - Single bit values | ||
|- | |- | ||
|- | |- | ||
| Line 470: | Line 470: | ||
| colspan="2" | Specifies how many Digital Inputs are available on the slave. Each address consumes a single bit of RAM, 8 Addresses are packed together into a single RAM Byte. | | colspan="2" | Specifies how many Digital Inputs are available on the slave. Each address consumes a single bit of RAM, 8 Addresses are packed together into a single RAM Byte. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Analog Inputs - 16-bit values | ||
|- | |- | ||
|- | |- | ||
| Line 484: | Line 484: | ||
| colspan="2" | Specifies how many 16-bit analogue inputs are available on the slave. Each address consumes two RAM Bytes. | | colspan="2" | Specifies how many 16-bit analogue inputs are available on the slave. Each address consumes two RAM Bytes. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Holding Registers - 16-bit values | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:36, 13 July 2026
| Author | Matrix TSL |
| Version | 1.0 |
| Category | Comms: System |
Modbus Slave (SCADA) component
Modbus component for creating Modbus compatible slave hardware via RS232 or RS485.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Modbus_Slave_SCADA.fcsx
Please click here to view the component source code (Beta): FC_Comp_Source_Modbus_Slave_SCADA.fcsx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
ChangeFrameType
| ChangeFrameType | |
| Default frame type is the type set in the component properties. | |
| Type | |
| 0 = Modbus RTU / 1 = Modbus ASCII | |
| Return | |
CheckForIncoming
GetLastIncoming
Initialise
| Initialise | |
| Starts up the UART to allow communications and initialises the states of the various Modbus Coils, Inputs and Registers to 0. | |
| Return | |
ReadAnalogInput
| ReadAnalogInput | |
| Reads the value of a single analogue input. | |
| Address | |
| Coil Address | |
| Return | |
ReadCoils
ReadDigitalInputs
ReadHoldingRegister
| ReadHoldingRegister | |
| Reads the value of a single holding register. | |
| Address | |
| Coil Address | |
| Return | |
SetAnalogInput
| SetAnalogInput | |
| Sets the state of a single analogue input. | |
| Address | |
| Coil Address | |
| Value | |
| Analogue Value range 0 - 65535 | |
| Return | |
SetCoil
| SetCoil | |
| Sets the state of a single digital coil. | |
| Address | |
| Coil Address | |
| State | |
| 0=off, 1=on | |
| Return | |
SetDigitalInput
| SetDigitalInput | |
| Sets the state of a single digital input. | |
| Address | |
| Coil Address | |
| State | |
| 0=off, 1=on | |
| Return | |
SetHoldingRegister
| SetHoldingRegister | |
| Sets the state of a single holding register. | |
| Address | |
| Coil Address | |
| Value | |
| Analogue Value range 0 - 65535 | |
| Return | |
SetSlaveAddress