Программа "ШД с разгоном": pru_pulse_v4.zip
max_speed/quantity/accel_ramp/decel_ramp можно менять только в состоянии INIT. Т.е. менять на ходу параметры нельзя.Код:Step motor control via AM1808 PRU FUNCTION_BLOCK PRU_STEPPER (* Output will be generated to FAST OUTPUT 3 *) VAR_INPUT ENABLE: BOOL; MAX_SPEED: DWORD; (* Гц *) QUANTITY: DWORD; (* количество импульсов *) ACCEL_RAMP: DWORD; (* Гц/сек, положительное. Например, 10000Гц/20сек == 500Гц/сек *) DECEL_RAMP: DWORD; (* Гц/сек, положительное. Например, 10000Гц/10сек == 1000Гц/сек *) OUT_NUM: BYTE; (* 1, 2, 3 или 4 *) END_VAR VAR_OUTPUT READY : BOOL; (* TRUE: можно запускать ещё раз, FALSE: предыдущие импульсы ещё идут *) STATE : BYTE; (* 0: INIT, 1: ACCEL, 2: RUN, 3: DECEL, 4: STOP *) END_VAR
ENABLE можно выключать в любое время (будет плавный останов, если исходно был плавный запуск).
Если ACCEL_RAMP равно нулю, то ускорения/замедления не происходит, а просто генерируются QUANTITY импульсов с частотой MAX_SPEED
Если QUANTITY равно -1 (16#ffffffff), то генерируется бесконечное количество импульсов. Генератор работает до перевода ENABLE в false.




Ответить с цитированием