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

Тема: Ошибка таймаута при записи в модули по ModBus-RTU.

  1. #11

    По умолчанию

    Например потому, что Вы не даете POU работать, вызывая его постоянно с триггером Enable=TRUE. Т.е. POU постоянно шлет пакет в очередь передачи, не ожидая приема ответа (не считывает очередь приема). Это типичная ошибка пользователей данной бибки, идущая от ошибок примера в руководстве.

  2. #12

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    смущает таймаут выставленный 5мс
    Это минимальный таймаут при котором без ошибок происходить чтение из МВ110-ДН если меньше появляются ошибки. Я увеличивал его до 1 секунды, результата нет.
    Я не волшебник, я только учусь...

  3. #13

    По умолчанию

    3ms тоже менял не помогает.
    t.png
    Я не волшебник, я только учусь...

  4. #14

    По умолчанию

    Я так и не понял.
    Где у меня в коде хоть как то при записи используется буфер до тех пор, пока Complete не будет равно 1
    PHP код:
        3:
            
    Buffer[1] := DINT_TO_BYTE(out_5);(* Записываем данные в буфер*)
            
    Buffer[0] := DINT_TO_BYTESHR(out_5,8));
            
    set5(
                
    Enable:= TRUE,                (* Разрешение работы блока *)
                
    Mode:=MB_RTU ,                (* Режим передачи ASCIIRTU *)
                
    DevAddr:=,                     (* Адрес ведомого устройства *)
                
    FirstAddr:= 50,                 (* Номер первого регистра для чтения *)
                
    Quantity:= 1,                       (* Количество записываемых регистров *)
                
    ComHandle:=Settings.Port ,    (* Номер COM-порта *)
                
    TimeOut:=TimeOut ,            (* Таймаут T#ХХХms *)
                
    Buffer:=Buffer ,                (* Буфер данных *)
                
    Complete=>cmpl ,            (* Скопировать признак завершения операции *)
                
    Exception=>Error);            (* Скопировать регистр ошибок *)
            IF 
    cmpl THEN                        (* Если завершено *)
                
    master := 1;
                
    set5(
                    
    Enable:=FALSE ,                (* Завершаем работу блока *)
                    
    Mode:=MB_RTU ,                (* Режим передачи ASCIIRTU *)
                    
    DevAddr:=,                     (* Адрес ведомого устройства *)
                    
    FirstAddr:= 50,                 (* Номер первого регистра для чтения *)
                    
    Quantity:= 1,                       (* Количество записываемых регистров *)
                    
    ComHandle:=Settings.Port ,    (* Номер COM-порта *)
                    
    TimeOut:=TimeOut ,            (* Таймаут T#ХХХms *)
                    
    Buffer:=Buffer);                (* Буфер данных *)
            
    END_IF 
    Я не волшебник, я только учусь...

  5. #15
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    первые две строчки кейса, пока в нем находимся, всегда перезаписываются
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

Похожие темы

  1. Широковещательная команда записи MODBUS RTU на СМИ2
    от Юрий_М в разделе Панели оператора (HMI)
    Ответов: 5
    Последнее сообщение: 20.01.2021, 11:45
  2. СМИ-2 ошибка при записи параметров
    от Димитрий в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 09.07.2019, 03:24
  3. Буфер записи по modbus
    от Егор_Егор в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 24.08.2018, 09:36
  4. Ответов: 1
    Последнее сообщение: 21.04.2015, 18:25
  5. ПЛК100 глюк при записи переменной modbus
    от PavelGO в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 22.06.2013, 11:09

Ваши права

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