Что будет если время цикла 150мс, программа вызывается раз в 200мс, в настройках Codesys минимальное время цикла 0 идет обмен по modbus rs-485 и modbus TCP.
Что будет если время цикла 150мс, программа вызывается раз в 200мс, в настройках Codesys минимальное время цикла 0 идет обмен по modbus rs-485 и modbus TCP.
не понял что Вы хотели спросить...
Хотел узнать зачем нужен параметр минимальное время цикла, если есть возможность вызывать программу например раз в 1с, причем программа непрерывно выполняется в течении 150мс. И как при этом будет осуществлен сетевой опрос плк?ПЛК будет прерываться для сетевого обмена, или сетевой обмен будет идти каждую сек или после 150мс?Да и вообще с этим минимальным временем цикла какая-то беда, при его увеличении время пинга увеличивается, а при установке в 0 вполне приемлемо, причем независимо от того сколько времени выполняется программа.Можно по подробнее где нибудь узнать об этом магическом параметре, в инструкции о нем пару строчек?
Последний раз редактировалось sink3d; 22.02.2013 в 20:31.
Вообще это все описано в руководстве пользователя...
Кратко:
Минимальное время цикла - выставляется пользователем и настраивается им же.
0 - без установки, по факту...
дальше в зависимости от задачи можно увеличивать (большой проект или большая очередь обмена по сети).
Цикл:
Опрос области входов
Выполнение программы пользователя
запись результатов в область выходов
Проведение сетевого обмена в оставшееся время.
Проведение функций самодиагностики и сервиса в оставшееся время.
И потом сначала.
Приоритетность всегда у выполнения программы. А приоритетность обмена и сервиса настраивается разработчиком.
Ну это в кратце. Не считая прерываний, и случаев с псевдомногозадачностью
Вполне рабочее время 1 - 5 мс.
На большом проекте видел до 30 мс. Если программа не выполняется за это время - надо еще раз внимательно смотреть на программу.
Если у Вас процессы вялотекущие можно и больше ставить в принципе.
Фиксировать время цикла стоит только в том случае, если ваша прога этого требует, задачи разные бывают.
ну не стоит этого делать, т.к.
Не совсем верно, тут и богу неизвестно какой кусочек эта операция в кодесисе откусывает и как это стыкуется с фиксированным циклом.
Последний раз редактировалось BETEP; 23.02.2013 в 18:02.
Можно ли считать,что правильнее выставлять автоматическое время цикла,т.е. 0 для нормальной работы контроллера? Не совсем понятно для чего нужно выставление определённого времени цикла.Оно всё равно не будет точно калиброванным и не поможет ни ускорить,ни прооптимизировать программу.
Ну почему же только богу. Еще нашему программисту
Не время цикла оптимизирует программу. А в зависимости от программы выставляется время цикла. Хотя программу бы лучше предварительно оптимизировать.
Я рекомендую выставлять время цикла. Но естественно опыт каждому подскажет как лучше.
Если выставить время цикла 50мс, то пинг и время загрузки программы увеличивается. А если поставить время цикла 0 и просто вызывать программу , которая выполняется в течении 150мс раз в 200мс все работает быстро, ping 4мс.Зачем тогда нужен этот параметр(минимальное время цикла)?Да и что сделает контроллер если программа выполняется долго(больше установленного минимального времени цикла но меньше максимального) будет ждать выполнения программы , а потом проведет сетевой обмен?
Почему ограничение минимального времени цикла 50мс?И почему работать с программой приятнее если минимальное время цикла стоит 1мс, программа выполняется в течении 20мс, программа вызывается раз в 24мс(через задачи), чем время минимального цикла 24мс, программа выполняется за 20мс(но в последнем варианте тупит сетевой обмен).
Последний раз редактировалось sink3d; 23.02.2013 в 21:14.
"И опыт, сын ошибок трудных..."
Хорошо бы не изобретать велосипед, если уж хоть вашему программисту что-то известно.
Меня тоже заинтересовала тема, т.к. мой ПЛК100, несколько неожиданно для меня, вышел на реальное время цикла 13-14 мс - и приходится подумать, что там и как.
И хотелось бы понять, как можно грамотно использовать конфигурацию ПЛК, в т.ч. вот этот самый параметр, минимальное время цикла. Пока не очень понятно. Позвольте я предположу, для начала:
1) Минимальное время цикла можно использовать в случае, если по количеству циклов мы отмеряем временнЫе параметры работы пользовательской программы. То есть, поставили, скажем, 20 мс и рассчитываем, что "через 5 циклов" = "примерно через 100 мс". Или "на следующем цикле работы" = "через 20 мс".
Я так не делаю, но, ИМХО, так можно. Или нельзя? Вот вопрос № 1.
2) А если этот метод задания времени не использовать, то для чего и как еще нужно минимальное время цикла? Каковы Ваши рекомендации, Андрей?
3) Будет ли объяснение от вашего программиста фактам, изложенным в сообщении коллеги sink3d? Вопрос был 23-го, там, ясен перец, не до наших глупостёв, Россия празднует коммунистические мифы. Но тут уж близится днюха "клары люксембург"...
drvlas как всегда с юмором. Где-то с иронией.
Ответы на вопросы sink3d были в посте выше.
Цикл 0 мс. Контроллер забивает на все, и делает просто: выполняет программу, например 500 мс, ведет сетевой обмен, делает диагностику. И он плевать хотел, нужно ли Вам через 100 мс проверить триггер или таймер или данные с дискретного входа. А там концевичек станка по резке металла сработал о вылете плиты в это время...
Если программа выполняется дольше - времени на сетевой обмен и на сервис у ПЛК не останется, и ПЛК все бросит и начнет все сначала.
Если Вы увеличили цикл ПЛК до 100 мс - время сетевого обмена ЕСТЕСТВЕННО увеличится. По тому как в принципе браться за сетевой обмен контроллер будет не чаще, чем раз в 100 мс. А если проект у Вас большой, то записывая по кусочку раз в 100 мс можно записывать долго.
Все определяется знаниями о принципах работы устройств такого типа, и здравым смыслом. Рецепта на все случаи я при желании дать не смогу.
Если очень хочется активно изучить вопрос и подискутировать - рекомендую начать с книги Петрова Игоря. Он все очень хорошо описывает.
Принцип работы ПЛК В КОРНЕ отличается от принципов работы ПК. Это надо понять и начать этим пользоваться.
Ну и готовимся к празднованию дня заслуг Розы Цеткель.