Modbus RTU запись данных в slave

Сюда постим если есть сомнения насчет выбора группы
Ответить
OlegN
Сообщения: 3
Зарегистрирован: 26 янв 2016, 10:57

Modbus RTU запись данных в slave

Сообщение OlegN »

Всем день добрый! Помогите такому чуду как я, проблема в том, что не могу записать данные в slave(вообще даже не понимаю что он хочет от меня), читать вроде методом тыка добился, а вот занести не могу понять как ... Прочитал хелп там написано(For function 6 data is exactly that, one register's data) указать 1 регистр данных понял так !!! что нужен адрес памяти, где храниться заветное число. Пробовал писать по разному в разных формата и тд.. Думаю, что я не так понимаю процесс.

получается манипуляцией последних двух значений (int (&data), 1) либо записать 0 или 770 или 1280.

спасибо.

Код: Выделить всё

#include <SimpleModbusMaster.h>
#define TxEnablePin 2
#define TOTAL_NO_OF_REGISTERS 2
#define _local_start_address 1
int data = 90;
enum
{ PACKET1,
  PACKET2,
  TOTAL_NO_OF_PACKETS
};
Packet packets[TOTAL_NO_OF_PACKETS];
unsigned int regs[TOTAL_NO_OF_REGISTERS];
int reading(int r)// функция чтения из ведомого
{ delay(200);
  modbus_construct(&packets[PACKET1], 2, 3, r, 1, 0);
  modbus_update();
  return Serial.println(regs[0]);//просмотр на ведомом значения с адресом r
}
void setup()
{
  modbus_configure(&Serial1, 4800, SERIAL_8N2, 1000, 200, 5, TxEnablePin , packets, TOTAL_NO_OF_PACKETS, regs);
  Serial.begin(9600);
}

void loop()
{

  reading(0x0501);
  delay(100);
  modbus_construct(&packets[PACKET2], 2, 6, 0x0501, int (&data), 2);  // проблема здесь!!!! где и как указать данные что нужно записать
  modbus_update();
  Serial.println(int (&data)); // просмотр номер ячейки памяти
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Modbus RTU запись данных в slave

Сообщение Mr.Kubikus »

Привет! Похоже, что вы не весь исходный код вставили в пост.
С уважением, Григорий
GitHub FB ВК
OlegN
Сообщения: 3
Зарегистрирован: 26 янв 2016, 10:57

Re: Modbus RTU запись данных в slave

Сообщение OlegN »

Mr.Kubikus писал(а):Привет! Похоже, что вы не весь исходный код вставили в пост.
Возможно я что не вставил что нужно, но этого достаточно для того чтобы считывать данные с преобразователя Дельта VFD-S и стирать данные в ноль. А вот внести в него, что нужно не могу уже неделю. Кстати считать удалось после вашей помощи про об Овене в другой ветки.

Я не понимаю два последних параметра, что там нужно. Вы писали об этом, но я перечитывая, все таки не могу разобраться.
OlegN
Сообщения: 3
Зарегистрирован: 26 янв 2016, 10:57

Re: Modbus RTU запись данных в slave

Сообщение OlegN »

Решено!!!

данные для записи и для считывания находятся в regs[0].

regs[0]=100; //100 записывается в адрес 05-01(0x0501) на ведомом.
Ответить