-
CASE R200 OF
0: (* *)
Stop_Motor();
SSP_Y := FALSE; (* Нет исходного положения *)
TON3(IN := FALSE, PT:= T#0s);
R200 := 10;
10: (* Вперед или стоп *)
IF (D1) THEN
SteppersConfig_Pru1MemoryTransfer(
STEPPER1_PRU1_dir := FALSE,
STEPPER1_PRU1_stepper_accel_ramp := 5000,
STEPPER1_PRU1_stepper_decel_ramp := 50000,
STEPPER1_PRU1_stepper_max_speed := 10000,
STEPPER1_PRU1_stepper_min_speed := 0,
STEPPER1_PRU1_stepper_quantity := 1000000,
STEPPER1_PRU1_stepper_enable := TRUE
);
ELSE SteppersConfig_Pru1MemoryTransfer(STEPPER1_PRU1_st epper_enable := FALSE); R200 := 15; END_IF
15: (* Пауза *)
SteppersConfig_Pru1MemoryTransfer(STEPPER1_PRU1_st epper_enable := FALSE);
TON3(IN := TRUE, PT:= UT_1S); (* Запустили таймер *) Если уставка таймера 1 сек., то ФБ работает нормально, если 100 мс, то на шаге 20 все стопорится, вал ШД вращается, но с черепашьей частотой
IF (TON3.Q = TRUE) THEN TON3(IN := FALSE, PT:= T#0s); R200 := 20; END_IF
20: (* Назад *)
IF (NOT D1) THEN
SteppersConfig_Pru1MemoryTransfer(
STEPPER1_PRU1_dir := TRUE,
STEPPER1_PRU1_stepper_accel_ramp := 5000,
STEPPER1_PRU1_stepper_decel_ramp := 50000,
STEPPER1_PRU1_stepper_max_speed := 10000,
STEPPER1_PRU1_stepper_min_speed := 0,
STEPPER1_PRU1_stepper_quantity := 1000000,
STEPPER1_PRU1_stepper_enable := TRUE
);
ELSE R200 := 30; END_IF
30: (* Стоп *)
SteppersConfig_Pru1MemoryTransfer(STEPPER1_PRU1_st epper_enable := FALSE);
SSP_Y := TRUE;
END_CASE
Последний раз редактировалось Вольд; 24.03.2017 в 16:28.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума