This is topic Lagoon Цикл & I7000 in forum TRACE MODE в OEM-контроллерах / TRACE MODE inside OEM controllers at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/22/t/000035.html

Posted by Elias (Участник № / Member № 636) on :
 
Доброго времени суток...
1. Как посмотреть время цикла в Lagoon...значение канала "СИСТЕМНЫЙ-Время пересчета" все время "0".
2. Можно ли узнать алгоритм работы микроМРВ Lagoon конкретно "асинхронность пересчета базы каналов с обменом по COM"
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) Должен. Однако обращаю Ваше внимание, что значения данного канала жестко тактированы разрешением таймера, которое Вы задали в настройках узла (параметр "Разрешение"), то есть - значения этого канала изменяются по порогам. И значение 0 - означает, что реально сервер тратит времени меньше, чем величина "Разрешение" таймера. Вот если это время превысит величину разрешения таймера, оно будет равно ему либо как N*"Разрешение" и промежуточных значений у него не бывает.

2) При обмене по внешним интерфейсам у каждого канала имеется специальный флаг, который автоматически выставляется сервером при пересчете базы каналов - эти флаги формируют так называемую очередь запросов или рассылки данных по внешним интерфейсам. Порядок обработки этой очереди последовательный и он асинхронен относительно цикла пересчета базы каналов. Копится очередь не может больше, чем самих каналов в базе, потому как при пересчете канала с уже выставленным флагом он в очередь не помещается, потому как уже там есть.
 
Posted by Elias (Участник № / Member № 636) on :
 
По вопросу 1) все понял Спасибо...однако, скромная рекомендация - можно это было поместить в Помощь

2) Для ясности "так называемую очередь запросов или рассылки данных по внешним интерфейсам" - Очередь обмена...должна полностью быть обработана за цикл пересчета базы каналов или нет? и что происходит если это не так...(Если Я правильно понимаю очередь обмена для Lagoon должна формироваться со скоростью не более 20 посылок в секунду...а не 20 посылок по каждому каналу, как Я подразумевал - т.е. если обмен разнести по двум каналом то скорость удваивается)
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
По второму пункту - если объем пакетов для обмена, количество самих транзакций в рамках одного цикла пересчета, а также скорость канала и динамика работы опрашиваемых устройств укладывается в один цикл пересчета, то все может работать и в рамках этого цикла, или даже быстрее, но как только все это требует большего времени, то процесс обмена становится асинхронным относительно пересчета (как бы работает в параллельном потоке).
Насчет удвоения скорости при разнесении - это еще не факт, под MS Windows может оно и удвоится, но в Лагуне ситуация следующая - весь обмен в этом "девайсе" идет через библиотеку от ICP-DAS и ее разработчики заявляют скорость обмена с портом не выше 20 транзакций в секунду (одна транзакция - это "запрос-ответ"), однако испытания показывают, что даже при самых оптимальных условиях этот показатель всего лишь 16-18 транзакций в секунду! И даже если разносить по разным портам, то он никак не увеличивается пропорционально используемым портам - очевидно все дело в реализации самой библиотеки. [duno / незнайка]
Поэтому это необходимо учитывать при разработке проекта - особенно, если некоторые параметры требуют очень динамичного обновления, ведь Лагуна может и не потянуть предъявляемых требований.
 
Posted by Elias (Участник № / Member № 636) on :
 
Возможно ли установить, что процесс обмена стал асинхронным (т.е. время на обмен превышает цикл пересчета) например значение канала "Системный-время пересчета" будет больше чем заданое
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Канал "Системный-время пересчета" вообще здесь ни при чем! Зачем Вам знать - синхронно или нет работает обмен относительно цикла пересчета!? [Недоумение / Confused]
 
Posted by Elias (Участник № / Member № 636) on :
 
Т.К. время реакции системы складывается из цикла пересчета и времени на обмен то хотелось бы знать, что при данном цикле пересчета обмен стал асинхронный и нет смысла уменьшать время цикла пересчета (так как время реакции системы будет в основном определятся задержками на обмен) . Т.Е. МЫ получим оптимальный цикл пересчета...Вот такие мои рассуждения или Я не прав? Тогда как подобрать оптимальное время цикла пересчета
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Смотрите мой пост выше - я же уже сказал, что практическая скорость обмена по RS в Лагуне - 16-18 транзакций в секунду, отсюда приблизительная формула:
Цикл = N/T, где N - количество каналов для обмена по RS, а Т - максимальное количество транзакций (при этом необходимо помнить, что минимальный цикл в Лагуне 55мс).
 
Posted by Elias (Участник № / Member № 636) on :
 
Спасибо, Все это понятно...но просто не понятно как точно определить 16, 17, 18 и зависит ли это от номера порта COM 1 или 2.
Вопрос появился вследствии следующего эксперимента - создали базу каналов с одним каналом типа DCS DO для обмена с модулем...подсчитали 1/18 = 0,055 т.е. оптимальный цикл = 1*0,055...эксперимент показал, что обмена с модулем вообще не происходит до тех пор пока цикл не равен 3*0,055 но только по COM2, по COM1 правда в режиме RS232 через преобразователь обмен идет и при цикле = 1*0,055...стало интересно как практически определить асинхронность обмена что бы обоснованно определить практическую скорость и как Вы это сделали?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
А Вы для СОМ2 точно выставляли управление приемо-передатчиком?
 
Posted by Elias (Участник № / Member № 636) on :
 
Да...RTS...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Точно все равно нельзя определить - этот параметр экспериментальный и очень сильно зависит от самого проекта. То, что обмен по СОМ2 медленнее можно объяснить только необходимостью управления приемо-передатчиком, но все же оно не должно так сильно замедлять процесс.
 
Posted by Elias (Участник № / Member № 636) on :
 
Переключили COM1 в RS-485...
Проект как в предыдущем сообщении...один канал типа DO...установка начального значения F, флаг отработать...считаем значение цикла 1/16 = 0,0625 устанавливаем 2*0,055...через СОМ1 значение выходов устанавливается...через COM2 нет...т.е. обмена вообще нет...включение происходит только при цикле 3*0,055 т.е. получается что скорость обмена по COM 2 6-7 запросов в секунду ?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Что-то не понятно - у Вас два канала типа DO и каждый настроен на свой СОМ-порт? Или канал у Вас один, тогда на какой порт он настроен?
 
Posted by Elias (Участник № / Member № 636) on :
 
Это было два эксперимента один канал...
в первом эксперименте канал настроен на COM 1
во втором на COM 2
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2