PDA

Просмотр полной версии : Fast encoders описание



Papagun78
02.11.2017, 09:49
Здравствуйте.
Вот собрался поработать с энкодером, нашёл в CoDeSys полезную (наверное) функцию переключения быстрых дискретных входов на fast encoders. Однако так и не нашёл описания принципа работы такой функции. Что считает? только количество импульсов или оба фронта каждого импульса? Почему из 4х быстрых входов получилось два энкодера? Это значит, что подключать нужно А и В? На какие клеммы? Или А и Z? Или B и Z? У меня будет инкрементный энкодер, как будет вести себя его значение при превышении максимального значения? Что значат параметры настройки "Range of encoder"? В общем вопросы простые, для опытного, но совершенно непонятные для того, кто собирается столкнуться с этим первый раз.
Собственно вопрос такой: есть ли где-то описание тех вещей, о которых я возмущался выше. Может есть пример программы с настроенным fast encoders? А может и видео есть с настройкой? Поделитесь, пожалуйста.

Сергей Лысов
02.11.2017, 13:07
О, как всё в кучу свалили красиво :)
Речь идёт о контроллере ПЛК110-60 из старой линейки?

Sulfur
02.11.2017, 14:28
Papagun78
Фаст энкодер считает импульсы согласно физического разрешения энкодера.
Вы можете подключить либо два АВ-энкодера без возможности сброса показаний, либо один ABZ-энкодер со сбросом по фронту фазы Z.
Если такое решение не устраивает, то можете поискать на форуме про среду Hardella IDE (только для ПЛК новой линейки М2) и написать собственный модуль высокоскоростной обработки чего угодно.
Пример нет смысла приводить, ибо после конфигурации фастов в какую-либо версию энкодера просто подключаете ко входам ПЛК энкодер и читаете показания из соответствующего регистра.

Papagun78
02.11.2017, 14:51
О, как всё в кучу свалили красиво :)
Речь идёт о контроллере ПЛК110-60 из старой линейки?

Нет, брать будем уже новый 110-60.

Сергей Лысов
02.11.2017, 15:11
Нет, брать будем уже новый 110-60.

Смотрели это видео? https://youtu.be/WfIRyDNOf3k

Papagun78
02.11.2017, 16:04
Смотрели это видео? https://youtu.be/WfIRyDNOf3k

Да, смотрел. Но там быстрые входы используются в режиме прямого управления, а я хочу их использовать именно как энкодер. Основной цикл программы будет достаточно загружен и использовать прерывания будет рискованно, не хочу с ними связываться.

Sulfur
03.11.2017, 07:33
Основной цикл программы будет достаточно загружен и использовать прерывания будет рискованно, не хочу с ними связываться.
В ПЛК100[M2] быстрые входа\выхода работают на отдельном сопроцессоре. Конфигурация стандартными средствами является ничем иным как заливка кода в этот сопроцессор, и работе основного цикла никак не мешает. Это же делает и Hardella IDE, только предоставляет возможность пользователю воплотить свои хотелки.

Papagun78
03.11.2017, 07:57
В ПЛК100[M2] быстрые входа\выхода работают на отдельном сопроцессоре. Конфигурация стандартными средствами является ничем иным как заливка кода в этот сопроцессор, и работе основного цикла никак не мешает. Это же делает и Hardella IDE, только предоставляет возможность пользователю воплотить свои хотелки.

А вот с этого места поподробнее, пожалуйста. На сколько я понимаю слово "прерывание" - оно что-то прерывает, в данном случае цикл основной программы. Или в данном случае прерывание по времени будет означать лишь период выполнения цикла в сопроцессоре?

Sulfur
03.11.2017, 08:26
Конструктивно ПЛК состоит из основного процессора, где крутится ПЛЦ_ПРГ, и сопроцессора быстрых входов\выходов, где крутится собственный код. Организована область обмена данными. Стандартные фаст_энкодеры в конфигурации ПЛК есть ничто иное как программа для сопроцессора быстрых входов. Сопроцессор готовит данные, а основной процессор в нужный ему момент просто читает содержимое этого регистра обмена. Используя стандартные методы Вы сильно ограничены в функционале. Вышеозначенная среда очень серьезно расширяет возможности использования быстрых входов\выходов.
Прерывания в данном случае вообще не используются.
У меня уже работают несколько проектов с самописными модулями энкодера.

Papagun78
03.11.2017, 09:31
Конструктивно ПЛК состоит из основного процессора, где крутится ПЛЦ_ПРГ, и сопроцессора быстрых входов\выходов, где крутится собственный код. Организована область обмена данными. Стандартные фаст_энкодеры в конфигурации ПЛК есть ничто иное как программа для сопроцессора быстрых входов. Сопроцессор готовит данные, а основной процессор в нужный ему момент просто читает содержимое этого регистра обмена. Используя стандартные методы Вы сильно ограничены в функционале. Вышеозначенная среда очень серьезно расширяет возможности использования быстрых входов\выходов.
Прерывания в данном случае вообще не используются.
У меня уже работают несколько проектов с самописными модулями энкодера.

То есть CoDeSys - отстой, все на Hardella, товарищи!?
Я больше предпочитаю пользоваться программами, рекомендуемыми производителем контроллера. Да и про Hardella я почитал, далеко не всё там описано, много времени придётся потратить на слепое тыкание с целью разобраться как это работает. Я всего лишь просил дать ссылку на описание работы быстрых входов в режиме fast encoder, в одном из стандартных режимов.

Если у Вас есть рабочие примеры, полезные для всех, то проще будет договориться с производителем контроллера и внести Ваши наработки в таргет файлы, либо выпускайте свои таргет файлы. В этом случае будет реальный шанс, что Вашими наработками будут с благодарностью пользоваться.

Sulfur
03.11.2017, 10:16
То есть CoDeSys - отстой, все на Hardella, товарищи!?
Вы неправильно поняли. Харделла - это инструмент для программирования исключительно для сопроцессоров в ПЛК110М2. Эта среда готовит программные модули для их встраивания в проект Кодесиса.
На счет моих наработок, все что я делал в Харделле находится в открытом доступе.

Papagun78
07.11.2017, 10:18
Вы неправильно поняли. Харделла - это инструмент для программирования исключительно для сопроцессоров в ПЛК110М2. Эта среда готовит программные модули для их встраивания в проект Кодесиса.
На счет моих наработок, все что я делал в Харделле находится в открытом доступе.

Тогда дайте ссылочку на Ваши наработки, если не сложно.

Sulfur
08.11.2017, 11:13
Ссылка (http://www.owen.ru/forum/showthread.php?t=23600&page=14&p=234390&viewfull=1#post234390) на дежурную версию.
Ссылка (https://hardella.com/) на Hardella IDE, там расписан пример с быстрым энкодером с расширенным функционалом.
В моих реальных проектах использую несколько упрощенную версию.