Подключение Enable

KFlop, KStep, KAnalog, KMotion...

Подключение Enable

Сообщение shura28 » 25 ноя 2017, 19:32

Здравствуйте!

Решил поделиться проблемой (точнее ее решением) по подключению сигнала Enable от драйвера шаговика к плате KFLOP. Возможно кому-то это покажется очевидным, но в интернетах ответа не нашел, поэтому решился на этот опус.
Итак, имеем KFLOP, три шаговика с тремя китайскими драйверами CW-5045.
Подключение Enable IMG_20171125_184805.jpg

Сигналы setp/dir подключаются на предопределенные порты разъема JP7. Это 15/16, 17/18, 19/20. По умолчанию, эти порты работают в режиме открытого коллектора. Сигнал Enable включается/выключатеся точно таким же образом как и Step/Dir, но встал вопрос как и куда его подключать ? Понятно, что его можно завести на другие любые свободные порты разъема JP7, которые 5V tolerant.
А вот как "изобразить" работу порта в режиме открытый коллектор:

// IO3 - это порт соответствующий 10-у пину на JP7
ClearBit(3); // устанавливаем в disable
SetBitDirection(3,1); // переводим порт в режим output
// сейчас ток через светодиод оптопары не течет так как порт находится в высокоимпедатном состоянии. Драйвер выключен

SetBitDirection(3,0); // переводим порт в режим input
// ток течет, светодиод горит, драйвер включен.

В Kmotion можно эмулировать:
Включить
ena.png
ena.png (4.08 Кб) Просмотров: 5035

Выключить
dis.png
dis.png (4.81 Кб) Просмотров: 5035


В конец конфига (который в C Program) добавляем:
ClearBit(1); // turn output off
SetBitDirection(1,1); // set as output
ClearBit(2);
SetBitDirection(2,1);
ClearBit(3);
SetBitDirection(3,1);

так как по умолчанию все порты KFLOP-а инициализируются как Input.

В KmotionCNC можно добавить M-коды:
Mcodes.png
Mcodes.png (9.48 Кб) Просмотров: 5035


В файлах enable.c и disable.c прописать переключение портов.
Как-то так. Все это мне подсказал Том.
Зачем это может быть нужно ? Например, вам нужно управлять всякими реле и прочими механизамим, а денег на Konnect нет или жалко.
Можно купить 5V реле для ардуино и подключить подобным образом. Сам правда пока не пробовал, но принцип такой же. Правда не совсем понтяно, какой максимальный ток может принять порт в режиме Input (спросил у Тома).

Так же в ходе изучения KFLOP возник вопрос:
в Mach-е можно создать M-код с практически любым номером просто создав файл MXXX (где XXX- номер кода) в соответствующей папке. А в KMotionCNC на закладке Tool Setup Screen доступно только 20 кодов. Это предел для KFLOP ?
Спасибо!
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение ukr-sasha » 26 ноя 2017, 08:04

Да.
Заходите в гости: YouTube-ukr-sasha
ukrainets.alexander@gmail.com
или звоните +38067-235-57-70
Аватара пользователя
ukr-sasha
Мастер
 
Сообщения: 3374
Зарегистрирован: 21 мар 2011, 07:47
Откуда: Киев, Украина
Репутация: 2164
Медальки:
Настоящее имя: Украинец Александр Григорьевич

Re: Подключение Enable

Сообщение shura28 » 27 ноя 2017, 21:38

На мой вопрос о том, какой максимальный ток может пропустить порт в режиме Input

Should I be concerned about the maximum current that Input can sink?
The manual says that "Digital Outputs may sink/source 10 ma."
Is it true for IO in Input mode?

Том ответил следующим образом:
There should be no current when "open" in input mode.


Для меня это весьма странно. Возможно он имел ввиду то, что в данном режиме порта весь ток коммутируется на землю и в этом смысле не представляет угрозы для входа. Не понятно...
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение shura28 » 29 ноя 2017, 23:10

Решил попробовать подключить реле от Arduino и вот что из этого получилось.
На руках оказалось только реле на 12 Вольт. Это напряжение срабатывания реле и к управлению оно отношения не имеет.
Однако для тех кто решится на такой эксперимент, рекомендую вдумчиво читать http://arduino.ru/forum/apparatnye-voprosy/podklyuchenie-n-channel-12v-relay-shield-module-arduino
Для 5-вольтовых модулей реле все описанное по ссылке в равной степени актуально.
У меня модуль реле второго типа и если не устанавливать джампер JDVCC-VCC, то получаем два гальванически развязанных контура: один на 12 Вольт для питания реле, а второй на 5 или 3,3 Вольт (работает в обоих случаях) для управления через оптроны.
Так как плату переходник с J7 на разъемы под болтик я делал только на 10 портов IO (6 из которых используются для управления осями), то для экспериментов остается 4 порта. Так как модуль тоже на 4 реле, то все и поключил.
Подключение Enable IMG_20171129_215520.jpg

Соединил порты KFLOP-а IO0-IO3 с портами In1-In4 на модуле реле. Так же подал 3,3 Вольта с KFLOP-а на VCC, который рядом с In1-In4.
На JDVCC и Gnd подал питание 12В от аккумулятора.
Идем в KMotion и из Digital IO включаем все реле:
ena_r.png
ena_r.png (7.28 Кб) Просмотров: 4954

Подключение Enable IMG_20171129_215644.jpg

Ну и выключаем:
dis_rel.png
dis_rel.png (7.26 Кб) Просмотров: 4954

Работает.
С таким же успехом для дергания реле можно перевести порты в режим Output и лишь менять состояние (State).
С учетом того что у KFLOP-а 46 IO, то можно подключить много разных реле.
Прикладываю свою платку-переходник для Sprint Layout-а.
Однако для тех кто решился заказать KFLOP рекомендую сразу же заказать нормальный переходник (жду посылку):
https://www.aliexpress.com/item/IDC26-2x13-Pins-0-1-Male-Header-Breakout-Board-Terminal-Block-Connector/32796801218.html?spm=2114.search0104.3.2.E3Whrv&ws_ab_test=searchweb0_0,searchweb201602_0_10152_10151_10065_10344_10068_10345_10342_10343_10340_10341_10543_10541_10562_10084_10083_10307_10301_10539_10312_10059_10313_10314_10534_10533_100031_10604_10603_10103_10594_10557_10596_10595_10107_10142,searchweb201603_25,ppcSwitch_0&algo_expid=3e6b0e62-f12f-41d4-bde4-277dac794aa9-0&algo_pvid=3e6b0e62-f12f-41d4-bde4-277dac794aa9&rmStoreLevelAB=0
Следующим шагом буду осваивать передачу параметров в M-коды, чтобы использовать один M-код для всех реле и не обламываться от наличия лишь 20 M-кодов в KmotionCNC.
Вложения
idc26_.lay6.txt
переходник под ЛУТ
(31.01 Кб) Скачиваний: 419
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение Smouk » 30 ноя 2017, 14:21

ClearBit(3); // устанавливаем в disable
SetBitDirection(3,1); // переводим порт в режим output
// сейчас ток через светодиод оптопары не течет так как порт находится в высокоимпедатном состоянии. Драйвер выключен

SetBitDirection(3,0); // переводим порт в режим input
// ток течет, светодиод горит, драйвер включен.

Том, обратил Ваше внимание на то, что переключение происходит варварским методом.
Смена логического уровня должна происходить командами SetBit, ClearBit.
Вы же управляете тем, что для состояния логической единицы делаете вместо выхода, вход.

Направление порта обычно указывается один раз при инициализации, исключения только интерфейсы связи, но здесь про них речь не идет.

Нормальный вариант думаю близок к такому:
Код: Выделить всёРазвернуть
SetBitDirection(3,1); // Переводим порт в режим выхода

ClearBit(3); // Переключаем выход на логический ноль

// Пауза для примера
Delay_sec(5.0); 

SetBit(3); // Переключаем выход на логическую единицу
Smouk
Кандидат
 
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей

Re: Подключение Enable

Сообщение shura28 » 30 ноя 2017, 22:31

Smouk писал(а):Том, обратил Ваше внимание на то, что переключение происходит варварским методом.
Смена логического уровня должна происходить командами SetBit, ClearBit.
Вы же управляете тем, что для состояния логической единицы делаете вместо выхода, вход.

Направление порта обычно указывается один раз при инициализации, исключения только интерфейсы связи, но здесь про них речь не идет.

Нормальный вариант думаю близок к такому:
Код: Выделить всёРазвернуть
SetBitDirection(3,1); // Переводим порт в режим выхода

ClearBit(3); // Переключаем выход на логический ноль

// Пауза для примера
Delay_sec(5.0); 

SetBit(3); // Переключаем выход на логическую единицу


Я вначале именно так и пробовал, но драйверы не включались (моторы не вставали не удержание). Это вынудило меня обратиться за помощью к Тому и именно он предложил "варварский" вариант.
Так что, как говорится - "за что купил, за то и продаю" :D
Я так понимаю (возможно ошибочно), что в режиме output порт KFLOP-а находится в высокоимпедантном состоянии, т.е. его сопротивление бесконечно велико. Вне зависимости от логического уровня (high или low), ток через него не потечет и соответственно оптопара на входе драйвера не сработает.
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение shura28 » 30 ноя 2017, 22:42

... тем временем удалось разобраться с передачей параметров в M-коды.
Вот такой несложный скрипт (ToggleRelay.c):
Код: Выделить всёРазвернуть
#include "KMotionDef.h"

main()
{
   float relay, state;

   relay = *(float *)&persist.UserData[0];
   state = *(float *)&persist.UserData[1];

   if ((relay >= 0) && (relay <= 3))
   {
      if (state == 0)
      {
         SetBitDirection(relay,0);
      }
      if (state == 1)
      {
         ClearBit(relay);      // turn output off
         SetBitDirection(relay,1);   // set as output
      }
   }
}

позволяет щелкать реле в формате:
M100 P1 Q0
где единица у параметра P - номер реле, который в моем случае совпадает с портом IO у KFLOP-а,
а ноль у параметра Q - это состояние реле. 0-выключить, 1-включить.
Единственное, что вызвало недоумение - параметр VAR в настройках M-кода.
VAR.png
VAR.png (6.5 Кб) Просмотров: 4920

Нормальной работы удалось добиться, когда VAR установлен в 0 (ноль).
Думаю это номер ячейки в persist.UserData начиная с которой в подпрограмму передаются параметры. Что-то с этим звязанное.
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение Smouk » 01 дек 2017, 09:38

shura28 писал(а):Я вначале именно так и пробовал, но драйверы не включались (моторы не вставали не удержание). Это вынудило меня обратиться за помощью к Тому и именно он предложил "варварский" вариант.
Так что, как говорится - "за что купил, за то и продаю" :D

Значит пробовали не так. Том не мог предложить такого решения, если не трудно скопируйте сюда его сообщение. Вы в праве использовать любой метод, но не вводите остальных людей в заблуждение.

Параметр VAR, указывает начальный номер переменных переданных в KFLOP. Это необходимо для избежания наложения данных при вызове программ в разных потоках. KMotionCNC пакует все эти данные в один массив и передает в KFLOP, если потоки будут запущены одновременно и везде будет указано использование переменной с #0, то одно из значений будет некорректно. Так же иногда в программе удобно считывать последнее значение этого массива, чтобы дополнительно не хранить его где-то еще, тем более данный массив доступен из всех потоков.
Единственный нюанс, что из диапазона номеров от 0 до 200, системой используются 100-107. Их использовать для своих нужд нельзя.

Документация тут:
https://dynomotion.com/Help/KMotionCNC/MCodesWithParams.htm
https://dynomotion.com/Help/KMotionCNC/KMotionCNCCmdsFrKFLOP.htm

Приведенный Вами пример передачи параметров работает(без учета ошибки обсужденной выше), но в целом при указании целочисленных номеров выводов использование float в других примерах несет большие риски и для этого все-таки надо использовать int. Сравнение float это обычно костыль в виде приведения к тому же int или два условия больше-меньше. Отлавливать подобные вещи на большой системе уже проблематично, проще не закладывать их вообще.
Smouk
Кандидат
 
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей

Re: Подключение Enable

Сообщение shura28 » 01 дек 2017, 20:58

Smouk писал(а):Значит пробовали не так. Том не мог предложить такого решения, если не трудно скопируйте сюда его сообщение. Вы в праве использовать любой метод, но не вводите остальных людей в заблуждение.

Я лишь следовал его инструкциям:
Подключение Enable Tomletter.png

И это работает.

Smouk писал(а):Параметр VAR, указывает начальный номер переменных переданных в KFLOP. Это необходимо для избежания наложения данных при вызове программ в разных потоках. KMotionCNC пакует все эти данные в один массив и передает в KFLOP, если потоки будут запущены одновременно и везде будет указано использование переменной с #0, то одно из значений будет некорректно. Так же иногда в программе удобно считывать последнее значение этого массива, чтобы дополнительно не хранить его где-то еще, тем более данный массив доступен из всех потоков.
Единственный нюанс, что из диапазона номеров от 0 до 200, системой используются 100-107. Их использовать для своих нужд нельзя.

Т.е. переменная VAR является индексом массива persist.UserData начиная с которого будут записываться и передаваться параметры P/Q/R ?
Если установить VAR=50, то в скрипте обращаться нужно будет так?
Код: Выделить всёРазвернуть
printf("P = %f Q = %f R = %f\n",
      *(float *)&persist.UserData[50],
      *(float *)&persist.UserData[51],
      *(float *)&persist.UserData[52]);

Интересно, попробую.
Я так понял, что механизма разделения доступа к данным массива между тредами нет (типа мутексы, семафоры и пр.) и совместное их использование невозможно.


Читаю потихоньку. Пример с передачей параметров в M-код, брал как по первой ссылке.

Smouk писал(а):Приведенный Вами пример передачи параметров работает(без учета ошибки обсужденной выше), но в целом при указании целочисленных номеров выводов использование float в других примерах несет большие риски и для этого все-таки надо использовать int. Сравнение float это обычно костыль в виде приведения к тому же int или два условия больше-меньше. Отлавливать подобные вещи на большой системе уже проблематично, проще не закладывать их вообще.

Из примера я понял, что параметры к М-кодам передаются именно типа float. Или можно *(int *)&persist.UserData[50] ? Надо посмотреть их размерность и если sizeof(float) == sizeof(int), то почему бы и нет. Float вроде как 4 байта, а вот целочисленный соизмеримый тип наверное уже что-то типа long. В общем нужно смотреть хидеры и вникать/пробовать.
В случае же с float-ом, можно сделать явное приведение типов (int)(...) при присвоении, но компилятор/транслятор должен сделать преобразование типов сам. Можно было просто объявить переменные relay и state как int.
Я же не делал этого потому как это всего лишь пример для освоения KFLOP-а.
А проверка на значение пользовательских данных - просто хорошая привычка.
В общем с C++ у меня проблем нет, надо только покапаться в памяти :D , но все равно спасибо, возможно кому-то это будет полезно.
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение shura28 » 02 дек 2017, 21:26

Комментарии Алексея Smouk посеяли зерно сомнения в мою стройную картину мира, и я решил еще раз проштудировать теоретическую часть. :)
Если принять, что цифровые входы работают по принципам изложенным здесь:
http://arduino.ru/Tutorial/DigitalPins
То получается, следующее:
# капитан Очевидность On
Порты в режиме Input находятся в высокоимпедансном состоянии (их сопротивление очень велико и они не пропускают ток достаточный чтобы как-то повлият на внешние устройства). Порт просто "слушает" наличие/отсутствие напряжения на входе. Есть напряжение есть, значит порт в состоянии High, нет напряжения, значит в Low. Так как по закону Ома U=I*R, то при наличии большого R, любое даже незначительное значение тока I, выдает на порт вполне осязаемое напряжение. Т.о. порт будет "ловить" даже электромагнитные наводки и переключаться из одного состояния в другое без видимых на то причин.
# генерал Ясен пень On
Поэтому порты в режиме Input "подтягивают" либо к земле Gnd, либо к питанию Vdd. Схематически это выглядит следующим образом:
Input High
inpHigh.png
inpHigh.png (8.83 Кб) Просмотров: 4864

