Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 30

Тема: Маленький вопрос по Modbus

  1. #21

    По умолчанию

    Цитата Сообщение от Gans Посмотреть сообщение
    Здравствуйте, А_Грация.
    ОГРОМНОЕ СПАСИБО за осциллограммы.
    Дайте я угадаю - это ведь задержка ответа при запросе аналогового параметра? и протокол ModBus-RTU?

    Данный вопрос не однократно возникал на просторах данного форума и после очередного холивара сходились во мнении:
    1. Если работаем с библиотекой, то читать за раз сразу все нужные регистры со слейва.
    2. Сменить протокол.
    3. Аналоговые модели перенесите на отдельный интерфейс и там играться с настройками связи (увеличение времени таймоута).

    P. S. Еще раз СПАСИБО за скринны осциллограм, надеюсь сотрудники ОВЕН теперь не отвертятся :-) С аналогичной ситуацией столкнулся еще в далёком 2007 году и с тех пор использую протокол "ОВЕН" ни каких проблем с опросом модулей овен не было
    Это действительно ModBus-RTU, но задержка между последним ответом и следующим запросом - мастер "гуляет" - 50 мс, а между запросом ответом 5-10 мс, при чем без разницы аналоговый модуль, дискретный или ЧП.
    По поводу чтения пакетом - ситуация с одновременным опросом 8А (чтение 48 регистров) и ЧП - просто улыбнула - ЧП уходит в ручной стоп - пришлось делить запрос к 8А на две части.
    Второй интерфейс будет использоваться для мониторинга - будет весеть модем, менять протокол не буду - и так уже достали переделки....

    К слову могу предоставить еще осциллограммы - где Плк110 имеет такую же задержку после ответа предыдущего устройства, но только 25 мс (тоже МОДБАС.ЛИБ ) но непомню какая там скорость 38400 или 57600, другая осцилла есть - опрос модулей ОВЕНА ОРС-сервером от Инсата там задержка в районе 2-5 мс (по памяти) на скорости 57600.

    Хотелось бы услышать мнение представителей ОВЕН по этой теме..... это так задумано или я косячу???
    Последний раз редактировалось a_gricaj; 16.01.2017 в 18:39.

  2. #22

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    Это действительно ModBus-RTU, но задержка между последним ответом и следующим запросом - мастер "гуляет" - 50 мс, а между запросом ответом 5-10 мс, при чем без разницы аналоговый модуль, дискретный или ЧП.
    Здравствуйте, А_Грация.

    Похоже, что мастер модбус-рту счёл ответ не заслуживающим доверия и простоял 50 мс. Затем по таймауту послал следующий запрос.
    Я не замечал ни каких проблем с дискретными модулями на протоколе модбус-рту и смело их юзаю на этом протоколе. Правда, если есть хоть один аналоговый модуль или ТРМххх и тд. сразу перехожу на протокол ОВЕН и ни каких проблем! На сколько я понимаю проблем нет и на протоколе ASCII.
    На счет гулянья 5-10 мс это скорее всего цикл программы внутренностей слэйва.
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

  3. #23

    По умолчанию

    Цитата Сообщение от Gans Посмотреть сообщение
    Здравствуйте, А_Грация.

    Похоже, что мастер модбус-рту счёл ответ не заслуживающим доверия и простоял 50 мс. Затем по таймауту послал следующий запрос.
    Я не замечал ни каких проблем с дискретными модулями на протоколе модбус-рту и смело их юзаю на этом протоколе. Правда, если есть хоть один аналоговый модуль или ТРМххх и тд. сразу перехожу на протокол ОВЕН и ни каких проблем! На сколько я понимаю проблем нет и на протоколе ASCII.
    На счет гулянья 5-10 мс это скорее всего цикл программы внутренностей слэйва.
    Не помню точно, но вроде экспериментировал - делал тайм аут 100мс на одном модуле (16дн) следил за "Exception" - организован счетчик - все равно задержка - 50-60мс, наверное нужно повторить эксперимент.....

  4. #24

    По умолчанию

    Для сравнения
    СПК107:
    ОпросСПК107.jpg
    ПЛК110(правда сигнал подгулявший):
    ОпросПЛК110.JPG
    ОРС-сервер:
    Опрос ОРСсервером.JPG
    Последний раз редактировалось a_gricaj; 17.01.2017 в 13:43.

  5. #25

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    Для сравнения
    СПК107:
    ОпросСПК107.jpg
    ПЛК110(правда сигнал подгулявший):
    ОпросПЛК110.JPG
    ОРС-сервер:
    Опрос ОРСсервером.JPG
    Скрины сетевых настроек СПК будут выложены-то?
    А то, в принципе, при "правильном" подходе можно и минутные паузы получать, в чем проблема-то.
    Последний раз редактировалось Rake Runner; 17.01.2017 в 14:16.

  6. #26

    По умолчанию

    Один из вариантов:

    Код:
    SettingsCOM2.sPort:=2;
    SettingsCOM2.byStopBits:=1;
    SettingsCOM2.byParity:=0;
    SettingsCOM2.ulBaudrate:=9600;
    SettingsCOM2.ulTimeout:=0;
    SettingsCOM2.ulBufferSize:=0;
    SettingsEXCOM2.byByteSize:=8;
    
    // [2] открываем COM-порт
    ComServiceCOM2(
                     Enable:=TRUE,
                     Settings:=SettingsCOM2,
                     Sets_Ex:=SettingsEXCOM2,
                     Task:=OPEN_TSK);
    				 
    //ОПРОС				 
    IF ComServiceCOM2.Ready THEN 
    	
    	CASE Step OF
        
        0:  IF MV110_8ABoks1 THEN Step:=1; ELSE ErrorMV110_8aAdr5:=0;Step:=2;END_IF
    	1:	TON(IN:= Step=1, PT:=T#1MS , Q=> Enable, ET=> );
    	    MV110_8aAdr5(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 10, 
    	                    FirstAddr:= 0, 
    	                    Quantity:= 35, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= T#100MS, 
    	                    Buffer:= Buffer, 
    	                    Complete=> Complete, 
    	                    Exception=> ErrorMV110_8aAdr5, 
    	                    ByteCnt=> DataSize);
    	    IF Complete  (*если установлен признак завершения операции, то *)
               THEN
    	           IF ErrorMV110_8aAdr5=0 THEN BufferDataM1AI:=Buffer;END_IF
    	           IF ErrorMV110_8aAdr5<>0 AND AlarmMV110_8aAdr5=FALSE THEN AmountMV110_8aAdr5:=AmountMV110_8aAdr5+1; ELSE AmountMV110_8aAdr5:=0;END_IF
                   IF AmountMV110_8aAdr5>SetAmount THEN AlarmMV110_8aAdr5:=TRUE;END_IF
                   MV110_8aAdr5(Enable:= FALSE, Buffer:=Buffer);
    			   TON(IN:=FALSE);
    	           Step:=2; (*переходим к выполнению следующего ФБ*)
             END_IF
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
        2:  IF MV110_8ABoks2 THEN Step:=3; ELSE ErrorMV110_8aAdr6:=0;Step:=4;END_IF
    	3:	TON(IN:= Step=3, PT:=T#1MS , Q=> Enable, ET=> );
    	    MV110_8aAdr6(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 30, 
    	                    FirstAddr:= 0, 
    	                    Quantity:= 35, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= T#100MS, 
    	                    Buffer:= Buffer, 
    	                    Complete=> Complete, 
    	                    Exception=> ErrorMV110_8aAdr6, 
    	                    ByteCnt=> DataSize);
    	    IF Complete  (*если установлен признак завершения операции, то *)
               THEN
    	           IF ErrorMV110_8aAdr6=0 THEN BufferDataM2AI:=Buffer;END_IF
    	           IF ErrorMV110_8aAdr6<>0 AND AlarmMV110_8aAdr6=FALSE THEN AmountMV110_8aAdr6:=AmountMV110_8aAdr6+1; ELSE AmountMV110_8aAdr6:=0;END_IF
                   IF AmountMV110_8aAdr6>SetAmount THEN AlarmMV110_8aAdr6:=TRUE;END_IF
                   MV110_8aAdr6(Enable:= FALSE, Buffer:=Buffer);
    			   TON(IN:=FALSE);
    	           Step:=4; (*переходим к выполнению следующего ФБ*)
             END_IF
    
    и так далее......

  7. #27

    По умолчанию

    И какое время цикла у этой программы?

  8. #28

    По умолчанию

    Цитата Сообщение от Rake Runner Посмотреть сообщение
    И какое время цикла у этой программы?
    Пост №20 этой темы посмотрите пожалуйста, там скрин...

  9. #29

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    Пост №20 этой темы посмотрите пожалуйста, там скрин...
    Интересно не реальное время, а заданное для задачи MainTask.

  10. #30

    По умолчанию

    Цитата Сообщение от Rake Runner Посмотреть сообщение
    Интересно не реальное время, а заданное для задачи MainTask.
    10 мс - заданно для задачи MainTask

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. Вопрос по библиотеке Modbus.lib
    от a_gricaj в разделе ПЛК1хх
    Ответов: 75
    Последнее сообщение: 13.08.2018, 11:18
  2. Переход с Siemens LOGO и маленький вопрос по работе с экранами
    от sadux в разделе Среда программирования OWEN Logic
    Ответов: 5
    Последнее сообщение: 13.01.2017, 09:47
  3. Вопрос по Modbus RTU?
    от Radic71 в разделе Трёп (Курилка)
    Ответов: 2
    Последнее сообщение: 15.10.2013, 16:13
  4. Вопрос по MODBUS RTU
    от Alex_lav в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 20.11.2007, 15:23

Ваши права

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