|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。8 h+ v- |' O5 }: M0 D# }3 L. T
MAIN
/ ~4 {& J: j$ d$ l8 _network1
7 _0 ]2 Z, b$ A0 u0 d& k/ _: MLD SM0.0 I1.0按下时初始化中间继电器3 B# w3 ~8 `: i* A& j% K3 i
A I1.0
: W) |* x( J f1 C3 Z4 c3 _S M0.1, 14 c& F) B5 H! I/ `
S M1.0, 17 g/ Y/ n* B1 W$ @6 w
S M2.0, 1
0 E; d& L3 _6 _$ knetwork2' L' O5 b4 o/ @3 {) i# ?
LD I0.1 I0.1按下时停止电机9 `9 ~' N8 r5 \/ | i$ v) l
R M1.0, 1 复位中间继电器; x) S6 z) `& e& W$ u
R M0.1, 1
: {& X7 N( p( h2 VR Q0.6, 1' G6 N. V# V* k# B& ^/ s
R M2.0, 1, R) U* B3 X, r
network3" Y5 n' V8 F- ]! A1 h8 x
LD I1.3 I1.3按下时电机开始右转
& ^, a" F5 x3 FA M0.1
& t# ~ U: p3 h, }8 }7 ]7 S% r# ^CALL 右转
7 z1 I4 p w4 V2 j# b2 E ! z+ ]% K+ q. e1 v, z4 x
右转子程序3 b+ L7 B" w' f
LD SM0.0
& K% b; }: J! {5 _' wA M2.0/ a* ?5 t6 M& S0 K$ B0 D P
A M1.0' c# k. W$ Y3 f/ \, M9 S2 G+ n
R Q0.7, 1 设置转动的方向
' y! A7 C0 j+ h6 b% {( @% q( RMOVB 16#85, SMB77
# S. Z- W, p$ D7 fMOVW 5000, SMW78 & |: L& t: }+ ?$ \, I& f9 \7 P
MOVD 500, SMD82& d1 D- u" X% k8 S% e7 R
ATCH 到位中断, 20 设置中断
& R; O& Q. M8 EENI5 N, I* Z+ N3 u9 O& U+ S* N
PLS 1
3 u# j& d' g' n. e( ^2 Y. z# Q - Q4 a0 B# v. ?7 I
中断程序
( x: _7 h9 y1 o$ |LD SM0.0, z: [$ y3 }) j0 p0 U u
S Q0.6, 1 让q0.6置1,显示中断程序已运行
" r" A' c- R# _7 V1 F; ~R M1.0, 1 使电机不在运行$ S5 h. s. C0 u9 Z/ t
R M0.1, 1( _( e1 }2 @ g: M! {, q& l
3 }" N! s ?4 Q' m+ n# ~2 N2 x3 F! H b现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6
8 y# ^( T5 n0 |9 S2 j亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
0 w, y( ~) L) b7 d& f6 N$ {半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的. Q) p) j; \/ I' u
。感觉很奇怪啊。, _, o! b$ a* S h4 Q
再这里请各位给予解答啊 |
|