там свои таргеты с припиской ....v2
Вид для печати
там свои таргеты с припиской ....v2
Добрый день,Андрей!
Не пробовали протестировать энкодерные входа? А то не совсем понятно,всё же с какой частотой РЕАЛЬНО могут считать.Момент важный.
Сфер применения много.
Хотелось бы узнать, при какой максимальной частоте ,он сможет гарантировать 100процентную точность счёта (не 95,не 99 %,а именно 100%).
Или на него не стоит рассчитывать?
Ну как бы в теме было об этом...
http://www.owen.ru/forum/showpost.ph...&postcount=139
Это читал, но подпрограмма от таймера не является прерыванием по событиям счётчика, не получится ли у нас как всегда, вы напишете кругом 50 кгц люди купятся на это, а что потом.
Да конечно какие то задачи и можно будет решить, но полноценного счетчика получить не удастся, хотелось чтобы компания ОВЕН уточнила бы
для чего годится этот программный модуль, желательно в примерах.
Спасибо.
PS да и не понятно как из подпрограммы от таймера с таймингом в 20мкс обращаться к входам/выходам минуя цикл контроллера.
Хорошо, спасибо что подсказали.
Что по сути могу сказать сейчас:
1. Мы заявляем программные модули счетчика и энкодера. Это программные модули, а не прерывания.
2. Если речь о вызове в 20 мкс - можно говорить о работе подпрограммы по прерыванию в 25КГц.
3. С основным циклом эта подпрограмма никак не связана.
Как быстрые входы\выходы отображаются в памяти входов\выходов уточню сегодня.
По сути вопроса:
Есть 2 варианта обработки:
1. В основном цикле ПЛК ~от 1 мс при фиксированном цикле - данные в области I/O будут обновляться каждый цикл.
2. Работа в прерывании - библиотека прямого доступа к I/O позволяет получать в прерывании текущие (без фильтрации и пр.) значения на быстрых входах и выставлять значения на быстрых выходах.
Про тумблер "Стоп" - Переключение тумблера на работающем ПЛК приводит к изменению статуса переменной "программный вход №1" с 1 на 0.
Больше ни к чему. Обрабатывать или нет эту переменную - дело потребителя.
ПЛК продолжит работать.
3. откуда такие данные? 1 мс фиксированный цикл на не пустой программе и с обработкой в прерывании.
4. Всё аналогично старому ПЛК110
6. Все аналогично старому ПЛК110
7. Сохраняются в МРАМ, ни от чего не питаются, ресурс - триллионы их...
8. С контроллерами ОВЕН сертифицировано использование только оборудования и расходников от Festool ;)
Все аналогично старому ПЛК110, просто быстрее :)
Можно более конкретно что интересует чтобы не расплываться мыслью по древу?
Хотят они обработку счетчика (Энкодер) вне цикла или быстрее цикла.
Блок энкодер должен работать "быстрее"цикла , на выходе значение DWORD,уменьшающееся или увеличивающееся от направления.
Блок обработки (короткий) превращает счетчик в мм или метры или дюймы .
Чего непонятно ?
Для чего еще энкодер можно использовать?
Из РЭ ПЛК110 по сути: "Время переключения транзисторного
выхода из состояния «лог. 0» в состояние «лог. 1» и обратно,мс,не
более 30 для обычных и для быстродействующих не более 1"
Вопрос: они действительно так долго переключаются?
Или имелись ввиду мкСек.
2.Из РЭ ПЛК110: "К ПЛК110-\Х.60.Х-Х возможно подключить два энкодера,при этом первый энкодер подключаются
к входам DI1-DI2,а второй энкодер к входам DI3-DI4,
соответственно.
Либо есть возможность подключить один энкодер
с указателем нулевой метки (ABZ энкодер),
при этом энкодер подключается к входам DI1-DI2,
а указатель нулевой метки подключается к входу DI3.
К ПЛК110-Х.32.Х-Х и к ПЛК110-Х.30.Х-Х можно подключить один энкодер.Для подключенияэнкодера используются входы DI1-DI2."
Вопрос: для нового ПЛК110-32(30) так и осталось всего два быстрых входа,т.е.нормальный энкодер с Z-меткой не подключить?
3. Из РЭ ПЛК 110:"Твых– задержка на срабатывание выхода.Значения для релейных выходов– 50мс;для обычных транзисторных выходов – 30мс;для быстродействующих транзисторных выходов–0,02мс (в таблице 2.1 данный параметр называется«Время переключенияиз состояния«0»
в состояние «1» и обратно»). "
И всё же мс или мкСек?
Вроде когда-то попадалось описание библиотеки, но сейчас не нашёл на сайте.Тоже хотелось бы узнать точнее,как из программы на IL (с повторяемостью 20мкСек) организовать рефлексную реакцию скажем быстрого выхода номер1 на изменение значения быстрого входа1.Хорошо бы в виде куска кода,чтобы понять как именно быстро опросить вход и переключить выход в пределах задержки 20мкСек.
Здравствуйте, решение этой задачи показано в примере
http://78.107.137.186/index.html/Pri..._Timer.Lib.zip
правда написан он на ST.
Все пожелания упираются в аппаратные возможности процессоров, выпускаемых промышленностью.
Дискретными входами/выходами можно управлять из прерывания. а энкодер считать уже нельзя без задержек.
Вернее можно, но ПЛК будет работать только на прерывание. Забудьте о Ethernet-е, последовательных портах и цикле 1 мс.
Желание на приборе за 10к повторить решения конкурентов за 50к вполне понимаю, но....
Ну это не совсем так.Хотите назову брэндовый контроллер за 12т.р. с двумя полноценными энкодерами до 100кГц и CDS3.Ну это так к слову,что мы тоже не в вакуме.Энкодеры 100...200кГц поддерживают большинство производителей контроллеров.
Может быть и Вам задумать об аппаратном энкодере на борту ПЛК110?
Хотя точно сказать,каким макаром достигается скорострельность не могу,не знаю.
По поводу управления движением имею сказать :
1. Управление движением предполагает использование энного внешнего оборудования - ПЧ (хорошие) , сервоприводы , шаговые двигатели (с блоками управления) . Имеются ПЧ с опционными платами для подключения энкодера и встроенным ПЛК . В котором можно написать программу на LD(туды его в качель) и сделать обмен с ПЛК (верхним). Необходимость в энкодере на самом доле во многих случаях кажущаяся , иногда можно и без энкодера обойтись(точно знаю). А применение сервоприводов предполагает использование "своего" ПЛК для "общения".
2. Что именно "управление движением" - трех осевая интерполяция , двух осевая , загрузка CAD файлов ? Все это требует специализированных инструкций , и специализированной аппаратной части . Задача по разработке для Сколково , только они бабло пилят(и все...).
3. Может управление движением это считывание с энкодера длинны листа (сталь , картон , проволока) , стоп и включение отрезания ? Так это мелочевка делается на много чем.
4. У конкурентов есть ПЛК намного дешевле и чуть подороже , но... программирование на LD (опять туды его и сюды). Ничего и никто не мешает использовать такие ПЛК в качестве "прокладки".
Конкуренты (западные ) держат центры исследовательские для разработки , по объему нашего Сколково , только бабло они не "пилят"(им за это бо-бо сделают), а работают и этим ,с..ки , подрывают нашу экономику:rolleyes:.Щас скоро приедет , прилетит ПЛК 110 для теста - будем посмотреть...
Да,согласен.Тут лучше комплектных сервоприводов ничего не придумаешь.ПЛК110 обладает небольшим временем цикла и TCP для верхней связи - это хорошо.Но не совсем быстрым интерфейсом Modbus для раздачи заданий,хотя для последовательных перемещений его вполне хватает.Вижу два пути для дальнейшего развития ПК110 :
1.Добавить мегабитный CAN штатно или как опцию в качестве дополнительного интерфейса(похоже реально,т.к. на СПК207 есть).
2.Раздавать задачи осям по Ethernet (но Modbus TCP похоже тоже не быстрый,когда-то измерял,показалось скорость обмена соизмерима с Modbus RTU).
В своё время,именно для подобных задач, энкодер ПЛК100 оказался очень медленным(1,5кГц).Возможно с ПЛК110 в этом плане будет нормально (заявлено 50кГц),а на новом тем более.Хотя получается,что на новом будет тоже 50кГц.
Попробую прикинуть какой частоты энкодера было бы достаточно,чтобы поставить на ось мотора для простых перемещений.
Берём почти минимальный энкодер с 1000имп на оборот, т.е.4000фронтов, двигатель макс 3000об/мин (50об/сек).
Итого : 4000 х 50 = 200кГц. Если ограничиться мотором в 1500об/мин,
то вроде как достаточно 100кГц.Ну или снижать разрешение энкодера,или ставить его на редуктор.
Хоть может это направление и не совсем профильное,но почему бы не попытаться добавить на новый ПЛК110 библиотечно-конфигурационный энкодер на 200...300кГц.Пусть даже он снизит время цикла (он ведь отключаемый),кому не надо,тот не будет его включать.
С библиотечными функциями:
1.Запись нужного текущего значения.
2.Запись уставки.
3.Назначение входов A,B,Z.
4.Выбор типа энкодера.
5.Назначение выхода для реакции.
6.Назначение реакции: <,>,=...
Здравствуйте.
В одном из сообщений от Филоненко Владислава,кстати позже удалённом, промелькнуло, что существуют некие сопроцессоры которые и отвечают за счет и могут обеспечить счёт квадратурного энкодера 125кгц.
Это значит что существуют аппаратные средства, пусть даже интегрированные в ЧИП, для решения волнующей нас задачи.
Как мне кажется все дело в КДС, так как нужны специализированные библиотеки дающие доступ к этим аппаратным средствам.
А насчет прерываний которые якобы не дадут нормально работать ПЛК так
ИМХО это миф, они как раз и призваны чтобы распаралелить задачи.
Работа процессора вся построена именно на прерываниях, иначе это был бы
ПЛК, процессоры прерываний не боятся.
Вообще в КДС есть раздел "Софт моушен"(извините неохота переключать)
Когда производитель сообщает , что есть 4 быстрых входа "СУММАРНОЙ" частотой 50кГц , то это означает при использовании 4х частота 50/4 . Это по "типа бюджетным ПЛК" , для серьезных задач делают специальные ПЛК , "типа Серьезные":).
"Раздавать задачи по модбасу" - нормально , кстати последовательный порт работает быстрее,чем Ethernet , просто в ethernet "влазит" больше.
Реально по 485му на 38400 4 модуля опрос с периодом 50мс получение 1го Real + модуль дискретный (любой)маски входов-выходов с периодом 300мс.
Делал недавно станок с управлением движением гидравликой , так вот "станочная" гидравлика инерцию дает порядка 500мс(это я занизил) , для чего "время цикла " 1 мс непонятно , вполне 5-6мс хватает.
Короче , я думаю (считаю) в стране не хватает глобальных (правильных) знаний в этом направлении .
Надо учится у германцев .
З.Ы не в тему перед праздниками выложил в Нете вакансию "бухгалтер" - более 40 откликов за 10 дней , а нормального КИПовца 1.5 года найти не могу.(Это жесть)
Давайте еще раз. Основной задачей было "не навредить". Новый ПЛК110 полностью повторяет прототип. С семами подключения и программными модулями.
При этом в нем действительно заложены мощные ресурсы. И мы готовы сделать следующий шаг. Работой с быстрыми входами и выходами занимается сопроцессор (встроенный). С достаточно высокой частотой тактирования. И его работа прямо не влияет на работу основного процессора.
С софтом сложнее - CODESYS накладывает своими ограничения... областями памяти входов\выходов, большими ограничениями по работе с внешними прерываниями и т.д.
Устроив небольшой мозговой штурм на тему: как уменьшить возможное время реакции контроллера на результаты подсчетов значений с входов в режиме счетчика и энкодера (чтобы не зависеть от времени цикла основной программы) появилась идея - перенести не просто контроль быстрых входов и управление выходами на сопроцессор, но и вынести принятие решения в него же.
То есть сопроцессор считает импульсы, и он же принимает решение о реакции с помощью быстрых выходов. А как и в каком случае он это делает - сообщать ему из библиотеки под CODESYS. То есть с помощью специальной библиотеки(например) пользователь задает: 1 и 2 входы работают в режиме АВ энкодера и при достижении значения "х" включают выход 1 на время "у". Здесь важный момент, что не из конфигурации, а именно из библиотеки. Так как работа с входами и выходами не использует область памяти входов\выходов, а работает напрямую с сопроцессором.
Ну да. А для работы именно в сложных системах с точным позиционированием по нескольким осям CODESYS предлагает использовать специальный инструмент - SOftMotion.
Супер инструмент. Но контроллер с лицензией и нужными для его работы ресурсами будет стоить очень приличных денег. Так что в России, ИМХО не скоро станет популярным.
т.е. 0,09 градуса на оборот? Асинхронник не способен остановиться с такой точностью, конструкция однако такая. а в момент остановки вал наверняка постоянкой зафиксировать понадобиться, а тут ждёт сюрприз от 5 до 20 градусов, в зависимости от движка, настроек и бренда ивертора.
Нафига вам сотня килогерц, если не знаете как её использовать?
Для такой точности движки уже другого типа.
Управление движением, как минимум, возможность контроллера выдать пачку импульсов с нужной рампой, в абсолютных координатах. интерполяция уже дороже стоит. и энкодер на входе контроллера к этому никакого отношения не имеет.
Летящий нож это просто кулачёк с синхронизацией, половина серваков это без контроллера умеют.
И не бывает не модульных контроллеров, которые хорошо умеют всё. У модульных часть модулей это тоже контроллер заточенный под какую-то задачу, ну например прочитать G-Code и выполнить его по командам от главных мозгов.
3S тоже кушать хочет,
Отдельные сопроцессоры для быстрой обработки есть.
Но межпроцессорный обмен не рассчитан на работу каждую мкс, там есть существенные задержки и ограничения.
А вот внутри сопроцессора некую простую обработку можно и добавить. Но для формулирования задачи нам бы хорошо представить предметную область.
Более конкретно - предлагайте варианты для управления некими высокоскоростными устройствами при следующих ограничениях:
Сопроцессоры имеют:
1-й 4 входа и 2 выхода
2-й 2 выхода
Задержка на межпроцессорный обмен с хостом не менее 10-20мкс, с соседним сопроцессором в 2 раза выше.
Логика может быть любой дискретной (целочисленной) в разумных (по объёму кода) пределах.
Вы можете организовать прерывание основной программы не по таймеру, а по событию на этом сопроцессоре? т.е. прерывание если сработал быстрый вход или счётчик достиг заданного значения?
т.е. смысл, определить событие вне цикла основной программы, в этой подпрограмме выполнить то что пожелает пользователь, но тут нужна возможность немедленного доступа к выходам контроллера и обнуление счётчика, обнуление для задач счёта чего либо без остановки изделия которое считаем, для задач с остановкой достаточно быстрого выхода. Задержка даже в 100 мкс тут большой роли не играет, желательно чтобы она более-менее стабильной была.
На быстрых выходах нужна возможность рисовать рампу из импульсов, со своим счётчиком, в двух режимах, непрерывный когда задают просто кол-во импульсов, и абсолютный когда задают координату. Это для простого управления шаговыми движками, на этом форуме часто пытались это сделать.
---------------
ну а если в двух словах, не изобретайте велосипед, попробуйте реализовать часть возможностей классических малышей, и не гонитесь за частотами, 20-50 уверенного счёта по четырём фазам, вполне нормально. более высокие частоты немного дороже.
кстати не обязательно пытаться заложить в контроллер как можно больше скоростных фичь. Если есть возможность замены прошивки, почему бы не сделать несколько специализированных?
Задержка на межпроцессорный обмен с хостом не менее 10-20мкс
С чем-то согласен,с чем-то нет.У каждого свои проекты.Зачем мы покупаем сервоприводы с энкодером на 131072имп/оборот?Ну наверно нам это надо.А шаговые движки не пользуем,т.к. у них свои особенности.Вы всё правильно написали про асинхронники.
Но речь шла всего лишь том,что всё чаще приходится находить альтернативу Овену только потому,что в их ПЛК не хватает какой-то мелочи : то энкодер-тормоз, то нет CANа,то Ретэйны с сюрпризами,то часы капризные,батарейка,BUTTON, зависание при TCP сканировании...(речь в основном про ранний ПЛК100,не про ПЛК110) Решение большинства задач по плечу их творческому коллективу. И видно ,что они поэтапно разруливают многие вопросы.
Да ощущение,что и к пользователям больше стали прислушиваться.
Посмотрим на результаты.
Но рынок ПЛК настолько динамичен (особенно в Германии) что на нём просто нельзя удержаться,если не придумывать всё новые полезные фишечки для своих устройств.Не буду проводить сравнительный анализ.Со своей стороны ничего не навязываю.Всё норм.