Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 30

Тема: плк63 связь с ним по Rs-232

  1. #21

    По умолчанию

    Адрес менять можно лишь на 485. Для 232 это лишено смысла, т.к. соединение peer-to-peer.
    Я, конечно, понимаю, можно поставить конвертор 232-485, но ресурсы не бесконечные.

    COM_SERVICE я не рекомендую использовать. Классический пример открытия, настройки и закрытия порта дан в примерах и на диске.

  2. #22

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Адрес менять можно лишь на 485. Для 232 это лишено смысла, т.к. соединение peer-to-peer.
    Я, конечно, понимаю, можно поставить конвертор 232-485, но ресурсы не бесконечные.

    COM_SERVICE я не рекомендую использовать. Классический пример открытия, настройки и закрытия порта дан в примерах и на диске.
    В принципе если адрес нельзя менять то и скорость мне безразлична .
    Вот а на счет COM_SERVICE ... взят из ваших примеров ... хз ... дисков скопилось множество ... на каком что и как есть уже просмотреть долго .... до тех что добрался используются те же COM_SERVICE , если можно либо вышлите пример ... либо выложите прям тут ... надо ж совершенствовать свой код . мыло robingd@yandex.ru

    ЗЫ: Приятно познакомиться с разработчиками ). Чувствую скоро у меня появяться вопросы по использованию вашего модуля для тензодатчиков ...
    ПЛК-100 PL 24в
    ПЛК-63 PPPPPL
    СП270

  3. #23

    По умолчанию

    (*Открываем порт*)
    IF NOT port_opened THEN
    com_handle:=SysComOpen(com_num);
    IF com_handle<>16#FFFFFFFF THEN
    port_init:=TRUE;
    ELSE
    SysComClose( com_num);
    com_handle:=SysComOpen( com_num);
    port_init:=TRUE;

    END_IF
    (*
    (*Настраиваем скорость*)
    com_set.Port:=com_num;
    com_set.dwBaudRate:=115200;
    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
    port_opened:=TRUE;
    END_IF

    *)
    com_setEx.Size:=SIZEOF(com_setEx);
    com_setEx.Port:=com_num;
    com_setEx.dwBaudRate:=9600;

    com_setEx.byStopBits:=0;
    (*
    byStopBits:BYTE; Кол-во стоповых бит 0 =один, 1=полтора , 2=два
    *)
    com_setEx.byParity:=0;
    (*
    byParity:BYTE; Режим проверки четности 0 = нет, 1 = нечет, 2 = чет
    *)

    com_setEx.dwTimeout:=0;(*
    DWORD; Не используется должно быть =0
    *)
    com_setEx.dwBufferSize:=0;
    (*DWORD; Не используется должно быть =0
    *)
    com_setEx.dwScan:=0;(*DWORD; Не используется должно быть =0
    *)

    com_setEx.cByteSize :=7;
    (* BYTE; Длина символа в битах 5-8 бит.
    *)
    (*
    fOutxCtsFlow : BOOL; Определяет состояние вывода CTS в PLC-100 не распаян

    fDtrControl : BYTE; Определяет состояние вывода DTR в PLC-100 не распаян

    fDsrSensitivity : BOOL; Определяет чувствительность к состоянию вывода DTR в PLC-
    100 не распаян
    f RtsControl : BYTE; Определяет состояние вывода RTS в PLC-100 не распаян

    fOutxDsrFlow : BOOL; Определяет состояние вывода DSR в PLC-100 не распаян
    *)

    res:=SysComSetSettingsEx(com_num,ADR(com_setEx));

    (*Успешно открыли*)
    IF NOT res THEN
    port_opened:=TRUE;
    END_IF
    END_IF

    IF NOT port_opened THEN
    RETURN;
    END_IF

    ton1(In:=start_tmr,pt:=t#1s);
    start_tmr:=TRUE;
    tr1(clk:=ton1.Q);
    IF tr1.Q THEN
    SysComWrite(com_num,ADR(snd_str),LEN(snd_str),0);
    start_tmr:=FALSE;
    END_IF

    sz:=SysComRead(com_num,ADR(rcvBUF),1024,0);

  4. #24

    По умолчанию Связь ПЛК63 со СМИ2

    Здравствуйте!

    Прошу помощи в решении следующей проблемы

    Есть контроллер ПЛК63. Порт RS-485 занят под передачу данных по ModBUS в скаду (работает как Slave). Потребовалось подключить СМИ2. Для этого задействовал порт RS-232 с преобразователем АС3-М. Запустил. Все работает, но не долго. Для мониторинга, параллельно со СМИ2 подключил АС4 и увидел что после запуска программы пакеты передаются. СМИ2 получает и отображает данные. Но потом вижу в терминале, начинают появляться пакеты не похожие на все остальные. Другой длины. Потом опять все нормально. И после 5-10 мин передача останавливается. Пакеты перестают передаваться, при том программа продолжает работать. Это я вижу на дисплее контроллера. На нем выведены показания, которые при работе программы меняются.

    Не могу понять, в какую сторону смотреть. Почему RS-232 так себя ведет?

    Вот код, который я использую для передачи MODBUS пакетов в СМИ2, через RS-232/ Код взят из примера. Своего не придумывал, кроме параметров связи.


    IF port_opened=0 THEN
    Settings.Port:=com_num;
    Settings.dwBaudRate:=115200;
    Settings.byParity:=0;
    Settings.dwTimeout:=0;
    Settings.byStopBits:=1;
    Settings.dwBufferSize:=0;
    Settings.dwScan:=0;
    END_IF

    COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK );


    IF COM_SERVICE1.ready THEN
    port_opened:=2;
    END_IF

    IF port_opened=2 THEN

    write_modbus(
    Enable:= Enabl ,
    Mode:=MB_ASCII ,
    DevAddr:=17,
    RegAddr:=25 ,
    Value:=skip1_d ,
    ComHandle:=Settings.Port,
    TimeOut:=TimeOut ,
    Complete=>cmpl ,
    Exception=>err
    );

    IF Enabl = FALSE THEN
    Enabl := TRUE;
    END_IF

    IF err <> 0 THEN
    Enabl := FALSE;
    END_IF

    END_IF

  5. #25

    По умолчанию

    Каким кабелем подключен АС3?

  6. #26

    По умолчанию

    Самодельный. с одной стороны RJ, с другой DB9. Подключены линии TX RX и GND (2,3,5). Три линии распаяны.

  7. #27

    По умолчанию

    а какой кабель из готовых нужно использовать для конвертации RS-232 на ПЛК63 в RS-485 через АС3-М?

    увидел есть кабели КС2 и КС3

  8. #28

    По умолчанию

    У Вас правильный кабель но не правильный код. Вы не даете блоку работать.

  9. #29

    По умолчанию

    а как же я тогда вижу в терминале передачу данных? Просто она останавливается со временем. Значит я даю блоку разрешение на работу. Или я Ваш ответ не понял?

  10. #30

    По умолчанию

    Заметил. Что связь устойчивее, когда подключены линии TX и GND. Надобности в линии RX не вижу, т.к. контроллер работает, только на передачу. Но все равно вижу искаженные пакеты.

Страница 3 из 3 ПерваяПервая 123

Ваши права

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