|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
. u& ~. B% J- z7 h$ P) CMAIN) ]1 h& W( T- \: Y
network12 s; u5 @. v" C
LD SM0.0 I1.0按下时初始化中间继电器3 M, t1 }0 N8 v* S; F2 P
A I1.0
4 Y! U4 C' c3 Q: N( cS M0.1, 1; @. [4 |& Y$ a5 Y" p; _5 U
S M1.0, 1
5 d8 Q( R2 U O0 F) n! sS M2.0, 1
6 y$ D4 x& C5 j! I& n8 c' mnetwork2! H) ]5 B/ ~7 e7 Q8 z4 c
LD I0.1 I0.1按下时停止电机
5 P9 U: Z; n% \" B8 G' \9 l* UR M1.0, 1 复位中间继电器
& h6 W: ]' L8 a- ?. WR M0.1, 1
5 [( ~$ ^' S! VR Q0.6, 1! x3 ~) z3 T) m1 n" `
R M2.0, 1
! z% \, F$ {4 C& N+ f9 N/ V: G: {( qnetwork3 d j, Y4 U: _4 s' t
LD I1.3 I1.3按下时电机开始右转8 o+ g" J* n1 u9 L2 k3 S6 W
A M0.1
! p2 D. b; m6 I: k: zCALL 右转
( S3 c% b; W+ h! |2 B% o 8 x& |! e: h0 W3 w
右转子程序: C( u; n6 i. w1 ?/ b* k) a% r) T! v
LD SM0.04 K* l* m+ \3 f5 B X
A M2.0
3 o! u; v0 h3 o# r8 B5 VA M1.0& J8 @- c+ |& F
R Q0.7, 1 设置转动的方向4 d' c5 x6 a' A
MOVB 16#85, SMB77
3 m& h# u* J9 d) T, GMOVW 5000, SMW78
. d- r6 S- Q0 L- W+ o0 zMOVD 500, SMD82
) C# Z( p+ a6 M2 q% cATCH 到位中断, 20 设置中断3 {0 z5 b! ]8 p; i7 v4 L+ @6 w5 ]( p
ENI
, v$ W5 E. B9 x$ ^6 Z# S% jPLS 17 _8 T8 a/ m4 J
$ Z( Q& p8 j, h. T2 B; U中断程序
- g" C) W6 d& n) R8 xLD SM0.00 t" |1 p4 ^+ t2 o5 b' |
S Q0.6, 1 让q0.6置1,显示中断程序已运行4 A% u" @, r9 \5 M
R M1.0, 1 使电机不在运行2 A6 l" U3 s j$ y/ E& x6 }
R M0.1, 1; V* g' q$ T8 E0 E0 j* t% d
# }+ }4 K5 ?5 }2 R
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6- d, b9 x- H& q
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
: q' `0 F/ [3 g6 u( J, K半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
$ T s/ R) {; n。感觉很奇怪啊。
, X2 T" y. ^/ f; l) `# B+ l! @( N再这里请各位给予解答啊 |
|