Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.10.2019, 15:22   #1
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Время реакции модуля ввода/вывода

Возникли подозрения что модуль работает с "не теми" задержками которые планировались. Вот и решил убедиться в этом. Написал простенькую программу: подаю на 2-й вход xor лог1 (на первом входе всегда лог1) одновременно пропадает сигнал на входе и срабатывает триггер который запускает счетчик. Через паузу (которую создает вв/в) этот счетчик сбрасывается. У меня показания разнятся от 2 до 4.
Цикл программы 14мс, цикл опроса модуля 10мс (т.е. опрос выполняется примерно с программой), протокол modbus TCP.

Вопрос все ли я делаю правильно? Можно ли принять какие-нибудь меры к уменьшению этого времени?

Картинки - слева начало опыта, справа-конец.
Миниатюры
Нажмите на картинку для увеличения

Название:  начало.png
Просмотров: 51
Размер:  131.3 Кбайт   Нажмите на картинку для увеличения

Название:  конец.png
Просмотров: 36
Размер:  113.7 Кбайт  
RomanIst вне форума   Ответить с цитированием
Старый 21.10.2019, 15:43   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 023
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от RomanIst Посмотреть сообщение
Цикл программы 14мс, цикл опроса модуля 10мс (т.е. опрос выполняется примерно с программой), протокол modbus TCP.
Device(link), оставить в карте одну переменную. Статистику за минуту поделить на время этой минуты, убедившись, что желаемые 10 мс на самом деле трансформируются в реальные 10 мс.

Далее уже можно строить предположения.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 21.10.2019, 16:33   #3
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от Arsie Посмотреть сообщение
Device(link), оставить в карте одну переменную. Статистику за минуту поделить на время этой минуты, убедившись, что желаемые 10 мс на самом деле трансформируются в реальные 10 мс.

Далее уже можно строить предположения.
5 719/6000=0.95 - я правильно понимаю? Значит цикл опроса соответствует 10мс?

P.S. 5 719 - это посчитанное значение статистики за 1 минуту.
Миниатюры
Нажмите на картинку для увеличения

Название:  диагностика.png
Просмотров: 34
Размер:  120.0 Кбайт  
RomanIst вне форума   Ответить с цитированием
Старый 21.10.2019, 17:11   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 023
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от RomanIst Посмотреть сообщение
5 719/6000=0.95 - я правильно понимаю? Значит цикл опроса соответствует 10мс?
Чуть медленнее 10 мс.

Исходя из времени цикла 14 мс, задержка в одну сторону у вас от 4 до 23 мс. Две стороны - 10..46 мс. Т.е. 1..4 цикла программы.

Приблизительно.

Т.е. получаемые вами 2..4 цикла - вполне нормальная ситуация. Т.к. к вероятность попасть в промежуток 10..14 невелика. Там даже не с 10 начало, а даже побольше, 11..12 наверное по факту.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 21.10.2019, 18:09   #5
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от Arsie Посмотреть сообщение
Чуть медленнее 10 мс.

Исходя из времени цикла 14 мс, задержка в одну сторону у вас от 4 до 23 мс. Две стороны - 10..46 мс. Т.е. 1..4 цикла программы.

Приблизительно.

Т.е. получаемые вами 2..4 цикла - вполне нормальная ситуация. Т.к. к вероятность попасть в промежуток 10..14 невелика. Там даже не с 10 начало, а даже побольше, 11..12 наверное по факту.
Теперь ситуация прояснилась, значит я уперся почти в минимальное время и это прискорбно. Тогда буду критические узлы переносить на входы самого контроллера.
Спасибо за разъяснения.
RomanIst вне форума   Ответить с цитированием
Старый 21.10.2019, 18:27   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 023
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от RomanIst Посмотреть сообщение
Теперь ситуация прояснилась, значит я уперся почти в минимальное время и это прискорбно. Тогда буду критические узлы переносить на входы самого контроллера.
Спасибо за разъяснения.
Попробуйте период опроса увеличить с 10 до 14 мс. Это может снизить максимум задержек из-за "плавающего" несовпадения периодов опроса и периода выполнения программы.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 21.10.2019, 18:38   #7
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от Arsie Посмотреть сообщение
Попробуйте период опроса увеличить с 10 до 14 мс. Это может снизить максимум задержек из-за "плавающего" несовпадения периодов опроса и периода выполнения программы.
Ок, попробую.
RomanIst вне форума   Ответить с цитированием
Старый 09.05.2020, 18:20   #8
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Хорошо. А если попробовать опрашивать переменные не с фиксированным периодом, а по событию: изменение значения битовой маски и для страховки сравнение уже записанного со входным? Чтобы впустую не гонять каждую переменную по кругу? Это даст выигрыш в скорости опроса переменных?

Только нет в описании как будет работать переменная с нециклическим опросом в случае если дать сигнал на запись, а потом через один цикл снова подать тот же сигнал, когда при этом запись по первому сигналу не была еще произведена (нет подтверждения rdy). Я правильно понимаю что если rdy неравен 1 то запись будет недоступна? Или может там создается очередь по количеству насчитанных сигналов на входе ^?

Миниатюры
Нажмите на картинку для увеличения

Название:  запись1.png
Просмотров: 13
Размер:  30.9 Кбайт  

Последний раз редактировалось RomanIst, 09.05.2020 в 18:35
RomanIst вне форума   Ответить с цитированием
Старый 09.05.2020, 19:01   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 023
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от RomanIst Посмотреть сообщение
Хорошо. А если попробовать опрашивать переменные не с фиксированным периодом, а по событию: изменение значения битовой маски и для страховки сравнение уже записанного со входным? Чтобы впустую не гонять каждую переменную по кругу? Это даст выигрыш в скорости опроса переменных?
Это метод разгрузки канала. Но этот метод имеет смысл если у вас канал страдает именно от перегрузки количеством данных.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 09.05.2020, 23:11   #10
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от Arsie Посмотреть сообщение
Это метод разгрузки канала. Но этот метод имеет смысл если у вас канал страдает именно от перегрузки количеством данных.
В принципе пришел к выводу что при таком способе теряется вся прелесть групповых запросов, а делать запрос от общего выхода - бессмысленно...
RomanIst вне форума   Ответить с цитированием
Старый 12.05.2020, 11:37   #11
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 302
Благодарил(а): 0 раз(а)
Поблагодарили: 254 раз(а) в 250 сообщениях
По умолчанию Ответ: Время реакции модуля ввода/вывода

Цитата:
Сообщение от RomanIst Посмотреть сообщение
В принципе пришел к выводу что при таком способе теряется вся прелесть групповых запросов, а делать запрос от общего выхода - бессмысленно...
При таком способе групповые опросы тоже возможны.
Миниатюры
Нажмите на картинку для увеличения

Название:  XIznC5qdpF.png
Просмотров: 51
Размер:  53.9 Кбайт  


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. сейчас на форуме   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FMR AIN время фильтрации Max2114 Вопросы о FMR и MRL 23 03.03.2020 15:52
Сбилось время на SMH4 Trim5 (решено) Sibiryak22rus Вопросы о SMH4 51 06.07.2018 16:11
Время выполнения программы Plastic_Enterprice(Yar) SMLogix 7 26.03.2015 16:11
Использование в летнее время режима проветривания Avtomatic SMConstructor (вентиляция) 5 24.06.2014 17:02
Как оценить время выполнения программы в контроллере? Arsie ЧаВо - Часто задаваемые Вопросы 0 04.10.2013 16:51


Часовой пояс GMT +4, время: 14:18.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023