PDA

Просмотр полной версии : Не могу разобраться с адресами



Stas
03.06.2013, 11:03
Написал проект, в котором есть дискретные выходы, теперь добавил 1 аналоговый и не могу подобрать адрес. Если дискретники убрать то аналоговый с адресом 0 начинает работать. Но нужно -то с дискретниками чтоб работало. Посмотрите пожалуйста, какой адрес мне задавать в модбас слейв канал "ток"?

kgsh82
03.06.2013, 14:13
Мастер и слейв одновременно зачем?

alex55
04.06.2013, 09:29
Слейв убрать однозначно и если опрашиваете по сети то изменить устаки в параметрах модуля и мотбасе на rs485 с RS232 на TCP, а потом смотреть еще.

Stas
05.06.2013, 12:01
Модбас-мастер по 485 интерфейсу опрашивает аналоговый модуль,
а модбас-слейв сделан чтоб данные можно было вытащить в
Adastra Trace Mode через TCP.
Вот и возникает вопрос какой адрес будет у переменной "tok", в данной программе, если перед ним стоят еще 8bits+8bits?

petera
05.06.2013, 13:40
Модбас-мастер по 485 интерфейсу опрашивает аналоговый модуль,
а модбас-слейв сделан чтоб данные можно было вытащить в
Adastra Trace Mode через TCP.
Вот и возникает вопрос какой адрес будет у переменной "tok", в данной программе, если перед ним стоят еще 8bits+8bits?
По любому оба 8bits+8bits займут один регистр Modbus -0x00
А вот для переменной "tok" нужно два регистра и вроде нач.адрес должен быть четным, значит адрес будет 0x02.
Будет пустое пространство в один регистр между 8bits+8bits и "tok".
Может надо заполнить для выравнивания это пустое место?
Лучше сделать на оборот, первым "tok" с адресом 0x00, а затем 8bits+8bits у них будет адрес 0х02 (если читать регистр) или первые 8bits будут иметь адреса битов 32...39, а вторые 8bits будут иметь адреса битов 40...47.
Для переменных Real еще существует проблема с порядком байт
PS
Картинка не моя, уже не помню кто выкладавал
http://s005.radikal.ru/i212/1306/77/a4de81307f40t.jpg (http://s005.radikal.ru/i212/1306/77/a4de81307f40.jpg)

Stas
06.06.2013, 14:01
Все работает с адресом 2, спасибо.