13 KiB
13 KiB
Modbus TCP (Python 版本)
Func01 读取线圈量
-
方法说明
Modbus 读取线圈量,功能码 01。
def read_coil_status(ip: str, port: int, slave_id: int, offset: int) -> bool | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- 输出参数
- None: 读取失败
- bool: 读取成功的返回值
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func02 读取线圈量
-
方法说明
Modbus 读取线圈量,功能码 02。
def read_input_status(ip: str, port: int, slave_id: int, offset: int) -> bool | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- 输出参数
- None: 读取失败
- bool: 读取成功的返回值
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func03 读取保持寄存器
-
方法说明
Modbus 读取保持寄存器,功能码 03。
def read_holding_register(ip: str, port: int, slave_id: int, offset: int, data_type: int) -> int | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- data_type: int 类型,2:无符号整形,3:有符号整形
- 输出参数
- None: 读取失败
- int: 读取成功的返回值
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func04 读取输入寄存器
-
方法说明
Modbus 读取只读输入寄存器,功能码 04。
def read_input_register(ip: str, port: int, slave_id: int, offset: int, data_type: int) -> int | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- data_type: int 类型,2:无符号整形,3:有符号整形
- 输出参数
- None: 读取失败
- int: 读取成功的返回值
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func01 批量读取线圈量
-
方法说明
Modbus 读取线圈量多个连续地址值,并以数组的形式返回其中的值,功能码 01。
def batch_read_coil_status(ip: str, port: int, slave_id: int, offset: int, len: int) -> list[bool] | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 首地址
- len: int 类型,Modbus 地址数量
- 输出参数
- None: 读取失败
- list[bool]: 读取成功后,返回结果数组
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func02 批量读取离散输入
-
方法说明
Modbus 读取离散输入多个连续地址值,并以数组的形式返回其中的值,功能码 02。
def batch_read_input_status(ip: str, port: int, slave_id: int, offset: int, len: int) -> list[bool] | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 首地址
- len: int 类型,Modbus 地址数量
- 输出参数
- None: 读取失败
- list[bool]: 读取成功后,返回结果数组
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func03 批量读取保持寄存器
-
方法说明
Modbus 读取保持寄存器多个连续地址值,并以数组的形式返回其中的值,功能码 03。
def batch_read_holding_registers(ip: str, port: int, slave_id: int, offset: int, len: int) -> list[int] | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 首地址
- len: int 类型,Modbus 地址数量
- 输出参数
- None: 读取失败
- list[int]: 读取成功后,返回结果数组
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func04 批量读取输入寄存器
-
方法说明
Modbus 读取输入寄存器多个连续地址值,并以数组的形式返回其中的值,功能码 04。
def batch_read_input_registers(ip: str, port: int, slave_id: int, offset: int, len: int) -> list[int] | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 首地址
- len: int 类型,Modbus 地址数量
- 输出参数
- None: 读取失败
- list[int]: 读取成功后,返回结果数组
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func05 写入线圈量
-
方法说明
Modbus 写入线圈量,功能码 05。
def write_coil_status(ip: str, port: int, slave_id: int, offset: int, value: bool) -> bool
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- value: bool 类型,写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func06 写入保持寄存器
-
方法说明
Modbus 写入保持寄存器,功能码 06。
def write_holding_register(ip: str, port: int, slave_id: int, offset: int, data_type: int, value: int) -> bool
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- data_type: int 类型,2:无符号整形,3:有符号整形
- value: int 类型,写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func0f 批量写入线圈量
-
方法说明
Modbus 写入线圈量多个连续地址,功能码 0f。
def batch_write_coil_status(ip: str, port: int, slave_id: int, offset: int, value: list[bool]) -> bool
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- value: list[bool] 类型,多个需写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
Func10 批量写入保持寄存器
-
方法说明
Modbus 写入保持寄存器多个连续地址,功能码 10。
def batch_write_holding_register(ip: str, port: int, slave_id: int, offset: int, value: list[int]) -> bool
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- offset: int 类型,Modbus 地址
- value: list[int] 类型,多个需写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
通用写入单个地址
-
方法说明
Modbus 写入单个地址,通过参数 type 指定读取的地址类型。
def write_single_modbus_value(ip: str, port: int, slave_id: int, type_str: str, offset: int, value: int) -> bool
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- type_str: str 类型,表示地址类型,可选择'0x','1x','3x','4x',和功能码的对应关系如下:
- 0x:对应功能码0x01,表示读线圈
- 1x:对应功能码0x02,表示读离散输入
- 3x:对应功能码0x04,表示读输入寄存器
- 4x:对应功能码0x03,表示读保持寄存器
- offset: int 类型,表示Modbus 地址
- value: int 类型,表示写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
通用写入多个地址
-
方法说明
Modbus 写入单个地址,通过参数 type 指定读取的地址类型。
def write_batch_modbus_value(ip: str, port: int, slave_id: int, type_str: str, offset: int, values: list[int]) -> bool
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- type_str: str 类型,表示地址类型,可选择'0x','1x','3x','4x',和功能码的对应关系如下:
- 0x:对应功能码0x01,表示读线圈
- 1x:对应功能码0x02,表示读离散输入
- 3x:对应功能码0x04,表示读输入寄存器
- 4x:对应功能码0x03,表示读保持寄存器
- offset: int 类型,表示Modbus 地址
- values: list[int] 类型,表示写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
通过实例名称写入单个地址
-
方法说明
Modbus 写入单个地址,通过参数 name 指定已经配置的实例名称。
def write_single_modbus_value_by_instance_name(name: str, offset: int, value: int) -> bool
- 输入参数
- name: str 类型,已经配置的实例名称
- offset: int 类型,表示 Modbus 地址
- value: int 类型,表示写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 如果没有配置 modbus 实例,则会抛出初始化异常。
通过实例名称写入多个地址
-
方法说明
Modbus 写入多个地址,通过参数 name 指定已经配置的实例名称。
def write_batch_modbus_value_by_instance_name(name: str, offset: int, values: list[int]) -> bool
- 输入参数
- name: str 类型,已经配置的实例名称
- offset: int 类型,表示 Modbus 地址
- values: list[int] 类型,表示写入的值
- 输出参数
- True: 写入成功
- False: 写入失败
- 异常 如果没有配置 modbus 实例,则会抛出初始化异常。
通用读取单个地址
-
方法说明
Modbus 读取单个地址,通过参数 type 指定读取的地址类型。
def read_single_modbus_value(ip: str, port: int, slave_id: int, type_str: str, offset: int) -> int | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- type_str: str 类型,表示地址类型,可选择'0x','1x','3x','4x',和功能码的对应关系如下:
- 0x:对应功能码0x01,表示读线圈
- 1x:对应功能码0x02,表示读离散输入
- 3x:对应功能码0x04,表示读输入寄存器
- 4x:对应功能码0x03,表示读保持寄存器
- offset: int 类型,Modbus 地址
- 输出参数
- None: 读取失败
- int: 读取成功的返回值
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
通用读取多个地址
-
方法说明
Modbus 读取多个地址,通过参数 name 指定已经配置的实例名称。
def read_batch_modbus_value(ip: str, port: int, slave_id: int, type_str: str, offset: int, length: int) -> list[int] | None
- 输入参数
- ip: str 类型,从机 IP
- port: int 类型,从机端口
- slave_id: int 类型,从机 slave ID
- type_str: str 类型,表示地址类型,可选择'0x','1x','3x','4x',和功能码的对应关系如下:
- 0x:对应功能码0x01,表示读线圈
- 1x:对应功能码0x02,表示读离散输入
- 3x:对应功能码0x04,表示读输入寄存器
- 4x:对应功能码0x03,表示读保持寄存器
- offset: int 类型,Modbus 地址
- length: int 类型,读取的数据长度
- 输出参数
- None: 读取失败
- list[int]: 读取成功的返回值数组
- 异常 本方法不抛出异常,异常捕获后只作日志记录。
通过实例名称读取单个地址
-
方法说明
Modbus 读取单个地址,通过参数 name 指定已经配置的实例名称。
def read_single_modbus_value_by_instance_name(name: str, offset: int) -> int | None
- 输入参数
- name: str 类型,配置的唯一实例名称
- offset: int 类型,Modbus 地址
- 输出参数
- None: 读取失败
- int: 读取成功的返回值
- 异常 如果没有配置 modbus 实例,则会抛出初始化异常。
通过实例名称读取多个地址
-
方法说明
Modbus 读取多个地址,通过参数 name 指定已经配置的实例名称。
def read_batch_modbus_value_by_instance_name(name: str, offset: int, length: int) -> list[int] | None
- 输入参数
- name: str 类型,配置的唯一实例名称
- offset: int 类型,Modbus 地址
- length: int 类型,读取的数据长度
- 输出参数
- None: 读取失败
- list[int]: 读取成功的返回值
- 异常 如果没有配置 modbus 实例,则会抛出初始化异常。