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

 
 
> 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
Ответов
ZAA
сообщение Jun 30 2008, 12:50
Сообщение #2


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

Группа: Участник
Сообщений: 141
Регистрация: 10-02-08
Из: Екб
Пользователь №: 34 906



Цитата(Цырен @ Jun 30 2008, 12:51) *
Народ помогите!

Если вы смогли победить freeModbus, помогите пож. и мне. Нужно переделать код freeMODBUS 1.5 под мастера для Mega64. Код как слэйв работает отлично (RTU).
Потом решил посмотреть что шлет прибор и воспользовался функцией peMBFrameSendCur(...). Включил на компе снифер (Free Serial Port Monitor).

Прибор шлет FF 21 00 01 вместо положенных 01 11 C0 2C.
Скорость, паритет, стоп-биты установил верно.
Может я неправильно использую функцию? Подскажите.
Спс.


Здравствуйте, коллега!
Долго мучилась с этим FreeModbusом!!! Весь формум заполонила. В результате пришла к выводу, что лучше писать самой с нуля (ну почти с нуля).
А ф-ию (SendCur) эту тоже сначала пробовала применять, но она завязана на прием. Там используется тот же массив, что и при приеме байт. Да ещё двойные указатели. В общем просто так ей байты не отправить. Плюс у меня ещё и контролер вис после отправки одного байта.

Короче, переписала все заново, пользуясь принципом Freemodbusа - суть та же, только все упрощено под мой контроллер, и названия поменяла. А то глаза рябит от их переобозначений.

Завтра приду на работу - отошлю Вам результаты своей работы (режим мастера). Надеюсь поможет smile.gif УДАЧИ!!!

P.S - сегодня даже удалось связь с девайсом-слэйвом (МВА8 овеновским) установитьи проверить протокольчик!!!

P.P.S. - большое спасибо ещё раз всем, кто меня консультировал, а в особенности aaarrr!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:16
Рейтинг@Mail.ru


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