Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 35

Тема: Подключение энкодеров 5В с частотой до 65 кГц к ПЛК110-60М02

  1. #11

    По умолчанию

    Цитата Сообщение от BETEP Посмотреть сообщение
    Не спорю, просто поделился опытом по поводу скорости этих оптронов.
    Но я бы Вашу схему не собирал, а например использовал подобное ULN2803, нужной полярности, просто чтобы не напрягаться с обвесом вокруг транзистора.
    ULN2803 на каждом углу продается ?

  2. #12

    По умолчанию

    Вообще то да, и на любой вкус, штука очень распространённая.
    http://www.chipdip.ru/catalog/ic-darlington/?gq=uln2
    http://www.electronshik.ru/find?q=UL...all&field=grid

    и вишенка на торт
    http://www.electronshik.ru/item/step...rduino-1266697
    Последний раз редактировалось BETEP; 22.12.2016 в 10:46.

  3. #13

    По умолчанию

    Цитата Сообщение от BETEP Посмотреть сообщение
    Это придельная частота для этих оптронов.

    эти вытянут
    6N138
    6N139
    HCPL4506
    HCPL-2530
    Проработали и этот вопрос, фотки нет, но форма сигнала не идеальная, сказывается время затухания сигнала на высоких частотах

    Цитата Сообщение от BETEP Посмотреть сообщение
    Вообще то да, и на любой вкус, штука очень распространённая.
    http://www.chipdip.ru/catalog/ic-darlington/?gq=uln2
    http://www.electronshik.ru/find?q=UL...all&field=grid

    и вишенка на торт
    http://www.electronshik.ru/item/step...rduino-1266697
    Эта микросхема хороша, но для данного случая потребуется снова городуха для инвертирования сигналов, т.к. на выходе общий +, а у меня общий минус и на входных и на выходных каналах.

    Цитата Сообщение от Вольд Посмотреть сообщение
    Все очень просто, см вложение. Импульсы на коллекторе транзистора будут идеально прямоугольными.
    Никаких оптронов для согласования уровней сигналов не надо. Дискретные входы ПЛК110 и без того имеют гальваническую развязку.
    Остановились на этом варианте и долго бились с повышением до 24В амплитуды выходного сигнала, т.к. в схемотехнике ПЛК на входных каналах уже стоят делители в паре с оптроном, которые в итоге общей цепи гасят амплитуду. Пришлось на переходную плату подать 27В, использовать КТ815 и сопротивления на делителях мощностью 1Вт, и они даже греются малость.
    ИТОГО: вот что имею на сегодняшний день.
    В первый раз данные давал по максимальной рабочей частоте - 30 кГц, ошибся, даже их нет блин, ну максимум до 10 кГц нет пропусков оказывается! Да и немного с частотниками поработав уменьшил немного свой аппетит, и теперь нужно 52 кГц максимум. Прикладываю фото с последними результатами по согласованию сигналов энкодера, есть амплитуда около 24 В, хотя ловит контроллер уже при 16 В, может и ниже. Получается и искаженный сигнал от ПДИ5-4 подходит что-ли контроллеру, просто в режиме Fast Encoders он вместо 100 кГц работает на 10% от заявленной частоты... Не порядок.
    IMAG6511.jpg IMAG6513.jpg
    IMAG6476.jpgЭто уже панель оператора с моей первой работой, для общего вида прикладываю
    Последний раз редактировалось ilys; 29.12.2016 в 14:07.

  4. #14

    По умолчанию

    Цитата Сообщение от ilys Посмотреть сообщение
    Остановились на этом варианте и долго бились с повышением до 24В амплитуды выходного сигнала, т.к. в схемотехнике ПЛК на входных каналах уже стоят делители в паре с оптроном, которые в итоге общей цепи гасят амплитуду. Пришлось на переходную плату подать 27В, использовать КТ815 и сопротивления на делителях мощностью 1Вт, и они даже греются малость.
    Зачем было нужно делать общий минус для дискретных входов ?
    Последний раз редактировалось Вольд; 28.12.2016 в 18:35.

  5. #15

    По умолчанию

    Цитата Сообщение от ilys Посмотреть сообщение
    звиняйте за такой вид программки моей, если нарушил какие-то принципы построения кода, самоучка я. Ну вот собственно кусочек кода. Переменная Shet1: DINT - глобальная.
    Вложение 28448

    Да даже визуально видно при работе программы во вкладке глобальных переменных, как себя ведет счетчик накопительный и данные какие поступают с энкодера. Все что поступило - программой просчиталось и про суммировалось. Тут явно пропуски контроллера
    Вообще говоря, должно хватать такого (и разнообразные программные сбросы по 50000 я бы выключал. Зачем они?):
    Код:
    prevEncoderValue : WORD; (* например, в глобальных *)
    encoderValue : WORD; (* это в plc configuration *)
    
    value : DINT; (* тут будет абсолютное положение энкодера *)
    
    value := value + WORD_TO_INT(encoderValue-prevEncoderValue);
    prevEncoderValue := encoderValue;
    Т.е. все эти "abs", ">40000" и т.п. это всё не нужно.
    Для вычисления абсолютного положения энкодера достаточно двух строк.

  6. #16

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    Зачем было нужно делать общий минус для дискретных входов ?
    Дело в том, что станок был разработан немцами более 20 лет назад, весь монтаж датчиков, релюшек и т.д. был продуман еще в то время, вся логика продумана на общем минусе, я тогда в школе еще учился, посему мне пришлось приспосабливаться к уже имеющемуся шкафу автоматики.

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Вообще говоря, должно хватать такого (и разнообразные программные сбросы по 50000 я бы выключал. Зачем они?):
    Код:
    prevEncoderValue : WORD; (* например, в глобальных *)
    encoderValue : WORD; (* это в plc configuration *)
    
    value : DINT; (* тут будет абсолютное положение энкодера *)
    
    value := value + WORD_TO_INT(encoderValue-prevEncoderValue);
    prevEncoderValue := encoderValue;
    Т.е. все эти "abs", ">40000" и т.п. это всё не нужно.
    Для вычисления абсолютного положения энкодера достаточно двух строк.
    Сбросы по 50000 делал - мог и максимум взять, 65000, просто 50000 для удобства, для себя, а нужно для того, чтобы не потерять данных с счетчика энкодера. В ходе работ выяснилось, что даже при медленных режимах движения шпинделя за время одного цикла управляющей программы счетчик энкодера меняется на 15 и более значений. Движение шпинделя может быть от приводов, и так же от ручной подачи, т.е. оператор станка крутит штурвалы рукой и теперь нет понятия в программе, куда будет вращаться энкодер, в отличии от программного управления серводвигателями, где я явно знаю направление движения, относительно к которому привязал бы логику - или плюсовать или минусовать. Получается, если мы находимся на границе программного обнуления счетчика при 65000 (если максимальное, у меня 50000) и в это время оператор крутанул штурвал, при следующем цикле счет будет (примерно) или 25 - если вперед, или 64980 - обратка. Разница предыдущего значения счетчика и действующего будет или ABS(65000-25) = 64975 или ABS(65000-64980) = 20. Если просто это значение прибавлять или отнимать от счетчика, то будет неправильно. Потому для себя заморочился, что если разница более 40000, то нужно с полученного значения отнимать максимальное значение счетчика. И у меня общий счетчик DINT, для того чтобы соблюдался нуль и держались при необходимости и минусовые значения. 7985 им/мм * 9000 мм(максимальный ход по оси) = +-71865000, в пределы DINT входим.
    Тяжеловато объяснил...
    В краце, для себя такой алгоритм разработал, он работает и не привязывается к командам управления серводвигателей, а просто следит за данными с энкодеров.

    value := value + WORD_TO_INT(encoderValue-prevEncoderValue); - не совсем ясно как работает выделенное.
    prevEncoderValue := encoderValue;

    Вижу что разницу прибавляем к общему счетчику, а если была ситуация, что обнуление энкодера при достижении 65000 произошло именно в тот момент, когда оператор в ручную ловит микроны, и в этот момент он раз 10 штурвалом крутил почуточку в разные стороны, и получаем значения то 64980, то 20, и и это все отнимается и складывается... и счет ушел

  7. #17

    По умолчанию

    Зачем было 27 В подавать на дискретные входы. Надо подавать ровно 24 В. Дискретные входы ПЛК110 будут нормально работать при напряжении от 12 до 30 В. Какое сопротивление стоит в коллекторе КТ815 ?

    Энкодер у вас исправен ?

  8. #18

    По умолчанию

    Размах сигнала на входах ПЛК должен быть 24В. Если энкодер 5 в - ставьте высокоскоростную развязку.
    Осциллограмма у Вас не с энкодера, а с генератора пилы Это точно энкодер? Китайский неликвид?
    Тролль-наседка, добрый, нежный и ласковый

  9. #19

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Размах сигнала на входах ПЛК должен быть 24В. Если энкодер 5 в - ставьте высокоскоростную развязку.
    Осциллограмма у Вас не с энкодера, а с генератора пилы Это точно энкодер? Китайский неликвид?
    Вы посты читаете через один ? Вопрос согласования уровней уже решен. Не надо путать человека ?

  10. #20

    По умолчанию

    Цитата Сообщение от ilys Посмотреть сообщение
    Получается, если мы находимся на границе программного обнуления счетчика при 65000
    Простите, но "бла-бла-бла-65000".

    Вот вам пример:

    Код:
    VAR
       prevEncoderValue, encoderValue : WORD;
      diff_word : WORD;
      diff_int : INT;
       value : DINT;
       newValue : DINT;
       newValue2 : DINT;
    END_VAR
    
    value := 10; (* прошлое значение -- 10 *)
    prevEncoderValue := 65530; (* было у границы *)
    encoderValue := prevEncoderValue + 9; (* крутанули на 9 *)
    newValue := value + encoderValue - prevEncoderValue; (* неправильно *)
    diff_word := encoderValue - prevEncoderValue;
    diff_int := WORD_TO_INT(diff_word);
    newValue2 := value + diff_int; (* правильно *)
    Вот в симуляции:
    Нажмите на изображение для увеличения. 

