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

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

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

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

Сообщение Тима » 04 июн 2015, 08:41

Ответил в личку...
Тима
 
Сообщения: 114
Зарегистрирован: 16 ноя 2012, 21:03

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

Сообщение Mr.Kubikus » 04 июн 2015, 12:59

Хорошо.

У меня сейчас нет под рукой МВА8, но зато валяется ОВЕН ПЛК110-30 с интерфейсом MODBUS. Попробую на нем собрать макет для проверки.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 868
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

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

Сообщение Тима » 04 июн 2015, 14:56

Mr.Kubikus писал(а):Хорошо.

У меня сейчас нет под рукой МВА8, но зато валяется ОВЕН ПЛК110-30 с интерфейсом MODBUS. Попробую на нем собрать макет для проверки.

было бы хорошо... :)
Тима
 
Сообщения: 114
Зарегистрирован: 16 ноя 2012, 21:03

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

Сообщение Тима » 06 июн 2015, 16:35

Mr.Kubikus писал(а):можем попробовать почтой РФ.

Что нибудь решилось по этому вопросу?
Тима
 
Сообщения: 114
Зарегистрирован: 16 ноя 2012, 21:03

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

Сообщение Тима » 27 июн 2015, 13:47

Получил Ваш преобразователь. Спасибо! Причем вместе с ним приехала и китайская посылка.
Итак, в наличии: преобразователи(Ваш и китайский), ардуино нано, мега про-микро, модуль аналогового ввода МВА8, пара относительно ровных рук :) .
Что дальше?
Тима
 
Сообщения: 114
Зарегистрирован: 16 ноя 2012, 21:03

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

Сообщение Тима » 29 июн 2015, 17:31

Mr.Kubikus, нужна схема подключения ардуины к МВА8 через плату с драйвером RS485 из Вашего магазина.
Далее программная сторона.
Вот настройки порта МВА8:
Рисунок1.png

как с ним связаться через ардуину
Вот адреса ячеек:
Рисунок1.jpg

Как это все уместить в скетче?
Тима
 
Сообщения: 114
Зарегистрирован: 16 ноя 2012, 21:03

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

Сообщение Mr.Kubikus » 29 июн 2015, 18:41

Привет! Сегодня есть немного свободного времени. Попробую собрать проект.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 868
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

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

Сообщение Тима » 29 июн 2015, 23:14

Ок. Жду. :P
Тима
 
Сообщения: 114
Зарегистрирован: 16 ноя 2012, 21:03

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

Сообщение Mr.Kubikus » 30 июн 2015, 13:59

Привет!

Все получилось. Работает чтение данных из ПЛК c помощью функции 3-READ_HOLDING_REGISTERS.

Подключение Arduino к драйверу RS485 по следующей схеме:

TX1-> RX-I
RX1-> TX-O
D2-> RTS
+5V-> VCC
GND->GND

arduino-modbus-1.jpg

Режим RTU. Настройки порта 9600 8N1.

Code: [Выделить всё] [Expand/Collapse]
  1. /*
  2.    PACPAC 2015
  3.    
  4.    Плата: Arduino Leonardo
  5.    
  6.    В этом примере демонстрируется обмен данными по протоколу Modbus RTU
  7.    между контроллерами Arduino и ОВЕН ПЛК 110-24.30.Р-М с использованием
  8.    библиотеки SimpleModbusMaster (https://code.google.com/p/simple-modbus/)
  9.  
  10.    Arduino выступает в роли ведущего (master) устройства, а ПЛК в роле подчиненного (slave).
  11.  
  12.    Плата Arduino подключена к ПЛК через драйвер RS485 (http://pacpac.ru/product/bob-10124-rs-485-breakout/).
  13.    Настройки последовательного интерфейса: RTU, 9600, 8N1.
  14.    
  15.    В этом примере объект packet[0] используется для чтения одного слова данных из регистра с адресом 0
  16.    c помощью функции MODBUS #3-READ_HOLDING_REGISTERS. Полученное значение затем используется
  17.    для управления светодиодом на выходе Arduino 13
  18.    
  19.    В ПЛК загруженна программа, которая циклически увеличивает на 1 содержимое ячейки
  20.    памяти с адресом %MB0 в диапазоне 0-255 и затем переносит младший бит %MX0.0 в ячейку %QW6.1.0.
  21.    Длительность паузы Tц=1 с
  22.    
  23.    Подробное описание библиотеки находится в файле SimpleModbusMasterManual.pdf
  24. */
  25.  
  26. #include <SimpleModbusMaster.h>
  27.  
  28. // Настройки интерфейса
  29. #define baud 9600       // Скорость
  30. #define timeout 1000    // Длительность ожидание ответа
  31. #define polling 200     // Длительность паузы между запросами
  32. #define retry_count 10  // Количество попыток обмена до отключения канала
  33.  
  34. // Выход контроллера для управления направлением драйвера
  35. #define TxEnablePin 2
  36.  
  37. // Выход для управления светодиодом
  38. #define LED 13
  39.  
  40. // Количество регистров на стороне ведущего устройства для хранения данных
  41. #define TOTAL_NO_OF_REGISTERS 1
  42.  
  43. // Простой способ подсчета количтества создаваемых объектов packet.
  44. // TOTAL_NO_OF_PACKETS обновляется автоматически.
  45. enum
  46. {
  47.   PACKET1,
  48.   TOTAL_NO_OF_PACKETS // Этот элемент должен быть последним
  49. };
  50.  
  51. Packet packets[TOTAL_NO_OF_PACKETS];
  52.  
  53. unsigned int regs[TOTAL_NO_OF_REGISTERS];
  54.  
  55. void setup()
  56. {
  57.   // Инициализируем каждый обект packet
  58.   modbus_construct(&packets[PACKET1], 1, READ_HOLDING_REGISTERS, 0, 1, 0);
  59.  
  60.   // Инициализируем конечный автомат протокола MODBUS
  61.   modbus_configure(&Serial1, baud, SERIAL_8N1, timeout, polling, retry_count, TxEnablePin, packets, TOTAL_NO_OF_PACKETS, regs);
  62.  
  63.   // Инициализируем последовательный порт для отладочного вывода
  64.   Serial.begin(115200);
  65.  
  66.   // Настраиваем порт для светодиода
  67.   pinMode(LED, OUTPUT);
  68.   digitalWrite(LED, LOW);
  69. }
  70.  
  71. void loop()
  72. {
  73.   modbus_update();
  74.  
  75.   Serial.println(regs[0]);
  76.  
  77.   if (regs[0] == 1) {
  78.     digitalWrite(LED, HIGH);
  79.   } else {
  80.     digitalWrite(LED, LOW);
  81.   }
  82.  
  83. }
  84.  
GeSHi © Codebox Plus


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

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

Сообщение Тима » 30 июн 2015, 18:30

с использованием библиотеки SimpleModbusMaster (https://code.google.com/p/simple-modbus/)

А как скачать библу оттуда?
___________________________________
Скачал через гугл-диск... :P
Тима
 
Сообщения: 114
Зарегистрирован: 16 ноя 2012, 21:03

Пред.След.

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



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

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

cron