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

Тема: ПЛК 63 и RS-485 - вопросы

  1. #1

    По умолчанию ПЛК 63 и RS-485 - вопросы

    Всем доброго дня. Возникли вопросы по поводу использования RS -485 в контроллере ПЛК 63. Не открывается порт. По документации RS-485 - это Com0, RS-232 - COM1, RS-232 debag - Com4.
    Так вот. Указываю Com4 - нет проблем. Порт открывается. А Com0 - возвращает ошибку.
    Com порт.jpg
    Использовал библиотеки и SysLibCom и ComServis - без разницы. Нулевой порт не открывается..

  2. #2

    По умолчанию

    Вот код:
    PROGRAM PLC_PRG
    VAR
    com_num:PORTS:=0; (*Номер порта для работы с модемом*)
    port_opened: BOOL := FALSE; (*Признак открытия порта*)
    com_handle: DWORD; (*Дискриптор порта*)
    com_set: COMSETTINGS;
    port_init:BOOL:=FALSE;
    res:BOOL;
    END_VAR

    (*Открываем порт*)
    IF NOT port_opened THEN
    com_handle:=SysComOpen(com_num);
    IF com_handle <> 16#FFFFFFFF THEN (*Если дискриптор равен 16#FFFFFFF , то ошибка*) (*Можно сравнить com_handle с 0- потому что ОВЕН *)
    port_init:=TRUE;
    ELSE
    SysComClose(com_num);
    port_init:=FALSE; (*Признак открытия порта*)
    END_IF;
    IF port_init THEN
    (*Настраиваем скорость*)
    com_set.Port:=com_num;
    com_set.dwBaudRate:=1200;
    com_set.byParity:=0;
    com_set.dwTimeout:=0;
    com_set.byStopBits:=0; (* *)
    com_set.dwBufferSize:=0;
    com_set.dwScan:=0;
    res:=SysComSetSettings(com_num,ADR(com_set));
    (*Успешно открыли*)
    IF NOT res THEN (* ИЛИ Наоборот если res = TRUE, то все параметры установились???*)
    port_opened:=TRUE;
    END_IF;
    END_IF;
    END_IF;

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

    По умолчанию

    Возвращает ошибку, но работает да? Если вы конечно ее не подключили к запрету опроса.
    Кто-то на форуме выкладывал отредактированную библиотеку работы с портом, где все порты начинаются с 1-цы и следовательно данной ошибки нет.

  4. #4

    По умолчанию

    Да я вроде уже решил эту проблему. Не знаю как работать будет, но теперь хоть компилируется. Пришлось в исходной библиотеке SysLibCom в типах данных, где перечисляются порты изменить на (COM0, COM1, COM2,COM3,COM4,COM5,COM6,COM7). Было (COM1:=1, COM2,COM3,COM4,COM5,COM6,COM7, COM8). Т.е прописал COM0, а COM8 удалил как лишний. Видимо больше 8 портов нельзя..
    Теперь не могу понять с функцией SysComSetSettings. Вроде она должна возвращать TRUE при успешной записи параметров, но по ходу всё наоборот. Но как удостовериться и проверить - записались на самом деле или нет - пока не знаю как..Да и одна из входных переменных у ней DWORD (написано, что это дискриптор возвращаемый SysComOpen, а по факту в примерах почему то указывают порт...В общем пока не знаю как правильно поступить..Проверить надо как то реальные параметры порта...записались или нет.

  5. #5

    По умолчанию

    Можете не обращать внимания, с "Инвалидом" на самом деле всё работает. Это просто надо знать.

  6. #6

    По умолчанию

    Интересно. Буду знать.
    Вот тут наблюдаю странную картину. Получается, что функция syslibopen в каждом цикле возвращает то 1 то 16#ffffffff ( ошибку). Я почему то считал, что раз отрылся порт, то и состояние порта должно быть однозначным. В общем как то работает со странностями библиотека. Для порта сом4 возвращает 0, для сом0 возвращает 1. По разному..

Похожие темы

  1. Вопросы о САУ-У
    от FPavel в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 31.05.2022, 20:38
  2. Вопросы по СИ-8
    от aleksandr87 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 11.06.2016, 18:56
  3. САУ МП - вопросы
    от ВЗМП в разделе Эксплуатация
    Ответов: 18
    Последнее сообщение: 18.03.2016, 13:42
  4. Вопросы по OPC
    от юрий1009 в разделе Трёп (Курилка)
    Ответов: 10
    Последнее сообщение: 22.02.2015, 21:22
  5. Вопросы
    от Мурат в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 27.01.2007, 03:24

Ваши права

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