|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。8 W5 C! c3 ]* J5 r8 C
MAIN
( T( ]* Z1 T3 g- Mnetwork17 ^! M" ~3 f2 C/ ~7 N/ C# m
LD SM0.0 I1.0按下时初始化中间继电器
( e: n! R1 K: N: jA I1.0
, V: b7 i9 o4 P" YS M0.1, 14 Q- l4 T4 B3 _. A: w N. l# u
S M1.0, 1
! r3 Q( p' l# t' B6 E: W' S* {S M2.0, 18 C! z8 O K* G% R
network2
# e2 m T+ p& d. V' L$ XLD I0.1 I0.1按下时停止电机
7 @8 c& D4 h- B+ r. ^& M& tR M1.0, 1 复位中间继电器
% L& t# a4 }' P. `. [R M0.1, 1
1 |/ L& d/ E6 ~+ wR Q0.6, 1" e8 b) m1 C" c6 }0 |
R M2.0, 14 e3 ~8 s- Q2 ~' i2 g, T! [
network3' }+ Y, M1 q# W, Q- U
LD I1.3 I1.3按下时电机开始右转
9 q* q" [! Z# a8 ] o5 aA M0.1
. x& v6 _1 G% z& l. ?6 `! r% I+ TCALL 右转/ r; n Z6 r Z* k8 v X
& g# `/ ?& H: |3 C. c7 A# S
右转子程序
) {' t- Z0 D- W* jLD SM0.0
& K. |. O3 X1 \8 SA M2.0
$ w1 X! G2 F3 LA M1.0
) ~0 N/ j3 k5 L5 y: P. B- l+ _7 DR Q0.7, 1 设置转动的方向; N0 D- j/ q* R* p0 m
MOVB 16#85, SMB77
+ d$ A" l1 y. B$ Z, IMOVW 5000, SMW78
( | }- s8 m: `& { b `% i/ G6 b/ _1 |MOVD 500, SMD82% h% _0 ~1 O5 |; g2 D% a3 X
ATCH 到位中断, 20 设置中断
# y- k2 S: ^: e2 I7 RENI6 E6 K: a5 o/ G" `
PLS 1
, h+ Z- \+ H$ M% X! L
7 y2 M3 y8 x+ O$ J! ~中断程序
0 F2 ~+ X/ R: O! n3 wLD SM0.0
/ r# Q: w( r$ l& V p8 w4 t4 cS Q0.6, 1 让q0.6置1,显示中断程序已运行
" z3 g D" E; {7 a& nR M1.0, 1 使电机不在运行
/ X% z& {/ u* h7 D6 e7 SR M0.1, 1% e& |" t/ r% Q$ d1 d$ f
: s$ |/ I7 G1 G; p; z. t( K/ H现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6
+ n( z$ v( l5 d1 f# F8 v( ]亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
- [7 g {6 {" k% B; m- C半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的5 h- s' u: A( Q) R7 d) ]
。感觉很奇怪啊。' @7 V& R, A/ {6 S% {+ O, }
再这里请各位给予解答啊 |
|