|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
|
Опции темы | Поиск в этой теме | Опции просмотра |
08.12.2008, 16:08 | #1 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Счётчики моточасов
А насколько точно будет работать такой счетчик, считающий _реальные_ тики?
|
09.12.2008, 16:54 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Счётчики моточасов
Не понял вопроса, если честно. Макросы моточасов не призваны считать реальные тики.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
10.12.2008, 11:50 | #3 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Счётчики моточасов
В "простом макросе моточасов" и большинстве других макросов, считающих временные интервалы, квантом времени является реальный тик. А численные значения интервалов рассчитываются из заданного тика, который заведомо дольше.
Поэтому и возник вопрос: насколько точно показания счетчика моточасов будут соответствовать времени реальной работы девайса? Не лучше ли делать коррекцию = (планируемый тик)/(реальный тик), особенно если интервалы такие большие? |
11.12.2008, 09:58 | #4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Счётчики моточасов
В каждом из таких макросов есть константа, через которую выражен "заданный тик". Если у вас время цикла иное, чем 100 мсек, то вы можете пересчитать эту константу.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
11.12.2008, 11:19 | #5 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Счётчики моточасов
В инструкции пользователя написано, что планируемый тик надо выбирать больше, чем время обработки программы. Поэтому значение реального кванта времени всегда будет иное и всегда меньше, чем планиуемое.
Предлагаю таймер, который будет давать задержки с точностью +- 1/2 реального тика... |
12.12.2008, 17:55 | #6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Счётчики моточасов
А ещё там написано, что синхронизация выполняется по "планируемому тику". Т.е. если реальный 10, а установленный 100, то именно каждые 100 мсек будет выполняться новый цикл программы.
В указанном мною случае (а он является основным для наших контроллеров), ваш таймер будет работать с гигантскими ошибками. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
15.12.2008, 11:27 | #7 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Счётчики моточасов
Странно, у меня на SMH гигантские ошибки были наоборот при синхронизации по планируемому тику. Поэтому и пришлось сочинять свой таймер...
Тогда наводящий вопрос: нельзя ли встроить в SMLogix вычислитель длительности реального тика? Чтобы оценивать и оптимизировать программу еще до загрузки в контроллер, тем более если его пока нет в наличии. |
15.12.2008, 13:41 | #8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Счётчики моточасов
Судя по всему, "запланированный" тик у вас был много меньше, чем "реальный".
Ответ на вопрос: нет. Слишком много факторов на него влияют. По оптимизации я уже писал на форуме - меньше математики, тем более вещественной и пореже выводить на дисплей, особенно когда это не нужно. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
15.12.2008, 15:22 | #9 | |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Счётчики моточасов
Цитата:
Тогда еще два вопроса: 1. Какая будет реакция контроллера на превышение реального тика сверх запланированного (кроме потери кванта времени)? 2. Чем полезным занимается контроллер после завершения скана программы до начала следующего тика? |
|
15.12.2008, 15:44 | #10 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Счётчики моточасов
1) Тик "растянется". Следующий цикл начнётся сразу за выполнением текущего.
2) Ничем. В фоне обрабатывает входы/выходы, экран, модбас, еепром. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
23.12.2008, 11:25 | #11 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Счётчики моточасов
SMH в доступной близости нет, попробовал на Пикселе.
На Пикселе макрос таймера и счетчик тиков дают практически одинаковые задержки. Но при этом и макрос, и таймер "отстают" от часов процентов на 10. Может на АТмегу не тот кварц поставили? Еще когда поигрался с регистрами FE28 и FFFD, оценил системную страницу Пиксела. Жаль, в SMH ее нет. |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установленный тик | andre | SMLogix | 1 | 05.02.2020 16:07 |
Как задать тик конструкторской программе HVAC | Voronov_Maksim | SMConstructor (вентиляция) | 2 | 27.06.2013 15:25 |
задержка сигнала long на заданный интервал времени | Serega | Вопросы о программировании | 6 | 25.12.2012 16:47 |