|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
* @- a. j% _( S9 F9 F' T/ @* lMAIN! j: x; r4 f: W! [) w( n
network10 S8 }; V4 f9 M( ^: I' k/ [
LD SM0.0 I1.0按下时初始化中间继电器) H# g" ?4 f8 s7 _
A I1.0
; ?2 k+ d7 b5 _1 h% |/ }S M0.1, 1
' u) s& M( ^( Q3 p! pS M1.0, 1
1 X0 P# X7 O/ e8 ~/ }4 xS M2.0, 19 r! s9 {- [" P
network2, Q3 J: D" J3 M
LD I0.1 I0.1按下时停止电机) z3 g% k. h8 ]
R M1.0, 1 复位中间继电器* _+ h% z9 h) ]$ B
R M0.1, 1
6 Q1 @2 l$ Q6 d8 tR Q0.6, 19 G4 O" K2 O T
R M2.0, 1
J8 `& P' M( O. M. nnetwork3. q2 W+ ?8 G: t3 N& C' J1 _6 m/ a
LD I1.3 I1.3按下时电机开始右转
! y5 {8 }9 \) L C6 {A M0.1' ?1 o/ Z2 {( h
CALL 右转# K" n9 I# s5 N+ h5 r) f
" r" W7 m8 @8 d3 n- J3 [% ?右转子程序
% Z1 T- A/ X0 x/ `6 W: w& K5 {: g4 A$ cLD SM0.0: t" }& Y& q0 H$ ^
A M2.0/ k N9 H& @" k% U0 A" Z5 u0 n
A M1.0' {3 P: H8 c3 M' c2 v
R Q0.7, 1 设置转动的方向' b3 p- m& N8 z2 k% j% s8 \
MOVB 16#85, SMB77
; F& y4 U# `" }) K3 [. ?: o: W7 ~MOVW 5000, SMW78
! b3 D ~( _7 K* N0 rMOVD 500, SMD82
& P: ]5 D2 `6 U3 iATCH 到位中断, 20 设置中断
& i: Q/ N; a6 z+ T) S0 J/ L$ Q3 qENI
3 i9 _2 F8 ~! H% n- w' YPLS 1
, F$ G x9 i/ n- x2 f& {8 I! e
! n) y7 D- H( G* o5 c中断程序7 x# U: R9 a; }/ Y0 l* Y
LD SM0.0
6 G- \! l' I* O( \* l$ e+ j8 qS Q0.6, 1 让q0.6置1,显示中断程序已运行
7 M. [ v$ U/ H, aR M1.0, 1 使电机不在运行
3 Q" ?1 b& w$ Z6 QR M0.1, 1+ x7 {( v/ e) V* j' L6 z& H( y
9 z, C0 U) A2 _7 o2 ~8 J0 w. _现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6& X( d9 [) _5 m. ~
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
; }# X2 l& g8 X4 S( i& t3 q半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的; r4 B! y. I& k9 M
。感觉很奇怪啊。
4 A* Q, C6 S( D# F) |/ ?再这里请各位给予解答啊 |
|