modbus

package
v0.1.1-beta.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	ReadCoil(addr uint16) (value bool, err error)
	ReadCoils(addr, quantity uint16) ([]bool, error)
	WriteCoil(addr uint16, value bool) error
	WriteCoils(addr uint16, values []bool) error

	ReadDiscreteInput(addr uint16) (value bool, err error)
	ReadDiscreteInputs(addr, quantity uint16) ([]bool, error)

	ReadHoldingRegister(addr uint16) (uint16, error)
	ReadHoldingRegisters(addr, quantity uint16) ([]uint16, error)

	WriteHoldRegister(addr uint16, values uint16) error
	WriteHoldRegisters(addr uint16, values []uint16) error

	ReadInputRegister(addr, quantity uint16) (uint16, error)
	ReadInputRegisters(addr, quantity uint16) ([]uint16, error)
}

type Config

type Config struct {
	URL          string
	Speed        uint
	DataBits     uint
	Parity       uint
	StopBits     uint
	Timeout      time.Duration
	EnableTLS    bool
	Cert         string
	Key          string
	SlaveID      uint8
	MaxRetries   int
	RetryTimeout time.Duration
}

Config defines the configuration for the Modbus client.

type KeepAliveClient

type KeepAliveClient struct {
	// contains filtered or unexported fields
}

KeepAliveClient 封装 modbus.ModbusClient,实现长连接和重连

func NewKeepAliveClient

func NewKeepAliveClient(cfg Config) (*KeepAliveClient, error)

NewKeepAliveClient 创建新的 Modbus 客户端

func (*KeepAliveClient) Close

func (w *KeepAliveClient) Close()

Close 关闭客户端

func (*KeepAliveClient) ReadCoil

func (w *KeepAliveClient) ReadCoil(addr uint16) (bool, error)

func (*KeepAliveClient) ReadCoils

func (w *KeepAliveClient) ReadCoils(addr, quantity uint16) ([]bool, error)

func (*KeepAliveClient) ReadDiscreteInput

func (w *KeepAliveClient) ReadDiscreteInput(addr uint16) (bool, error)

func (*KeepAliveClient) ReadDiscreteInputs

func (w *KeepAliveClient) ReadDiscreteInputs(addr, quantity uint16) ([]bool, error)

func (*KeepAliveClient) ReadHoldingRegister

func (w *KeepAliveClient) ReadHoldingRegister(addr uint16) (uint16, error)

func (*KeepAliveClient) ReadHoldingRegisters

func (w *KeepAliveClient) ReadHoldingRegisters(addr, quantity uint16) ([]uint16, error)

func (*KeepAliveClient) ReadInputRegister

func (w *KeepAliveClient) ReadInputRegister(addr uint16) (uint16, error)

func (*KeepAliveClient) ReadInputRegisters

func (w *KeepAliveClient) ReadInputRegisters(addr, quantity uint16) ([]uint16, error)

func (*KeepAliveClient) WriteCoil

func (w *KeepAliveClient) WriteCoil(addr uint16, value bool) error

func (*KeepAliveClient) WriteCoils

func (w *KeepAliveClient) WriteCoils(addr uint16, values []bool) error

func (*KeepAliveClient) WriteHoldRegister

func (w *KeepAliveClient) WriteHoldRegister(addr uint16, value uint16) error

func (*KeepAliveClient) WriteHoldRegisters

func (w *KeepAliveClient) WriteHoldRegisters(addr uint16, values []uint16) error

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager 管理多个 Modbus 客户端

func NewManager

func NewManager() *Manager

NewManager 创建管理器

func (*Manager) AddClient

func (m *Manager) AddClient(name string, client Client)

AddClient 添加客户端

func (*Manager) CloseAll

func (m *Manager) CloseAll()

CloseAll 关闭所有客户端

func (*Manager) GetClient

func (m *Manager) GetClient(name string) (Client, bool)

GetClient 获取客户端

func (*Manager) RemoveClient

func (m *Manager) RemoveClient(name string)

RemoveClient 删除并关闭客户端

type ReconnectClient

type ReconnectClient struct {
	// contains filtered or unexported fields
}

ReconnectClient encapsulates a Modbus client with thread-safe operations.

func NewReconnectClient

func NewReconnectClient(cfg Config) (*ReconnectClient, error)

NewReconnectClient creates and initializes a new Modbus client. Use in no real-time environments.

func (*ReconnectClient) ReadCoil

func (c *ReconnectClient) ReadCoil(addr uint16) (value bool, err error)

ReadCoil reads a single coil (0x01).

func (*ReconnectClient) ReadCoils

func (c *ReconnectClient) ReadCoils(addr, quantity uint16) ([]bool, error)

ReadCoils reads multiple coils (0x01).

func (*ReconnectClient) ReadDiscreteInput

func (c *ReconnectClient) ReadDiscreteInput(addr uint16) (value bool, err error)

func (*ReconnectClient) ReadDiscreteInputs

func (c *ReconnectClient) ReadDiscreteInputs(addr, quantity uint16) ([]bool, error)

ReadDiscreteInputs reads discrete inputs (0x02).

func (*ReconnectClient) ReadHoldingRegister

func (c *ReconnectClient) ReadHoldingRegister(addr uint16) (value uint16, err error)

func (*ReconnectClient) ReadHoldingRegisters

func (c *ReconnectClient) ReadHoldingRegisters(addr, quantity uint16) ([]uint16, error)

ReadHoldingRegisters reads holding registers (0x03).

func (*ReconnectClient) ReadInputRegister

func (c *ReconnectClient) ReadInputRegister(addr uint16) (value uint16, err error)

func (*ReconnectClient) ReadInputRegisters

func (c *ReconnectClient) ReadInputRegisters(addr, quantity uint16) ([]uint16, error)

ReadInputRegisters reads input registers (0x04).

func (*ReconnectClient) WriteCoil

func (c *ReconnectClient) WriteCoil(addr uint16, value bool) error

WriteCoil writes a single coil (0x05).

func (*ReconnectClient) WriteCoils

func (c *ReconnectClient) WriteCoils(addr uint16, values []bool) error

WriteCoils writes multiple coils (0x0F).

func (*ReconnectClient) WriteHoldRegister

func (c *ReconnectClient) WriteHoldRegister(addr uint16, values uint16) error

func (*ReconnectClient) WriteHoldRegisters

func (c *ReconnectClient) WriteHoldRegisters(addr uint16, values []uint16) error

func (*ReconnectClient) WriteMultipleRegisters

func (c *ReconnectClient) WriteMultipleRegisters(addr uint16, values []uint16) error

WriteMultipleRegisters writes multiple registers (0x10).

func (*ReconnectClient) WriteSingleRegister

func (c *ReconnectClient) WriteSingleRegister(addr, value uint16) error

WriteSingleRegister writes a single register (0x06).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL