Files

54 lines
1.9 KiB
Python

#python d:\Антоше\Универ\Гит\Software_and_hardware\Версия_2.0\Server.py
import serial
import serial.tools.list_ports
import minimalmodbus
import time
def find_arduino_port():
ports = list(serial.tools.list_ports.comports())
for port in ports:
if "Arduino" in port.description or "CH340" in port.description:
return port.device
return None
# Настройки порта
port = find_arduino_port() # Укажите порт, к которому подключен Arduino
slave_id = 1 # ID устройства (адрес Arduino)
baudrate = 9600
timeout = 1 # Время ожидания в секундах
# Настроим модбас клиента
client = minimalmodbus.Instrument(port, slave_id) # Создаем объект клиента Modbus
client.serial.baudrate = baudrate # Устанавливаем скорость
client.serial.timeout = timeout # Время ожидания ответа
client.mode = minimalmodbus.MODE_RTU # Используем RTU
# Ожидаем получения данных от Arduino
try:
while True:
try:
# Чтение 4 регистров с адреса 0
result = client.read_registers(0, 1, functioncode=3)
print(f"Полученные данные: {result}")
break # Выход из цикла, если данные получены
except minimalmodbus.NoResponseError:
print("Ошибка: Нет ответа от устройства. Повторяем...")
time.sleep(1) # Подождать 1 секунду и попробовать снова
except Exception as e:
print(f"Ошибка: {e}")
break
except KeyboardInterrupt:
print("Программа остановлена пользователем")