@Eig
Инженер

PySerial Как правильно послать запрос?

Имею китайский источник питания PSU-W-FDA для лазера фирмы CNILaser. Регулировка напряжения, включение и выключение реализовано через интерфейс RS-232/USB, путем отправки нехитрых запросов, код намеренно упрощаю:
from serial import Serial

def send_message(self, v):
    # Выключение лазера
    if v == 0:
        hex_string = '55 aa 03 00 03'
    # Включение лазер
    elif v == 1:
        hex_string = '55 aa 03 01 04'
    # Установка 100 мВ
    elif v == 2:
        hex_string = '55 aa 05 04 00 64 6D'
    message = bytes.fromhex(hex_string)
    ser = Serial(port='COM4', baudrate=9600, timeout = 0.1)
    ser.open()
    self.write(ser, message)
    if ser.is_open:
        ser.flushInput()
        ser.flushOutput()
        sleep(0.1)
        try:
            ser.write(message)
        except Exception as exc:
            print('type: {0}, message: {1}'.format(type(exc), str(exc)))
        else:
            res = ser.readline()
            print(res)
            ser.close()

Инструкция включает в себя одну страницу, на которой написано как формируется запрос. Запрос для установки 100 мВ, собственно, взят из нее.
55 aa - некий идентификатор;
00 64 - это 100 (мВ) в 16-ричной системе;
Контрольная сумма: 05 + 04 + 00 + 64 = 6D
Также там написано, что для контрольной суммы берутся "8 Low bit of 6D", но в запросе приведенного примера присутствует именно 6D.

В итоге включение и выключение работают, а установка 100 мВ или любого другого значения не работает (возвращается некий код ошибки 05), хотя видно, что принцип формирования запроса во всех трех случаях не отличается, отличается только количество знаков.

В комплекте идет простенькая программка для чайников, написанная на Delphi7 (исходного кода нет). С помощью этой программы вольты устанавливаются.

Теперь, собственно, вопрос: в каком месте я не прав? Все осложняется тем, что не работает именно тот пример, который приведен самими разработчиками-китайцами, т.е. это не самодеятельность.
А если я во всем прав, и это ошибка в инструкции, то, может быть, кто-то знает, какие платы/контроллеры используются в этих источниках питания, и можно ли найти это оборудование, например, по драйверам, идущим на диске, потому что техническая поддержка у китайцев на нуле, а разбирать источник питания, чтобы посмотреть какое там железо, не хотелось бы.
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 140 000 до 190 000 руб.
Cashwagon Москва
от 150 000 руб.
от 60 000 до 120 000 руб.
24 мая 2019, в 23:37
100000 руб./за проект
24 мая 2019, в 21:53
500 руб./в час
24 мая 2019, в 21:36
500 руб./за проект