導航:首頁 > 編程語言 > 步進電機編程實例

步進電機編程實例

發布時間:2022-12-30 20:28:35

① 討個步進電機的程序

轉載
單片機控制步進電機
步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到准確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
一、步進電機常識
常見的步進電機分三種:永磁式(PM),反應式(VR)和混合式(HB),永磁式步進一般為兩相,轉矩和體積較小,步進角一般為7.5度或15度;反應式步進一般為三相,可實現大轉矩輸出,步進角一般為1.5度,但雜訊和振動都很大。在歐美等發達國家80年代已被淘汰;混合式步進是指混合了永磁式和反應式的優點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為0.72度。這種步進電機的應用最為廣泛。
二、永磁式步進電機的控制
下面以電子愛好者業余製作中常用的永磁式步進電機為例,來介紹如何用單片機控制步進電機。
圖1是35BY型永磁步進電機的外形圖,圖2是該電機的接線圖,從圖中可以看出,電機共有四組線圈,四組線圈的一個端點連在一起引出,這樣一共有5根引出線。要使用步進電機轉動,只要輪流給各引出端通電即可。將COM端標識為C,只要AC、C、BC、C,輪流加電就能驅動步進電機運轉,加電的方式可以有多種,如果將COM端接正電源,那麼只要用開關元件(如三極體),將A、B、 輪流接地。
下表列出了該電機的一些典型參數:
表1 35BY48S03型步機電機參數型號 步距角 相數 電壓 電流 電阻 最大靜轉距 定位轉距 轉動慣量35BY48S03 7.5 4 12 0.26 47 180 65 2.5
有了這些參數,不難設計出控制電路,因其工作電壓為12V,最大電流為0.26A,因此用一塊開路輸出達林頓驅動器(ULN2003)來作為驅動,通過P1.4~P1.7來控制各線圈的接通與切斷,電路如圖3所示。開機時,P1.4~P1.7均為高電平,依次將P1.4~P1.7切換為低電平即可驅動步進電機運行,注意在切換之前將前一個輸出引腳變為高電平。如果要改變電機的轉動速度只要改變兩次接通之間的時間,而要改變電機的轉動方向,只要改變各線圈接通的順序。
圖1 35BY48S03型步進電機外形圖
圖2 35BY48S03型步進電機的接線圖
圖3 單片機控制35BY48S03型步進電機的電路原理圖
三、步進電機的驅動實例
要求:控制電路如圖3所示,開機後,電機不轉,按下啟動鍵,電機旋轉,速度為25轉/分,按下加1鍵,速度增加,按下減1鍵,速度降低,最高速度為100轉/分,最低轉帶為25轉/分,按下停止鍵,電機停轉。速度值要求在數碼管上顯示出來。
1.要求分析
按上面的分析,改變轉速,只要改變P1.0~P1.3輪流變低電平的時間即可達到要求,這個時間不應採用延時來實現,因為會影響到其他功能的實現。這里以定時的方式來實現。下面首先計算一下定時時間。
按要求,最低轉速為25轉/分,而上述步進電機的步距角為7.5,即每48個脈沖為1周,即在最低轉速時,要求為1200脈沖/分,相當於50ms/脈沖。而在最高轉速時,要求為100轉/分,即48000脈沖/分,相當於12.5ms/脈沖。可以列出下表
表1 步進電機轉速與定時器定時常數關系
速度 單步時間(us) TH1 TL1 實際定時(us)
25 50000 76 0 49996.8
26 48077 82 236 48074.18
27 46296 89 86 46292.61
28 44643 95 73 44640.155
⋯ … … … …
100 12500 211 0 12499.2
表中不僅計算出了TH1和TL1,而且還計算出了在這個定時常數下,真實的定時時間,可以根據這個計算值來估算真實速度與理論速度的誤差值。
表中TH1和TL1是根據定時時間算出來的定時初值,這里用到的晶振是11.0592M。有了上述表格,程序就不難實現了,使用定時/計數器T1為定時器,定時時間到後切換輸出腳即可。
2.程序實現
定義DSB-1A實驗板的S1為啟動鍵,S2為停止鍵,S3為加1鍵,S4為減1鍵,程序如下:
StartEnd bit 01H ;起動及停止標志
MinSpd EQU 25 ;起始轉動速度
MaxSpd EQU 100 ;最高轉動速度
Speed DATA 23H ;流動速度計數
DjCount DATA 24H ;控制電機輸出的一個值,初始為11110 111
Hidden EQU 10H ;消隱碼
Counter DATA 57H ;顯示計數器
DISPBUF DATA 58H ;顯示緩沖區
ORG 0000H
AJMP MAIN
ORG 000BH
JMP DISP
ORG 001BH
JMP DJZD
ORG 30H
MAIN:
MOV SP,#5FH
MOV P1,#0FFH
MOV A,#Hidden
MOV DispBuf,A
MOV DispBuf+1,A
MOV DispBuf+2,A
MOV DjCount,#11110111B
MOV SPEED,#MinSpd;起始轉動速度送入計數器
CLR StartEnd;停轉狀態
MOV TMOD,#00010001B ;
MOV TH0,#HIGH(65536-3000)
MOV TL0,#LOW(65536-3000)
MOV TH1,#0FFH;
MOV TL1,#0FFH
SETB TR0
SETB EA
SETB ET0
SETB ET1
LOOP: ACALL KEY ;鍵盤程序
JNB F0,m_NEXT1 ;無鍵繼續
ACALL KEYPROC ;否則調用鍵盤處理程序
m_NEXT1:
MOV A,Speed
MOV B,#10
DIV AB
MOV DispBuf+5,B ;最低位
MOV B,#10
DIV AB
MOV DispBuf+4,B
MOV DispBuf+3,A
JB StartEnd,m_Next2
CLR TR1 ;關閉電機
JMP LOOP
ORL P1,#11110000B
m_Next2:
SETB TR1 ;啟動電機
AJMP LOOP ;主程序結束
;---------------------------------------
D10ms:
⋯⋯
;---------延時程序,鍵盤處理中調用
KEYPROC:
MOV A,B ;獲取鍵值
JB ACC.2,StartStop ;分析鍵的代碼,某位被按下,則該位為1
JB ACC.3,KeySty
JB ACC.4,UpSpd
JB ACC.5,DowSpd
AJMP KEY_RET
StartStop:
SETB StartEnd 啟動
AJMP KEY_RET
KeySty:
CLR StartEnd; ;停止
AJMP KEY_RET
UpSpd:
INC SPEED;
MOV A,SPEED
CJNE A,#MaxSpd,K1 ;到了最多的次數
DEC SPEED ;是則減去1,保證下次仍為該值
K1:
AJMP KEY_RET
DowSpd:
DEC SPEED
MOV A,SPEED
CJNE A,#MAXSPD,KEY_RET;不等(未到最大值),返回
MOV SPEED,#MinSpd;
KEY_RET:
RET
KEY:
⋯⋯獲取鍵值的程序
RET
DjZd: ;定時器T1用於電機轉速控制
PUSH ACC
PUSH PSW
MOV A,Speed
SUBB A,#MinSpd ;減基準數
MOV DPTR,#DjH
MOVC A,@A+DPTR
MOV TH1,A
MOV A,Speed
SUBB A,#MinSpd
MOV DPTR,#DjL
MOVC A,@A+DPTR
MOV TL1,A
MOV A,DjCount
CPL A
ORL P1,A
MOV A,DjCount
JNB ACC.7,d_Next1
JMP d_Next2
d_Next1:
MOV DjCount,#11110111B
d_Next2:
MOV A,DjCount
RL A
MOV DjCount,A ;回存
ANL P1,A
POP PSW
POP ACC
RETI
DjH: DB 76,82,89,95,100,106,110,115,119,123,12……
DjL: DB 0,236,86,73,212,0,214,96,163,165
⋯⋯
DISP: ;顯示程序
POP PSW
POP ACC
⋯⋯
RETI
BitTab: DB 7Fh,0BFH,0DFH,0EFH,0F7H,0FBH
DISPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
END
3.程序分析
本程序主要由鍵盤程序、顯示器程序、步進電機驅動程序三部份組成,主程序首先初始化各變數,將顯示器的高3位消隱,步進電機驅動的各引腳均輸出高電平,然後調用鍵盤程序,並作判斷,如果有鍵按下,則調用鍵盤處理程序,否則直接轉下一步。下一步是將當前的轉速值轉換為BCD碼,送入顯示緩沖區;接著判斷StartEnd這個位變數,是「1」還是「0」,如果是「1」,則開啟定時器T1,否則關閉定時器T1,為防止關閉時某一相線圈長期通電,因此,在關閉定時器T1時,將P1.0~P1.3均置高。至此,主程序的工作即結束。這里為簡便起見,這里沒有做高位「0」消隱的工作,即如果速度為10轉/分,則顯示值「010」,讀者可以自行加入相關的代碼來處理這一工作。
步進電機的驅動工作是在定時器T1的中斷服務程序中實現的,由前述分析,每次的定時時間到達以後,需要將P1.0~P1.3依次接通,程度中用了一個變數DjCntr來實現這一功能,在主程序初始化時,該變數被賦予初值11110111B,進入到定時中斷以後,將該變數取出送ACC累加器,並在累加器中進行左移,這樣,該數值就變為11101111,然後將該數與P1相「與」,此時,P1.4即輸出低電平,第二次進入中斷時,先將該數取反,成為0001 0000,然後將該數與P1相「或」,這樣,P1.4即輸出高電平,關斷了相應的線圈,然後將該數重新取出,並作左移,即 1110,1111右移成為1101 1111,將該數與P1相「與」,這樣P1.5即輸出低電平,依次類推,P1.7~P1.4即循環輸出低電平。當這一數據變為01111111後,需要作適當的改動,將數據重新變回 1111 0111,進行第二次循環,相關代碼,請讀者自行分析。
定時時間又是如何確定的呢?這里用的是查表的方法,首先用Excel計算得出在每一種轉速下的TH值和TL值,然後,分別放入DjH和DjL表中,在進入T1中斷程序之後,將速度值變數Speed送入累加器ACC,然後減去基數25,使其基數從0開始計數,然後分別查表,送入TH1和TL1,實現重置定時初值的目的。
看完這一部份內容以後,請讀者自行完成以下工作:
1. 更改程序,將S1定義為「啟動/停止」,而S2定義為「方向」,按下S2,切換電機旋轉方向。
2. 更改程序,要求轉速從1到100。
3. 更改程序,實現首位無效零消隱。

;步進電機正轉
loop:mov R3,#0FFh ;30h送ff即-1
main:INC R3
mov a,R3
tt: MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A ;送顯示
mov r7,#5
dec r7
lcall delay ;延時一段時間
cjne a,#06H,main ;如果是最後一個數據重新開始
ljmp loop ; 否則R3 清除
ret
TAB: DB 03H,09H,0CH,06H ;步進電機正轉表

DELAY: ; 延時程序

MOV R5,#255
D3:MOV R2,#25
D4: DJNZ R2,D4
DJNZ R5,D3
RET

;步進電機控製程序p3.2正轉,p3.3反轉,p3.4停止 步進電機接p1.0p1.1p1.2p1.3
org 00h
stop: orl p1,#0ffh ; 步進電機停止
loop:jnb p3.2,for2 ; 如果p3.2按下正轉
jnb p3.3,rev2 ; 如果p3.3按下反轉
jnb p3.4,stop1 ; 如果p3.4按下停止
jmp loop ;反復監測鍵盤
for: mov r0,#00h ;正轉到tab取碼指針初值
for1:mov a,r0 ;取碼
mov dptr,#table ;
movc a,@a+dptr
jz for ;是否到了結束碼00h
cpl a ;把acc反向
mov p1,a ;輸出到p1開始正轉
jnb p3.4,stop1 ; 如果p3.4按下停止
jnb p3.3,rev2 ; 如果p3.3按下反轉
call delay ;轉動的速度
inc r0 ;取下一個碼
jmp for1 ;繼續正轉
rev:mov r0,#05h ;反轉到tab取碼指針初值
rev1:mov a,r0
mov dptr,#table ;取碼
movc a,@a+table
jz rev ;是否到了結束碼00h
cpl a ;把acc反向
mov p1,a ;輸出到p1開始反轉
jnb p3.4,stop1 ; 如果p3.4按下停止
jnb p3.3,rev2 ; 如果p3.3按下反轉
call delay ;轉動的速度
inc r0 ;取下一個碼
jmp rev1 ;繼續反轉
stop1:call delay ; 按p3.4的消除抖動
jnb p3.4,$ ; p3.4放開否?
call delay ;放開消除抖動
jmp stop

for2:call delay ; 按p3.2的消除抖動
jnb p3.2,$ ; p3.2放開否?
call delay ;放開消除抖動
jmp for

rev2:call delay ; 按p3.3的消除抖動
jnb p3.3,$ ; p3.3放開否?
call delay ;放開消除抖動
jmp rev

delay:mov r1,#40 ;步進電機的轉速20ms
d1:mov r2,#248
djnz r2,$
djnz r1,d1
ret
table:
db 03h,09h,0ch,06h ;正轉表
db 00 ;正轉結束
db 03h,06h,0ch,09h ;反轉
db 00 ;反轉結束
end
;步進電機正轉,反轉各3圈
org 00h
x1:mov r3,#250
start:mov r0,#00h
start1:
mov p1,#0ffh
mov a,r0
mov dptr,#table
movc a,@a+dptr
jz start
cpl a
mov p1,a
call delay
inc r0
djnz r3,start1
mov r3,#250
start2:
mov p1,#0ffh
mov r0,#05
start3:mov a,r0
mov dptr,#table
movc a,@a+dptr

jz start2
cpl a
mov p1,a
call delay
inc r0
djnz r3,start3
jmp x1
delay: mov r5,#40;延時。
d1: mov r6,#10
d2: mov r7,#18
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
table:
db 03h,09h,0ch,06h
db 00
db 06h,0ch,09h,03h
db 00
end

;步進電機正反快慢程序
org 00h
x1:mov r3,#48 ;一圈48步
start:mov r0,#00h ;正轉取碼初值
start1:
mov p1,#0ffh ;先停止
mov a,r0
mov dptr,#table
movc a,@a+dptr
jz start ;是否到了結束碼00?
cpl a
mov p1,a ;輸出運轉
call delay ;調用慢速的延時轉動
inc r0 ;取碼指針加1取下一個碼
djnz r3,start1 ;是否走了48步?
mov r3,#48 ;是則重新設定48步
start2:
mov p1,#0ffh
mov r0,#05 ;逆轉的取碼初值
start3:mov a,r0
mov dptr,#table
movc a,@a+dptr

jz start2
cpl a
mov p1,a
call delay2
inc r0
djnz r3,start3
jmp x1 ; 重復開始

DELAY: ; 延時程序 (慢速)
MOV R7,#255
D1:MOV R6,#50
D2: DJNZ R6,D2
DJNZ R7,D1
RET

DELAY2: ; 延時程序 (快速)
MOV R5,#255
D3:MOV R2,#25
D4: DJNZ R2,D4
DJNZ R5,D3
RET

table:
db 03h,09h,0ch,06h ;正轉表
db 00
db 06h,0ch,09h,03h ;反轉表
db 00
end

;遙控電機程序, 按遙控器0-9步進電機正轉0-9步,按遙控器11-19步進電器分別反轉
;0-9步,同時數碼管分別顯示當前的數字!
org 00h
JMP MAIN
ORG 30H
MAIN:
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
START:
JB P3.7,$ ;等待遙控信號出現
SB:
MOV R4,#8 ;8毫秒為高電平錯誤
SBA:
MOV R5,#250
SBB:
JB P3.7,SXB1
DJNZ R5,SBB
DJNZ R4,SBA
MOV R4,#2
JMP SBC
SXB1:
MOV R5,#5
SXB2: ;去掉20US的尖峰干擾信號
JNB P3.7,SBB
DJNZ R5,SXB2
JMP START
SBC:
MOV R5,#250
SB1:
JB P3.7,SB2 ;2MS內不為高電平錯誤(監測9MS的低電平引導碼)
DJNZ R5,SB1
DJNZ R4,SBC
JMP START
SB2: ;去掉20US的尖峰干擾信號
MOV R5,#5
SB2_A:
JNB P3.7,SB1
DJNZ R5,SB2_A
MOV R4,#3
SB2_1:
MOV R5,#250
SB3: ;監測4.5MS高電平,如3MS內出現低電平錯誤
JNB P3.7,SXC
DJNZ R5,SB3
DJNZ R4,SB2_1
MOV R4,#2
JMP SB3_1
SXC: ;去掉20US的尖峰干擾信號
MOV R5,#5
SXC1:
JB P3.7,SB3
DJNZ R5,SXC1
JMP START
SB3_1: ;監測4.5MS高電平,如5MS內不為低電平錯誤
MOV R5,#250
SB3_2:
JNB P3.7,SB4
DJNZ R5,SB3_2
DJNZ R4,SB3_1
JMP START
SB4: ;去掉20US的尖峰干擾信號
MOV R5,#5
SB4_1:
JB P3.7,SB3_2
DJNZ R5,SB4_1
MOV R1,#1AH ;設定1AH為起始RAM區
MOV R2,#4
PP: MOV R3,#8
JJJJ:
MOV R5,#250
JJJJ2: ;1MS內不為低電平錯誤
JB P3.7,JJJJ3
DJNZ R5,JJJJ2
JMP START
JJJJ3:
LCALL YS1 ;高電平開始後用882微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.7 ;將P3.7引腳此時的電平狀態0或1存入C中
JNC UUU ;如果為0就跳轉到UUU
MOV R5,#250
JJJJ4:
JNB P3.7,UUU
NOP
DJNZ R5,JJJJ4
JMP START
UUU: MOV A,@R1 ;將R1中地址的給A
RRC A ;將C中的值0或1移入A中的最低位
MOV @R1,A ;將A中的數暫時存放在R1中
DJNZ R3,JJJJ ;接收地址碼的高8位
INC R1 ;對R1中的值加1,換成下一個RAM
DJNZ R2,PP ;接收完16位地址碼和8位數據碼和8位數據反碼,存放在1AH/1BH/1CH/1DH的RAM中
;以下對代碼是否正確和定義進行識別
MOV A,1AH ;比較高8位地址碼
XRL A,#00000000B ;判斷1AH的值是否等於00000000,相等的話A為0
JNZ EXIT ;如果不相等說明解碼失敗退出解碼程序
MOV A,1BH ;比較低8位地址
XRL A,#11111111B ;再判斷高8位地址是否正確
JNZ EXIT ;如果不相等說明解碼失敗退出解碼程序
LCALL YS3
MOV A,1CH ;比較數據碼和數據反碼是否正確?
CPL A
XRL A,1DH ;將1CH的值取反後和1DH比較 不同則無效丟棄,核對數據是否准確
JNZ EXIT ;如果不相等說明解碼失敗退出解碼程序
LCALL YS3
CLR P2.6 ;選中數碼管
CLR P3.3 ;解碼成功喇叭響?
AJMP BIJIAO
;判斷在118毫秒內是否有連發碼
AA: MOV R1,#25
XX: ACALL YS2
JNB P3.7,HH ;跳轉到判斷連發代碼是否正確的程序段
DJNZ R1,XX
EXIT: ;對所有埠清零

AJMP START
;連發碼判斷程序段-----------
HH: MOV R6,#4
S: ACALL YS1 ;調用882微秒延時子程序
JB P3.7,EXIT ;延時882微秒後判斷P3.7腳是否出現高電平如果有就退出解碼程序
DJNZ R6, S ;重復4次,目的是確認連發碼的低電平信號波形
JNB P3.7, $ ;等待高電?
LCALL YS3
AJMP AA

BIJIAO:
MOV R0,#18 ;一共18個按鍵
MOV DPTR,#TAB_REM ;遙控鍵值查表
LOOKUP_1:
MOV A,R0 ;查表偏移量
MOVC A,@A+DPTR
XRL A,1cH ;比較鍵值
JZ REM_BAK0 ;相等轉移
DJNZ R0,LOOKUP_1 ;直到18個健比較完畢
JMP EXIT ;都不對退出
REM_BAK0: ;鍵值處理
MOV A,R0 ;R0
MOV R1,A ;
SUBB A,#9 ;如果大於9則反轉並將值減去9
JC REM_BAK1 ;小余或等於9到正轉
INC A ;加1
MOV R1,A ; 查顯示碼表
MOV DPTR,#TABLE1 ;
MOVC A,@A+DPTR
MOV P0,A ;送顯示
CLR P2.6 ;開顯示