Название:	Снимок экрана 2016-12-29 в 10.54.07.png 
Просмотров:	320 
Размер:	47.8 Кб 
ID:	28461

    newValue2 правильно изменилось с 10 до 19 (увеличилось на 9)

    Попробуем в обратную сторону. Т.е. пусть старое значение 5, а крутанули на -9:
    Нажмите на изображение для увеличения. 

Название:	Снимок экрана 2016-12-29 в 10.55.41.png 
Просмотров:	225 
Размер:	48.1 Кб 
ID:	28462

    Тоже всё верно. newValue2 изменилось с 10 до 1 (уменьшилось на 9)
    Поэтому никакие "сбросы по 50000" не нужны. Они только вредят и запросто могут вызывать ошибку счёта.
    Честное слово, я даже не хочу вчитываться, если есть нормальный и простой вариант в одну строку.
    Последний раз редактировалось Владимир Ситников; 29.12.2016 в 11:02.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Как считать данные с 10 ABZ-энкодеров
    от bladerunner в разделе Подбор Оборудования
    Ответов: 11
    Последнее сообщение: 15.09.2016, 11:20
  2. ПЧВ Запуск с 18 клемы управление частотой по шине
    от Aleksey Belokon в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 22.06.2015, 16:18
  3. Подбор и подключение энкодеров и датчиковк ПЛК 160
    от albert3030 в разделе Подбор Оборудования
    Ответов: 1
    Последнее сообщение: 10.01.2015, 19:58
  4. Модули для подключения энкодеров с SSI
    от Леонид в разделе Разработки
    Ответов: 5
    Последнее сообщение: 18.01.2012, 11:29
  5. Ответов: 20
    Последнее сообщение: 20.10.2011, 22:49

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •