реклама на сайте
подробности

 
 
> freeMODBUS переделка под мастер, Помогите отправить пакет.
Цырен
сообщение Jun 30 2008, 09:51
Сообщение #1


Частый гость
**

Группа: Validating
Сообщений: 184
Регистрация: 26-06-07
Из: Санкт-Петербург
Пользователь №: 28 714



Народ помогите!

Если вы смогли победить freeModbus, помогите пож. и мне. Нужно переделать код freeMODBUS 1.5 под мастера для Mega64. Код как слэйв работает отлично (RTU).
Потом решил посмотреть что шлет прибор и воспользовался функцией peMBFrameSendCur(...). Включил на компе снифер (Free Serial Port Monitor).
Код
eMBErrorCode
eMBPoll( void )
{
    static UCHAR   *ucMBFrame;
    static USHORT   usLength;
    eMBErrorCode    eStatus = MB_ENOERR;
    eMBEventType    eEvent;
    
    /* Check if the protocol stack is ready. */
    if( eMBState != STATE_ENABLED )
    {
        return MB_EILLSTATE;
    }
    
    ucMBFrame[0] = 0x11;
    usLength = 1; // Длина сообщения PDU - без адреса(1 байт) и CRC16(2 байта)
    
    eStatus = peMBFrameSendCur( 1, ucMBFrame, usLength );
    
    while(!( (xMBPortEventGet( &eEvent ) == TRUE) && (eEvent == EV_FRAME_SENT) )){};
}


Прибор шлет FF 21 00 01 вместо положенных 01 11 C0 2C.
Скорость, паритет, стоп-биты установил верно.
Может я неправильно использую функцию? Подскажите.
Спс.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Jun 30 2008, 10:20
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата
Может я неправильно использую функцию?

Думаю, что да. Ибо в моём понимании eMBPoll() используется для обработки принятого пакета и выполнения каких-то действий по результату.
Отправку мастер-пакета имхо, нужно делать отдельной функцией, а eMBPoll() переделать по минимуму (убрать отсылку ответного пакета, добавить анализ принятого пакета на предмет соответствия отправленному)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01353 секунд с 7
ELECTRONIX ©2004-2016