Тема: Пожелания
Показать сообщение отдельно
Старый 16.01.2009, 12:14   #29
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Пожелания

Цитата:
Сообщение от Arsie
Если вам нужна реакция 1 мс, то контроллер должен иметь время цикла не более 0.5 мс. Иначе любые ухищрения только усугубят ситуацию.
Повторюсь. Практически всегда ошибки проектирования исправляются программными способами. В том числе и более быстрой обработкой некоторых входов-выходов, чем период тика/скана. В контроллерах других производителей обычно это всегда локальные входы-выходы (не модулей расширения).
Принцип простой. В системных настройках указывается программный файл/блок/сегмент, который обрабатывается асинхронно от основного тика/скана каждые 10мкс/100мкс/1мс в зависимости от контроллера/производителя. При этом в среде разработки в дереве проекта/закладке "Устройства" в папке программ основная программа и обработчики лежат сами по себе раздельно и обозначены разными пиктограммами, чтобы пользователь не перепутал.
Цитата:
Сообщение от Arsie
Асинхронность асинхронностью, но смысл в каком-то внеочередном выполнении какого-то макроса, если циклу подчинены также и обновление входов и выходов? Ну, обработал макрос данные, куда он их денет?.
Обработчик вызывается:
1. по прерыванию системного таймера;
2. или системной же функцией, которая очень часто сама опрашивает вход и определяет изменение его состояния.
По завершении работы обработчика используемые им выходы сразу же обновляются. В контроллерах других производителей есть даже специальные команды/блоки/инструкции для асинхронного чтения водов и для записи выходов.
В случае SMLogix я представляю себе обработчик отдельной "поляной", на которой будут свои входы и свои выходы. Проблему вижу в другом - как обмениваться переменными между основной программой и обработчиком,хоть они и будут использовать общую память. Наверное, появится какой-нибудь новый "леденец" глобальной связи...
Цитата:
Сообщение от Arsie
Во всех мощных системах с ОС реального времени просто очень маленькое время цикла (менее 1 мс), поэтому возникает ощущение "прерывания" и "параллельной работы". Но это ощущение, не более.
Неправда. Достаточно много видел разных мощных промышленных контроллеров в разных приложениях. Наоборот, у всех них время цикла не менее 10мс, и это еще очень хорошее быстродействие.
Если "разогнать" пиксел до цикла в 10...20мс с несколькими модулями расширения и программой около 1000 блоков, то вопрос с обработчиком сам бы отпал.
Цитата:
Сообщение от Arsie
У нас есть продукт, который можно использовать в системах позиционирования - это FS-01, у неё время срабатывания измеряется долями миллисекунд.
Если была бы потребность в сервосистеме, туда Pixel бы и не поставил. А для задачи выключения двигателя по срабатыванию датчика и за разумное время ставить FS-01 это стрелять из пушки по воробьям.
Цитата:
Сообщение от Arsie
PS. Не поделитесь, какие-такие реле срабатывают быстрее, чем 1 мс?
Твердотельные
Электромеханические подольше: 5...20мс в зависимости от номинального тока. Но все равно на порядок быстрее контроллера, про который я написал...
Sergey Cherevko вне форума   Ответить с цитированием