Показано с 1 по 2 из 2

Тема: Смена скорости обмена во время опроса

  1. #1

    По умолчанию Смена скорости обмена во время опроса

    Получилось так, что одно устройство из 5 висящих на RS-485 (Modbus-RTU) никак не хочет держать связь с ПЛК100 на частоте 115200, на 9600 работает нормально. На 115200 это устройство отвечает, но ПЛК ответ не принимает почему то. Скорость обмена с 115200 до 9600 понижать для всех устройств не хочется, т.к. системе требуется хорошее быстродействие

    Хочу менять скорость опроса на лету при опросе этого устройства.
    Есть у кого-нибудь готовые примеры или советы решения подобной проблемы?

    Пробую следующим образом, но что-то не работает:

    (* Устанавливаем настройки COM-порта: *)
    (* comPortOpened=0 - первое открытие порта, comPortOpened=3 - изменение скорости обмена *)
    IF comPortOpened=0 OR comPortOpened=3 THEN
    IF modbusOpSelect = 5 THEN
    comSettings.Port:=0;
    comSettings.dwBaudRate:=9600;(* скорость *)
    comSettings.byParity:=0; (* 0 = NOPARITY, 1 = ODDPARITY, 2 = EVENPARITY *)
    comSettings.dwTimeout:=0;
    comSettings.byStopBits:=2; (* 0 = ONESTOPBIT, 1=ONE5STOPBITS, 2=TWOSTOPBITS *)
    comSettings.dwBufferSize:=0;
    comSettings.dwScan:=0;
    ELSE
    comSettings.Port:=0;
    comSettings.dwBaudRate:=115200;(* скорость *)
    comSettings.byParity:=0; (* 0 = NOPARITY, 1 = ODDPARITY, 2 = EVENPARITY *)
    comSettings.dwTimeout:=0;
    comSettings.byStopBits:=2; (* 0 = ONESTOPBIT, 1=ONE5STOPBITS, 2=TWOSTOPBITS *)
    comSettings.dwBufferSize:=0;
    comSettings.dwScan:=0;
    END_IF
    END_IF

    (* Открываем COM порт *)
    comService(Enable:=(comPortOpened=0) , Settings:=comSettings , Task:=OPEN_TSK);

    (* применение новых настроек порта *)
    comService(Enable:=(comPortOpened=3) , Settings:=comSettings , Task:=RESET_TSK);

    (* Если ком порт открыт, то переходим к обмену данными *)
    IF comService.ready THEN
    (* здесь обмен с пятью устройствами *)
    (* в конце обмена с предпоследним устройством comPortOpened приравнивается к 3 чтобы установить 9600*)
    (* после обмена с ним comPortOpened снова приравнивается к 3 чтобы вернуть скорость на 115200 *)
    .................................................. ....
    END_IF

  2. #2

    По умолчанию

    Здравствуйте.
    Попробуйте этот код
    Modbus_.pro
    Инженер по продуктам «ПЛК и модули»
    e-mail: i.masterenko@owen.ru | skype: i.masterenko_owen

Похожие темы

  1. ПЛК 110-32М смена скорости порта
    от Papagun78 в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 31.08.2015, 16:58
  2. Смена протокола обмена ТРМ202 и ТРМ212
    от mindstomp в разделе Эксплуатация
    Ответов: 4
    Последнее сообщение: 18.08.2015, 19:40
  3. Настройка скорости сети 485 и частоты опроса
    от and909 в разделе Эксплуатация
    Ответов: 9
    Последнее сообщение: 16.05.2014, 17:29
  4. Время обмена
    от Трефилов в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 20.07.2009, 07:43

Ваши права

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