Input Low
inpLow.png
inpLow.png (4.83 Кб) Просмотров: 4864

Внутри контроллеров бывает эту логику релизуют аппаратно, но можно это делать и внешним обвесом.
# генерал Ясен пень Off
Порты в режиме Output находятся в низкоимпедансном состоянии и могут как быть источником напряжения и пропускать ток наружу, так и прикидываться цифровой землей Gnd и пропускать ток в себя.
Output High - на порту имеется напряжение и если его соединить с землей, то ток потечет наружу. Порт - источник (source).
Output Low - на выходе порта земля и если на него подать напряжение, то ток потечет внутрь. Порт - приемник (sink).
# капитан Очевидность Off
Из этого следует, что в первом посте я наврал (надеюсь никто пострадать не успел).
Для включения сигнала Enable на драйвере, нужно чтобы порт коммутировал ток на землю. Т.е. переводим порт в Output-Low (порт пропускат ток на землю).
Для выключения сигнала Enable на драйвере нужно чтобы порт не пропускал ток. Переводим порт в Input-High и порт подтягивается к VDD. Так как на вход драйвера мы подаем +5В, а VDD портов скорее всего 3,3В, возможно что какой-то ток имеет место быть. Но видимо его не досаточно, чтобы открыть тразистор оптопары.
Вроде как все укладывается в стандартную релятивистскую модель мира :)
Но вариант Алексея Smouk тоже должен работать!!!
В режиме Output-High на порту напряжение и ток через светодиод оптопары сигнала Enable в драйвере не течет.
В режиме Output-Low порт пропускат ток и светодиод должен открыться.
Проверил этот вариант с модулем реле. Тоже работает. Почему не заработало с драйвером не знаю. :thinking:
Так или иначе вариант который предложил Том видимо тоже имеет право на существование. Однако какой из них будет более "правильный" сказать не берусь, так как электронщик из меня сами понимаете какой :D
С другой стороны в доках на KFLOP черным по белому написано, что порты могу работать в режиме Open collector, но как оно там реализовано и что под этим подразумевается, одному dynomotion-у известно...
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение Smouk » 03 дек 2017, 10:04

В целом все верно, поэтому схема работает, но от Тома я такого ответа не ожидал, но он видимо решил, что если задан вопрос, как запустить конкретную схему, то на него и надо отвечать.
Хотя немного изменив схему подключения(просто поменяв выводы местами) можно использовать штатный режим работы портов вывода, выход завести на анод, а катод подключить к GND. Дополнительно стоит посмотреть резистор перед оптопарой, что бы не превысить ток выхода KFLOP, но от текущей схемы он не изменится.
По поводу подтягивания портов к земле или питанию это относится только ко входам, поэтому в этом случае роли не играет совсем. Отсюда можно сделать вывод, что такое подключение только вносит путаницу в код, а никакой практической пользы не дает.
Smouk
Кандидат
 
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей

Re: Подключение Enable

Сообщение shura28 » 09 дек 2017, 15:38

Пришло время концевиков.
Есть вот такие:
Подключение Enable IMG_20171209_144532.jpg

Подключать буду по классической схеме:
Подключение Enable LimitSwitches.jpg

Вот так выглядит разводка:
Подключение Enable breakoutboard.png

