Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 34 из 34

Тема: Обрывы связи по RS-485 при отключении одного устройства от сети

  1. #31

    По умолчанию

    А как правильно перезапустить RS485 (Modbus Slave) в СПК107 на языке ST ?
    Цикл программы t#20ms
    Если контроллер STM32F745 сразу по включению питания отправляет пакет на СПК107
    то у СПК зависает порт, а если подождать 5 сек, то после загрузки СПК (75 сек)
    он отвечает.
    Пробовал в CODESYS 3.5.14.30 и в CODESYS 3.5.16.30
    в CODESYS 3.5.11 такого глюка не было, но обратно перепрошить СПК не получится ?
    Нужно написать, что-то типа:

    IF (Modbus_Serial_Device.xInternalError) THEN
    Modbus_Serial_Device.xEnable := FALSE;
    ELSE Modbus_Serial_Device.xEnable := TRUE;
    END_IF;

    или нужна задержка на xEnable FALSE/TRUE ?

  2. #32
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    6,780

    По умолчанию

    Цитата Сообщение от jujin_un Посмотреть сообщение
    А как правильно перезапустить RS485 (Modbus Slave) в СПК107 на языке ST ?
    Цикл программы t#20ms
    Если контроллер STM32F745 сразу по включению питания отправляет пакет на СПК107
    то у СПК зависает порт, а если подождать 5 сек, то после загрузки СПК (75 сек)
    он отвечает.
    Пробовал в CODESYS 3.5.14.30 и в CODESYS 3.5.16.30
    в CODESYS 3.5.11 такого глюка не было, но обратно перепрошить СПК не получится ?
    Нужно написать, что-то типа:

    IF (Modbus_Serial_Device.xInternalError) THEN
    Modbus_Serial_Device.xEnable := FALSE;
    ELSE Modbus_Serial_Device.xEnable := TRUE;
    END_IF;

    или нужна задержка на xEnable FALSE/TRUE ?
    Манипуляции со слэйвом не решат вашу проблему.
    Какой именно пакет посылает STM32?
    Выложите дамп.

  3. #33

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Манипуляции со слэйвом не решат вашу проблему.
    Какой именно пакет посылает STM32?
    Выложите дамп.
    RS485 зависает при первом включении за день, потом
    если отключить питание и снова включить, зависание проявляется не всегда.

    на СПК отправляется команда 0x10 с разными пакетами до 56 регистров максимум.
    Упростил пакет до 1 регистра и потестирую.

    Tx (STM32): 0A 10 00 16 00 01 02 00 0F 97 92
    Rx (ответ СПК): 0A 10 00 16 00 01 E1 76

  4. #34
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    6,780

    По умолчанию

    Цитата Сообщение от jujin_un Посмотреть сообщение
    RS485 зависает при первом включении за день, потом
    если отключить питание и снова включить, зависание проявляется не всегда.

    на СПК отправляется команда 0x10 с разными пакетами до 56 регистров максимум.
    Упростил пакет до 1 регистра и потестирую.

    Tx (STM32): 0A 10 00 16 00 01 02 00 0F 97 92
    Rx (ответ СПК): 0A 10 00 16 00 01 E1 76
    Желательно выложить дамп конкретных пакетов, отправка которых во время перезагрузки приводит к зависанию порта.

Страница 4 из 4 ПерваяПервая ... 234

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 20.11.2019, 10:38
  2. Ответов: 3
    Последнее сообщение: 18.10.2018, 15:57
  3. Ответов: 4
    Последнее сообщение: 28.07.2016, 06:29
  4. Ответов: 15
    Последнее сообщение: 15.03.2016, 21:29
  5. Ответов: 9
    Последнее сообщение: 09.04.2015, 11:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •