Показано с 1 по 10 из 14

Тема: Проблема с библиотекой modbus

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

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

    По умолчанию

    Я пользовал на ПЛК63, работает. err=255 не всегда. Интересно, что когда читаешь из регистров ввода, то данные в буфере верные только когда err=0.
    И с чего Вы взяли, что данные не там, где должны быть это не мусор? Похоже у Вас всегда таймаут, то есть слейв не понимает запрос, подумайте над этим (скорость, четность и т. п.).

    Вот кусок кода чтения входов с МДВВ:

    1:
    (*Чтение маски значений входов МДВВ *)

    RD_REGS(
    Enable:= ENABL, (* разрешение работы блока *)
    Mode:= MB_RTU, (*режим приема*)
    DevAddr:= SLAVE_ADDR, (*адрес*)
    FirstAddr:= 51, (*номер первого регистра*)
    Quantity:= 1, (*количество читаемых регистров*)
    ComHandle:=Settings.Port , (*номер сом-порта*)
    TimeOut:=TimeOut, (*таймаут*)
    Buffer:=RD_Buffer , (* буфер данных *)
    Complete=>cmpl , (* скопировать признак завершения операции *)
    Exception=>err , (* скопировать регистр ошибок *)
    ByteCnt=> DataSize); (*кол-во считанных байтов *)

    IF CMPL AND ERR=0 THEN
    INP_WORD:=BYTE_TO_WORD(RD_BUFFER[1]) OR SHL(BYTE_TO_WORD(RD_BUFFER[0]),8);
    WORK_IDENT:=0;
    END_IF

    Успехов!
    Последний раз редактировалось Алексей Дмитриев; 25.05.2011 в 13:50.

Ваши права

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