Здравствуйте, пытаюсь запустить шаговый двигатель 17hs19-2004s1 через драйвер а4988 и выход DO6 (2 канал шагового двигателя). Проверяю что показывают выходы коммутации (земля на общий X2-4, 5В через X2-2) с помощью осциллографа, какая-то муть - только шумы. Вот код (пример не запускается из-за большого количества ошибок). ReadSteps2 на выходе равно 1, CyclePWM все ставлю равными 50 (если правильно понял, то это проценты). На Ардуино все работает, там просто подавать 5В из пина. Если соединять через коммутацию агавы, то двигатель начинает дергаться даже если OnSteps2 = False. Проверял от 3 до 160 Hz
Объявление
Свернуть
Пока нет объявлений.
DO6 Шаговый двигатель
Свернуть
X
-
Алгоритмы из скетчей от ардуино нельзя 1:1 применить на ПЛК-40. Н ардуино вы выставляете ENABLE, DIR и дергаете STEP с нужной частотой. Субмодуль DO6 более интеллектуален, он сам умеет "дергать" STEP с задаваемой пользователем частотой.
-
Я не копировал код для Ардуино в ПЛК-40. Я взял из примера что надо надо сделать OnSteps2 = true, затем выбрать количество шагов (nSteps = 1), и поставить частоту импульса (fPusle2 = 3 [Гц]). Так же почему то требуется при вызове функционального блока выбрать и ширину импульса (ставил 50). Но это не работает
-
-
Сообщение от Илья Белянов Посмотреть сообщениеЗдравствуйте, пытаюсь запустить шаговый двигатель 17hs19-2004s1 через драйвер а4988 и выход DO6 (2 канал шагового двигателя). Проверяю что показывают выходы коммутации (земля на общий X2-4, 5В через X2-2) с помощью осциллографа, какая-то муть - только шумы. Вот код (пример не запускается из-за большого количества ошибок). ReadSteps2 на выходе равно 1, CyclePWM все ставлю равными 50 (если правильно понял, то это проценты). На Ардуино все работает, там просто подавать 5В из пина. Если соединять через коммутацию агавы, то двигатель начинает дергаться даже если OnSteps2 = False. Проверял от 3 до 160 Hz
Codesys_AgavaSDK_20210210_SP10\Примеры\AgavaModule s\ПЛК-40\Internal\ST\StepDrive_IntIoModuleSync_DO6.proje ct
пример во вложении.
Комментарий
-
Я стараюсь сделать как в примере (запустить не могу из-за другого таргета). Все равно не работает. Пытался менять PWM на 0, но почему то они не меняются (как были 50, так и остались).
// Шаговый двигатель
DOOutput.Timeout := 10;
DOOutput(slot := SLOT_B, OnSteps2 := motor_sample.onSt ,nSteps2 := 1, CyclePWM1 := PWM1, CyclePWM2 := PWM2); // Слот 'B' канал - 5: Шаговый двигатель
IF(motor_sample.onSt) THEN
DOOutput.fPulse2 := motor_sample.Hz;
END_IFПоследний раз редактировалось Илья Белянов; 11-05-2021, 11:34 AM.
-
Комментарий