Показано с 1 по 10 из 22

Тема: Прошу дать пример реализации на CDS2.3 MODBUS RTU485 мастер.(или помочь разобраться)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от kgsh82 Посмотреть сообщение
    В чем загвоздка именно?
    В том что 232 и ТСП настраиваетс в кофигураторе, и РТУ нет

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Пардон, затупил, уже увидел в примере.

    Попробуйте вот это, и отпишитесь о результатах. В зависимости от того, что именно будет не так, продолжим...
    попробовал, не работает. Я там понял по той причине что в конфигураторе UMD находится не в теле 485 слота. оба значения присылает 0

    1000 и 2000 я дал для примера, разумеется в примере опробовал свои значения.

    Ниже выкладываю почти рабочую версию программы.

    Проблемы начинаются с 10 строчки блога DSE_MODBUS_READ

    если первые 2 значения я читаю единой командой а потом как мне надо компаную DWORD(ответ получаю верный). То второй командой мне я пытась прочитать другое значение... но по мимо того что программа не читает его, так еще и начинает переодически портить значение dse_value_second значение постоянно переключается с правильного на 512. (когда убираю эту строку читка работает отлично). В этом же блоке реализовал запись регистра в DSE но не вижу что бы значение приходило в контроллер.
    Вложения Вложения

  2. #2

    По умолчанию

    Цитата Сообщение от apushashkov Посмотреть сообщение
    попробовал, не работает. Я там понял по той причине что в конфигураторе UMD находится не в теле 485 слота. Ниже выкладываю почти рабочую версию программы.
    Библиотека и конфигурация - вещи разные, и смешивать и х в проекте не следует. Про работу с библиотекой я вам не помогу, если хотите разобраться с конфигурацией, давайте попробуем.
    В тело "слота 485" ничего не вставляется, поэтому не работает не поэтому, а потому, что , например:
    а) прибор не поддерживает групповое чтение регистров (тогда младший и старший регистры нужно читать по одному, а в программе вычислять значение)
    б) команда для чтения, установленная в конфигурации, не соответствует команде, на которую прибор будет отвечать
    в) адрес регистра указан неверно (например, нумерация регистров в приборе ведется в соответствии с стандартным подходом (input registers, holding registers, coils, и т.д. ) и начальный регистр имеет номер 1 )
    г) неправильно установлены таймауты.

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

  3. #3

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Библиотека и конфигурация - вещи разные, и смешивать и х в проекте не следует. Про работу с библиотекой я вам не помогу, если хотите разобраться с конфигурацией, давайте попробуем.
    В тело "слота 485" ничего не вставляется, поэтому не работает не поэтому, а потому, что , например:
    а) прибор не поддерживает групповое чтение регистров (тогда младший и старший регистры нужно читать по одному, а в программе вычислять значение)
    б) команда для чтения, установленная в конфигурации, не соответствует команде, на которую прибор будет отвечать
    в) адрес регистра указан неверно (например, нумерация регистров в приборе ведется в соответствии с стандартным подходом (input registers, holding registers, coils, и т.д. ) и начальный регистр имеет номер 1 )
    г) неправильно установлены таймауты.

    Проше всего попробовать получить-таки данные из одного регистра, а потом двигаться дальше.
    Каюсь ибо замыленый глаз не уловил ошибку, да с конфигуратором я читаю 32 битные регистры, но возник вопрос как прочитать 16-битный... и что еще более важно, записать 16-битный регистр?

    Кстати подскажите как мне теперь доставать эти значения в программе? (уже настолько затерся что очевидные вещи тяжелы для понимания)

  4. #4

    По умолчанию

    потерпите 10 минут, щас слеплю примерчик.

  5. #5

    По умолчанию

    Вот как-то так. Имена переменных, присвоенные в конфигураторе, имеют статус глобальных (то есть переопределять их нигде не надо, можно просто к ним обращаться, либо вбивая их вручную, либо через F2, кроме того, они попадают в область Retain и при выключении питания сохраняются.
    Вложения Вложения
    • Тип файла: pro DSE.pro (37.1 Кб, Просмотров: 22)

  6. #6

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Вот как-то так. Имена переменных, присвоенные в конфигураторе, имеют статус глобальных (то есть переопределять их нигде не надо, можно просто к ним обращаться, либо вбивая их вручную, либо через F2, кроме того, они попадают в область Retain и при выключении питания сохраняются.
    Спасибо. Сейчас заряжу аккумуляторы и протестирую. Как я понял из примера что в конфигураторе Register input module имеет как раз размерность 16, но на нем это не написано в названии как на 32 и 8 битных.

    Кстати возник такой вопрос пока работал с 32 битными регистрами. Значение которое записывалось в 1000 рег переползало в 2000 потом в 3000 и.т.д. потом опять в 1000. Так же было что регистры показывают верные значения но не в своих адресах. А возможность значение из скажем регистра 1000 такое же как в 2000 исключена.

  7. #7

    По умолчанию

    В терминологии Modbus под регистром понимается 16-разрядная структура. Для того, чтобы понять, что и как (вероятнее всего) происходит в штатном мастере конфигурации ПЛК рекомендую внимательно прочитать про Modbus (какие типы данных какими командами передаются и какова структура запроса и ответа у той или иной команды) и посмотреть в настройках элементов конфигурации, какие команды используются. Многое прояснится. Особенно, если параллельно посмотреть формат команд под сниффером. Насчет переползания данных, вы по всей вероятности про библиотеку говорите, тут я ничего не подскажу. Кстати, те корифеи здешней конференции, кто предпочитает работать через библиотеку, допиливали ее под свои нужды, про это тоже можно почитать.

Похожие темы

  1. Modbus/TCP пример или библиотека
    от HokumOracle в разделе Помощь Разработчикам
    Ответов: 15
    Последнее сообщение: 06.02.2015, 00:14
  2. Ответов: 27
    Последнее сообщение: 07.03.2013, 10:40
  3. Ответов: 7
    Последнее сообщение: 30.11.2010, 10:02
  4. пример реализации
    от kucherik в разделе Наши проекты
    Ответов: 3
    Последнее сообщение: 26.02.2009, 17:08
  5. пример реализации
    от kucherik в разделе Трёп (Курилка)
    Ответов: 3
    Последнее сообщение: 26.02.2009, 17:08

Ваши права

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