Не путайте адреса %I или %Q и адреса ModBus...
В данном конкретном случае просто совпали. Ничего не значит. Надо считать с начала, как описано в инструкции.
Не путайте адреса %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
Вопрос Сергею: А зачем тебе адреса? В программе ПЛК обращаешься по именам, а со стороны Модбаса - читай свои вкладки "Параметры модуля". Там ты назначаешь какие угодно адреса и потом описываешь их в РЭ на свой контроллер.
С нетерпением жду оценки моих ответов от знатоков.
Ах вот оно что! Ну, здесь уже могу ответить более уверенно, т.к. у меня работает, моя первая связь
Конечно, можно следовать советам бывалых и
- либо располагать все биты в начале
- либо заводить виртуально несколько модбас девайсов (привет уважаемому Учителю Gans'у!)
Но не такая уж высшая математика просто просчитать все аккуратненько. Вот как я начал таблицу:
IP_PLK_obmen.jpg
Потом пошла область многобитных переменных, а потом добавил опять битовые:
IP_PLK_obmen_2.jpg
Вот эти вычисленные табличкой адреса (столбцы "4xAddr" и "0xAddr") я ставил в Конфигуратор ИП320, а имена (столбец "Название") присваивал переменным, которые заводил Конфигуратором ПЛК. В силу того, что ПЛК работал Слейвом, мне не нужно было беспокоиться о номерах регистров в Модбасе - Конфигуратор сам наращивал адреса, а я прописывал туда заготовленные имена переменных (битов и регистров).
Так что мои рассуждения о номерах регистров Модбаса касаются только случая, когда ПЛК работает мастером...