R1=1K для 24V и 0,5K для 12В
С1=0,1мкФ (104)
D1-любой fast/super/hyper диод. Последняя циферка в маркировке - это ток. Нам подойдет любой.
Оптроны - сдвоенные PC817.
Величина R1 - определяется напряжением, которое подается для питания датчика. Расчет этого сопротивления можно сделать:
http://cxem.net/calc/ledcalc.php
Прямое напряжение светодиода и прямой ток светодиода нужно взять из даташита. Для PC817 это 1,2В и 20мА соответственно.
Так как я запитываю датчик от АКБ 12В, то R1=510 Ом.
Так же R1 вместе с C1 образуют фильтр нижних частот (ФНЧ). Подбирая величину C1 можно ограничивать частоту срабатывания датчика, тем самым убирая помехи.
Расчет ФНЧ можно выполнить например вот здесь:
http://tel-spb.ru/rc.html
Получается вот такая штука:
Подключение Enable IMG_20171208_212058.jpg

Подключение Enable IMG_20171208_212131.jpg

Подключаем датчик:
Подключение Enable IMG_20171208_212110.jpg

Родные цвета проводов датчика - коричневый (+V) синий (0V) черный (сигнальный). У меня же припаяны проводки с наконечниками для удобства крепления под зажим: коричневй, синий и красный соответственно.
Подключаем к KFLOP:
Подключение Enable IMG_20171209_143604.jpg

Проверяем в Digital IO: подносим к датчику металл - порт меняет состояние. Это хорошо.
Такая схема, насколько я понимаю, хороша тем, что в случае обрыва проводов или пропадания питания датчика , KFLOP увидит срабатывание концевика и остановит движение.
В KMotion указываем, что концевик подключен к IO0 и срабатывает при уровне High:
LimitSwitchOptions.png
LimitSwitchOptions.png (4.8 Кб) Просмотров: 4806

Все это сохраняем как положено.
Теперь идем в KMotionCNC и пробуем:
запускаем одну ось (для которой прописали датчик) в путешествие:
g0x500.png
g0x500.png (985 байт) Просмотров: 4806

и пока двигатель вращается, вызываем срабатывание датчика.
Если все сделано правильно, то двигатель должен резко остановиться.
Для того чтобы его активировать для дальнейших экспериментов нужно его включить командой:
EnableAxis.png
EnableAxis.png (1.06 Кб) Просмотров: 4806

Как-то так...
Вложения
sensors_prox.7z
(6.74 Кб) Скачиваний: 94
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение shura28 » 10 дек 2017, 12:13

Пришел переходник:
Подключение Enable IMG_20171210_114931.jpg


Хотел поинтересоваться - нужно ли для подключения KFLOP-а к компу использовать USB-изолятор ?
По идее, при соединении обычным USB-шнурком, земли двух БП будет связаны и проблем быть не должно. Насколько оправдана покупка USB-изолятора ?
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение Smouk » 11 дек 2017, 08:33

shura28 писал(а):Хотел поинтересоваться - нужно ли для подключения KFLOP-а к компу использовать USB-изолятор ?
По идее, при соединении обычным USB-шнурком, земли двух БП будет связаны и проблем быть не должно. Насколько оправдана покупка USB-изолятора ?

Все зависит от коммутируемых на станках мощностях, прокладке кабелей и длинны. Я бы поработал в начале так - если будет дисконнект за время наладки, купите. Просто хороший изолятор в силу частот на USB стоит дорого, а дешевый - бесполезен.

Так же проверьте, что ревизия платы KFLOP 1.3 и выше.
Smouk
Кандидат
 
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей

Re: Подключение Enable

Сообщение shura28 » 11 дек 2017, 22:01

Smouk писал(а):Все зависит от коммутируемых на станках мощностях, прокладке кабелей и длинны. Я бы поработал в начале так - если будет дисконнект за время наладки, купите. Просто хороший изолятор в силу частот на USB стоит дорого, а дешевый - бесполезен.
Так же проверьте, что ревизия платы KFLOP 1.3 и выше.

Я больше переживаю чтобы KFLOP не выпустил синий дым.
Разброс цен на изоляторы действительно несколько смущает. Вообщем буду пробовать, спасибо!
Плата REV 1.3.
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение shura28 » 21 дек 2017, 20:11

