So-net無料ブログ作成

巻き線機2回目テスト [CNC]

こんにちは 巻き線Gコードは100回と75回の繰り返し、

全部書くと大変なんで、インクリメンタルとマクロを 

なつおさん の所で教えて頂きました。

少し判らない分 MACH フォーラムで探したらよく似たのがあって 少しアレンジしました。

線送りネジはルーロンのベアリングを水栓金具のサイズ替えアダプタが丁度の寸法でしたので

差し込んで、送りアームと共止めしました。

スライダーはトムソンIKOのBSPG 1550 SL が残っていたので付けました、始めは取り付け板に付けて、

チャンネルベースに付けたのですが、部品が増えるほどややこしいので、取り付け板を省略しました。

テスト用のコードです、後ろに付けた回転カウンタは176回で止まりました。

(Coil2.tap)

g91
m05
f5000m3
g0 x0y0

m98 p 02 l 100
g01 x0.1y0.360
m98 p 03 l 75
(ending code)                 (ending code goes here)
g0 x0
m30

o 02
g01 x5y0.181
g01 x-5y0.181
m99
%

o 03
g01 x4.5y0.181
g01 x-4.5y0.181
m99
%

sIMG_0741.jpg

 


コメント(0) 

16f1933の最初の設定 [jalv2_PIC]

;16f1933の基本設定 (これで合っているのか自信なし)

;クロックを内部8MHz にしてPLLX4 で32MHz にする
;var volatile byte    OSCCON                           at 0b1111_0100
;OSCCON = 1111_01xx 内部32MHz

;OSCSTAT = 0b1110_1111 不要

;PWM出力はRCフィルターを通りDAC出力として使う、
;次にコンパレータPOSに入って測定電流(コンパレータNEG)に入って
;C1,2OUTからゲートドライバ遮断に使用される、
;同時にA,/A,B,/B と共に一定時間遮断を続け電流が減衰するのを待ち次のサイクルに備える。
;PWMの値は60進テーブル、64進テーブルから選択し、
;60進  1,2,3,4,5,6,10,12,15,20,30,60 と12(9)の選択が出来る。
; 0.0166 0.033 0.05   0.1 0.166 0,2 (0.25 0.5 1.0 64と共通これは省略出来る)
;64進 1,2,4,8,16,32,64 と7の選択が出来る(1つにテストモード自動歩進を入れる))
;0.0156 0.0312  0.0625 0.125         0.25 0.5 1.0
;60/64を分けないで一連の選択にすると9+7で4bitのSWが入り
;60/64に1bit使うと 1+4bitで選択できる。
;各ベクトルは実際には半分のテーブルを折り返し、90度ずらせてやると
;15+16で済んでしまう
;分割歩進テーブルは7と8が必要です。
;分割歩進に従ってベクトルを表すUP/DOWNカウンタが必要です。
;ベクトルに従って Aまたは/A Bまたは/B出力を切り替えます。

;基準電圧をADC(9)で読み込み、ベクトルテーブルに整数乗算四捨五入したものがPWM値となり
;コイル電流に反映されます。

;DAC出力はRA1と重なるので使えず、電源電圧(安定化)した所からVRで設定します。
;リセット後起動まで出力にはHが出されますが、ゲートドライバの遮断にも入るので問題有りません。
;IR2113もゲートドライバは本来ハイサイドローサイド型ですが許容電圧範囲に従って、
;ハイサイド側をローサイドに接続してローサイドドライバ2回路として使用します。

include 16f1933    ;(.jalは書いてはいけない)                      -- target PICmicro
--
-- This program assumes that a 32 MHz resonator or crystal
-- is connected to pins OSC1 and OSC2.
-- (unspecified configuration bits may cause a different frequency!)
pragma target clock 20_000_000      -- oscillator frequency
-- configuration memory settings (fuses)
pragma target OSC       INTOSC_NOCLKOUT                   -- intosc
pragma target PLLEN      P4             -- PLL on
pragma target WDT       disabled        -- no watchdog
pragma target DEBUG      disabled        -- no debugging
pragma target LVP       disabled        -- no Low Voltage Programming
pragma target MCLR      INTERNAL        -- reset externally

--
-- Switch analog ports to digital mode (if analog module present).

procedure analog_set() is
    pragma inline
    ANSELA = 0b0001_1111          -- all analog
    ANSELB = 0b0000_0111          -- all digital
