незнаю насчет потерь байтов, у меня наоборот на симуляторе слейва проскакивает два запроса подряд, потому что пересылка одним махом через SysComWrite не дает требуемых пауз между пересылками
незнаю насчет потерь байтов, у меня наоборот на симуляторе слейва проскакивает два запроса подряд, потому что пересылка одним махом через SysComWrite не дает требуемых пауз между пересылками
Естественно.
Но почему ЧТЕНИЕ ответа блоками глючит ???
КТО-НИБУДЬ МОИ ПРИМЕРЫ НА " ЖЕЛЕЗЕ " ПРОБОВАЛ ???
"Если интервал тишины продолжительностью 1,5 возник во время передачи фрейма, принимающее устройство должно игнорировать этот фрейм как неполный"
В Вашем нестандартном протоколе есть понятие интервал тишины?
Я не работаю с портом напрямую, а через буфер. И интервалами между битами управлять не могу.
Про интервалы между кадрами
1. очищаю буфер порта
2. пихаю целиком запрос через SysWriteCom
3. пауза ( 100ms )
4. читает ответ
5. пауза ( 100ms )
6. переход на 1.
Если ( FIRST_PART_SIZE = 0 ) или ( FIRST_PART_SIZE >= RESPONSE_SIZE ), то "ответ" будет читаться одним куском и ошибок нет.
Дело-то как раз в чтении ответа по частям
SysComRead(ComHandle, ADR(rBuf), SIZEOF(rBuf), 0) не пробовали нолик заменить на другое значение и всетаки приемный буфер читать не прерывно, через операцию WHILE
capzap, если честно, смотрел примеры?
Все это пробовал... Я этим 2 дня сидел, уже много чего попробовал
Интересная техподдержка у Овена. Попробуй то, попробуй сё.
Я примеры прислал, а никто их так не посмотрел толком.
Ладно, если завтра ответа не будет, то будем искать что-то другое.
Проблему с чтением ответа по частям конечно можно обойти, но очень уж не хочется ставить на объект глючный контроллер. Мало-ли что еще вылезет.
Все спасибо за участие
Код. Раз не работает.глючный контроллер.
Замороченный, особенно с таймерами. Вы хотите чтоб с этим разбирались ?
Что именно, не работает:
1. открытие порта
2. настройка порта
3. отправка запроса
4. чтение ответа
что?
Функции для работы с таймером специально написал, что не засорять код, а привлечь внимание к главной проблеме.
И да, я хочу чтобы Вы разбирались. Мне же пришлось с этим разбираться. У меня были готовые "либы" для работы с определенными устройствами на ПЛК100. Тот же самый код очень глючит на ПЛК63.
Я же не просто написал, что "у меня программа глючит, и теряет где-то байты". Я не поленился и написал примеры, где эту проблему можно обнаружить. И чет мне не вериться, что техподдержка Овена не может найти ПЛК100 и ПЛК63, чтобы этот пример проверить. Понимаю, что влом, но у каждого своя работа.
Кто-нибудь пробовал примеры на "железе"??? Никто ни одного конструктивного вопроса по программе не задал.