Class: ModBus::TCPClient

Inherits:
Client
  • Object
show all
Includes:
Timeout
Defined in:
lib/rmodbus/tcp_client.rb

Overview

Implementation clients(master) ModBusTCP

Constant Summary collapse

@@transaction =
0

Constants inherited from Client

Client::CONNECTION_RETRIES, Client::READ_RETRIES

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Client

#mask_write_register, #query, #read_coils, #read_discret_inputs, #read_discrete_inputs, #read_holding_registers, #read_input_registers, #write_multiple_coils, #write_multiple_registers, #write_single_coil, #write_single_register

Constructor Details

#initialize(ipaddr, port = 502, slaveaddr = 1) ⇒ TCPClient

Connect with a ModBus server



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rmodbus/tcp_client.rb', line 29

def initialize(ipaddr, port = 502, slaveaddr = 1)
  tried = 0
  begin
    timeout(1, ModBusTimeout) do
      @sock = TCPSocket.new(ipaddr, port)
    end
  rescue ModBusTimeout => err
    tried += 1
    retry unless tried >= CONNECTION_RETRIES
    raise ModBusTimeout.new, 'Timed out attempting to create connection'
  end

  @slave = slaveaddr
end

Class Method Details

.transactionObject



48
49
50
# File 'lib/rmodbus/tcp_client.rb', line 48

def self.transaction 
  @@transaction
end

Instance Method Details

#closeObject



44
45
46
# File 'lib/rmodbus/tcp_client.rb', line 44

def close
  @sock.close unless @sock.closed?
end