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

Тема: Адресация переменных по Modbus

  1. #1
    Пользователь
    Регистрация
    24.12.2012
    Адрес
    Нижняя Куэнга
    Сообщений
    85

    По умолчанию Адресация переменных по Modbus

    Сильно не ругаемся. Если тема где то уже раскрыта то прошу добавить в манула для новичков

  2. #2

    По умолчанию

    Нормально. Молодец.

  3. #3
    Пользователь Аватар для NIKO007
    Регистрация
    14.04.2015
    Адрес
    Калужская область г. Киров
    Сообщений
    6

    По умолчанию

    СПАСИБО!!! ПОМОГЛО! С адресацией ппц. пока разобрался.... с этой программой проще.

  4. #4
    Пользователь
    Регистрация
    19.07.2013
    Адрес
    Комсомольск-на-Амуре
    Сообщений
    23

    По умолчанию

    Вроде понял но не понял. =) И вообщем спасибо стало понятно почему у меня Float не хочет идти, адрес где то на 4000 будет ?!?!?!


    Как вообще высчитывать адрес (регистр) ???

    Опишу свою проблему

    вот собрал я 2 ПЛК160 RS-485-1 по А и B соединил проводами.

    Slave
    8 бит
    8 бит
    8 бит
    8 бит
    Float

    Maste
    8 бит чтение (регистр 0 *)
    8 бит чтение (регистр 8 *)
    8 бит запись (регистр 16 *)
    8 бит запись (регистр 24 *)
    Float чтение (регистр ?? )


    *здесь под регистром я понимаю уставку в CodeSys 2.3 "Register Adress" соответствующего модуля (каждого из 8 бит и Float ?)

    для 8 битовых значений "Разобрался" в том смысле что работает и на чтение и на запись а вот для других значений(типов переменных) что то не понятно как считать.

    Float 32 битное значения или Адрес 32 , или адрес 5 (ведь это РЕГИСТР 5 по "учебнику" ) или я что то в основах не понимаю или это 2 ...

    Вообщем не с одним из параметров ( 32, 5, 2) не работает.

    Тут такой вопрос хорошо если подскажете, а какой же "Адрес регистра " а ещё лучше КАК считать. потому что читая мукулатуру не смог разобраться.


    Понятно что тут как то замешано "выравнивания" адресации но мне не понятен сам принцип расчёта... зачем тогда в таблице (в прикреплённом файле) Адресс регистра 1, 2, 3 ,4 а у меня в ПЛК160 получает 0 , 8, 16, 24 хотя по идее должны идти 1, 2 итд ? или я чёто туплю по жоскому ?? а то у меня в CodeSys получает не адрес регистра а адрес бита для этого поля а как его расчитывать ?
    выравнивание.png

    Вообщем не понятно .... может быть кто ссылкой поделится на документы разьесняющий или на тему на форуме ? (уже гууглил не нашёл не чего)


    ПС: для примера ещё скрин настроек ПЛК мастера (в слейве как я понимаю не чего настраивать не нужно в том смысле что 8 битные значения передаются и "адреса регистров" раздаются автоматический, а не выбираются)
    ПЛК160.png

    ППС: ещё не пробывал 28 "Адрес регистра" .... неужели он ?
    Последний раз редактировалось Павел Б.; 26.01.2016 в 09:10.

  5. #5
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Регистр = 16 бит
    8+8+8+8 = 32 это 2 регистра.
    адресация начинается с 0.
    float = 2 регистрам, он занимает 32 бита, тоесть 2й и 3й регистр у вас. Читать 2й.
    Добавляя в мастер вы говорите откуда читать, а сколько и как вам представить эти данные вы говорите словом Float.
    Всегда откуда и сколько.

  6. #6
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Павел, вы путаете биты и регистры. Один регистр — 16 бит. Правильно будет так:

    8 бит чтение (регистр 0, биты 0-7 *)
    8 бит чтение (регистр 0, биты 8-15 *)
    8 бит запись (регистр 1, биты 0-7 *)
    8 бит запись (регистр 1, биты 8-15 *)
    Float чтение (регистры 2-3 )

    Выравнивание в этом случае себя не проявляет. Чтобы проявило, можно удалить "8 бит":

    8 бит чтение (регистр 0, биты 0-7 *)
    8 бит чтение (регистр 0, биты 8-15 *)
    8 бит запись (регистр 1, биты 0-7 *)
    Float чтение (регистры 2-3 )

    Или даже два раза по "8 бит":

    8 бит чтение (регистр 0, биты 0-7 *)
    8 бит чтение (регистр 0, биты 8-15 *)
    Float чтение (регистры 2-3 )

    И даже единственные 8 бит будут выталкивать Float на регистр 2:

    8 бит чтение (регистр 0, биты 0-7 *)
    Float чтение (регистры 2-3 )

    В этих случаях перед регистром 2 просто образуется дыра.

    Узлы выравниваются до кратных своему размеру адресов. Float занимает два регистра, и поэтому может располагаться только по адресам 0, 2, 4, 6, 8 и т.д. То же самое с 32-битными целыми (тоже по два регистра). Регистры укладываются в единицы — следовательно, идут по адресам 0, 1, 2, 3, 4... А 8-битные узлы занимают пол-регистра, и потому могут укладываться по два в один регистр: 0, 0.5 (биты 8-15), 1, 1.5 (биты 8-15) и т.д.
    Последний раз редактировалось Yegor; 26.01.2016 в 11:24.

  7. #7
    Пользователь
    Регистрация
    19.07.2013
    Адрес
    Комсомольск-на-Амуре
    Сообщений
    23

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Регистр = 16 бит
    8+8+8+8 = 32 это 2 регистра.
    адресация начинается с 0.
    float = 2 регистрам, он занимает 32 бита, тоесть 2й и 3й регистр у вас. Читать 2й.
    Добавляя в мастер вы говорите откуда читать, а сколько и как вам представить эти данные вы говорите словом Float.
    Всегда откуда и сколько.
    Я приблизительно так и понял когда читал документацию ...


    у меня и путаница в голове происходит потому что я в поле Register Adress ввожу "Адрес регистра" не работает, а ввожу "адрес бита" РАБОТАЕТ ....

    Если сегодня не получиться разобраться постараюсь принести на общий суд "проэкты" Slave и Master-а


    ПС: мб тут у slave стоит протокол "ОВЕН" .... пойду посмотрю правда "стенд" на заводе, завод "секретный" и без интернетов и телефонов и в 30 минутах езды от офиса на служебной машине которая не всегда доступна. =)))))) вообщем рабочая ситуация.



    ППС: в этой же сети RS-485-1 находится прибор СМИ2 (такой маленький экранчик на четыре символа) у него по документации на 26 регистре выводится тип данных WORD и указав адрес регистра 26, я получил то что хотел. То есть для СМИ2 работает именно "адрес регистра", а для ПЛК 160 Slave почему то работает "адрес бита" или чего я вообще не понимаю.


    Цитата Сообщение от Yegor
    Павел, вы путаете биты и регистры. Один регистр — 16 бит.
    Я не то что бы их путаю, я просто пытаюсь сделать что бы работало и почему-то ПЛК160 хочет "слушать" не "адреса регистров", а "адреса битов"

    У меня с такими "адресами регистров"(которые по сути являются "адресами битов") работает! вот в чём весь вопрос только работают 8битовые, а на флоат уже получается не работает, удивительно если неправельно почему работает, а если правельно то какой должен быть адрес у Float .

    Юрий, спасибо за информацию, гораздо понятнее чем в "учебнике" .



    Вообщем спасибо за объяснения, прочитал, сделал вывод что всё я почти правильно понимал с адресами регистров (после ваших объяснений стал чуть получше понимать) , а это значит что где то не так что то настроил с Mu-bus буду разбираться.

    Если что получится отпишусь , не получится принесу проекты =)
    Последний раз редактировалось Павел Б.; 27.01.2016 в 01:41.

  8. #8
    Пользователь
    Регистрация
    19.07.2013
    Адрес
    Комсомольск-на-Амуре
    Сообщений
    23

    По умолчанию

    Вот примеры
    Master -а Master.pro
    и
    Slave Slave.pro

    Подскажите как настроить то Мастера что бы Флоат с Slave видел ?

  9. #9
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Павел Б. Посмотреть сообщение
    Вот примеры
    Master -а Master.pro
    и
    Slave Slave.pro

    Подскажите как настроить то Мастера что бы Флоат с Slave видел ?
    Уже все разжевали, подробно!
    Все равно в Мастере
    у регистра с Float адрес 32 вместо 2. Вы читать других умеете?
    Нет? Тогда смотрите картинку
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Павел Б. Посмотреть сообщение
    Вроде понял но не понял. =)

    вот собрал я 2 ПЛК160 RS-485-1 по А и B соединил проводами.

    Slave
    8 бит
    8 бит
    8 бит
    8 бит
    Float

    Maste
    8 бит чтение (регистр 0 *)
    8 бит чтение (регистр 8 *)
    8 бит запись (регистр 16 *)
    8 бит запись (регистр 24 *)
    Float чтение (регистр ?? )
    У ПЛК ОВЕН и биты и регистры находятся в одной и той же физической памяти
    Поэтому (См. каринку выше)

    Slave
    8 бит \
    находятся в регистре "0" первые 8 в разрядах 7..0 вторые 8 в разрядах 15..8 регистра "0"
    8 бит /
    8 бит \
    находятся в регистре "1" первые 8 в разрядах 7..0 вторые 8 в разрядах 15..8 регистра "1"
    8 бит/
    Float будет иметь адрес регистра "2", т.к. 0 и 1 уже заняты четырьмя 8-битными модулями

    Maste
    8 бит чтение (регистр 0 *) правильно не регистр а бит 0\
    .эти биты фактически в регистре "0"
    8 бит чтение (регистр 8 *) правильно не регистр а бит 8/
    8 бит запись (регистр 16 *) правильно не регистр а бит 16\
    .эти биты фактически в регистре "1"
    8 бит запись (регистр 24 *) правильно не регистр а бит 24/
    Float чтение (регистр ?? ) правильно 2, а не 32 и не 26
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

Похожие темы

  1. Ответов: 28
    Последнее сообщение: 18.08.2015, 20:39
  2. Ответов: 1
    Последнее сообщение: 14.03.2014, 13:13
  3. Адресация переменных по стандарту МЭК 61131-3
    от DrDWoo в разделе Помощь Разработчикам
    Ответов: 8
    Последнее сообщение: 27.12.2013, 12:32
  4. адресация глобальных переменных
    от Назаров Александр в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 24.12.2009, 12:01
  5. Ограничения по количеству переменных в MODBUS
    от Павел ГОН в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 24.04.2007, 11:53

Ваши права

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