Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: RS-232 и Modbus

  1. #1

    Question RS-232 и Modbus

    Возможно ли соединение RS-232 (ПЛК100-24.К-М) и СОМ2 на компьютере.
    Пробовала воспользоваться программой com_port_test поставляемую вместе с диском, ни чего не получается. Проверка передачи данных проверяется с помощью программы Terminal. Передачу не видит, т.е. её не происходит.

  2. #2

    По умолчанию

    1. Используйте нуль-модемный кабель.
    2. На ПЛК нужно создать проект, в котором будет ModBus/ОВЕН slave и хотя бы 1 переменная.
    + настройте порт 232 на ту-же скорость, четность и режим (RTU/ASCII), как на компьютере

  3. #3

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    1. Используйте нуль-модемный кабель.
    2. На ПЛК нужно создать проект, в котором будет ModBus/ОВЕН slave и хотя бы 1 переменная.
    + настройте порт 232 на ту-же скорость, четность и режим (RTU/ASCII), как на компьютере
    По второму пункту: ModBus/ОВЕН slave задавать в PLC Configuration???

  4. #4

    По умолчанию

    Вы хотите связываться через СОМ порт для программирования, или для чего?

  5. #5

    По умолчанию

    Для проверки связи по Modbus. Modbus устройство симулирую с помошью программы ModSim32.

  6. #6

    По умолчанию

    Цитата Сообщение от Klik Посмотреть сообщение
    По второму пункту: ModBus/ОВЕН slave задавать в PLC Configuration???
    Да, в конфигурации

  7. #7

    По умолчанию

    Спасибо за своевременные ответы.

  8. #8

    По умолчанию

    Возникли еще вопросы по функции приема блока байтов. Программой Terminal отсылаю данные. В случае успеха функция должна возвращать количество байт, считанных из циклического буфера приемника. Возвращает все время =0. Порт открыт. Данные из контроллера отсылаются корректно.

  9. #9

  10. #10

    По умолчанию

    PROGRAM PLC_PRG
    VAR
    port_opened: BOOL := FALSE;
    com_handle: DWORD;
    com_num: PORTS := 1;
    com_set: COMSETTINGS;
    com_setEx: COMSETTINGSEX;
    res: BOOL;
    tOn1: TON;
    start_tmr: BOOL := FALSE;
    tr1: R_TRIG;
    snd_str: STRING := '01 04 0FB7 0004 42C8';
    port_init: BOOL;
    rcvbuf: ARRAY [0..100] OF BYTE;
    sz: DWORD;
    END_VAR

    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_setEx.Size:=SIZEOF(com_setEx);
    com_setEx.Port:=com_num;
    com_setEx.dwBaudRate:=9600;
    com_setEx.byStopBits:=0;
    com_setEx.byParity:=0;
    com_setEx.dwTimeout:=0;
    com_setEx.dwBufferSize:=0;
    com_setEx.dwScan:=0;
    com_setEx.cByteSize :=7;

    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#5s);
    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),100,0);

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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