![]() |
![]() ![]() |
|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Новичок
Регистрация: Mar 2015
Адрес: Новочеркасск
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Доброго времени суток
![]() Как написано в "хэлпе", контроллер Segnetics автоматически увеличивает время выполнения цикла программы. Мне необходимо по условию заказчика выводить максимально время выполнения цикла (и это должно быть как можно точное число). Для чего нужно это?) Т.к. производство на предприятии заказчика связанно с опасными веществами, то нужно учитывать критическое время принятия решения, иначе пройденная точка не возврата приведёт к печальным последствиям. ![]() ![]() Это можно реализовать с помощью счётчиков CTU 16, но для этого необходимо выставить цикл выполнения программы на самый минимальный уровень, т.е. на 1 мс. Следовательно, наша программа будет работать с постоянно увеличиваемым циклом на каждом круге, что само по себе критично, т.к. забирает ещё и на себя время выполнения. ![]() P.S. конкретно я использую контроллер Segnetics SMH 2G. Спасибо за прочтение. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Попробуй так - см. рис..
Отладить дальше сможешь сам? |
![]() |
![]() |
![]() |
#3 |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Более подходящей темы для вопроса не нашёл, поэтому спрошу здесь.
Цикл работы системы (тик) обязательно нужно задавать каким-то "круглым" числом, например 100мс, 300мс, 500мс, или же можно вводить любое число в диапазоне от 1 до 1000мс? И насколько бОльшим (в процентном соотношении, может быть?) должен быть установленный цикл работы системы по отношению к реальному тику, для оптимальной работы всей программы в целом и точности счётчиков(отсчёт временных отрезков) в частности? Используется SMH2010, если это играет какую-то роль в данном вопросе. Но данный вопрос интересует так же и относительно других контроллеров Segnetics. Сейчас в проекте установленный цикл работы системы - 100мс, а реальный - колеблется от 101 до 110. СтОит увеличить установленный цикл работы, до, например, 120мс(115мс?), или можно оставить всё как есть? При этом пересчёт секунд в тики для входов счётчиков производится через константу 100мс(установленный цикл работы системы), а не через реальный тик с блока DEVICE(kernel). Последний раз редактировалось Norton, 25.03.2015 в 16:07 Причина: внесены уточнения к вопросу |
![]() |
![]() |
![]() |
#4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 011
Благодарил(а): 12 раз(а)
Поблагодарили:
585 раз(а) в 534 сообщениях
|
![]() Важно ещё понимать, что отладка увеличивает время цикла на 25-40 мсек. Жирным выделил то правило, выполнение которого не вызвало бы остальных вопросов. __________________ Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#5 |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Точность выдержки временнЫх интервалов как раз-таки важна, иначе вопросов не было бы.
"Оба варианта неправильны, поэтому всё равно, какой вы используете." Отладка программы происходит на контроллере с версией ядра 236, он не поддерживает блок "TimeToTick". Обновить ядро нечем. Потому приходится использовать макрос пересчёта секунд в тики, выложенный здесь же на форуме ещё до появления блока "TimeToTick". И у этого древнего макроса есть вход "тик системы", от которого, собственно, и зависит точность пересчёта секунд в тики. Что тогда заводить на этот вход, если не установленный цикл работы системы и не реальное время цикла? |
![]() |
![]() |
![]() |
#6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 011
Благодарил(а): 12 раз(а)
Поблагодарили:
585 раз(а) в 534 сообщениях
|
![]() Блок TimeToTick был создан специально для тех ленивых людей, которым было влом соединять связью макрос и блок и они лили крокодиловы слёзы на форуме о том, что "невозможно задать время". Содержимое блока TimeToTick и есть банальное объединение блока Device(kernel) и макроса TimeToTick. PS. Для использования реального цикла системы вам нужно создать счётчик, динамически отсчитывающий временные отрезки. Существующие счётчики считают циклы, чему бы они не были равны. Поэтому задавать им количество циклов исходя из времени выполнения одного единственного цикла на момент начала счёта - прямой путь к ошибкам расчётов. __________________ Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#7 |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Arsie, Спасибо.
Хоть Вы меня немного не так поняли, но ответы на свои вопросы я получил. |
![]() |
![]() |
![]() |
#8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 011
Благодарил(а): 12 раз(а)
Поблагодарили:
585 раз(а) в 534 сообщениях
|
![]() __________________ Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
FMR AIN время фильтрации | Max2114 | Вопросы о FMR и MRL | 23 | 03.03.2020 15:52 |
Оптимизируем программы на с++ | Gromov | Вопросы о программировании | 16 | 26.12.2018 13:21 |
Журнал. Автоматическая очистка при загрузки программы | Arsie | SMArt | 0 | 01.04.2015 12:22 |
Как оценить время выполнения программы в контроллере? | Arsie | ЧаВо - Часто задаваемые Вопросы | 0 | 04.10.2013 16:51 |
Слетает ядро при выключении питания во время загрузки программы | avas | Вопросы о SMH2010 | 9 | 14.12.2012 14:19 |