Начал все это хозяйство прикручивать к станку и неожиданно для себя обнаружил, что у atx БП минусовой провод в цепи постоянного тока соединён с корпусом. Т.о., если БП не изолирован от рамы станка, то получается что мы имеем минус на раме. Не могу объяснить, но мне кажется это неправильно. Например, в моем случае, на станке стоят и 3-х фазный асинхронник и пневмоклапана работающие от переменки и сервы, боюсь минус будет плавать. Стол заземлен, но все равно такая схема кажется неправильной. Может лучше запитать всю электронику (kflop, датчики и реле) от БП, который будет изолирован от стола. Прошу совета знатоков.
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение Rom327 » 21 дек 2017, 20:29

shura28 писал(а):Начал все это хозяйство прикручивать к станку и неожиданно для себя обнаружил, что у atx БП минусовой провод в цепи постоянного тока соединён с корпусом. Т.о., если БП не изолирован от рамы станка, то получается что мы имеем минус на раме. Не могу объяснить, но мне кажется это неправильно. Например, в моем случае, на станке стоят и 3-х фазный асинхронник и пневмоклапана работающие от переменки и сервы, боюсь минус будет плавать. Стол заземлен, но все равно такая схема кажется неправильной. Может лучше запитать всю электронику (kflop, датчики и реле) от БП, который будет изолирован от стола. Прошу совета знатоков.

Более того, в компьютерных блоках питания и замляной питающий провод может оказаться на корпусе. А при отсутствии заземления со стороны ~ 220 вольт на корпусе окажется 1/2 от ~ 220 вольт...
Подключение Enable bp-atx-5-.jpg
земля, корпус и минус питания все в куче.
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://instrumentotvet.ru/grbl-0-9j-perevod
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
http://planetacam.ru/college/learn/6-0/
Аватара пользователя
Rom327
Мастер
 
Сообщения: 2045
Зарегистрирован: 03 апр 2015, 13:23
Откуда: Подольск МО
Репутация: 234
Настоящее имя: Роман

Re: Подключение Enable

Сообщение shura28 » 21 дек 2017, 23:02

Именно. Когда обнаружил эту связь мультиметром, изучил интернет и засомневался собственно. Может безопаснее будет использовать БП с трансом и низкой частью полностью изолированной от станка ? С другой стороны компьютеры ведь как-то работают, а там электроника тоже требовательная к качеству питания.
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение shura28 » 22 дек 2017, 19:28

Не стал испытывать судьбу и запитал kflop от usb, так как никаких плат расширения нет и ток потребления должен быть не большой. Вместо БП от компа поставил БП от ОПС на 12в. Он с трансом и АКБ для поддержки штанов.
Электронику заталкал в железный ящик, а силовую часть прикрутил к стальной плите.
Подключение Enable IMG_20171220_160958.jpg

Подключение Enable IMG_20171222_164728.jpg

Решили, что нормальный ящик сделаем, если все заработает как надо.
Вот станок :)
Подключение Enable IMG_20171021_150456.jpg
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

Re: Подключение Enable

Сообщение shura28 » 22 дек 2017, 19:43

Одна ось работает от китайского драйвера leadshine DCS810. Сегодня весь день потратил пытаясь заставить ее работать. От Mach3 работала замечательно, а тут вообще ноль реакции.
В итоге нарыл в инете, что у leadshine-ов есть ограничение по минимальной длительности импульсов step/dir.
Проблема решилась добавлением строчки:
FPGA(STEP_PULSE_LENGTH_ADD) = 42;
shura28
Опытный
 
Сообщения: 103
Зарегистрирован: 27 май 2012, 21:18
Репутация: 25
Медальки:

След.

Вернуться в KFlop

Кто сейчас на конференции

Зарегистрированные пользователи: -Serj-, aftaev, aircannongunner, Bing [Bot], Евжений, Filin, Google [Bot], Humble, Kupfershcmidt, Lead, Malyarka74, Mikhgen, molchec, moscow, nickoass, niksooon, pilot1773, Provodnik, SDAMASK, seregacnc, sroma67, TurtleFly, UAVpilot, Yandex [bot], Питерский, Михаил 7к

Reputation System ©'