Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: плк63 + му/мв110 по rs-485, modbus, st

  1. #11

    По умолчанию

    Связь наладил, диод rs моргает. FirstAddr:=51, Quantity:=1, вроде бы ничего не напутал (связь-то есть).

    Но чтение не идет

    Код:
    IF cmpl AND err=0 THEN (*потрошим байты*)
    		in1:=Buffer[1].0;
    		in2:= Buffer[1].1;
    		...
    		in8:=Buffer[1].7;
    
    		in9:=Buffer[0].0;
    		in10:=Buffer[0].1;
    		...
    	        in16:=Buffer[0].7;
    END_IF
    В буфере одни нули, хотя на третий вход единичка подана. На приборе диод горит.

    Попробовал еще так:
    Код:
    inp_word:=BYTE_TO_WORD(rd_buffer[1]) OR SHL(BYTE_TO_WORD(rd_buffer[0]),8);
    
    			in1:=(inp_word AND 1)=1;
    			in2:=(inp_word AND 2)=2;
    			in3:=(inp_word AND 4)=4;
    ...
    и махнул MB_RD_INP_REGS на MB_RD_HOLD_REGS, теперь читает, но сильно эпизодически. Диод rs моргает как-то "порциями", очень редко по сравнению и МУ110-16Р в той же сети (стоят парой, для теста 16Р повторяет выходами входы 16ДН).
    Последний раз редактировалось mc_; 09.01.2013 в 12:20.

  2. #12

    По умолчанию

    Введите задержку после опроса каждого из модулей.

  3. #13

    По умолчанию

    Пока закоментил обращение блоку вывода, оставил один 16ДН. Работает значительно лучше (больше не пытаются друг друга перекричать), но задержки всё равно доходят до пяти секунд.

    Открытие порта тоже, наверное, стоит вынести в PLC_PRG и отрабатывать один раз при старте?

  4. #14

    По умолчанию

    Эх, не получается сделать красиво.
    Скидал всё в одну программу и перебираю операции через CASE: чтение - задержка 100мс - запись - задержка 100 мс.
    Теперь вечная ошибка 253, не могу избавиться.

    А МВ110-16ДН всё время передает сигнал на третьем входе, независимо от реального состояния.

    -----
    UPD: поковырял немного (адреса терялись), теперь блоки работают, но именно что по очереди - один моргает диодом, другой устает ждать и ошибку показывает. А потом меняются ролями.
    Err почти всегда 255, это вроде бы "таймаут". Может, с сетью что (длина икебаны на столе 0,5 метра), или с настройками самих блоков?

    -----
    UPD2: убрал проверку ошибок при связи с МУ110 (было условие "операция завершена и нет ошибок", стало просто "операция завершена"), то есть теперь контроллер просто кидается данными в сторону блока вывода. МУ110 реагирует адекватно и очень быстро - даже не успеваю разглядеть моргающий диод. Сомневаюсь, насколько это безопасно - аппарат будет стоять в цехе, рядом с движками, частотниками и прочим.

    Пробовал так же изменить условия при чтении с МВ110, но в буфер писалась феерическая каша, вернул контроль ошибок на место.

    Теперь аппарат работает так: МВ110 долго тупит (по таймауту), затем всё-таки читает данные и передает очередь. МУ110 получает данные, мгновенно срабатывает и передает очередь.
    Настройки обоих блоков стандартные (кроме адреса), скорость 9600. Может, поднять до 19200?
    Последний раз редактировалось mc_; 13.01.2013 в 11:48.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. ПЛК63 Modbus Master
    от ASo в разделе ПЛК63/73
    Ответов: 82
    Последнее сообщение: 29.01.2024, 13:14
  2. ПЛК63 + МВ110-8ДФ
    от Serban в разделе ПЛК63/73
    Ответов: 6
    Последнее сообщение: 15.02.2014, 12:29
  3. ПЛК63 + modbus проблема
    от Dmitriy_1974 в разделе ПЛК63/73
    Ответов: 5
    Последнее сообщение: 17.02.2012, 13:32
  4. ПЛК63 и MODBUS переменные
    от Alex989 в разделе ПЛК63/73
    Ответов: 6
    Последнее сообщение: 27.03.2011, 18:29
  5. ПЛК63 Modbus-ASCII
    от Доренский Алексей в разделе ПЛК63/73
    Ответов: 6
    Последнее сообщение: 20.09.2010, 10:41

Ваши права

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