Вверх ↑
Этот топик читают: Гость
Ответов: 203
Рейтинг: 2
#1: 2015-09-30 18:59:30 ЛС | профиль | цитата
Доброе время суток!
Есть необходимость в зависимости от внешних событий управлять таймером, вот пример схемы но таймер у меня запускается только один раз, а нужно 4 раза... Почему? Уже голову сломал

code_36320.txt
карма: 0

0
файлы: 1code_36320.txt [1.1KB] [307]
Ответов: 8926
Рейтинг: 823
#2: 2015-09-30 19:36:50 ЛС | профиль | цитата
kaban4ik, code_36321.txt
карма: 19

0
файлы: 1code_36321.txt [1.1KB] [428]
Ответов: 203
Рейтинг: 2
#3: 2015-09-30 19:48:40 ЛС | профиль | цитата
Леонид, не то... я сильно упростил схему. Запуск таймера происходит от внешних событий (сработало реле и т.д.), т.е. повторно в моей схеме таймер не запускается а очень бы этого хотелось
карма: 0

0
Ответов: 8926
Рейтинг: 823
#4: 2015-09-30 21:47:57 ЛС | профиль | цитата
kaban4ik, повторно по вашей схеме таймер и не должен запускаться, т. к. последующий запуск должен произойти от события самого таймера, а он не должен запуститься ДО окончания события Надо разорвать событие, например поставив ещё один таймер в разрыв с небольшой задержкой.
code_36323.txt Но такое решение "не этично", не подобает программисту делать костыли к не продуманному алгоритму
карма: 19

0
файлы: 1code_36323.txt [1.2KB] [304]
Ответов: 203
Рейтинг: 2
#5: 2015-09-30 22:43:38 ЛС | профиль | цитата
Леонид, спасибо за объяснение. Я думал что разрыв события будет происходить по серединке таймера . Теперь пазл сложился, буду думать как разорвать событие, или перезапускать может через параллельный поток или еще как...
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#6: 2015-09-30 23:18:21 ЛС | профиль | цитата
kaban4ik писал(а):
таймер у меня запускается только один раз


Add(MainForm,4501135,238,119)
{
}
Add(CounterEx,14558331,378,364)
{
Point(doReset)
link(onNext,9827288:doCompare,[])
}
Add(If_else,9827288,455,364)
{
Type=1
Op2=Integer(5)
link(onTrue,13982139:doWork3,[(505,370)(505,259)(325,259)])
link(Op1,14558331:Count,[(461,352)(422,352)(422,408)(384,408)])
AddHint(11,-32,21,13,Op2)
}
Add(ConvertorEx,5188197,392,189)
{
Mode=1
link(onResult,7741297:doEvent1,[])
link(Data,2323020:Value,[])
}
Add(Hub,7741297,469,189)
{
OutCount=4
link(onEvent1,5469608:doInterval,[])
link(onEvent2,7501821:doClear,[(501,202)(501,209)])
link(onEvent3,5469608:doTimer,[(495,209)(495,181)])
}
Add(HubEx,13982139,321,189)
{
link(onEvent,5188197:doConvert,[])
}
Add(Timer,5469608,588,175)
{
Enable=1
AutoStop=1
Point(doInterval)
Point(doAutoStop)
link(onTimer,15354140:doChangeValue,[])
}
Add(Memory,7501821,518,196)
{
Default=Integer(1)
link(onData,5469608:doAutoStop,[])
}
Add(Button,7847785,240,175)
{
Left=65
Top=90
link(onClick,13982139:doWork1,[(325,181)])
}
Add(LED,15354140,714,175)
{
Left=240
Top=95
link(onChange,15384113:doDeferredEvent,[])
}
Add(Memory,2323020,392,126)
{
Default=Integer(2000)
}
Add(DeferredEvent,15384113,777,175)
{
link(onDeferredEvent,14558331:doNext,[(895,181)(895,275)(324,275)(324,370)])
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#7: 2015-10-01 08:43:32 ЛС | профиль | цитата
Я бы так нарисовал.
kaban4ik_1.gif
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1kaban4ik_1.gif [8.3KB] [551]
Ответов: 203
Рейтинг: 2
#8: 2015-10-01 08:47:23 ЛС | профиль | цитата
nesco, спасибо. А оказывается ларчик просто открывал
------------ Дoбавленo в 08.47:
Tad, это кусок из БОЛЬШОЙ схемы (рисунка). Спешил домой с работы, нашел кусочки где закралась проблема, не успел причесать.
карма: 0

0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)