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:
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)
}
}