|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
& W4 [8 b- j3 a5 c8 iMAIN
8 V- c7 j: B' u- ^; @& D2 L. Ynetwork1
6 L4 I0 E2 [" Z' }6 d( xLD SM0.0 I1.0按下时初始化中间继电器! R. }" G/ ~2 h5 X$ E$ i' p
A I1.0
" n/ x( j0 u$ v$ l$ g1 }S M0.1, 15 q( e1 M; Q' n \0 T$ _! L
S M1.0, 1
' K$ ]5 f! \5 p* K' D, tS M2.0, 1 V/ y$ a/ s, _& s4 a8 M: @ k% w# U
network2
* v v* J9 a) x- X4 mLD I0.1 I0.1按下时停止电机
% J- Z- H( v0 e ]R M1.0, 1 复位中间继电器1 I9 k5 v5 l) o# G) d
R M0.1, 1
! _9 w4 C) C8 v9 d4 rR Q0.6, 1( n4 H X L% y; U: ~, q& g/ l
R M2.0, 17 P2 S* m8 w% z/ P
network31 t G9 d) W- d7 x- t% y7 F( o
LD I1.3 I1.3按下时电机开始右转 b5 R* Q: d& ^- |& Q
A M0.1+ @ Q8 s# j" ?. U) a8 y( O3 d8 t. g
CALL 右转
' v, [$ `3 F( D8 G
' O7 h+ R/ {% p/ s! b0 h& ]右转子程序
s' A1 ], v D% L# lLD SM0.0
, z- w+ H8 q; a1 L& jA M2.0: Q' l* |0 H' i/ S2 V
A M1.03 C0 J5 D3 @/ R" \3 l! i" | ^# Y
R Q0.7, 1 设置转动的方向
1 J" z6 p6 c$ |2 qMOVB 16#85, SMB77
0 @# c: [( C, m8 b+ A* r2 hMOVW 5000, SMW78
8 @4 t- c8 l+ F. I$ ?MOVD 500, SMD82
: w& [0 }/ l0 E1 v9 V1 t7 iATCH 到位中断, 20 设置中断
0 T9 d' _) d* ?. w UENI
2 O' t, g3 @! K# D, ~( ^1 U6 VPLS 18 G/ ^# _& ? I- \" E0 ]
: A& }2 _: a5 z% c( t t
中断程序* P! W: g9 Y* T5 e" k
LD SM0.0
5 M) u& }) X) r y% `% SS Q0.6, 1 让q0.6置1,显示中断程序已运行
" T' e2 o+ I6 r, m _7 d9 C& CR M1.0, 1 使电机不在运行
) d' s- W7 ~8 h& E/ I7 j; _R M0.1, 1
( U( J' ~/ n8 j* p D* S$ x $ y8 s( y9 t! R& h
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6
, m1 n0 K! b1 t: S c亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
% [/ g" _0 o; |6 A4 h- L; U$ k半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
" n3 \( N: a. w9 X。感觉很奇怪啊。
( U# n% y! o& P6 L再这里请各位给予解答啊 |
|