предположим наваяли прогу с минимумом оптимизации, ну никак по другому.
прога плавает допустим от 15 до 18 мс. а основную её часть нужно выполнять каждые 20 мс, внешние условия требуют, бывает такое.
Может проще зафиксировать минимальный цикл на 20 и не париться? или есть более простое и надёжное решение?
Не знаю почему на форуме Овена столько рекомендаций как время цикла выставлять. У других эта тема не поднимается, ноль всех устраивает, если конечно задача не специфическая.
Предположительно это из-за частых плясок с бубном начали временем цикла играть.
Последний раз редактировалось BETEP; 26.02.2013 в 22:31.
Не надоели разговоры в духе: "лучше быть богатым и здоровым, чем бедным и больным..."???
Что не понятно описано:
http://www.owen.ru/uploads/rp_plk110.160.pdf Стр.68
To drvlas: ну Вас то я учить не в коем случае не стану. Для Вас мы сделали возможность цикла 0 поддержали Task Configuration. Чего возмущаемся - за державу обидно?
Не все, к сожалению обладают Вашей квалификацией, надо помнить об этом.
To ВЕТЕР: Так у нас все обсуждается. Свободно, практически без модерации. Да и количество обсуждений и обсуждающих гораздо больше, чем на любом другом форуме. В том числе много специалистов, которые только начинают знакомиться с устройствами такого типа. И мы их не "посылаем" к документации, кроме совсем уж случаев редких, когда все описано.
Холивар закрываем. Будет что по существу сказать или спросить, а не самоутверждаться - велкам. Остальное будет удаляться, как не по существу и засоряющее тему (3 страницы уже).
Вопрос важен. Ответ достаточно прост. Спасибо за ссылку, я бы ее сам не накопал, ибо при чем же тут мой ПЛК100, когда (неплохое) объяснение содержится в документе по ПЛК110-ПЛК160? Документ поизучаю, интересный. Еще раз мерси.
Лично я получил ответ. Он ужасен! Немедленно убираю МинВЦ в ноль. Ибо черными пикселями по белым написано:
ПЛК110_МинВЦ.jpg
То есть, ребята, речь идет не о пропуске шага метронома, а о невыполнении предписанной программы! Андрей, не модерируйте мое сообщение, пожалуйста! Это важный вывод:
Если для выполнения заданных программных функций нет специальной необходимости в установлении определенного МинВЦ, то следует установить его в ноль. Это гарантирует, что при любых реальных длительностях цикла процессора будут выполнены все операции (ввод, обработка, вывод, сетевые обмены, работа с файлами и т.д.)
Установка же ненулевого МинВЦ предполпгает обязательный контроль соотношения между МинВЦ и РеалВЦ (см. модуль Статистики).
Последний раз редактировалось Николаев Андрей; 27.02.2013 в 09:43.
Не за что, для ПЛК100 есть такой же документ.
Суть правильная, подача не та.
Время цикла НУЖНО анализировать, и изменять минимальное время цикла, ну или оптимизировать программу и сетевой обмен, чтобы работа была оптимальной.
Вы сможете построить оптимально работу при нулевом цикле. Кто-то нет.
И у тех и у других есть возможность работать как им нравится.
О чем спорить то?
ну чего за панические выводы. если Вы адекватный человек, то и время поставите соответствующее, к тому же в модуле статистики есть специально для этого переменная, сигнализирующая что время надо увеличить. Это я по картинке. А на вопрос зачем нужно минвц Вы из документа выяснили? По документации я только нашел что при нуле будет не стабилизированное равное 250мкс, а в остальных случаях стабилизированно. И кстати поставив ноль, а программа Ваша всяко будет выполнятся больше, то следуя Вашим выводам у Вас то и будут проблемы с инф.обменом
Андрей. Вы позволите продолжить? Товарищ не понимает
Уважаемый capzap, Вы много раз мне подсказывали полезные вещи и я внимательно прислушиваюсь. В данном случае не соглашусь в корне.
Из моего проекта выводов по теме ясно следует, что да, если контролировать соотношение между МинВЦ и РеалВЦ, то можно использовать этот параметр ненулевой. Но! Только в случае, если разработчику нужно для нормального функционирования программы, чтобы ПЛК выполнял все, приостанавливался и ждал удара метронома. Во всех остальных случаях - ответьте мне на вопрос: зачем? Зачем ставить МинВЦ, если потом нужно контролировать, не получилась ли кака? Если есть вероятность, что ПЛК начнет сбоить на голом месте. Зачем Вы лично хотели бы использовать МинВЦ <> 0 в программе, которая работает с временными интервалами через сислибтайм?
Не из приведенной цитаты. Но я выше предположил, что в простых программах, заведя МинВЦ много больше РеалВЦ, вполне можно отрабатывать поведение реального времени - отмерять паузы, проверять таймауты и прочее. Для меня стиль неприемлим, но - возможен.
Другого применения не вижу - и Андрей его не называет. Значит - нет его, другого применения. Так я себе взял на заметку.
Нет-нет, уважаемый! Там сказано, что отключается контроль времени цикла. И никто не заставляет ПЛК "недорабатывать" - он спокойно выполнит все, что ему записано - и тут же начнет новый цикл. Как по мне - очень правильное поведение. Мои контроллеры (не ОВЕН), работающие, конечно, по циклической программе, всегда так и ведут себя.
Да и про 250 мкс - откуда? Никакой цифры при МинВЦ=0 не оговаривается, насколько мне известно. СКОКА выйдет, СТОКА и будет. Или?
Так вот и прикол в том, что если бы время цикла по умолчанию было в контроллере "0" У пользователей не было бы многих проблем, и вопросов на этом форуме было бы меньше. Я тут и высказываюсь что фиксирование времени цикла пагубная привычка, но и не отрицаю что фиксация времени нужна, но если полез в эти цифры, нужно хорошо понимать как твоя прога работает на этом конкретном контроллере.
Андрей, Вы твёрдо уверены что нужно выставлять время цикла, Вы можите привести в качестве примера другие бренды? В которых по умолчанию цикл зафиксирован на каком либо значении.
Это вообще то аксиома, основное правило для тех кто с контроллерами работает.
А уже в программе добиваешься того, чтобы в нужные моменты цикл был минимальным, а когда скорость не важна, выполняешь времязатратные вычисления или раскидываешь их по разным циклам.
У оптимизированной проги время цикла никогда не будет постоянным, изменяться очень заметно может. Задание времени цикла только навредит.
Последний раз редактировалось BETEP; 27.02.2013 в 14:05.
Коллеги! Андрей, тему рано закрывать! Надо узнать все-таки истину: 1.зачем у Овна ПЛК нужен МинВЦ. 2.Какие последствия будут, если я на большом проекте поставлю МинВЦ в ноль? 3.Будут ли у меня проблемы с пропуском в опросе по интерфейсам при МинВЦ=0.Руководство на ПЛК противоречиво здравому смыслу это толкует.Тема, кстати, очень интересная и важная не только для начинающих. Я как-то раньше не задумывался, следовал рекомендациям руководства на ПЛК. А благодаря этому вопросу начал подумывать, что может drvlas и другие форумчане правы. Мне часто приходится на больших проектах размазывать всю программу по циклам, типа оптимизировать, но это гемор еще тот. Так может правильнее все-таки мин. время цикла поставить в ноль и отключить его контроль. И если я размазал по циклам всю программу и отключу контроль цикла, по идее тогда оптимизированная программа должна быстрее выполнятся(в смысле каждая ее часть в соответствующем цикле), не будет ожидания этого мин. времени цикла(ну если эта часть программы укладывается в МинВЦ. На больших проектах к Siemens-у возвращаться не хочу, полюбились мне очень Codesys и Овен ПЛК. А у Овна контроллеров по-мощнее пока нет, очень очень ждемс вот и приходится адски извращаться, программы под S-300 и S-400 оптимизировать под ПЛК Овен.
Последний раз редактировалось Olegis; 27.02.2013 в 13:40.
Полностью согласен с высказываниями выше. Вопрос и появился по той причине , что по умолчанию стоит время цикла не 0.Измерив время цикла, я увеличил мин. время. Это привело к отрицательному результату, общение с контроллером превратилось в сущий ад. Если что поменять в программе надо , так с этим временем ждать приходилось долго.Причем что с временем программа работала нормально, что без. А временные интервалы если хочется выдерживать почему бы просто не ориентироваться на конфигуратор задач.Выставил вызывать программу раз в 60мс и сиди кури..отмеряй временные интервалы без минимального времени цикла.Главное не вызывать ее чаще чем задача выполняется..Да и еще, в инструкции написано, что задавать минимальное время цикла надо с таким расчетом что бы оставалось ~20% свободного времени, а как понять хватит ли 20% для сетевого обмена?