Страница 6 из 7 ПерваяПервая ... 4567 ПоследняяПоследняя
Показано с 51 по 60 из 63

Тема: Библиотека UNM, отправка и получение запроса.

  1. #51

    По умолчанию

    Сергей Сподрин, скорее всего все приходит, просто есть некоторый временной промежуток между ответом на команду пуска/останова. Т.е. между SetByte и GetByte надо или сделать фиксированную задержку (плохой вариант), или заменить условие выхода из цикла while.

  2. #52
    Пользователь
    Регистрация
    30.07.2013
    Адрес
    Калининград
    Сообщений
    23

    По умолчанию

    Тогда в таком случае является странным, что устройство не реагирует на команду.

  3. #53
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    IF state = 0 THEN
    SetByte(Handle,request^,LEN(request^)); (* непосредственно передача данных в порт *)
    state:=1; (* переход к следующему этапу *)
    respons := ''; (* делаем строку пустой *)
    ELSIF state = 1 THEN
    rbd := GetByte(Handle); (* прием данных из порта *)
    IF rbd <> 0 AND rbd^.data<>0 THEN (* если пришли данные *)
    respons:=CONCAT(respons,byToSt(rbd^.data)); (* формируем строку *)
    END_IF
    как то так у меня передаются и принимаются данные, пауза между отправкои и приемом всего один цикл

  4. #54

    По умолчанию

    Цитата Сообщение от Сергей Сподрин Посмотреть сообщение
    Тогда в таком случае является странным, что устройство не реагирует на команду.
    вы ему не даете возможность выполнять команду, передавая ее заново в каждом цикле ПЛК.... обратите внимание у "сарзар-а" однократная отправка, а потом многоцикловое чтение - накопление ответной строки...

  5. #55
    Пользователь
    Регистрация
    30.07.2013
    Адрес
    Калининград
    Сообщений
    23

    По умолчанию

    Попробовал по такому алгоритму, да пауза в один цикл есть, однако от этого ничего не изменилось в ситуации. Те же яйца, только в профиль - в GetByte ничего не приходит. 5 байт команды в порт ушли, в ответ - тишина. Как только команда изменилась с пуск/стоп на любую другую - в порт сразу же сыплются данные.
    С одной поправкой(странность заметил) - команда в ответ должна приходить тоже из 5 байт, однако к каждому ответу в конце "приклеивается" байт 0х18 - по ASCII это Cancel.

  6. #56
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Ну так может и Вы при отправке запроса забываете добавить стмволы конца

  7. #57
    Пользователь
    Регистрация
    30.07.2013
    Адрес
    Калининград
    Сообщений
    23

    По умолчанию

    Они не предусмотрены мурзилкой на этот прибор. Только 5 байт команды (которая, как описывал выше) - оканчивается CRC и такая команда нормально воспринимается, при отправке её с компьютера в порт.

  8. #58
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Разве на компьютере Вы не нажимаете ни какой enter? Просто набираете пять байт и сразу приходит ответ?

  9. #59
    Пользователь
    Регистрация
    30.07.2013
    Адрес
    Калининград
    Сообщений
    23

    По умолчанию

    Ну если вопрос в таком ключе Да, отправлять в порт приходится по нажатию "Send". Но, если я не ошибаюсь, команда SetByte выполняет схожую функцию - передать в интерфейс строку байт?

  10. #60
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Сами сказали что в ответе приходит не описанный байт, ну сделайте следущим образом отправте с компа запрос на плк, а в плк оставте только слушателя, если придет тодько пять байт значит проблема не в этом, а вот если будет снова шестой байт, то значит его надо добавить и в Ваш запрос с плк

Страница 6 из 7 ПерваяПервая ... 4567 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •