Получаем аналоговый ШИМ-сигнал с платы расширения Konnect

Система управления станками с ЧПУ на основе контроллера KFLOP
Аватара пользователя

Сcылка:

BBCode:

HTML:
Predator
Мастер
Сообщения: 2801
Зарегистрирован: 30 авг 2014, 20:14
Репутация: 1560
Настоящее имя: Александр
Страна: Россия
Контактная информация:
Статья форума:
Получаем аналоговый ШИМ-сигнал с платы расширения Konnect

Получаем аналоговый ШИМ-сигнал с платы расширения Konnect

#1 

Сообщение Predator » 20 мар 2015, 17:06

Получаем аналоговый ШИМ-сигнал с платы расширения Konnect


Предисловие

В некоторых случаях необходимо получить аналоговый ШИМ-сигнал с платы расширения Konnect, для регулируемого управления скоростью оборотов шпинделя на станке с ЧПУ. В приведённой ниже статье рассмотрим, как это можно сделать и что для этого потребуется.

Итак приступим...

Введение

Контроллер KFLOP + плата расширения Konnect + схема простого низкочастотного фильтра, могут быть использованы для получения программируемого аналогового ШИМ-сигнала, этот сигнал может использоваться в качестве основного сигнала управления регулировкой скорости шпинделя, если больше никакие другие способы управления — не доступны. Всё это демонстрирует гибкость выходов платы расширения Konnect, которые оптоизолированы.

Результаты

На аналоговом осциллографе отображены трассировки сигналов сгенерированных программным обеспечением контроллера KFLOP, ШИМ-сигнал управляет двумя оптоизолированными выходами платы расширения Konnect, которые затем передаются через простой низкочастотный фильтр.

Синусоидальный сигнал с высоким разрешением и частотой отклика, легко использовать для управления скоростью из приложений.

Прямоугольный сигнал нужен для тестирования бóльших изменений сигнала. Существенное изменение при < 25 мс.
«Синусоидальный сигнал»
«Синусоидальный сигнал»
7537 просмотров
SineWave.png 16.96 КБ


Допустимая линейность. Потребуется калибровка, если необходима более высокая точность.
«Прямоугольный сигнал»
«Прямоугольный сигнал»
7537 просмотров
SquareWave.png 17.03 КБ


«Диаграмма линейности»
«Диаграмма линейности»
7537 просмотров
LinearityChart.png 20.08 КБ

Схема

Представляет собой простой двухкаскадный низкочастотный фильтр, который состоит всего из 5-ти компонентов, трех однотипных резисторов и двух однотипных конденсаторов. Значения компонентов не критичны, но резисторы R1 и R2 должны быть одного сопротивления. Один выход с платы расширения Konnect заряжает конденсаторы и один выход разряжает их. Оба выхода не должны включаться одновременно, но даже, если это случится, то никаких повреждений схемы не произойдёт, поскольку резисторы R1 и R2 ограничивают ток.

Используемые резисторы имеют относительно низкоомные значения (100 Ом) и обеспечивают низкое выходное сопротивление, так что любая подключённая нагрузка должна иметь минимальный эффект. При нагрузке в 10 кОм или выше схема должна хорошо работать.

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

Сигналы на выходе платы расширения Konnect могут обновляться каждые 180мкс. Так 180мкс можно считать основным шагом ШИМ. Такой результат был получен при ~10мВ p-p пульсации.

«Схема низкочастотного фильтра»
«Схема низкочастотного фильтра»
7537 просмотров
LowPassCircuit.png 3.37 КБ
WiredCircuit.png
7537 просмотров
WiredCircuit.png 387.79 КБ
CircuitTop.png
7537 просмотров
CircuitTop.png 158.32 КБ


Программное обеспечение

Программа ниже моделирует пример того, как RC-цепочка будет реагировать при подаче низкого или высокого напряжения.

Если моделируемое напряжение ниже требуемого выходного напряжения, то выход переключается на высокое напряжение для зарядки конденсатора, в противном случае он переключается на низкое напряжение для разрядки конденсатора.

То же состояние, которое моделируется, также направлено на выходы платы расширения Konnect, для управления реальной схемой. Реальная схема немного сложнее, но модель простая и работает достаточно хорошо. Две RC-цепочки в конечном счете разовьют такое же напряжение, как среднее напряжение ШИМ в устойчивом состоянии, только время отклика будет немного отличаться. Точно так же, несколько отличающиеся значения компонентов будут влиять только на время отклика. Значения в программе были скорректированы для получения наилучшего результата.

Директиве #define могут потребоваться изменения для конкретной схемы и использование битов Ввода/Вывода.

Значение Vout запрограммировано, чтобы создать синусоиду, но более типичней будет передавать значение через глобальную переменную, как Spindle Speed Setting.

Код: Выделить всё

#include "KMotionDef.h" 

// Enables a Konnect on KFLOP JP4 Aux Port then
// PWM's two outputs as push-pull drivers such that
// when low passed filtered with an RC circuit becomes
// a variable analog source.
//
// Configure KFLOP to service Konnect 32 Input 16 output IO board
// Board address is 0,
// 16 Outputs are mapped to Virtual IO 48-63 (VirtualBits)
// 32 Inputs are mapped to Virtual IO 1024-1055 (VirtualBits[0])
//
// Attach Service to Aux0 Port (KFLOP JP4) instead of standard Aux1 Port (KFLOP JP6)
//

void ServiceKonnectPWM(void);

double T,T0 = 0;

float Vout = 0.0; // desired voltage

main() {
    InitAux();
    AddKonnect_Aux0(0,&VirtualBits,VirtualBitsEx);
	for(;;) {
		T=WaitNextTimeSlice();
		ServiceKonnectPWM();
		
		// Fixed
		// Vout = 0.1;
		//Generate a 5 Hz 3V Sine Wave

        Vout = 3.0f*sin(T * TWO_PI * 5.0) + 5.0;
		
		// Generate a Saw Tooth wave
		// Vout = 2 + 6.0* (5.0*T - ((int)(5.0*T)));
		//Generate a 5 Hz Square wave
        //Vout = (5.0*T - ((int)(5.0*T))) > 0.5 ? 8 : 2;
    }
} 

#define C 0.00029f // 1000uF
#define R 100.0f // 100 ohms
#define Vcc 11.230f // supply voltage
#define HIGH_BIT 62 // This output drives Cap high
#define LOW_BIT  63 // This output drives Cap low 

void ServiceKonnectPWM(void) {

    static int FirstTime = TRUE;
    static float Vc = 0.0f;
    static double T0;
    static int State;
    double T = Time_sec(); 

    if (FirstTime) {
        FirstTime = FALSE;
        T0 = T;
        State = 0;
    }
	else {
		float V,I;
		
		// Compute Voltage applied to Cap
		V = Vcc*State;
		
		// Compute current
		I = (V-Vc)/R;
		
		// Compute new Cap Voltage
		Vc += I/C*(T-T0);
		
		// determine next state
		
		if (Vc > Vout) {
			ClearBit(HIGH_BIT);
			SetBit(LOW_BIT);
			State=0;
        }
		else {
			ClearBit(LOW_BIT);
			SetBit(HIGH_BIT);
			State = 1;
        }
		
		T0 = T; // save time when applied
    }
}

Автор перевода на русский язык: Александр Кадников
Коллеги представляю Вашему вниманию мой вольный перевод статьи KONNECT - PWM to Analog Example с офсайта KFLOP, если у Вас имеются какие-то пожелания по-улучшению перевода, прошу писать в личку.

При перепечатке переведённой статьи убедительная просьба указывать авторство и ссылку на источник!
С Уважением, Александр Кадников [Predator].

Тэги:

Аватара пользователя
BenAflek
Мастер
Сообщения: 853
Зарегистрирован: 29 окт 2014, 10:16
Репутация: 337
Настоящее имя: Владислав
Страна: Россия

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#2 

Сообщение BenAflek » 20 мар 2015, 18:27

Александр, статья на пять с плюсом! :excellent:
И информация эта нужная :confirm:
Здесь должно что-то быть?...

Аватара пользователя
Predator
Мастер
Сообщения: 2801
Зарегистрирован: 30 авг 2014, 20:14
Репутация: 1560
Настоящее имя: Александр
Страна: Россия
Контактная информация:

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#3 

Сообщение Predator » 20 мар 2015, 19:46

Ну, кто KFlop'пом богат, тому конечно может пригодиться :smoko:
Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри! © Уильям Дюрант

Аватара пользователя
ukr-sasha
Вникающий
Сообщения: 191
Зарегистрирован: 10 окт 2014, 12:08
Репутация: 391
Настоящее имя: Александр
Город: Киев
Страна: Украина

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#4 

Сообщение ukr-sasha » 20 мар 2015, 20:25

Классно получилось!
Заходите в гости: YouTube-ukr-sasha

Аватара пользователя
Electric
Ученик
Сообщения: 742
Зарегистрирован: 02 сен 2014, 03:30
Репутация: 381
Настоящее имя: Андрей
Страна: Россия

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#5 

Сообщение Electric » 21 мар 2015, 00:12

Александр, снова на славу потрудился для нашего сообщества, молодец!
Статья отличная и нужная! :excellent:
Я всё больше хочу стать счастливым обладателем Кфлопа :hiding:
Что такое шаговое напряжение? Это напряжение, которое возникает между ногами при приближении к оголенному концу...

Victor-80
Начинающий
Сообщения: 78
Зарегистрирован: 16 мар 2015, 12:56
Репутация: 14
Настоящее имя: Виктор

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#6 

Сообщение Victor-80 » 22 мар 2015, 11:28

Александр, отличная статья, хочу сказать - спасибо! Информация нужная, как раз сейчас собираю станок под управлением контролеера Кфлоп и вся информация по настройке очень нужна, тем более на русском языке.

Аватара пользователя
Chuch
Новичок
Сообщения: 49
Зарегистрирован: 15 сен 2014, 18:54
Репутация: 15
Настоящее имя: Антон Николаевич
Город: Екатеринбург

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#7 

Сообщение Chuch » 25 мар 2015, 16:28

Predator, Давно я не заходил на форум, а тут смотрю столько замечательно- познавательных статей появилось, в пору тебе уже книжку писать аля «Разработка и постройка хоббийного ЧПУ станка для чайников» по всяким ЧПУ штукам, думаю будет пользоваться спросом у хоббийщиков, особенно начального класса :confirm:

Аватара пользователя
Predator
Мастер
Сообщения: 2801
Зарегистрирован: 30 авг 2014, 20:14
Репутация: 1560
Настоящее имя: Александр
Страна: Россия
Контактная информация:

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#8 

Сообщение Predator » 25 мар 2015, 18:12

Chuch писал(а):в пору тебе уже книжку писать аля «Разработка и постройка хоббийного ЧПУ станка для чайников» по всяким ЧПУ штукам
Думаю, что плохой из меня писатель получится, а если и получится, кто книжку будет издавать, ты?! :unknown:
На это деньги нужны и наверное не малые...

Chuch писал(а):думаю будет пользоваться спросом у хоббийщиков, особенно начального класса
Возможно и будет, но проблема описанная строкой выше, всё запорет на корню! :nono:
Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри! © Уильям Дюрант

Victor-80
Начинающий
Сообщения: 78
Зарегистрирован: 16 мар 2015, 12:56
Репутация: 14
Настоящее имя: Виктор

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#9 

Сообщение Victor-80 » 27 мар 2015, 15:03

Predator писал(а):На это деньги нужны и наверное не малые...

Безусловно деньги понадобятся. А между тем, статья действительно отличная и главное нужная, побольше бы таких статей о Кфлопе.
И не обязательно книжку издавать, можно здесь на форуме писать.

Аватара пользователя
Predator
Мастер
Сообщения: 2801
Зарегистрирован: 30 авг 2014, 20:14
Репутация: 1560
Настоящее имя: Александр
Страна: Россия
Контактная информация:

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#10 

Сообщение Predator » 27 мар 2015, 16:35

Victor-80 писал(а):не обязательно книжку издавать, можно здесь на форуме писать
Чем и занимаюсь :happens:
А книжки писать... не знаю даже... я ведь не писатель :hiding:
Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри! © Уильям Дюрант

Аватара пользователя
BenAflek
Мастер
Сообщения: 853
Зарегистрирован: 29 окт 2014, 10:16
Репутация: 337
Настоящее имя: Владислав
Страна: Россия

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#11 

Сообщение BenAflek » 27 мар 2015, 21:35

Predator писал(а):я ведь не писатель :hiding:

Да ладно тебе кочевряжиться - попробуй :D
Здесь должно что-то быть?...

Аватара пользователя
Predator
Мастер
Сообщения: 2801
Зарегистрирован: 30 авг 2014, 20:14
Репутация: 1560
Настоящее имя: Александр
Страна: Россия
Контактная информация:

Re: Получаем аналоговый ШИМ-сигнал с платы расширения Konnec

#12 

Сообщение Predator » 27 мар 2015, 23:30

Да ну вас... сами пишите :nono:
Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри! © Уильям Дюрант


Вернуться в «KFLOP»

Сейчас на форумах

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей