Интерфейс RS-485 протокол MODBUS RTU.
Re: Интерфейс RS-485 протокол MODBUS RTU.
Плюс 1 к сюрпризам от ОВНА! Если пожелаете считать данные со второго регистра по адресу 2 , вас постигнет неудача. ибо лежат данные по адресу 7, 3 - 13. Хотелось бы узнать, почему?
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Интерфейс RS-485 протокол MODBUS RTU.
Привет!
Рад, что у вас все заработало.
По поводу доступа к данным по второму измерительному каналу (если я правильно понял ваш второй камент), то никаких сюрпризов тут нет. Надо внимательнее изучать документацию Карта регистров MODBUS подробно расписана в документе "МВА8. Руководство по эксплуатации" на страницах 51-53. Там хорошо видно, что один измерительный канал занимает в памяти 8 последовательных регистров. Соответственно первый канал - регистры 0-7, второй - 8-13 и т.д.
Рад, что у вас все заработало.
По поводу доступа к данным по второму измерительному каналу (если я правильно понял ваш второй камент), то никаких сюрпризов тут нет. Надо внимательнее изучать документацию Карта регистров MODBUS подробно расписана в документе "МВА8. Руководство по эксплуатации" на страницах 51-53. Там хорошо видно, что один измерительный канал занимает в памяти 8 последовательных регистров. Соответственно первый канал - регистры 0-7, второй - 8-13 и т.д.
Raider писал(а):Плюс 1 к сюрпризам от ОВНА! Если пожелаете считать данные со второго регистра по адресу 2 , вас постигнет неудача. ибо лежат данные по адресу 7, 3 - 13. Хотелось бы узнать, почему?
Raider писал(а):Оч. полезная тема, от себя могу добавить по поводу вывода знаков после запятой:
valueFromSensor = (float)regs[1]/100.00;
C преобразователем собранном на ADM485 работает прекрасно!
-
- Сообщения: 1
- Зарегистрирован: 15 июл 2016, 15:28
Re: Интерфейс RS-485 протокол MODBUS RTU.
Подниму темку, а как с помощью этой библиотеки опрашивать несколько ведомых устройств?
Re: Интерфейс RS-485 протокол MODBUS RTU.
В строкеAndrey_161 писал(а):Подниму темку, а как с помощью этой библиотеки опрашивать несколько ведомых устройств?
modbus_construct(&packets[PACKET1], 1, READ_HOLDING_REGISTERS, 1, 1, 0);
выделенное красным - это адрес устройства. Настраиваешь в разных приборах разные адреса и обращаешься к каждому устройству по отдельности.
Re: Интерфейс RS-485 протокол MODBUS RTU.
Новая задача, подключиться к плк delta dvp-ss2.
Вот адресация регистров памяти: Интересует чтение/запись регистров M и D. Если в предыдущих примерах в скетче мы задавали просто номер ячейки памяти, то теперь как это делать с приставками M,D?
Вот адресация регистров памяти: Интересует чтение/запись регистров M и D. Если в предыдущих примерах в скетче мы задавали просто номер ячейки памяти, то теперь как это делать с приставками M,D?
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Интерфейс RS-485 протокол MODBUS RTU.
Надо посмотреть документацию на ПЛК. Вполне возможно, что в ПЛК для каждой функции Modbus зарезервирован свой собственный блок памяти с собственным адресным пространством от 0 до N.
Re: Интерфейс RS-485 протокол MODBUS RTU.
Излазил доки на плк, так и не нашел ничего похожего. Может как-то не так искал?
Re: Интерфейс RS-485 протокол MODBUS RTU.
Накопал на форуме делты вот такую табличку:
Может это то, что нам надо?Re: Интерфейс RS-485 протокол MODBUS RTU.
Ещё вот такой документ нашел:
Вроде то, что надо...- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Интерфейс RS-485 протокол MODBUS RTU.
Попробую ответить максимально последовательно. Ответ строю исходя из полученной от вас информации. Если я что-то понял не так, то поправьте. Итак:
Исходные данные:
1. У вас есть ПЛК Delta серии DVP-SS2. 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).
Исходные данные:
1. У вас есть ПЛК Delta серии DVP-SS2. 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).