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

Тема: и снова про регистры :(

  1. #1

    По умолчанию и снова про регистры :(

    Извиняюсь за офтоп, но что то я совсем потерялся.
    Наваял такую вещь:
    modbus slave
    var регистр бит нач. биты конеч.

    sU1 0x00 0 15
    sV1 0x01 16 31
    st1 0x02 32 47
    sh1 0x03 48 63
    sU2 0x04 64 79
    sV2 0x05 80 95
    st2 0x06 96 111
    sh2 0x07 112 127
    sU3 0x08 128 143
    sV3 0x09 144 159
    st3 0x10 160 175
    sh3 0x11 176 191
    sP13 0x12 192 207
    sP11 0x13 208 223
    sP12 0x14 224 239
    sP14 0x15 240 255
    rejim 0x16 256 271
    error 0x17 272 287
    8bit 0x18 288 295
    8bit 0x18 296 303
    deist 0x19 304 311
    krit 0x20 312 319

    18 регистр для выравнивания, но смутил меня codesys потому как адресация получилась у него сквозная. На скрине видно что получилось
    8bit 0x18 288 295
    8bit 0x19 296 303
    deist 0x20 304 311
    krit 0x21 312 319

    в настройках стоит автоматическое выравнивание.
    Так вот, прав ли я что буду обращаться к deist и krit по адресам 19 и 20 соответственно? или codesys всётаки прав и нужно по 20 и 21?
    Изображения Изображения

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

    По умолчанию

    У вас не видно начала и конца на скрине.
    Так все выравнено: 2 byte или 2 по 8 bite это и есть 1 регистр.
    Считайте регистры начиная с нулевого сверху в низ.
    19 и 20

  3. #3

    По умолчанию

    Не путайте адреса %I или %Q и адреса ModBus...
    В данном конкретном случае просто совпали. Ничего не значит. Надо считать с начала, как описано в инструкции.

  4. #4
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию Мне тоже интересно

    Я, не отвечаю, я пробую понять...

    Сергей, вот это ты создал сначала "в уме":
    Цитата Сообщение от Кольцов Сергей Посмотреть сообщение
    error 0x17 272 287
    8bit 0x18 288 295
    8bit 0x18 296 303
    deist 0x19 304 311
    krit 0x20 312 319
    ...с решением, что второй байт битной области тебе не нужен? Так? То есть, себе на бумажке записал, что есть еще 8 бит исключительно для выравнивания.
    А потом создал в конфигураторе ПЛК ДВА РАЗА 8-битовое поле?

    Если ответ "да", то думаю, что Конфигуратор четко отработал - только он оба раза сам выровнял до 2-хбайтного. Поэтому и видим на скрин-шоте, что присвоены адреса 18 и 19.

    Т.е. мое предположение, что не надо за Конфигуратор работать. Создал 8 бит (скажем, по адресу 18), знай - есть припрятанные еще 8 бит. Они тебе нормально недоступны, так ты и задумывал это.
    Следующую переменную (deist в твоем случае) Конфигуратор поставит на адрес 19.
    А обращаться нужно, ИМХО, по тем адресам, которые видишь в Конфигураторе. А как же иначе?

    Или я не прав?
    Последний раз редактировалось drvlas; 08.02.2011 в 14:30.

  5. #5

    По умолчанию

    Меня никто не услышал???
    НЕЛЬЗЯ судить об адресах ModBus на приведенном скриншоте. НЕЛЬЗЯ!!!
    Регистр - есть два байта.
    Первые добавленные 2 байта - будут 0 регистр, вторые 2 байта - регистр с адресом 1. Если Вам CoDeSys напишет МЭК адрес %QW20.99 - Вы считаете, что это у Вас 20 регистр ModBus? Или 99???
    Подтягиваем мат. часть господа...

    Да, и 8-ми битные переменные действительно нужно ставить по 2. Но рекомендую ставить их в самом начале списка, так как к ним можно и по регистру обращаться и побитно.
    Последний раз редактировалось Николаев Андрей; 10.02.2011 в 10:15. Причина: Опечатка

  6. #6

    По умолчанию

    Благодарю откликнувшихся!
    Итак подведём итог, вопрос остался, спор разгорается

    Выкладываю недостающие скрины и надеюсь на точный ответ.

    то: Николаев Андрей
    регистры до 18 2 байтовые начиная с 0.

    Какие номера битов в 8 битных "полурегистрах" 18, 19 по конфигуратору.
    Изображения Изображения

  7. #7
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    Не путайте адреса %I или %Q и адреса ModBus...
    В данном конкретном случае просто совпали. Ничего не значит. Надо считать с начала, как описано в инструкции.
    Для моего уровня понимания это не то, чтобы "ничего не значит"... Это мало что значит, уважаемый Андрей. Пишите экспликативнее и люди к вам потянутся

    Хотелось бы именно получить конструктивное обсуждение в вопросах, не понятых после изучения матчасти. Почему Вы решили, что все все сразу понимают? Описалово ни на КДС, ни на ОВЕны не является образцом ясности и непротиворечивости.

    Позволю высказать свое понимание связи между адресами Модбаса и цифирьками в окошке Конфигуратора (вот теми самыми, что уважаемый Сергей привел в скрин-шоте). Связи нет вообще, точнее, разработчик устанавливает ее сам, описывая вводимую переменную. А именно:
    (вот это поток сознания можно пропустить)
    "Цифирьки" раздает м-р Конфигуратор, по своим правилам. Там МЭК, иерархия, "читайте матчасть" и прочая - не буду в это углубляться. Сам не очень врубился, но достаточно стройненько растут цифирьки. И каждый новый адрес "уровня" регистра означает место, выделенное в памяти ПЛК. Причем, меньше, чем 2 байта Конфигуратор не резервирует.
    Вот откуда имеем 9.19.0 и 9.20.0. В этих адресах "9" - это номер первого уровня иерархии (у меня так получается, что на весь Модбас-Мастер выделен один такой номер), а "19" и "20" - как раз адреса 2-хбайтных или 4-хбайтных зон (переменных) в памяти ввода-вывода ПЛК. Если на один Модбас-девайс завести несколько Universal Modbus device'ов, то между "9" и номером переменной вклинится еще номер Universal Modbus device'а.


    Уф! КАРОЧИ, номера Конфигуратор раздает - и спасибо ему огромное. А вот номера регистров Модбаса разработчик выбирает сам и записывает для каждой переменной в закладочке "Параметры модуля". И тут уж - гуляй душа! Назначаем как угодно и без всякой связи с адресами переменных, присвоенными Конфигуратором по своей прекрасной системе.

    Андрей, вот это - я верно понял? Спасибо!

    Теперь по вопросам топикастера.

    1) Думаю, на "Какой адрес регистра?" можно ответить так:
    Если об адресе в памяти ввода-вывода - то вот он, написан, %QB9.20.0
    Если об адресе (номере) регистра Модбас - смотри, что написал сам в закладке "Параметры модуля"

    2) Ну, а адрес бита block - %QB9.20.0.0

    Вопрос Сергею: А зачем тебе адреса? В программе ПЛК обращаешься по именам, а со стороны Модбаса - читай свои вкладки "Параметры модуля". Там ты назначаешь какие угодно адреса и потом описываешь их в РЭ на свой контроллер.

    С нетерпением жду оценки моих ответов от знатоков.

  8. #8

    По умолчанию

    Цитата Сообщение от drvlas Посмотреть сообщение

    Вопрос Сергею: А зачем тебе адреса? В программе ПЛК обращаешься по именам, а со стороны Модбаса - читай свои вкладки "Параметры модуля". Там ты назначаешь какие угодно адреса и потом описываешь их в РЭ на свой контроллер.
    Дружу панель ИП320 с ПЛК. Конкретно аппаратные кнопки назначаю. Установить бит 0x.... Вот с этим и вышла заковыка, пока я не вылез за первый "8 битный" регистр всё было хорошо.

  9. #9

    По умолчанию

    Цитата Сообщение от Кольцов Сергей Посмотреть сообщение
    Выкладываю недостающие скрины и надеюсь на точный ответ.
    Адрес регистра 18 (с учетом что первый регистр имеет адрес 0!!!) в скриншоте правда указано не начало регистра.
    Номер бита 18*16+8=296 (с учетом что первый бит имеет адрес 0!!!)
    Нормальный вопрос, конкретный ответ :-)
    P. S. я правда биты и регистры стараюсь раскладывать в разные слейвы - и таких вопросов ваще не возникает
    Последний раз редактировалось Gans; 08.02.2011 в 21:14.
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

  10. #10

    По умолчанию

    to: Gans Привет землякам!

    то-есть что у меня и получилось
    8bit 0x18 288 295
    8bit 0x18 296 303
    deist 0x20 304 311
    krit 0x21 312 319

    Получается забиваем на номера регистров выставленные конфигуратором?

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

Ваши права

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