Получаем аналоговый сигнал 0-10V с платы KFLOP
Доброго всем дня! Я у вас тут новенький
Вот по совету Саши (Predator) представлю вашему вниманию решение одной моей проблемки:
После замены своей платы K-Step на драйвера Leadshine встал вопрос об управлении частотой вращения шпинделя. Поглядев повнимательней на мануал к K-Step было найдено решение.
Вводные данные:
- частотник с управлением 0-10V
- шпиндель с максимальными оборотами 24000
- плата KFlop
В K-Step есть готовая схема преобразователя частота-напряжение. Чуть измененную (оптопара, транзисторы) схему собрал на SMD элементах.
Принципиальная схема:
Фото (уже в стойке плата смонтирована):
Настройка KFlop:
Подключив схему к частотнику необходимо прописать в KFlop следующее:
1. Скрипт для управления частотником в данном случае выглядит так (помещаем его в папку с файлом инициализации для удобства):
Код: Выделить всё
#include "KMotionDef.h"
#include "CorrectAnalogFunction.c"
#define RPM_FACTOR 24000.0 // RPM for full duty cycle (max analog out)
// desired speed is passed in variable 1
main()
{
float V = *(float *)&persist.UserData[1]; // value stored is actually a float
FPGA(KAN_TRIG_REG)=4; // Mux PWM0 to JP7 Pin5
FPGA(IO_PWMS_PRESCALE) = 46; // divide clock by 46 (1.4 KHz)
FPGA(IO_PWMS+1) = 1; // Enable
FPGA(IO_PWMS) = CorrectAnalog(V/RPM_FACTOR); // Set PWM
}
2. Копируем файл CorrectAnalogFunction.с в ту же папку где лежит файл управления шпинделем.
3. В KMotionCNC указываем параметры запуска скрипта:
Замерив напряжение управляющее при разных параметрах S получил следующие данные: