Страница 307 из 1041 ПерваяПервая ... 207257297305306307308309317357407807 ... ПоследняяПоследняя
Показано с 3,061 по 3,070 из 10404

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #3061

    По умолчанию

    У меня такая задача.

    Есть устройство, которое с определенной периодичностью - примерно раз в 0,5 сек. шлет данные в COM-порт.
    Я хочу считывать эти данные в ПЛК100 через один COM-порт, обрабатывать и пересылать обработанные данные через другой COM-порт.

    Есть загвоздка, связанная с тем, что размер посылки заранее неизвестен.
    Длина посылки может варьироваться в диапазоне от 4 до 22 байт.
    Формат сообщения известен.

    Написал программу на основе первого примера отсюда:
    http://www.owen.ru/forum/showthread.php?t=13585

    Проблема в том, что функции из библиотеки требуют указания фиксированного размера в байтах для чтения/записи.
    Если сделать размер буфера чтения больше, чем размер посылки: например, 25 байт,
    то в конце получается мусор, который переносится в новые строки.
    Причем не получается очистить буфер, присвоив переменной пустую строку.

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

    В обоих вариантах можно, конечно, отбрасывать неправильные строки, но тогда часть посылок будет теряться, что нежелательно.

    Посоветуйте, пожалуйста, как решить эту задачу.
    Либо дайте, пожалуйста, какой-то пример, в котором контроллер просто слушает порт,
    а затем обрабатывает полученные посылки.

  2. #3062

    По умолчанию

    И еще у меня данные не приходят с того порта, который RS-232 Debug,
    хотя в программе наблюдаю, что вроде бы отправка идет.

    Может ли данный порт использоваться для пересылки данных или для этого можно задействовать только обычный порт RS-232?

  3. #3063
    Пользователь
    Регистрация
    27.08.2011
    Адрес
    Курган
    Сообщений
    212

    По умолчанию

    Незнаю большая разница в них нет, но я панель подключаю только к RS-232, а модем к RS-232 Debug. Пробывал подключать панель к RS-232 Debug, начинались какие то не понятки.

  4. #3064

    По умолчанию

    У меня такая задача.

    Есть устройство, которое с определенной периодичностью - примерно раз в 0,5 сек. шлет данные в COM-порт.
    Я хочу считывать эти данные в ПЛК100 через один COM-порт, обрабатывать и пересылать обработанные данные через другой COM-порт.

    Есть загвоздка, связанная с тем, что размер посылки заранее неизвестен.
    Длина посылки может варьироваться в диапазоне от 4 до 22 байт.
    Формат сообщения известен.

    Написал программу на основе первого примера отсюда:
    http://www.owen.ru/forum/showthread.php?t=13585

    Проблема в том, что функции из библиотеки требуют указания фиксированного размера в байтах для чтения/записи.
    Если сделать размер буфера чтения больше, чем размер посылки: например, 25 байт,
    то в конце получается мусор, который переносится в новые строки.
    Причем не получается очистить буфер, присвоив переменной пустую строку.

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

    В обоих вариантах можно, конечно, отбрасывать неправильные строки, но тогда часть посылок будет теряться, что нежелательно.

    Посоветуйте, пожалуйста, как решить эту задачу.
    Либо дайте, пожалуйста, какой-то пример, в котором контроллер просто слушает порт,
    а затем обрабатывает полученные посылки.

  5. #3065

    По умолчанию

    Парни, такой вопрос. Вот картинка
    Вложение 14469

    Меня интересуют цифры, обведённые овалами.
    Если я присвою адресу %QB8.2.32 переменную, то с этого регистра я смогу не только читать, но ещё и писать? Как это сделать?

  6. #3066
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,317

    По умолчанию

    Цитата Сообщение от stskr Посмотреть сообщение
    Проблема в том, что функции из библиотеки требуют указания фиксированного размера в байтах для чтения/записи.
    Но возвращают размер пришедшего/отправленного

  7. #3067

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Но возвращают размер пришедшего/отправленного
    Валенок, спасибо. Я что-то малость затупил.
    Задачу решил.

    Отвечаю сам на свой вопрос про COM-порт.
    Как оказалось, порты RS-232 и Debug RS-232 работают по-разному.
    Подключился к обычному порту и обмен данными сразу пошел, а через debug не шел.

  8. #3068
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,317

    По умолчанию

    Цитата Сообщение от stskr Посмотреть сообщение
    Как оказалось, порты RS-232 и Debug RS-232 работают по-разному.
    Подключился к обычному порту и обмен данными сразу пошел, а через debug не шел.
    РЭ, т2.2, дебуг : только 8N1, [RTU - только слейв]
    ?

  9. #3069

    По умолчанию

    Цитата Сообщение от RadistDog Посмотреть сообщение
    Всем здравия!

    Прошу помочь мне разобраться с проблемой.
    Имеются два модуля МВА8.
    Имеются 7 термометров-сопротивлений ДТС125-50М.В2.60 .
    Термометры подключены к этим МВА по трёхпроводным схемам.
    Настройки входов, к которым подключены данные термометры одинаковые -- ТСМ50М (Cu`50) W100=1,428

    Проблема в том, что на выходе МВА я получаю температуру примерно на 24 градуса меньше, чем реальная температура.
    Причём эту неправильную температуру я получаю даже в конфигураторе опрашивая нужные входы МВА8.
    Неверные показания получаются по ВСЕМ термометрам на всех входах, и смещение (-24гр.) у всех градусников одинаковое.

    Где я ошибаюсь? Что я не так настроил??

    Причём, в начале работы я точно помню что в тестовых целях подключал один из этих ДТС125-50М.В2.60 к МВА8 и получал вроде бы правильную температуру (но тогда она была примерно +26+27гр., а сейчас датчики находятся в температуре примерно +10гр.)

    Уже всю голову сломал, перебирал все возможные типы датчиков из тех что зашиты в конфигуратор МВА8 -- результат перебора отрицательный. Или совсем далёкие значения начинают сниматься, или ошибка по данному входу выскакивает.

    Сопротивление градусников мерял - 50 Ом как положено.
    Линии достаточно длинные - 1,2 Ома одна жила. Но я уже пробовал и прямо короткими проводами прицепить датчик к МВА8, с тем же результатом.
    Возвращаясь к моим баранам хочу доложить следующее:
    Проблема решилась, правда причина осталась не ясной.

    Вооружившись точным тестером, переменными резисторами и градуировочной таблицей я обнаружил, что оба моих модуля МВА8 врут при выборе типа датчика ТСМ50М (Cu`50) W100=1,428.
    За неимением магазина сопротивлений, с помощью которого нужно проводить юстировку, я заморозил воду, сделал водно-ледяную смесь и засовывая в неё термометр ТСМ50М (тихонько помешивая градусником смесь в посудине) по нему калибровал модули согласно инструкции в РЭ.
    Тестер, кстати, показывал сопротивление градусника, помещённого в водно-ледяную смесь, ровно 50 Ом.
    Снимаемые через МВА8 показания с термометров стали похожими на правду.
    Вот только я поздно догадался, что нужно было взять с собой ещё и обычный термометр (поверенный, используемый для выдачи спирта) чтобы точно убедиться в правильности юстировки!
    Прошу опытных товарищей выразить своё мнение - юстировка таким способом может быть признана правильной?

  10. #3070

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    РЭ, т2.2, дебуг : только 8N1, [RTU - только слейв]
    ?
    О каком РЭ идет речь?

Страница 307 из 1041 ПерваяПервая ... 207257297305306307308309317357407807 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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