-
Notifications
You must be signed in to change notification settings - Fork 1
Modbus Plugin
Yurii Solodzhuk edited this page Feb 12, 2026
·
3 revisions
Плагін для Modbus RTU зв'язку через серійний порт. Підтримує всі стандартні функціональні коди.
pip install pyqtier[modbus]# app/widgets/main_window.py
from pyqtier.plugins.modbus_plugin import ModbusPluginManager, ModbusDataProcessor
class MainWindow(PyQtierMainWindow):
def setup_view(self):
self.modbus = ModbusPluginManager(
with_baudrate=True,
default_baudrate=9600,
default_slave_id=1
)
self.modbus.setup_view(self.view.modbus_widget, self.view.statusbar)
self.modbus.set_data_processor(MyModbusProcessor())
def create_behavior(self):
self.modbus.connected.connect(self.on_connected)
self.modbus.disconnected.connect(self.on_disconnected)
self.modbus.data_ready.connect(self.on_data)
self.modbus.error_occurred.connect(self.on_error)# Holding registers (FC 3)
values = self.modbus.read_holding_registers(address=100, count=5, slave_id=1)
# Input registers (FC 4)
values = self.modbus.read_input_registers(address=200, count=3)
# Coils (FC 1)
states = self.modbus.read_coils(address=0, count=8)
# Discrete inputs (FC 2)
states = self.modbus.read_discrete_inputs(address=10, count=4)
# Універсальний метод
values = self.modbus.read(function_code=3, address=100, count=5)# Один регістр (FC 6)
self.modbus.write_register(address=100, value=1234)
# Кілька регістрів (FC 16)
self.modbus.write_registers(address=100, values=[10, 20, 30])
# Один coil (FC 5)
self.modbus.write_coil(address=0, value=True)
# Кілька coils (FC 15)
self.modbus.write_coils(address=0, values=[True, False, True])
# Універсальний метод
self.modbus.write(function_code=6, address=100, value=1234)| Сигнал | Опис |
|---|---|
connected |
Успішне підключення |
disconnected |
Відключення |
connection_lost |
Втрата з'єднання |
error_occurred |
Помилка |
data_ready |
Оброблені дані (після Data Processor) |
devices_list_updated |
Оновлення списку портів |
9600, 19200, 38400, 57600, 115200
- Slave ID можна задати в UI або передати параметром у кожен метод
- Допустимий діапазон Slave ID: 1–247
- Data Processor автоматично запускає/зупиняє polling при підключенні/відключенні
- Всі методи читання повертають
Noneпри помилці
Початок роботи
Основи
Плагіни
Додатково