ModbusTcpServer

Description

The ModbusTcpServer object implements a Modbus server which communicates with Modbus masters (clients) via TCP network connections.

This object was introduced in InCore 2.0.

› Inherits:

ModbusServer

Overview

Properties

Methods

Signals

Enumerations

Properties

networkAddress

This property holds the local network address which to listen on for incoming connections. When set to 0.0.0.0 the server will listen on all addresses/interfaces.

› Type:

String

› Default:

0.0.0.0

› Signal:

networkAddressChanged()

› Attributes:

Writable

networkPort

This property holds the network port which to listen on for incoming connections.

› Type:

SignedInteger

› Default:

502

› Signal:

networkPortChanged()

› Attributes:

Writable

Example

import InCore.Foundation 2.5
import InCore.Modbus 2.5

Application {

    name: "Modbus TCP server/client example"

    Counter {
        id: counter
        running: counterEnabledReg.data
        startValue: 123
    }

    ModbusTcpServer {
        id: server
        address: 1
        networkPort: 1234
        networkAddress: "localhost"

        // expose 3 values at addresses 2…4 through one register definition
        ModbusRegister {
            type: ModbusRegister.Input
            address: 2
            count: 3
            data: [ 123, 456, 789 ]
        }

        ModbusRegister {
            id: counterEnabledReg
            type: ModbusRegister.Holding
            address: 0
            data: false
            onDataChanged: console.log("Counter enabled:", data)
        }

        ModbusRegister {
            id: counterReg
            type: ModbusRegister.Input
            address: 123
            data: counter.value
        }

        ModbusRegister {
            id: messageReg
            type: ModbusRegister.Input
            address: 0x1000
            count: 6
            dataType: ModbusRegister.String
            data: "Hello world!"
        }

        onConnected: console.log("Server accepting connections")
        onErrorOccurred: console.log("Server error:", errorString)
    }

    ModbusTcpClient {
        id: client
        networkAddress: server.networkAddress
        networkPort: server.networkPort

        numberOfRetries: 1
        timeout: 500

        ModbusSlave {
            address: server.address

            ModbusRegister {
                type: counterEnabledReg.type
                address: counterEnabledReg.address
                data: client.state === ModbusTcpClient.ConnectedState
            }

            ModbusRegister {
                type: counterReg.type
                address: counterReg.address
                onDataChanged: console.log( "Counter value:", data)
            }

            ModbusRegister {
                type: messageReg.type
                address: messageReg.address
                count: messageReg.count
                dataType: messageReg.dataType
                onDataChanged: console.log("Message register content:", data)
            }

            Polling on registers { interval: 100 }
        }

        onConnected: console.log("Connected to Modbus TCP slave")
        onErrorOccurred: console.log("Client error:", errorString)
    }
}