Тел. (495) 972-27-12

Интерфейс RS-485 протокол MODBUS RTU.

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Raider » 18 авг 2015, 11:56

Плюс 1 к сюрпризам от ОВНА! Если пожелаете считать данные со второго регистра по адресу 2 , вас постигнет неудача. ибо лежат данные по адресу 7, 3 - 13. Хотелось бы узнать, почему?
Raider
 
Сообщения: 2
Зарегистрирован: 17 авг 2015, 15:02

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Mr.Kubikus » 18 авг 2015, 14:32

Привет!

Рад, что у вас все заработало.

По поводу доступа к данным по второму измерительному каналу (если я правильно понял ваш второй камент), то никаких сюрпризов тут нет. Надо внимательнее изучать документацию :) Карта регистров MODBUS подробно расписана в документе "МВА8. Руководство по эксплуатации" на страницах 51-53. Там хорошо видно, что один измерительный канал занимает в памяти 8 последовательных регистров. Соответственно первый канал - регистры 0-7, второй - 8-13 и т.д.

Raider писал(а):Плюс 1 к сюрпризам от ОВНА! Если пожелаете считать данные со второго регистра по адресу 2 , вас постигнет неудача. ибо лежат данные по адресу 7, 3 - 13. Хотелось бы узнать, почему?


Raider писал(а):Оч. полезная тема, от себя могу добавить по поводу вывода знаков после запятой:
valueFromSensor = (float)regs[1]/100.00;
C преобразователем собранном на ADM485 работает прекрасно!
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 875
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Andrey_161 » 16 июл 2016, 16:41

Подниму темку, а как с помощью этой библиотеки опрашивать несколько ведомых устройств?
Andrey_161
 
Сообщения: 1
Зарегистрирован: 15 июл 2016, 15:28

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Тима » 01 авг 2016, 15:34

Andrey_161 писал(а):Подниму темку, а как с помощью этой библиотеки опрашивать несколько ведомых устройств?

В строке
modbus_construct(&packets[PACKET1], 1, READ_HOLDING_REGISTERS, 1, 1, 0);
выделенное красным - это адрес устройства. Настраиваешь в разных приборах разные адреса и обращаешься к каждому устройству по отдельности.
Тима
 
Сообщения: 118
Зарегистрирован: 16 ноя 2012, 21:03

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Тима » 08 авг 2019, 15:37

Новая задача, подключиться к плк delta dvp-ss2.
Вот адресация регистров памяти:
1.png

2.png

Интересует чтение/запись регистров M и D. Если в предыдущих примерах в скетче мы задавали просто номер ячейки памяти, то теперь как это делать с приставками M,D?
Тима
 
Сообщения: 118
Зарегистрирован: 16 ноя 2012, 21:03

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Mr.Kubikus » 08 авг 2019, 15:54

Надо посмотреть документацию на ПЛК. Вполне возможно, что в ПЛК для каждой функции Modbus зарезервирован свой собственный блок памяти с собственным адресным пространством от 0 до N.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 875
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Тима » 08 авг 2019, 21:04

Излазил доки на плк, так и не нашел ничего похожего. Может как-то не так искал? :o
Тима
 
Сообщения: 118
Зарегистрирован: 16 ноя 2012, 21:03

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Тима » 08 авг 2019, 21:46

Накопал на форуме делты вот такую табличку:
Снимок31.PNG

Может это то, что нам надо?
Тима
 
Сообщения: 118
Зарегистрирован: 16 ноя 2012, 21:03

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Тима » 08 авг 2019, 21:55

Ещё вот такой документ нашел:

Вроде то, что надо...
Тима
 
Сообщения: 118
Зарегистрирован: 16 ноя 2012, 21:03

Re: Интерфейс RS-485 протокол MODBUS RTU.

Сообщение Mr.Kubikus » 09 авг 2019, 16:52

Попробую ответить максимально последовательно. Ответ строю исходя из полученной от вас информации. Если я что-то понял не так, то поправьте. Итак:

Исходные данные:
1. У вас есть ПЛК Delta серии DVP-SS2.
DVP-SS2_L-a.jpg

2. ПЛК подключен к шине RS485 и работает в режиме подчиненного устройства MODBUS-RTU
3. Вам надо передать данные из ПЛК из ячеек памяти D0000 - D4999 в ведущее устройство MODBUS.

Решение:
1. Вам надо скачать актуальную документацию на ваш контроллер - DELTA_IA-PLC_DVP-ES2-EX2-SS2-SA2-SX2-SE-TP_PM_EN_20181030.pdf
2. В этом документе на стр. 4-10 и 4-11 находится карта памяти контроллера DVP-SS2.
3. В таблице адресам ПЛК D0000-D4999 соответствуют адреса MODBUS 404097~440960.
4. Первая цифра 4 в адресе означает, что для обращения к памяти надо использовать функцию MODBUS 4 (Read Holding Registers) и указывать в качестве адреса значение, которое находится справа от цифры 4. Например для обращения к D0255 надо использовать функцию MODBUS и адрес MODBUS 4352 (4097+255).

2019-08-09-16_33_58-DELTA_IA-PLC_DVPa.png
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 875
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Пред.

Вернуться в Arduino и Ко. ♥♥♥



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1