Как использовать Modbus с Microchip PIC24 - PullRequest
0 голосов
/ 27 февраля 2020

Первый раз, используя Modbus. Я пытаюсь отправить запрос на считывание значения температуры с моего ведомого устройства (идентификатор 0x01). Я посылаю команду через UART и просматриваю команду на моем анализаторе logi c. Вот мой код:

void temp_sensor()
{

//Transmit RTU to Inisitu probe to fetch Temperature and units
Flow_Control_SetHigh();

unsigned char TempRTU[]= {0x01, 0x03, 0x00, 0x2D, 0x00, 0x02, 0x54, 0x02};

int i;
int data_len = 8;

for (i = 0; i < data_len; i++) {

    UART1_Write(TempRTU[i]);   
}  
}

0x01: идентификатор ведомого: 0x03: код функции: 0x002D: чтение регистра температуры: 0x0002: чтение 2 регистров: 0x5402: CR C Контрольная сумма:

Шестнадцатеричная строка является правильной при просмотре через UART на моем анализаторе, однако при настройке анализатора для просмотра Modbus строка даже близко не является правильной. Я прикрепил скриншот моего анализатора при просмотре сигнала Modbus.

Кто-нибудь имел опыт работы с микроконтроллерами Modbus и PI C? enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...