Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: неустойчивая работа пм-01 на Rs-485

  1. #1
    Пользователь
    Регистрация
    04.11.2009
    Адрес
    Подольск
    Сообщений
    258

    По умолчанию неустойчивая работа пм-01 на Rs-485

    а не сталкивался ли кто с потерей байтов при подключении модема к плк-63 по 485 интерфейсу?

    в среднем на 10 ответов на различные команды теряется пара байт. но не всегда. иногда приходит заведомо не отправлявшийся символ (255). эхо выключено. скорость - 9600. длина Rs-485 - ~10см. в сети два устройства - плк-63 и пм-01. согласование линии на пм отключено.

    собственно очень напоминает проблему, которая бывала на заре появления скоростных модемов, до тех пор, пока порты не стали оборудовать чипами 16550 с 16-ти байтным буфером.

    собственно вопрос, а что делать? переходить на Rs-232 или снижать скорость? пытался снижать: тупо задаю 1200, посылаю Atz и не получаю никаких ответов от модема. (может надо ему как-то вручную сказать, чтобы отвечал на иной скорости? At/at&w ?).
    поддерживают ли библиотеки скорости работы, отличные от 9600? если бы я передавал данные - можно было бы посчитать некое подобие Crc и убедиться, что получил то, что нужно. я же читаю **** иногда - текстовые. читать N раз до тех пор, пока не совпадёт формат, либо считать смс неправильной - как-то это не гарантирует правильное чтение...

    может я что-то делаю не так, ведь, насколько я понимаю, больших жалоб на оборудование нет, во всяком случае на форуме...

    кстати, не планируется ли в перспективе на плк распаять Cts/rts, Dtr/dsr?

  2. #2
    Пользователь
    Регистрация
    04.11.2009
    Адрес
    Подольск
    Сообщений
    258

    По умолчанию

    собственно снижение скорости к иному результату не приводит. вообще, по ощущениям, на 1200 байты теряются даже чаще...

  3. #3
    Ельцов Андрей
    Гость

    По умолчанию

    Здравствуйте, Elka.

    Пока у нас действительно не было подобных нареканий, поэтому никаких инструкций и рекомендаций у нас нет.
    Возможно это брак gsm модуля, но это, в любом случае, нужно проверить.

    Если есть возможность выложите Лог.

    Что касается дополнительных линий связи, то они будут поддержаны в ПЛК30х. Не на всех портах и не везде, но будут (смотрите, РЭ).

  4. #4
    Пользователь
    Регистрация
    04.11.2009
    Адрес
    Подольск
    Сообщений
    258

    По умолчанию

    вечер добрый, андрей!

    а не просветите, как правильно этот самый лог сделать? могу прислать проект, копии экранов в режиме отладки, где собственно видно содержимое буфера чтения. а можно общение по Rs-485 как-то сразу в лог записать? или имелось ввиду переключение на Rs-232, подключение к компу и чтение терминалом? но это не одно и тоже. впрочем тоже проверю - если там потери аналогичны, то это, действительно может быть брак модуля.

    кстати, во-первых, включение сопротивления согласования на потерю байт не влияет, во-вторых, при блоковом чтении (когда читаем не побайтно, а скажем байт по 10) потери чуть меньше. но сохраняются, как и искажения. завтра вечером постараюсь всё зафиксировать.

    с уважением,
    кирилл лебедев

  5. #5
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    для записи лога паралельно к Rs485 подключите ас3 или ас4. на компе откройте гипертерминал и задайте параметры: порт - к которому подключен ас, и остальные параметры как на контроллере и модеме. снимите трубку. все.

  6. #6
    Ельцов Андрей
    Гость

    По умолчанию

    К сообщению от Лара я бы добавил еще включение portmonitor или подобной программы. Она имеет возможность просматривать все данные появляющиеся в порту. А гипер терминал может показать только пробел или точку, что не корректно для анализа.
    Вот:-)

  7. #7
    Пользователь
    Регистрация
    04.11.2009
    Адрес
    Подольск
    Сообщений
    258

    По умолчанию

    Ac4 выкуплю завтра и вечером попробую. стал ещё раз штудировать документацию на модем и обратил внимание, что модем подключён только двумя проводами A и B, в то же время, разводка на модеме подразумевает ещё использование Gnd. может его не хватает? а куда его зацепить на плк63?

    и ещё, нужно ли программно выдерживать паузу между получением ответа от модема и отправкой новой команды?

  8. #8
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    к Gnd можно подключать экран кабеля Rs485. Cигналы на проводах а и в имеют противофазное значение и не нуждаются в использовании дополнительного соединения с землей.

    желательно и еще хорошо отключить эхо.

  9. #9
    Пользователь
    Регистрация
    04.11.2009
    Адрес
    Подольск
    Сообщений
    258

    По умолчанию

    Проблема более-менее локализована, но не устранена. Сначала общее описание:
    1. Всё подключил экранированным кабелем. Схема: PC-usb-AC4(R-вкл,120ом)-rs485-ПЛК63-rs485-ПМ01(R-вкл).
    2. Даю одну и ту же команду, жду ответ <13><10>OK<13><10>.
    3. В логе терминала - всё ОК (serial_com2.log). Буфер, в который осуществляется приём от модема можно увидеть во вложении (CodeSys.jpg), где видна потеря байт. Наиболее хорошо это видно, если SysComRead читает порт побайтно (если читать блоками, то для того, чтобы увидить потерю байт, обмен должен быть более интенсивный (типа чтения СМС с SIM)).
    4. Провёл два эксперимента: первый - в той же схеме при выключеном модеме вместе него давал ответ с терминала - всё ОК, все байты приходят, второй - при выключенном ПЛК давал команды модему с терминала, тоже всё ОК...

    Наверное, я где-то напортачил в проекте (собственно тоже во вложении), но никак не могу понять где. Собственно, у кого есть возможность - проверьте...

    С уважением,
    Кирилл Лебедев
    Вложения Вложения

  10. #10

    По умолчанию

    1. Ответ никогда не приходит сразу за запросом.
    2. Читать лучше всего по 1 байту.
    3. Нельзя ожидать что придет вся пачка и в пачке в начале/конце не будет мусора. соответственно надо модифицировать разборщик.
    4. Важно! Перед следующей транзакцией следует очищать приёмный буфер.
    4. Вроде резистор надо ставить только на 1 конце 485.
    5. Что за библиотека ComLibService.lib?

Страница 1 из 3 123 ПоследняяПоследняя

Ваши права

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