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

Тема: Передача данных по CSD ПЛК+ПМ01-->ПМ01+ ЛЛК

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

    По умолчанию Передача данных по CSD ПЛК+ПМ01-->ПМ01+ ЛЛК

    Привет всем! Прошу помощи со следующей проблеммой:
    Передаю данные с одного ПЛК100 на другой ПЛК100 по CSD соеденению через ПМ01подключенный по RS-485, Использую при этом библиотеки модбас.либ. Так как надо звонить на несколько номеров и получать данные с разных объектов.
    В приложенных проекта я получаю 5 чисел типа REAL. Operation_Station звонит на Water_Station и получает от туда данные.
    Проблема возникает при получении данных. Данные приходят не те что надо, точнее те но не в том порядке или вообще все пять значений заполняются первыми двумя значениями с Water_Station и ужасно долго около 3-4 минуты.
    на Water_Station
    d:=135.4;
    d1:=10.6;
    d2:=150.3;
    d3:=6.6;
    d4:=70.6;
    на Operation_Station может прийти
    d:=70.6;
    d1:=10.6;
    d2:=70.6;
    d3:=70.6;
    d4:=70.6;
    Не пойму в чем причина?
    Отключаю ПМ01 и соеденяю напрямую два ПЛК100 проводами по тому же 485, Все долетает за секунду причем так как надои без никаких проблем
    Подскажте пожалуйстав чем моя ошибка?
    Вложения Вложения

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

    По умолчанию

    Товарищи! что не у кого нет никаких мыслей?

  3. #3

    По умолчанию

    Код не смотрел, но предположу что дело в таймаутах. Во-первых учитываешь ли ты что на установку связи нужно время. А потом учитываешь ли что передача данных по CSD соединению занимает ~800-1200 мc в одном направлении. А ты посылаешь запрос туда и получаешь ответ от туда и по этому на один запрос будет уходить порядка двух секунд. Скорей всего у тебя получается следующее ты посылаешь туда запрос, из-за маленького таймаута считаешь, что ответа не пришло и шлешь следующий запрос, но вместо ответа на него получаешь ответ на первый запрос (но тут могут быть разные варианты).

    В общем увеличь таймауты.
    Последний раз редактировалось kfvniiz; 18.02.2014 в 17:26.

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

    По умолчанию

    Спасибо за ответ.
    Я начинаю опрос только после подтверждения что соединение установлено.
    Вы имеете ввиду стандартные тайм ауты в модбасовском блоке? который по умолчанию стоит 50мс.
    Прошу kfvniiz если не трудно, уделить мне немного времени и посмотреть код.
    Уж очень нужно а у самого пока никак.

  5. #5

    По умолчанию

    Дык надо пробовать, вот открываем "Описание интерфейса библиотеки ФБ для работы с протоколом Modbus" и там читаем описание функций. У тебя в проекте используются MB_RD_HOLD_REGS и MB_RD_INP_REGS. У обоих этих функций есть параметр TimeOut. Вот как он описан в документации:
    TimeOut: TIME – тайм-аут [мс] – максимальная задержка ведомого устройства на обработку запроса (интервал времени после получения корректного запроса и отправкой первого символа квитанции). Рекомендуемое значение 10мс.
    Теперь учитывая задержки в канале CSD и время реакции устройства думаем, что туда нужно поставить. Я бы поставил бы 2500 мс (а может даже и 3000 мс) и проверил работает или нет. А затем бы путем последовательного уменьшения определил бы время при котором появятся ошибки обмена. Затем взял бы время с запасом от этого т.к. CSD канал непрозрачный и что там да как происходит дело неизвестное (т.е. вероятно в зависимости от качества сигнала время передачи может меняться).
    Последний раз редактировалось kfvniiz; 19.02.2014 в 00:06.

  6. #6
    Пользователь
    Регистрация
    13.07.2011
    Адрес
    Макеевка
    Сообщений
    224

    По умолчанию

    Спасибо буду пробовать. Потом обязательно отпишусь, что получилось.

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

    По умолчанию

    Спасибо kfvniiz! Установил тайм ауты на 2500мс. и все пошло. 4 попытки, 4 удачных приема. Вот не знаю стоит ли здесь CRC проверять или нет? в этой же библиотеки есть блок, правда не знаю как им пользоваться.
    Еще раз спасибо за помощь

Похожие темы

  1. МСД-200 -> RS485 -> ПМ01 -> USB -> ПК
    от Tigger в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 09.12.2013, 16:36
  2. Ответов: 30
    Последнее сообщение: 06.06.2013, 04:56
  3. ПМ01 и CSD
    от Igor_Pavlov в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 25.04.2013, 11:41
  4. связь модем ПМ01-ПМ01 по GPRS
    от kycua в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 22.12.2011, 17:16
  5. Ответов: 1
    Последнее сообщение: 08.12.2010, 14:17

Ваши права

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