Jump to content
Форум по продукции MOXA

atomo2

Пользователи
  • Posts

    3
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

atomo2's Achievements

Новичок

Новичок (1/5)

0

Reputation

  1. Так переписал код вроде получилось (COM-порт COM2 успешно открыт для Modbus RTU. Прочитанные данные: [16818]) import serial from pymodbus.client.sync import ModbusSerialClient as ModbusClient # Настройки COM-порта port_name = "COM2" baud_rate = 19200 data_bits = 8 stop_bits = 1 parity = 'N' # Создайте экземпляр Modbus RTU клиента client = ModbusClient(method="rtu", port=port_name, stopbits=stop_bits, bytesize=data_bits, parity=parity, baudrate=baud_rate) # Откройте соединение с устройством if client.connect(): print(f"COM-порт {port_name} успешно открыт для Modbus RTU.") # Адрес устройства device_address = 16 # 0x0010 # Чтение регистров read_start_address = 4105 # 0x1009 read_count = 1 # Количество регистров для чтения # Прочитайте регистры response = client.read_holding_registers(read_start_address, read_count, unit=device_address) if response.isError(): print(f"Произошла ошибка при чтении регистра: {response}") else: print(f"Прочитанные данные: {response.registers}") # Закройте соединение client.close() else: print(f"Не удалось открыть COM-порт {port_name} для Modbus RTU.") # Закрытие COM-порта client.close()
  2. Использую Moxa 5150. Запускаю скрипт через Python , выводится (COM-порт COM2 успешно открыт для Modbus RTU. Произошло исключение: Slave reported illegal data address) , что говорит о неверном регистре. Да, com port создан и в диспетчере устройств отображается как Nport Com2.
  3. Добрый день. Подскажите можно ли считать данные с ТРМки без opc-сервера, без всяких scada систем. А считать скриптом? Вот мой набросок скрипта, который успешно подключается, но ничего не считывает (COM-порт COM2 успешно открыт для Modbus RTU. Произошло исключение: Slave reported illegal data address). При всех этих же настройках в SimpLight данные считываются. import minimalmodbus import serial # Настройки COM-порта port_name = "COM2" baud_rate = 19200 data_bits = 8 stop_bits = 1 parity = serial.PARITY_NONE rtscts = True xonxoff = False # Создаем объект для работы с COM-портом ser = serial.Serial( port=port_name, baudrate=baud_rate, bytesize=data_bits, stopbits=stop_bits, parity=parity, rtscts=rtscts, xonxoff=xonxoff ) # Ожидание установки соединения с COM-портом while not ser.is_open: pass # Успешное подключение к COM-порту print(f"COM-порт {ser.port} успешно открыт для Modbus RTU.") # Адрес устройства (0x0010) device_address = 16 # Создаем объект Modbus с указанными параметрами instrument = minimalmodbus.Instrument(ser, device_address) # Таймаут ожидания (в миллисекундах) instrument.serial.timeout = 1 # Устанавливаем таймаут в 1 секунду # Количество повторов при ошибке instrument.serial.retries = 3 # Количество регистров в запросе num_registers = 125 try: # Чтение данных с устройства data = instrument.read_registers(0, num_registers) # Ваша логика обработки данных print(f"Прочитанные данные: {data}") except Exception as e: print(f"Произошло исключение: {e}") # Закрываем COM-порт ser.close()
×
×
  • Create New...