Показано с 1 по 4 из 4

Тема: ОВЕН ПЛК100+СОМ

  1. #1

    По умолчанию ОВЕН ПЛК100+СОМ

    Уважаемые разработчики ответьте пожалуйста на следующий вопрос.

    Для ОВЕН ПЛК100 -24.P.M была написана отладочная программа для вывода через COM2 (RS232 интерфейс контроллера ОВЕН) нескольких байтов. Однако HyperTerminal показывает, только первый “переданный ” байт.

    Почему программа приведённая ниже выдаёт только один байт?

    hndler:=SysComOpen(1);

    cmst.Port:=1;
    cmst.dwBaudRate:=9600;
    cmst.byStopBits:=0;
    cmst.byParity:=0;
    cmst.dwTimeout:=0;
    cmst.dwBufferSize:=10;
    cmst.dwScan:=0;

    ptCs:=ADR(cmst);
    scss:=SysComSetSettings(cmst.Port,ptCs);

    sdBuf:='0123456';

    sendedBytes:=SysComWrite(cmst.Port, ADR(sdBuf),LEN(sdBuf),0);

    scc:=SysComClose(cmst.Port);

  2. #2

    По умолчанию

    Каждую миллисекунду Вы
    1) Открываете порт
    2) Применяете настройки
    3) Передаете байт

    Попробуйте использовать переменную типа состояние, которая переводит программу сначала в открытие, если открылся в настройку, если настроился в передачу. См пример посылки смс в форуме

  3. #3

    По умолчанию

    Уважаемый Малышев Олег спасибо за подсказку.

    Программа начала функционировать правильно после того, как была введена задержка между функцией sendedBytes:=SysComWrite(cmst.Port, ADR(sdBuf),LEN(sdBuf),0);
    и функцией scc:=SysComClose(cmst.Port);

    Вероятно функция SysComWrite(cmst.Port, ADR(sdBuf),LEN(sdBuf),0) является не блокирующей. Она передаёт sdBuf в буфер порта и не ждёт окончания передачи из буфера порта на внешнее устройство. А следующая за ней команда SysComClose(cmst.Port) закрывает порт и прерывает передачу. Поэтому из порта успевает выйти только первый байт.

  4. #4

    По умолчанию

    Естественно она неблокирующая, иначе ваш ПЛК бы уже давно перегрузился по Watchdog-у, а каздый вывод в посл. порт приводил бы к торможению программы до окончания вывода.

Ваши права

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