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

Тема: Связь СПК207.03.WEB и ТРМ232М

  1. #1

    По умолчанию Связь СПК207.03.WEB и ТРМ232М

    Здравствуйте!
    Никак не могу считать с ТРМ232М хоть какие-то данные.
    Работаю в CDS 3.5 SP5 P5, версия таргета 26.
    Если связываться с ТРМ через конфигуратор, Связь есть, но данные на считываются (Серые 0)
    Через библиотеку SysCom тоже не читает.Не получается прочитать даже один вход с ТРМ.

    Подскажите, пожалуйста, как прочитать данные с ТРМ.А мне надо не только читать и выводить на экран, но и записывать в ТРМ уставки.

    Вырезка из кода опроса:
    VAR
    TRM232m_RdIN: MB_RD_HOLD_REGS; // ФБ опроса ТРМ232М
    abyBuf_TRM232_RdIN: ARRAY [0..255] OF BYTE; // Буфер ФБ опроса
    abyBuf_TRM232_DataIN: ARRAY [0..255] OF BYTE; // Буфер данных, считанных
    END_VAR
    // [1] настраиваем COM-порт
    Settings_COM2.sPort:=3;
    Settings_COM2.byStopBits:=1;
    Settings_COM2.byParity:=0;
    Settings_COM2.ulBaudrate:=115200;
    Settings_COM2.ulTimeout:=0;
    Settings_COM2.ulBufferSize:=0;

    SettingsEX_COM2.byByteSize:=8;
    ******
    TRM232m_RdIN
    (
    Enable:=COM_Service_COM2.Ready,
    Mode:=MB_RTU,
    DevAddr:=16,
    FirstAddr:=16#18,
    Quantity:=2,
    ComHandle:=COM_Service_COM2.handle,
    TimeOut:=T#1000MS,
    Buffer:=abyBufferST1,
    );

    // [4] если ФБ опроса модуля завершил работу...
    IF TRM232m_RdIN.Complete THEN
    // ...и ошибки отсутствуют, то забираем буфер модуля
    IF TRM232m_RdIN.Exception=0 THEN
    abyBuf_TRM232_DataIN:=abyBuf_TRM232_RdIN;
    буфер пустой.


    Спасибо.

  2. #2

    По умолчанию

    Цитата Сообщение от distren Посмотреть сообщение
    Здравствуйте!
    Никак не могу считать с ТРМ232М хоть какие-то данные.
    Работаю в CDS 3.5 SP5 P5, версия таргета 26.
    Если связываться с ТРМ через конфигуратор, Связь есть, но данные на считываются (Серые 0)
    Через библиотеку SysCom тоже не читает.Не получается прочитать даже один вход с ТРМ.

    Подскажите, пожалуйста, как прочитать данные с ТРМ.А мне надо не только читать и выводить на экран, но и записывать в ТРМ уставки.

    Вырезка из кода опроса:
    VAR
    TRM232m_RdIN: MB_RD_HOLD_REGS; // ФБ опроса ТРМ232М
    abyBuf_TRM232_RdIN: ARRAY [0..255] OF BYTE; // Буфер ФБ опроса
    abyBuf_TRM232_DataIN: ARRAY [0..255] OF BYTE; // Буфер данных, считанных
    END_VAR
    // [1] настраиваем COM-порт
    Settings_COM2.sPort:=3;
    Settings_COM2.byStopBits:=1;
    Settings_COM2.byParity:=0;
    Settings_COM2.ulBaudrate:=115200;
    Settings_COM2.ulTimeout:=0;
    Settings_COM2.ulBufferSize:=0;

    SettingsEX_COM2.byByteSize:=8;
    ******
    TRM232m_RdIN
    (
    Enable:=COM_Service_COM2.Ready,
    Mode:=MB_RTU,
    DevAddr:=16,
    FirstAddr:=16#18,
    Quantity:=2,
    ComHandle:=COM_Service_COM2.handle,
    TimeOut:=T#1000MS,
    Buffer:=abyBufferST1,
    );

    // [4] если ФБ опроса модуля завершил работу...
    IF TRM232m_RdIN.Complete THEN
    // ...и ошибки отсутствуют, то забираем буфер модуля
    IF TRM232m_RdIN.Exception=0 THEN
    abyBuf_TRM232_DataIN:=abyBuf_TRM232_RdIN;
    буфер пустой.


    Спасибо.
    Здравствуйте!

    Пробовали Вы считать параметры ТРМ232М OPC сервером?

    Какие сетевые настройки имеет ТРМ, есть подозрение, что неверно указан протокол передачи данных.

  3. #3

    По умолчанию

    Протокол Modbus RTU. Настройки стандартные, ничего не меняли. Скорость 115200.
    OPC сервером Lectus смотрели.Кстати, при опросе тоже интересные вещи были.
    Lectus рабочий.jpg При такой структуре опрос идет корректно (опрашиваются первые три аналоговых входа)

    Если опрашивать 2 датчика подряд, данные то корявые, то нормальные.Если через один, то все нормально.
    Lectus кривой.jpg

    Если добавить третий датчик для опроса то связь теряется вообще.Период опроса 1 сек у всех. Если время опроса изменить каждой переменной, тогда связь попеременно пропадает-проявляется.
    Lectus кривой2.jpg

    Скорости меняли.Ситуацию не изменило.
    В ТРМ232М нет выбора протокола, похоже , что он автоматически определяется. Ну, по крайней мере, в инструкции нет описания изменения протокола передачи.
    Последний раз редактировалось distren; 06.04.2018 в 10:29.

  4. #4

    По умолчанию

    Цитата Сообщение от distren Посмотреть сообщение
    Протокол Modbus RTU. Настройки стандартные, ничего не меняли. Скорость 115200.
    OPC сервером Lectus смотрели.Кстати, при опросе тоже интересные вещи были.
    Lectus рабочий.jpg При такой структуре опрос идет корректно (опрашиваются первые три аналоговых входа)

    Если опрашивать 2 датчика подряд, данные то корявые, то нормальные.Если через один, то все нормально.
    Lectus кривой.jpg

    Если добавить третий датчик для опроса то связь теряется вообще.Период опроса 1 сек у всех. Если время опроса изменить каждой переменной, тогда связь попеременно пропадает-проявляется.
    Lectus кривой2.jpg

    Скорости меняли.Ситуацию не изменило.
    В ТРМ232М нет выбора протокола, похоже , что он автоматически определяется. Ну, по крайней мере, в инструкции нет описания изменения протокола передачи.
    ТРМ232М не поддерживает групповой опрос данных.

    По поводу связи СПК и ТРМ - можете, пожалуйста, приложить архив проекта на СПК: Файл -> Архив проекта -> Сохранить/отправить архив. Я посмотрю и дам рекомендации по наладке связи.

    Еще вопрос - не пробовали настроить опрос через встроенный компонент Modbus?

  5. #5

    По умолчанию

    С этого и начали, связь вроде есть, но никаких значений не приходит (серые 0)
    Конечно, хотелось бы использовать встроенную компоненту.

    Поэтому и пал выбор на библиотеку. Ибо опыт работы с ней был.

    Кстати, нашли косяк в программе: буфер не тот: "Buffer:=abyBufferST1,", а потом обрабатываю abyBuf_TRM232_RdIN.
    И вроде все три опрашивает, правда, пока невменяемые значения выдает.

    проект все равно вышлю, будет здорово, если Вы мне подскажите со встроенной компонентой, где ошибка
    Вложения Вложения

  6. #6

    По умолчанию

    Цитата Сообщение от distren Посмотреть сообщение
    С этого и начали, связь вроде есть, но никаких значений не приходит (серые 0)
    Конечно, хотелось бы использовать встроенную компоненту.

    Поэтому и пал выбор на библиотеку. Ибо опыт работы с ней был.

    Кстати, нашли косяк в программе: буфер не тот: "Buffer:=abyBufferST1,", а потом обрабатываю abyBuf_TRM232_RdIN.
    И вроде все три опрашивает, правда, пока невменяемые значения выдает.

    проект все равно вышлю, будет здорово, если Вы мне подскажите со встроенной компонентой, где ошибка
    Если значения не обновлялись, то, скорее всего, проблема заключалась в параметре Всегда обновлять переменные во вкладке Соотнесение входов/выходов, необходимо выставить Включено 2 (Всегда в задаче цикла шины).

    По поводу невменяемых значений - не пробовали менять местами старшее и младшее слово/байт?

  7. #7

    По умолчанию

    уже.))) Теперь все, нормально читается.
    С компонентой спасибо именно эта проблема и была.
    Спасибо большое за помощь.

Похожие темы

  1. Настройка ТРМ232М
    от Eugene.A в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 07.12.2021, 09:39
  2. ТРМ232М, ModBus
    от Alexon в разделе Эксплуатация
    Ответов: 30
    Последнее сообщение: 07.09.2018, 15:43
  3. ТРМ232М
    от 301 в разделе Облачный сервис OwenCloud
    Ответов: 5
    Последнее сообщение: 16.02.2018, 16:30
  4. Оборудование для ТРМ232М
    от Forged в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 05.04.2017, 16:41
  5. Ответов: 32
    Последнее сообщение: 28.03.2016, 11:56

Ваши права

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