Страница 1 из 2

Управление Step\Dir

Добавлено: 07.05.2016{, 21:06}
Skull
Прошу добавить в шаговые моторы управление Step\Dir для готовых контроллеров ШД типа A4988 или подобных.

Управление Step\Dir

Добавлено: 07.05.2016{, 21:14}
Rovki
Я новичок в ФЛПрог ,как визуально выглядят функциональные блоки ,те или иные и кто их реализует пользователь или Автор ФЛПрог?

Управление Step\Dir

Добавлено: 07.05.2016{, 21:54}
support
Есть две категории блоков.
1. Основная библиотека блоков - её пишу я. Блоки входящие в неё встроены в код основной программы FLProg.
2. Библиотека блоков пользователей. Эти блоки пишут сами пользователи. Для этого существует специальный интерфейс в программе. Блоки пользователей можно писать на языках FBD, LAD, и для знающих С на нём (точнее не на С а на диалекте Wiring применяющемся в Arduino IDE). Есть возможность выгружать как отдельные блоки так и целые библиотеки в файл и обмениваться ими. В базовой поставкe FLProg библиотека пользовательских блоков пустая, каждый себе заполняет её по своим нуждам. Для обмена блоками существует раздел на сайте.

Управление Step\Dir

Добавлено: 07.05.2016{, 21:59}
support
Визуально блоки выглядят как квадратики с входами и выходами, которые между собой соеденяются линиями (один в один как в среде Овен). А вообще я бы Вам посоветовал бы посмотреть уроки по FLProg.
Изображение

Управление Step\Dir

Добавлено: 07.05.2016{, 22:12}
Rovki
support писал(а):Визуально блоки выглядят как квадратики
Спасибо.Понятно .Может как то перенять опыт ОЛ .Там все самодельные блоки ,оформленные ввиде прямоугольников с заданным количеством входов\выходов называются макросами ,которые сохраняются с определенным расширением и могут вставляться в любой проект .Я их там сделал несколько сотен как универсальные макросы ,так и специализировнные http://www.owen.ru/forum/showthread.php?t=12691.Нет нужды разработчикам писать бесконечное число блоков для пользователей .Это не касается блоков коммуникации и прочих специфических фишек ,которые можно оптимально реализовать только в коде ..

Управление Step\Dir

Добавлено: 08.05.2016{, 07:40}
support
Так и в FLProg точно так - же. Только называются они не макросы а блоки пользователей. Любой из них может использоваться любом проекте. Причём поскольку есть возможность писать блок на C,  то возможности этих блоков практически ничем не ограниченны.

Управление Step\Dir

Добавлено: 08.05.2016{, 11:28}
Rovki
Спасибо ,но только не понятно зачем все просят добавить новые ФБ в саму программу (набор элементов) вас ,как Автора .Почему не пользоваться внешними ФБ (макросами), а бесконечно расширять внутренний список ???В чем тут фокус?Нужен ,например блок FIFO ,так сделай сам или попроси кого из форума ...

Управление Step\Dir

Добавлено: 08.05.2016{, 12:57}
Skull
Rovki писал(а):В чем тут фокус?
В том, что большинство юзеров ФЛпрога не знает СИ ))

Управление Step\Dir

Добавлено: 08.05.2016{, 12:59}
support
Не весь функционал можно реализовать с помощью пользовательских блоков на LAD или FBD. Особенно если требуется подключение дополнительных библиотек. Это можно сделать только с помощью блоков на С. А проект рассчитан и предназначен для тех кто не знает языков программирования. У нас на форуме есть некоторое количество пользователей которые могут делать такие блоки. И они очень помогают мне по возможности создавая их. Но их немного, да и время не всегда есть. Ну и к тому же не всегда под рукой есть железяка на которую нужно сделать блок.
Ну и конечно блок интегрированный в программу более хорошо интегрируется в компилятор, и под него есть возможность сделать специфичный интерфейс настройки. Всё таки возможности редактора пользовательских блоков не бесконечны, и ограниченны необходимостью встраивания содержащегося в них кода в результирующий скетчь.

Управление Step\Dir

