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

Тема: ПЛК73 Чтение МВ110-16Д через Modbus

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию ПЛК73 Чтение МВ110-16Д через Modbus

    Подскажите, что делаю не так? Данные читает, но как то нестабильно, большую часть времени чтение завершается ошибкой.

    Кусок кода:

    (*Устанавливаем настройки COM-порта*)
    IF port_opened=0 THEN
    Settings.Port:=com_num; (*номер COM-порта*)
    Settings.dwBaudRate:=9600; (*скорость*)
    Settings.byParity:=0;
    Settings.dwTimeout:=1;
    Settings.byStopBits:=0;
    Settings.dwBufferSize:=0;
    Settings.dwScan:=0;
    END_IF
    (*Открываем COM-порт*)
    COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK );
    (*Если COM-порт открыт, то переходим к приему и передачи данных *)
    IF COM_SERVICE1.ready THEN
    port_opened:=2;
    END_IF

    IF port_opened=2 THEN (*Удачно проинициализировали*)

    IF cmpl THEN
    enabl :=TRUE;
    END_IF

    tErr(IN:=m, PT := t#100ms);
    IF tErr.Q THEN
    m := FALSE;
    enabl := TRUE;
    END_IF

    readInputs(
    Enable:= enabl,
    Mode:= MB_RTU,
    DevAddr:= 1,
    FirstAddr:= 51,
    Quantity:= 1,
    ComHandle:= Settings.Port,
    TimeOut:= T#100ms,
    Buffer:= readBuffer, (*таймаут T#50ms*)
    Complete=>cmpl , (* скопировать признак завершения операции *)
    Exception=>err);

    IF enabl AND NOT cmpl THEN
    enabl := FALSE;
    END_IF

    (*если установлен признак завершения операции, то *)
    IF cmpl THEN
    IF err=0 THEN (*Если нет ошибок, то получаем данные типа INT из буфера*)
    x:=BYTE_TO_WORD(readBuffer[1]) OR SHL(BYTE_TO_WORD(readBuffer[0]),8);
    readQuantity := readQuantity+1;
    END_IF
    END_IF

    IF err <> 0 THEN
    enabl := FALSE;
    m := TRUE;
    END_IF
    END_IF
    Последний раз редактировалось Зинец Олег; 04.11.2020 в 22:13.

Похожие темы

  1. ПЛК73 + МВ110-224.8А протокол ModBus
    от den_ger в разделе ПЛК63/73
    Ответов: 5
    Последнее сообщение: 01.06.2017, 07:50
  2. Ответов: 3
    Последнее сообщение: 10.10.2016, 14:09
  3. Ответов: 1
    Последнее сообщение: 12.03.2015, 12:13
  4. Ответов: 9
    Последнее сообщение: 27.02.2015, 11:07
  5. Датчики температуры modbus или любые другие через МВ110
    от logger в разделе Подбор Оборудования
    Ответов: 9
    Последнее сообщение: 27.02.2015, 11:07

Ваши права

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