REM_REV: ;反轉程序
CALL REV
CALL delay ;轉速
DJNZ R1,REM_REV ;轉動的步數到了停止
JMP AA
REM_BAK1: ;正轉程序
NOP
MOV A,R1 ;按鍵數值判斷執
MOV DPTR,#TABLE1 ; 查顯示碼表
MOVC A,@A+DPTR
MOV P0,A ;送顯示
CLR P2.6 ;開顯示

REM_FOR: ;正轉
CALL FOR
CALL DELAY
DJNZ R1,REM_FOR
JMP AA
for: mov r0,#00h ;正轉到tab取碼指針初值
for1:mov a,r0 ;取碼
mov dptr,#table ;
movc a,@a+dptr
jz FOREXT ;是否到了結束碼00h
cpl a ;把acc反向
mov p1,a ;輸出到p1開始正轉
call delay ;轉動的速度
inc r0 ;取下一個碼
jmp for1 ;繼續正轉
rev:mov r0,#05h ;反轉到tab取碼指針初值
rev1:mov a,r0
mov dptr,#table ;取碼
movc a,@a+table
jz FOREXT ;是否到了結束碼00h
cpl a ;把acc反向
mov p1,a ;輸出到p1開始反轉
call delay ;轉動的速度
inc r0 ;取下一個碼
jmp rev1 ;繼續反轉
FOREXT:
RET

YS1: MOV R4,#20 ;延時子程序1,精確延時882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;延時子程序2,精確延時4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R4,#2 ;延時程序3,精確延時1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET

TAB_REM: ;遙控的鍵值
DB 00H
DB 10H,03H,01H,06H,09H,1DH,1FH,0DH,19H
DB 11H,15H,17H,12H,16H,4CH,40H,48H,04H

delay: mov r3,#40 ;步進電機的轉速20ms
m3: mov r2,#248
djnz r2,$
djnz r3,m3
ret
TABLE1:db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h;數碼管的碼表
;0 1 2 3 4 5 6 7 8 9
table:
db 03h,09h,0ch,06h ;正轉表
db 00 ;正轉結束
db 03h,06h,0ch,09h ;反轉
db 00 ;反轉結束
end

② 西門子808d螺紋編程實例

螺紋編程首先要明確步進電機的細分數,然後確定步進電機轉一圈所需要的總脈沖數。計算「角度百分比=設定角度/360°(即一圈)」「角度動作脈沖數=一圈總脈沖數*角度百分比。」公式為:角度動作脈沖數=一圈總脈沖數*(設定角度/360°)。

螺紋編程的距離控制。首先明確步進電機轉一圈所需要的總脈沖數。然後確定步進電機滾輪直徑,計算滾輪周長。計算每一脈沖運行距離。最後計算設定距離所要運行的脈沖數。公式為:設定距離脈沖數=設定距離/[(滾輪直徑*3.14)/一圈總脈沖數]。


(2)步進電機編程實例擴展閱讀:

代碼名稱-功能簡述

G00------快速定位

G01------直線插補

G02------順時針方向圓弧插補

G03------逆時針方向圓弧插補

G04------定時暫停

G05------通過中間點圓弧插補

G07------Z樣條曲線插補

G08------進給加速

G09------進給減速

G20------子程序調用

G22------半徑尺寸編程方式

G220-----系統操作界面上使用

G23------直徑尺寸編程方式

③ 你好,有步進電機編程實例嗎

有驅動器其實編程很容易的,你發一個脈沖給驅動器,步進電機就轉一步,驅動器的控制有兩種方式:一是脈沖+脈沖,也就是說正轉是一路脈沖控制,反轉是另一路脈沖控制。二是脈沖+方向,也就是說控制速度是脈沖信號,另一路是控制正反轉的方向信號,高為正轉的話,低就是反轉。

④ 廣數數控車床編程G94怎麼編程實例