Добавлено: 08.05.2016{, 14:56}
Rovki
Skull писал(а):В том, что большинство юзеров ФЛпрога не знает СИ ))
Я не имел вообще ввиду СИ .В ОЛ макросы рисуются как обычная схема на FDB.Иногда ,при большом проекте делаешь несколько макросов (блоков) и схема становится читаемой и целиком влазет на рабочее поле .
support писал(а):Не весь функционал можно реализовать с помощью пользовательских блоков на LAD или FBD.
Так и не нужно весь функционал делать на блоках ,для этого ВЫ ЕСТЬ Изображение .
Для примера делал макрос расчета времени восхода и захода солнца и привязки к местности или расчет влажности (психометр) по показаниям двух термометров или макрос ППЗУ -на входе адрес на выходе значение ,которое пользователь сам "зашил",всевозможные макросы стеков (FIFO) итд ,и все на базовых элементах и ФБ и ни какого СИ.Другое дело ,что может ФЛ это не позволяет ,но тут я не спец..

Управление Step\Dir

Добавлено: 08.05.2016{, 16:59}
support
Не всё можно сделать на FBD.  Например вопрос данного топика. Вот что нужно реализовать.

Подключить библиотеку AccelStepper:

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

#include <AccelStepper.h>
Создать инстанс контроллера двигателя

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

AccelStepper Stepper1(1,13,12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)
Создать дополнительные переменные

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

int dir = 1; //используется для смены направления
Это была секция Declare

Теперь секция Setup
Инициализация драйвера

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

Stepper1.setMaxSpeed(3000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)Stepper1.setAcceleration(13000); //устанавливаем ускорение (шагов/секунду^2)
Ну и секция loop

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

if(Stepper1.distanceToGo()==0){ //проверка, отработал ли двигатель предыдущее движениеStepper1.move(1600*dir); //устанавливает следующее перемещение на 1600 шагов (если dir равен -1 будет перемещаться -1600 ->
противоположное направление)dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направленииdelay(1000); //задержка на 1 секунду}Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
 На FBD это не сделаешь, только на С. У меня к сожалению нет ни такого двигателя, ни драйвера, поэтому я не могу сделать такой блок (сделать то могу, а вот проверить ни как).

Ссылка на библиотеку

Управление Step\Dir

Добавлено: 08.05.2016{, 17:43}
Rovki
Как это нельзя на фбд ?? ЩАС сделаем Изображение .Понять бы только что нужно то Изображение .DIR пропустим транзитом мимо блока .Главное сформировать заданную последовательность импульсов (количество -переменная ) и частоту их следования(вторая переменная ) .Микро шаги выбираются на самом драйвере ,опять же если нужно ими управлять ,то пропускаем мимо этого блока ...Если правильно понял задачу ,то ее можно на ФВД сделать Изображение

Управление Step\Dir

Добавлено: 08.05.2016{, 17:59}
Rovki
7561658.jpg
Вот вариант ,задаем количество шагов и частоту (период) следования. А также контролируем готовность к приему следующего задания (флаг)

Управление Step\Dir

Добавлено: 09.05.2016{, 02:24}
alibek
Skull писал(а):Прошу добавить в шаговые моторы управление Step\Dir для готовых контроллеров ШД типа A4988 или подобных.яя
я думал что это ветка станочная Step\Dir для ЧПУ

Добавлено (09.05.2016, 02:24)
---------------------------------------------
хочется средствами Flprog писать свой Софт для самодельных станков ЧПУ

Управление Step\Dir

Добавлено: 09.05.2016{, 07:21}
Rovki
alibek писал(а):хочется средствами Flprog писать свой Софт для самодельных станков ЧПУ
ЧПУ без энкодеров не пойдет ,хотя есть ШД со встроенными драйверами и энкодерами ,но стоят они не гуманно Изображение .Как то делал на них станок фигурной резки пенопласта .

Управление Step\Dir

Добавлено: 09.05.2016{, 17:21}
alibek
Здесь открытый проект
Лазерный гравер на Ардуино
http://www.ecnc.ru/upgrade/etching
прошивка 
http://www.ecnc.ru/flash

Управление Step\Dir

Добавлено: 11.05.2016{, 18:57}
alibek
support писал(а):У меня к сожалению нет ни такого двигателя, ни драйвера, поэтому я не могу сделать такой блок (сделать то могу, а вот проверить ни как).
отправил с али посылку . поиграйся на досуге

Управление Step\Dir

Добавлено: 11.05.2016{, 19:00}
alibek

Управление Step\Dir

Добавлено: 11.05.2016{, 19:01}
alibek

Управление Step\Dir

Добавлено: 11.05.2016{, 19:02}
alibek