Thc для плазмореза своими руками

Система контроля высоты плазменной горелки по напряжению дуги ТНС thc

Купить недорогой контроллер ТНС. Схема ТНС сделать своими руками Atmega8 .

Стоимость готового устройства 15 000 руб. за 1 шт (2 шт. и более по 10 000 руб. )

Версия 2.

Чтобы зайти в настройки — нужно удерживая кнопку SETTING нажать RESET . Там есть пять параметров — ustavka_min, ustavka_max, thc_on_min, thc_on_max, thc_time.

Если измеряемое напряжение между значениями thc_on_min и thc_on_max, то подаётся сигнал THC ON на 10 pin LPT, если напряжение на входе ниже (нет тока плазмы) либо выше (плазма не зажглась или погасла) то сигнал THC ON не подаётся.

ustavka_min, ustavka_max — это значение для крайних положений регулировки ТНС на панели управления.

Если напряжение выше уставки — то подаётся сигнал THC DOWN (12pin), если измеряемое напряжение ниже уставки — то подаётся сигнал THC UP(11pin).

При сработке датчика касания сигнал идёт на 13 pin LPT.


рисовал на скорую руку т.ч. проверяйте, в исходниках (внизу) есть подключение периферии к портам контроллера.
P.s. может кто красиво нарисует — скажу спасибо )) thc3.spl7

Версия 1.

Для изготовления системы ТНС я выбрал микроконтроллер Atmega8 . Потому что у неё питание и логический уровень +5В, в отличие от STM +3,3В.
Принцип работы прост — напряжение плазмы через резисторы поступает на накопительный конденсатор 0,01мк и разряжается динистором на трансформатор, далее через оптрон сигнал приходит на контроллер ATmega8 (получается двойная гальваническая развязка). Он считает количество импульсов, чем выше напряжение плазмы, тем быстрее заряжается конденсатор, значит выше частота разрядов. (примерно 140 импульсов за 0,1сек при 140В)
Если напряжение выше 40В, контроллер подаёт сигнал THC ON .
Уставку значения ТНС считываем через АЦП (с переменного резистора) и если измеренное напряжение меньше (уставка — 2В) то подаётся сигнал THC UP , если больше (уставка + 2 вольта), то подаю сигнал THC DOWN . ВСЁ.

Компилятор мне понравился mikroBasic PRO for AVR. Простой, все библиотеки одинаковые (не нужно где-то качать из разных источников и устанавливать) и включены сразу в программу, много примеров и большой хелпфорум.

Схема ТНС на микроконтроллере ATmega8. (обновлена 09.09.18г)

DA — pc817 (или аналог), VD1- динистор DB3 , C7-0.01 мк 250 в плёночный к73-17
резисторы R8-R13 100 кОм 1Вт, трансформатор Т1 — ферритовый транс. 10-20мГн, он же фильтр синфазных помех из БП компа
при работе плазмы шлейф А1 и А2 замкнуты и заземлены на массу стола,
при поиске металла, когда горелка упирается в поверхность, цепь А1 и А2 размыкается.

Блок включения плазмы
На некоторых ЧПУ слабое звено — блок включения плазмы, т.к. бывают ТАКИЕ помехи, что с этого провода стреляет более чем на 10мм.
Здесь реализована трёх ступенчатая защита — оптрон, трансформатор и реле. Отптосиммистор MOC3083 подаёт 220В на трансформатор 220/6 (либо 220/12 если у вас реле на 12в), 6в через выпрямитель поступает на реле (на 5В), которое включает плазму.

dim thc as word
dim adc_rd as word
dim ustavka as longword

main:
CS10_bit = 1 CS11_bit = 1 CS12_bit = 1 ‘внешний вход счётчика TCNT1
DDRB = %11000000 ‘b6-THC ON b7-THC UP
DDRC = %00000000
DDRD = %01000000 ‘d6-THC DOWN
PORTB = %00111111
PORTC = 255
PORTD = %10111111
ADC_Init()

While true
TCNT1H = 0 ‘обнуляю старшие разряды счётчика
TCNT1L = 0 ‘обнуляю младшие разряды счётчика
delay_ms(100) ‘пауза 0,1сек
Lo(thc) = TCNT1L ‘читаю младший байт счётчика
Hi(thc) = TCNT1H ‘читаю старший байт счётчика
adc_rd = ADC_Read(1) ‘читаю значение АЦП (положение регулировки высоты горелки)
ustavka = 90 + (70 * adc_rd / 1024) ‘значение уставки ТНС от положения крутилки
if thc > 20 then PORTB.6=1 ‘если напряжение плазмы больше 40в
if thc ‘если напряжение меньше (допуск 2В), то включаем THC UP
if thc > (ustavka + 2) then PORTD.6=1 else PORTD.6=0 end if ‘если напряжение больше (допуск 2В), то включанем ТНС DOWN
else
PORTB.6=0 ‘ THC ON
PORTB.7=0 ‘ THC UP
PORTD.6=0 ‘ THC DOWN
end if
wend
end.