G94是指的端面車削一次固定循環指令。

例如,當前刀具X.Z向零點為程序零點,端面餘量1mm,外徑100mm,定位點為X102,Z2,終點X0,Z0,程序為

M,S,T;

G00 X102 Z2;

G94 X0 Z0 F0.1;

以上三句的走刀路徑:首先指定刀具、轉速;指定刀具快速定位至循環起點X102 Z2,開始固定路徑循環(快走至Z0,開始切削至X0,快走至Z2,快走至X102,即返回循環起點,固定循環完成);G94程序段完成,開始運行下一程序段。

⑤ 三菱plc步進電機此動作怎樣編寫梯形圖程序

如圖所示,Y0接步進驅動器脈沖,Y1接步進驅動器方向,D0為脈沖頻率,D1為脈沖個數。X0為ON時正轉,X1為ON時反轉。

(5)步進電機編程實例擴展閱讀:

步進電機是一種開環控制電機,可將電脈沖信號轉換為角位移或線位移。 它是現代數字程序控制系統中的主要執行器,被廣泛使用。

在無過載的情況下,電動機的速度和停止位置僅取決於脈沖信號的頻率和脈沖數,不受負載變化的影響。

當步進驅動器接收到脈沖信號時,它將驅動步進電機。 設定方向旋轉一個稱為「步進角」的固定角,其旋轉以固定角逐步進行。

可以通過控制脈沖數來控制角位移,以達到精確定位的目的。 同時,可以通過控制脈沖頻率來控制電動機的轉速和加速度,從而達到調速的目的。

盡管步進電動機已被廣泛使用,但步進電動機卻不像常規的直流電動機,而是在正常條件下使用交流電動機。

它必須由雙振鈴脈沖信號,電源驅動電路等組成,以形成控制系統。因此,使用步進電動機並非易事。它涉及許多專業知識,例如機械,電機,電子和計算機。

步進電機作為致動器,是機電一體化的關鍵產品之一,廣泛用於各種自動化控制系統中。隨著微電子學和計算機技術的發展,對步進電機的需求日益增長,並已在各個國民經濟領域得到應用。

參考來源:網路-步進電機

⑥ 三菱 步進電機 PLC編程

PLC控制步進電機的實例(圖與程序)

⑦ 求一個S7200PLC控制步進電機的程序

參見相關實例
http://www.360doc.com/content/15/0717/22/12109864_485586597.shtml

⑧ 三菱PLC控制步進電機的最簡單的程序

M206:正轉

M207:反轉

Y0:脈沖輸出

Y1:反轉信號

D4200:頻率(用於控制速度,數據來源於觸摸屏)

K99999999:脈沖數量

K100:加速時間

向左轉|向右轉

如圖,這個就是一個步進電機的正反轉的運行,Y0接步進驅動器的脈沖,Y1接步進驅動器的方向,M0為ON時正轉,M1為ON時反轉,D0是脈沖的頻率,D1是脈沖的個數。

移動速度和脈沖頻率有關,在細分數一定的條件下,頻率越高速度越快,行走的距離和脈沖個數有關,脈沖個數越多,行走距離越長,(在三菱這個指令中,脈沖個數為0時,是一直運行,相當於無限個數),具體的移動速度和行走距離得根據你的設置(頻率,細分數,脈沖個數等)和硬體(包括步進電機的步距角,絲桿的絲距,齒輪組的齒輪比,齒輪帶的傳送比等)來調節。

⑨ 用FX-1S的PLC控制兩相步進電機實例

我想要個控制5相步進的梯形圖

⑩ 求步進電機控制實例,主要是三菱PLC控制的一些小設備,有這方面的書或電子資料嗎,最好是由簡至難的。

想做步進電機的運動控制,先了解了步進的工作原理,如頻率,脈沖數量,加減速時間,脈沖定位控制還是限位開關定位,或者不同的速度利用的多段指令。

M206:正轉

M207:反轉

Y0:脈沖輸出

Y1:反轉信號

D4200:頻率(用於控制速度,數據來源於觸摸屏)

K99999999:脈沖數量

K100:加速時間

供參考

閱讀全文

與步進電機編程實例相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163