Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.12.2008, 16:08   #1
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Счётчики моточасов

А насколько точно будет работать такой счетчик, считающий _реальные_ тики?
Sergey Cherevko вне форума   Ответить с цитированием
Старый 09.12.2008, 16:54   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 017
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Счётчики моточасов

Не понял вопроса, если честно. Макросы моточасов не призваны считать реальные тики.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 10.12.2008, 11:50   #3
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Счётчики моточасов

В "простом макросе моточасов" и большинстве других макросов, считающих временные интервалы, квантом времени является реальный тик. А численные значения интервалов рассчитываются из заданного тика, который заведомо дольше.
Поэтому и возник вопрос: насколько точно показания счетчика моточасов будут соответствовать времени реальной работы девайса? Не лучше ли делать коррекцию = (планируемый тик)/(реальный тик), особенно если интервалы такие большие?
Sergey Cherevko вне форума   Ответить с цитированием
Старый 11.12.2008, 09:58   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 017
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Счётчики моточасов

В каждом из таких макросов есть константа, через которую выражен "заданный тик". Если у вас время цикла иное, чем 100 мсек, то вы можете пересчитать эту константу.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 11.12.2008, 11:19   #5
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Счётчики моточасов

В инструкции пользователя написано, что планируемый тик надо выбирать больше, чем время обработки программы. Поэтому значение реального кванта времени всегда будет иное и всегда меньше, чем планиуемое.
Предлагаю таймер, который будет давать задержки с точностью +- 1/2 реального тика...
Вложения
Тип файла: msl Таймер.msl (7.9 Кбайт, 263 просмотров)
Sergey Cherevko вне форума   Ответить с цитированием
Старый 12.12.2008, 17:55   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 017
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Счётчики моточасов

А ещё там написано, что синхронизация выполняется по "планируемому тику". Т.е. если реальный 10, а установленный 100, то именно каждые 100 мсек будет выполняться новый цикл программы.

В указанном мною случае (а он является основным для наших контроллеров), ваш таймер будет работать с гигантскими ошибками.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.12.2008, 11:27   #7
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Счётчики моточасов

Странно, у меня на SMH гигантские ошибки были наоборот при синхронизации по планируемому тику. Поэтому и пришлось сочинять свой таймер...
Тогда наводящий вопрос: нельзя ли встроить в SMLogix вычислитель длительности реального тика? Чтобы оценивать и оптимизировать программу еще до загрузки в контроллер, тем более если его пока нет в наличии.
Sergey Cherevko вне форума   Ответить с цитированием
Старый 15.12.2008, 13:41   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 017
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Счётчики моточасов

Судя по всему, "запланированный" тик у вас был много меньше, чем "реальный".

Ответ на вопрос: нет. Слишком много факторов на него влияют.

По оптимизации я уже писал на форуме - меньше математики, тем более вещественной и пореже выводить на дисплей, особенно когда это не нужно.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.12.2008, 15:22   #9
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Счётчики моточасов

Цитата:
Сообщение от Arsie
Судя по всему, "запланированный" тик у вас был много меньше, чем "реальный".
"Запланированный" был 100 мс, "реальный" - чуть больше 40мс. Так что перекрытия времени скана программы небыло.
Тогда еще два вопроса:
1. Какая будет реакция контроллера на превышение реального тика сверх запланированного (кроме потери кванта времени)?
2. Чем полезным занимается контроллер после завершения скана программы до начала следующего тика?
Sergey Cherevko вне форума   Ответить с цитированием
Старый 15.12.2008, 15:44   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 017
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Счётчики моточасов

1) Тик "растянется". Следующий цикл начнётся сразу за выполнением текущего.

2) Ничем. В фоне обрабатывает входы/выходы, экран, модбас, еепром.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 23.12.2008, 11:25   #11
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Счётчики моточасов

SMH в доступной близости нет, попробовал на Пикселе.
На Пикселе макрос таймера и счетчик тиков дают практически одинаковые задержки.
Но при этом и макрос, и таймер "отстают" от часов процентов на 10. Может на АТмегу не тот кварц поставили?
Еще когда поигрался с регистрами FE28 и FFFD, оценил системную страницу Пиксела. Жаль, в SMH ее нет.
Sergey Cherevko вне форума   Ответить с цитированием
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установленный тик 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


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


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