Программа для версии 2 с ЖК дисплеем:

program THC
‘D4 кнопка —
‘D3 кнопка +
‘D2 кнопка Настр
‘D1 — lcd D7
‘D0 — lcd D6
‘C5 — lcd D5
‘C4 — lcd D4
‘C3 — lcd E
‘C2 — lcd RS
‘C1 — ADC1
‘D5 — imp THC
‘D6 — in probe
‘D7 — out 13 (probe)
‘B0 — out 10 (tnc on)
‘B6 — out 12 (thc down)
‘B7 — out 11 (thc up)
dim probe_out as sbit at PORTD.7
dim thc_on as sbit at PORTB.0
dim thc_up as sbit at PORTB.7
dim thc_down as sbit at PORTB.6
dim probe_in as sbit at PIND.6
dim knopka_minus as sbit at PIND.4
dim knopka_plus as sbit at PIND.3
dim knopka_setting as sbit at PIND.2

dim LCD_RS as sbit at PORTC2_bit
dim LCD_EN as sbit at PORTC3_bit
dim LCD_D4 as sbit at PORTC4_bit
dim LCD_D5 as sbit at PORTC5_bit
dim LCD_D6 as sbit at PORTD0_bit
dim LCD_D7 as sbit at PORTD1_bit

dim LCD_RS_Direction as sbit at DDC2_bit
dim LCD_EN_Direction as sbit at DDC3_bit
dim LCD_D4_Direction as sbit at DDC4_bit
dim LCD_D5_Direction as sbit at DDC5_bit
dim LCD_D6_Direction as sbit at DDD0_bit
dim LCD_D7_Direction as sbit at DDD1_bit

dim thc as word
dim adc_rd, adc_temp, ustavka_max, ustavka_min, thc_on_min, thc_on_max, ustavka_word as word
dim ustavka as longword
dim txt5 as string[5]
dim txt3 as string[3]
dim thc_time, i, lcd_clear as byte

main:
CS10_bit = 1 CS11_bit = 1 CS12_bit = 1 ‘внешний вход счётчика TCNT1
DDRB = %11000001
PORTB = %00111110
DDRC = %00111100
PORTC = %11000011
DDRD = %10000011
PORTD = %01111100
ADC_Init()
Lcd_Init()
Lcd_Cmd(_LCD_CLEAR)
Lcd_Cmd(_LCD_CURSOR_OFF)
LCD_Out(1,1,»Armatura-ural.ru»)
delay_ms(300)

hi(ustavka_min) = EEPROM_Read(00)
lo(ustavka_min) = EEPROM_Read(01)
hi(ustavka_max) = EEPROM_Read(02)
lo(ustavka_max) = EEPROM_Read(03)
hi(thc_on_min) = EEPROM_Read(04)
lo(thc_on_min) = EEPROM_Read(05)
hi(thc_on_max) = EEPROM_Read(06)
lo(thc_on_max) = EEPROM_Read(07)
thc_time = EEPROM_Read(08)

if ustavka_max = ustavka_min then ustavka_max = 200 ustavka_min = 80 thc_on_min = 70 thc_on_max=220 thc_time=100 end if

if knopka_setting = 0 then
Lcd_Cmd(_LCD_CLEAR)
LCD_Out(1,1,»ustavka_min»)
while knopka_setting = 0 wend
while knopka_setting = 1
if knopka_plus =0 then ustavka_min = ustavka_min + 1 while knopka_plus=0 wend end if
if knopka_minus=0 then ustavka_min = ustavka_min — 1 while knopka_minus=0 wend end if
WordToStr(ustavka_min, txt5)
LCD_Out(2,1,txt5)
wend
while knopka_setting = 0 wend
Lcd_Cmd(_LCD_CLEAR)
LCD_Out(1,1,»ustavka_max»)
while knopka_setting = 1
if knopka_plus =0 then ustavka_max = ustavka_max + 1 while knopka_plus=0 wend end if
if knopka_minus=0 then ustavka_max = ustavka_max — 1 while knopka_minus=0 wend end if
WordToStr(ustavka_max, txt5)
LCD_Out(2,1,txt5)
wend
while knopka_setting = 0 wend
Lcd_Cmd(_LCD_CLEAR)
LCD_Out(1,1,»thc_on_min»)
while knopka_setting = 1
if knopka_plus =0 then thc_on_min = thc_on_min + 1 while knopka_plus=0 wend end if
if knopka_minus=0 then thc_on_min = thc_on_min — 1 while knopka_minus=0 wend end if
WordToStr(thc_on_min, txt5)
LCD_Out(2,1,txt5)
wend
while knopka_setting = 0 wend
Lcd_Cmd(_LCD_CLEAR)
LCD_Out(1,1,»thc_on_max»)
while knopka_setting = 1
if knopka_plus =0 then thc_on_max = thc_on_max + 1 while knopka_plus=0 wend end if
if knopka_minus=0 then thc_on_max = thc_on_max — 1 while knopka_minus=0 wend end if
WordToStr(thc_on_max, txt5)
LCD_Out(2,1,txt5)
wend
while knopka_setting = 0 wend
Lcd_Cmd(_LCD_CLEAR)
LCD_Out(1,1,»thc_time»)
while knopka_setting = 1
if knopka_plus =0 then thc_time = thc_time + 1 while knopka_plus=0 wend end if
if knopka_minus=0 then thc_time = thc_time — 1 while knopka_minus=0 wend end if
ByteToStr(thc_time, txt3)
LCD_Out(2,1,txt3)
wend
EEPROM_Write(00, hi(ustavka_min))
EEPROM_Write(01, lo(ustavka_min))
EEPROM_Write(02, hi(ustavka_max))
EEPROM_Write(03, lo(ustavka_max))
EEPROM_Write(04, hi(thc_on_min))
EEPROM_Write(05, lo(thc_on_min))
EEPROM_Write(06, hi(thc_on_max))
EEPROM_Write(07, lo(thc_on_max))
EEPROM_Write(08, thc_time)
end if

While true
TCNT1H = 0 ‘обнуляю старшие разряды счётчика
TCNT1L = 0 ‘обнуляю младшие разряды счётчика
for i = 0 to thc_time
delay_ms(1)
if probe_in = 0 then probe_out = 1 else probe_out = 0 end if
next i
Lo(thc) = TCNT1L ‘читаю младший байт счётчика
Hi(thc) = TCNT1H ‘читаю старший байт счётчика

adc_temp = ADC_Read(1)
if ((adc_rd > (adc_temp + 2)) or (adc_rd 20 then lcd_clear = 0 Lcd_Cmd(_LCD_CLEAR) end if
LCD_Out(2,12,txt5)
WordToStr(thc, txt5)
LCD_Out(1,12,txt5)

if probe_in = 0
then probe_out = 1 LCD_Out(1,5,»-Touch-«)
else probe_out = 0 LCD_Out(1,5,» «)
end if

if ((thc thc_on_min)) then
LCD_Out(1,1,»ON «)
thc_on = 1
if thc = ustavka_word then
thc_down=0
thc_up=0
LCD_Out(2,1,»OK «)
end if
if thc > ustavka_word then
thc_down=1
thc_up=0
LCD_Out(2,1,»DOWN»)
end if
if thc

Источник

Сборка ЧПУ стола под управлением компьютера с программой Mach3 .

Ниже описана сборка ЧПУ стола своими руками под управлением компьютера с программой Mach3 .

Сейчас плазморезы с ЧПУ под управлением компьютера ( Mach3 ) мы не делаем, перешли на применение автономного контроллера ЧПУ с ТНС собственного производства.

ТНС (Torch Height Control )
Автоматический контроль высоты плазменной горелки по напряжению дуги.

«Сделать сложно и дорого — легко. Сделать просто и разумно — гораздо сложнее.» Александр Журба.

Начнём с теории. При включении аппарата плазменной резки на катод (электрод) и деталь подаётся напряжение примерно 300В, т.к. катод и сопло не имеют контакта, разделены изолирующим диффузором, то ничего не происходит ток через эту цепь не идёт. Для «поджига» плазмы используется слабый высоковольтный разряд, длина его дуги до 20-30мм, как искра зажигания у машины или искра от кремния зажигалки. Эта искра создает токопроводящий мостик, через который пробивается рабочий ток. (хочу напомнить, что плазма — проводник). Источник тока плазмы контролирует силу тока, а напряжение имеет большой разбег 70-250В. Чем дальше горелка от детали тем больше длина плазмы тем больше сопротивление цепи вследствие чего выше напряжение. Для того чтобы держать сопло плазменной горелки на расстоянии 2-4мм от детали, нужно ориентируясь по напряжению 90-120В, управлять приводом оси Z .

Существует множество систем контроля высоты по напряжению дуги. И у всех есть свои преимущества и недостатки (в основном проблемы с надёжностью и ремонтопригодностью). Источник тока для плазменной резки в особенности дешёвые китайские излучают огромнейшие помехи во всех диапазонах. Для наглядности достаточно провести эксперимент: прикрепите кусочки проводов к обычному светодиоду, при включенной плазме он будет мигать в другом конце помещения. При работе плазменной резки глушится радио, телевизор, связь и виснут незаземлённые компьютеры.

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

Сделать систему автоматического контроля высоты плазменной горелки по напряжению дуги на микроконтроллере AVR ( например ATmega8, ATmega32) пара пустяков. Вопрос в ремонтопригодности. Если такая система на микроконтроллере перестанет работать, то отремонтировать её может только её создатель, так же, если изделие на микроконтроллере нуждается в ремонте — то проще сделать новое с нуля , чем чинить чужое.

При разработке системы автоматического контроля высоты плазменной дуги прежде всего было уделено внимание простоте конструкции, и возможности отремонтировать своими силами обычному электрику в любом колхозе или ауле.

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

Схема ТНС системы автоматического контроля высоты плазменной горелки ЧПУ плазмореза

Вольтметр имеет три положения (установлены ограничители хода, и отражатель (маленький кусочек фольги)) «Меньше», «Норма», «Больше». В положении «Меньше» срабатывает первый оптодатчик и первое реле, в положении «Больше» срабатывает второй оптодатчик и второе реле, в положении «Норма» оба оптодатчика и реле в выключенном состоянии.

При включении источника тока плазмы напряжение на входе 300В, стрелка отражает луч оптодатчика «Больше», срабатывает первое реле и мотор опускает горелку. Происходит контакт горелки с деталью, загорается плазменная дуга, напряжение падает до 60В, стрелка переходит в положение «Меньше», срабатывает второй оптодатчик и второе реле, мотор поднимает горелку, до тех пор пока не будет положение стрелка «Норма». Когда источник тока плазмы выключается стрелка переходит в положение «Меньше» и второе реле поднимает горелку до срабатывания ограничивающего концевика. (Лампочка (на видео) включена параллельно моторчику для уменьшения холостого «выбега», т.е. без лампочки или гасящего резистора после срабатывания концевика моторчик продолжает вращаться по инерции, а гасящее сопротивление (лампочка) «тормозит» моторчик после отключения питания)

С использованием шагового двигателя и под управлением оси Z программой Mach3

Основа как описано выше, только в приводе оси Z задействована программа Mach3 преимущество данного варианта — точная высота прокола и расширенные настройки ТНС.

2 — шаг мотора X ,
3 — направление мотора Х,
4 — шаг мотора Y ,
5 — направление мотора Y ,
6 — шаг мотора Z ,
7 — направление мотора Z ,
8 — выход включения плазмы,
9 — выход +5в для подтяжки входов
10 — вход THC ON сигнал включения ТНС,
11 — вход касания поверхности,
12 — вход THC UP сигнал ТНС вверх,
13 — вход THC DOWN сигнал ТНС вниз

Тактика работы: пример G кода

G0 X50.0000 Y 5 0.0000 ‘ холостое перемещение
G31 Z-150 F400 ‘опускаем до касания до -150 со скоростью 400 мм в минуту
G92 Z-4 ‘обозначаем Z как -4
G0 Z1 ‘поднимаемся до 1мм
M3(PLasma On) ‘ включаем плазму
G4 P0.5000 ‘ ждём 0,5 сек
G1 X0.0000 Y 0.0000 F600.00 ‘ рабочее перемещение со скоростью 600 мм в минуту
G4P0.50
M5 (Plasma Off)
G0 Z50 ‘ поднимаем голову на 50мм
M30

или тоже самое можно организовать с применением макросов
C:\Mach3\macros\plasma

m3.m1s
ActivateSignal(Output2) ‘подаем +5В на выход 2 ЛПТ
Code «G31 Z-50 F1000» ‘опускаем до касания до -50 со скоростью 1000
While IsMoving() ‘ Подождать пока произойдет касание
Wend
Code «G92 Z-3» ‘обозначаем Z как -3
Code «G0 Z1» ‘поднимаемся до 1мм
While IsMoving()
Wend
DoSpinCW() ‘включаем плазму
Code «G4 P0.5000» ‘пауза 0,5 сек
Code «F1000» ‘

m5.m1s
Code «G4 P0.5000» ‘пауза 1 сек
DoSpinStop() ‘выключаем плазму
DeactivateSignal(Output2) ‘подаем 0 на выход 2 ЛПТ
Code «G0 Z100»
While IsMoving()
Wend

Тогда тот же код будет таким:

G0 X50.0000 Y 5 0.0000 холостое перемещение
M3(PLasma On) включаем плазму
G1 X0.0000 Y 0.0000 рабочее перемещение
M5 (Plasma Off)
M30

Для редактирования файлов макроса и g- кодов пользуйтесь этим блокнотом https://notepad-plus-plus.org/

Установите программу Pronest
Скопируйте в папку CFF постпроцессор для mach3 Mach3_NO_Z.cff
Настройка Pronest очень простая и русский интерфейс.

Чертёж самодельная Плазменная горелка схема сделать своими руками

Источник

Читайте также:  Как своими руками сделать тюбинг своими руками
Оцените статью