|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
+ p2 j. o/ O2 d( K# \3 XMAIN
3 n; s* I( t. ?' q- qnetwork1
/ d J* I: r) {7 _3 KLD SM0.0 I1.0按下时初始化中间继电器" b" _( t, w; j0 y) c0 ~9 J
A I1.04 ?) q. T4 v: {% d( z. g
S M0.1, 1
/ i; T% G- v* Y& P& i6 f9 [! jS M1.0, 16 [. e H' G$ a- x6 r% F
S M2.0, 1
( I1 j0 \" ?, Znetwork2
8 G- i" y6 H+ p! O. \' vLD I0.1 I0.1按下时停止电机
+ F- ]/ a% [, X. d, SR M1.0, 1 复位中间继电器4 ]$ R# }$ [6 }7 {: g2 c
R M0.1, 15 x+ W) _6 _0 Z3 V
R Q0.6, 1! m/ G4 a4 f- t) \ u
R M2.0, 1# ^# i3 b* E. Y5 O4 i6 B) D
network3
1 L& z- z2 N+ E S" P8 l: \LD I1.3 I1.3按下时电机开始右转- Z+ ^! F- v4 z8 w5 i2 _: P
A M0.17 t) ^* Q C* l' @, j) T
CALL 右转
4 Q3 m/ }, A6 c& } 7 b, g( b; d# Q
右转子程序
* @+ m) I9 Y% @- W$ D1 b/ u3 ~# aLD SM0.0
# j9 ~! B" f+ P, `A M2.03 X. K/ y+ d( z( w7 S
A M1.0, L/ Q) g! a8 g: t! B6 V
R Q0.7, 1 设置转动的方向& \: M6 _% D4 H" y
MOVB 16#85, SMB779 ?" y( i4 }3 N2 v5 L/ c
MOVW 5000, SMW78 % s* h1 a. W- j, {; V$ J% A
MOVD 500, SMD82- n% f$ M+ ]% ]% d- q& k
ATCH 到位中断, 20 设置中断
. N/ b1 c4 t1 T$ d9 [ENI
7 ]: g4 j2 ~% t2 P+ ]2 h! M) xPLS 1
# i) [4 r0 C% H( j- W
% H G6 R8 f. U- f/ e- s. ?中断程序& d& k' m" V& i8 c s9 ^$ Z
LD SM0.08 f+ J+ H" t. W9 }+ t
S Q0.6, 1 让q0.6置1,显示中断程序已运行- L7 E6 x7 e7 T& k! s) ?& d, g
R M1.0, 1 使电机不在运行
" e' Q' X, T! Z: D/ Q. J$ rR M0.1, 1
4 i9 d( R" u. S/ `0 P- s# R
$ A$ C$ q# {. J& L- P现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6. k9 h) N* h7 v: c
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是8 w; g9 }1 c$ B- F
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的. c; ]3 x8 H3 M! [8 V' D
。感觉很奇怪啊。
7 U3 I- w% E$ |再这里请各位给予解答啊 |
|