modbus v0.2.0 Modbus.Master

Server module to handle a socket connection.

Summary

Functions

Starts the GenServer

Stops the GenServer

Executes a Modbus TCP command

Functions

start_link(state, opts \\ [])

Starts the GenServer.

state is a keyword list to be merged with the following defaults:

%{
  ip: {0,0,0,0},
  port: 0,
  timeout: 400,
}

ip is the internet address to connect to.

port is the tcp port number to connect to.

timeout is the connection timeout.

Returns {:ok, pid}.

Example

Modbus.Master.start_link([ip: {10,77,0,211}, port: 8899, timeout: 800])
stop(pid)

Stops the GenServer.

Returns :ok.

tcp(pid, cmd, timeout)

Executes a Modbus TCP command.

cmd is one of:

  • {:rc, slave, address, count} read count coils.
  • {:ri, slave, address, count} read count inputs.
  • {:rhr, slave, address, count} read count holding registers.
  • {:rir, slave, address, count} read count input registers.
  • {:fc, slave, address, value} force single coil.
  • {:phr, slave, address, value} preset single holding register.
  • {:fc, slave, address, values} force multiple coils.
  • {:phr, slave, address, values} preset multiple holding registers.

Returns :ok | {:ok, [values]}.