end procedure


procedure adc_set() is ;CHS9 = 01001
    pragma inline
    ADCON0 = 0b0100_1011           -- enable ADC
    ADCON1 = 0b0000_0000
end procedure

procedure comparator_on() is
    pragma inline
    CM1CON0 = 0b1110_0110         -- enable comparator
    CM1CON1 = 0b0000_0000
    CM2CON0 = 0b1110_0110         -- enable 2nd comparator
    CM2CON1 = 0b0000_0001
end procedure

procedure set_digital_io() is
    pragma inline
    analog_set()
    adc_set()
    comparator_on()
end procedure
--
FVRCON = 0b1000_0010 ;ADC-9 で2.048vとして使う

pin_C12IN0_NEG_direction  =  input
pin_C12IN1_NEG_direction  =  input
pin_C2IN_POS_direction      =  input
pin_C1IN_POS_direction      =  input
pin_C1OUT_direction          =  output
pin_C2OUT_RA5_direction      =  output
pin_B0_direction              =  output
pin_B1_direction              =  output
pin_B2_direction              =  output
pin_AN9_direction              =  input
pin_B4_direction              =  output
pin_B5_direction              =  output
pin_B6_direction              =  output
pin_B7_direction              =  output
pin_P2A_RC1_direction       =  output
pin_CCP1_direction           =  output

pin_C3_direction =  output

-- These configuration bit settings are only a selection, sufficient for
-- this program, but other programs may need more or different settings.
--
set_digital_io()                      -- make all pins digital I/O cansel
--
-- Specify the pin to which the LED is connected.
-- A low current (2 mA) led with 2.2K series resistor is recommended
-- since not all pins may be able to drive an ordinary 20mA led.
alias   led       is pin_C3
pin_C3_direction =  output
--
forever loop -- Lチカ
    led = on
    _usec_delay(250_000)
    led = off
    _usec_delay(250_000)
end loop
--




;ccp2,3 は他の端子にも出来る?
;
;入出力
;rb0は int を選ぶ ステップの検出
;rb1は dir(方向) を選ぶ
;rb2は Zout(原点位相) を選ぶ

;rb4は /B を選ぶ
;rb5は B を選ぶ
;rb6は /A を選ぶ
;rb7は A を選ぶ
;
;rb4は adc AN9 ADCON0 = 001001S1 を選ぶ SUTATO ENABLE
;adc a11,13 は他のにも選べる
;
;FVRCON FVREN FVRRDY(1) - - CDAFVR1 CDAFVR0 ADFVR1 ADFVR0
;FVR_BUFFER1
;1.024V、2.048V または 4.096V から選ぶ
;
;空きpin
;ra6,7
;rc0,3,4,5,6
;re3 reset 内部で使う

マニュアルを見直し少し変更しました。

sWS001382.JPG

 

 

 


コメント(0) 

16f1933 のPIN割り当て [ステッピング駆動]

基板はPICとアイソレータやフィルターなどが付いていず、50%くらいしかできていません。

sIMG_0668.jpg

3Aのパワー素子が4個入ったモジュールを2個載せています。

2005-07-15-4.jpg

ユニポーラ型で4Aのコイルが4個付いています。

これを抵抗制御で駆動するとものすごい力です。

 

電流ベクトル値をVRで設定しADCで読み込み内部テーブルのベクトル値に掛けて、

PWMに出しますA,/Aで1ch B../Bで1chの合計2chでベクトルを表します。

一方パワー素子電流は3AX8個有り6Ax4chです。

パワーはMOSFETですが IR2113(2chと遮断) 機能を持つゲートドライバで、

1chで2個のMOSFETを並列駆動に宛て A,のパワー素子 B,のパワー素子の4個を駆動します。

2個でA、/A、B、/B1と4個のコイルを駆動し1個のモーターを駆動できます。

モーターの電源、ゲートドライバ電源、PIC電源がモーター側に必要です。

操作元からは5Vぼ信号でフォトカプラを通してPICに動作指令を送り、Z位置信号を送り返します。

 

 


コメント(3) 

アセンブルの画像 [CVASM16]

BANK設定はあるが。cvasm16でコンパイルできました。

WS001369.JPG

 


コメント(0) 

巻き線機 [ステッピング駆動]

駆動部品をテストしました。

sIMG_0655.jpg

 


コメント(2) 
メッセージを送る

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。