Skip to main content

Master overview

A master talks to outstations through channels, and to each outstation on a channel through an association:

ToUseSee
Connect to outstationsA MasterChannel per TCP or TLS connection, serial port or UDP socket, or a server that accepts outstations that connect inChannel basics, TCP server
Talk to one outstationAn association, added to the channel with the outstation's addressCreating associations
Receive valuesYour ReadHandlerReadHandler
Read dataPolls on a schedule, or one-time readsPolls and one-time reads
Operate outputsControlsControls
Keep the outstation's clock rightTime synchronizationTime synchronization
Watch communication healthState listeners and AssociationInformationChannel basics, AssociationInformation
Do anything elseAttributes, files, restarts, freezes, deadbandsAttributes, File transfer, Other requests

Setting up a master takes four steps: create a channel, add an association for each outstation, add polls to the associations, and enable the channel. Until it's enabled, the channel doesn't communicate, so everything can be configured first.

Calling operations​

In Rust, adding an association returns an AssociationHandle, and you call operations such as reads and controls on it. In the bindings, it returns an AssociationId, and you pass that to the same operation on the MasterChannel. This guide names each operation once; the API documentation has both forms.

note

It's typical to have one association per channel over TCP, but a single TCP endpoint can also host several virtual outstations. Serial channels are often part of a multi-drop network, where one serial channel talks to several independent outstations.