nesco писал(а):
как Galkov пишит, что при 10 ms выдаст через 1 secпроблемы с ЧТЕНИЕМ
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): как Galkov пишит, что при 10 ms выдаст через 1 secпроблемы с ЧТЕНИЕМ |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
nesco, и что мы собираемся делать 200-1000 раз в секунду? Работа с каким-нибудь девайсом через LPT?
|
|||
карма: 1 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Galkov писал(а): проблемы с ЧТЕНИЕМ Ну, немного не так -- понял буквально. Ну нет никаких гарантий, что этого не произойдет, а я посчитал, что точно произойдет, вероятность всеже есть. tsdima, нет, работа с COM-портами, а также UDP сокетами в фоне. Есть N-е количество каналов, их надо по циклу опросить и считать с них информацию. Минимальное время, за которе может появится достоверная информация в одном из каналов при максимальной скорость COM-порта 57600 и 20 байтах информации, составляет ~ 3 ms при скважности 100 (работают каждый в своем потоке), а значит у меня ~300 ms на опрос всех каналов. В таком случае, при 30 ms на цикл у меня получается всего 10 каналов, этого мало, должен быть резерв -- каналов 30, не меньше. При 10 ms это и будет то, что надо, но сервис имеет только один таймер, и его приходится делить на три таймера -- цикл опроса входных каналов, цикл опроса выходных каналов и 1 сек цикл, вот при делении я и наблюдаю, косяки при уменьшении времени цикла. Я проверял пока не на сервисе, а на обычном таймере, почему и задал этот вопрос -- точнее ли сервисный таймер (эх, если бы таймеры можно было бы ставит в сервисе проблем бы не было) |
|||
карма: 22 |
|
Ответов: 56
Рейтинг: 1
|
|||
tsdima писал(а): и что мы собираемся делать 200-1000 раз в секунду? Работа с каким-нибудь девайсом через LPT?При использовании разных таймеров получаеться несовсем ровно.Особенно если комп сильно глючит.В этой схеме в любом случае действие будет делаться ровно. code_1844.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_1844.txt [1.6KB] [459] |
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
aaa_gadag, а ты какой-либо канал таймера нагрузи килограммовой схемой, я на тебя тогда посмотрю, как он тогда будет ровно делаться.
|
|||
карма: 22 |
|
Ответов: 56
Рейтинг: 1
|
|||
Вот: code_1845.txt
Не меньше 1KB схемы одном из каналов таймера.Работает ровно... [size=-2]------ Добавлено в 23:04 200KB?Но я же только добавил перенос 1000 пробелов из одного компонента в другой. |
|||
карма: 1 |
| ||
файлы: 1 | code_1845.txt [211.8KB] [532] |
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
aaa_gadag, и на сколько у тебя хватить сумматора -- на ~2 миллиарда итераций (при 1ms на 2 миллиона секунд или ~ 550 часов, меньше месяца), а дальше что? А если прога должна работать не выключаясь круглосуточно?
|
|||
карма: 22 |
|
Ответов: 3655
Рейтинг: 69
|
|||
nesco писал(а): А если прога должна работать не выключаясь круглосуточно?Эт чо вечный двигатель что ль Какая задача сервиса 1)контроль работы 2)контроль работы и выдача сообщения при недопустимости параметра. 3)запись сообщений. |
|||
карма: 0 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Вячеслав, двумя постами выше описан основной алгоритм работы -- сбор событий от N-количества источников с записью в базу в непрерывном режиме, не выключаясь. Выключение, даже на двадцат секунд -- полный аврал.
|
|||
карма: 22 |
|
Ответов: 3655
Рейтинг: 69
|
|||
nesco, Тогда вижу только внешний контроллербуфер работающий в реальном времени.
|
|||
карма: 0 |
|
Ответов: 56
Рейтинг: 1
|
|||
nesco, Я тебя непонял...Что ещё за сумматор?Компонент Math в схеме?Установи чтобы при достижении 1002 он сбрасывался и всё.
|
|||
карма: 1 |
|
Ответов: 2058
Рейтинг: 28
|
|||
nesco, в "Упладе" должен быть таймер который работает с более мелкими значениями времени типа 100 мксек. А стандартный системный тамер меньше 10 мсек не понимает. Компонент сделал tsdima.
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Эдик писал(а): А стандартный системный тамер меньше 10 мсек не понимаетhttp://www.hiasm.com/xf/topic.php?p=6133 |
|||
карма: 27 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Если бы Thread не высыпался после определенного времени при работе в цикле, я бы его давно применил. Как раз Sleep и вызывает молчаливый выход. Убрав Sleep, и используя внутренние системные задержки, такой молчаливый выход не наблюдается. Сгенерить такую схему просто не могу, по причине того, что эта фича может проявиться, а может и нет, и только в реальной системе (на эмуляторах не наблюдается), а экспериментиовать на рабочем компе не представляется возможным.
[size=-2]------ Добавлено в 01:28 Вячеслав, у меня с этим прекрасно справляется прога, написанная на HiAsm'e, и не нужен там никакой внешний контроллер (я специально от него отошел). Весь прикол в том, что я хочу перевести эту прогу в фоновый режим, а сервис NT поддерживает только свой таймер и не поддерживает стандартные, об этом писано выше по топику. Если бы он их поддерживал, всех этих вопросов бы не было, попросту. Я задал маленький вопрос -- насколько точнее сервисный таймер в отличии от стандартного? Блини, все пошли умничать, кто во что горазд. Никто толком на этот вопрос так и не ответил |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Если бы Thread не высыпался после определенного времени при работе в циклепро цикл не понял. |
|||
карма: 27 |
|