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

 
 
 
Reply to this topicStart new topic
> 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
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
Цырен
сообщение Jun 30 2008, 10:54
Сообщение #3


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

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



Спасибо, учту.
Но сейчас мне бы понять почему функция отправки посылает мусор, а не то что было задано.
Было предположение о неверной работе с памятью... но мимо.
Go to the top of the page
 
+Quote Post
ZAA
сообщение Jun 30 2008, 12:50
Сообщение #4


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

Группа: Участник
Сообщений: 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
Цырен
сообщение Jul 1 2008, 07:43
Сообщение #5


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

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



Буду с нетерпением ждать.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:46
Рейтинг@Mail.ru


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