|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。3 ?: ^% ^' W' ^2 H
MAIN
% p0 n7 z* B/ \* \3 { [network1
( N' l' O9 H- ?* v4 i$ `* L4 ^LD SM0.0 I1.0按下时初始化中间继电器
' |4 u& r1 T1 y& ]2 Q8 v% a$ I% EA I1.09 v; Q% R' g. L( S4 ~5 `$ ~8 e1 O5 N3 e
S M0.1, 1
4 u1 @0 Y& M/ j% V, GS M1.0, 1: D( E) I0 Q' x0 P0 H+ z
S M2.0, 1
& b8 F6 a- a; `( l' A0 Z6 t. vnetwork2
. O# U' Q; w' S' ^LD I0.1 I0.1按下时停止电机
2 T9 k2 X( d& O4 a; N9 M/ v- mR M1.0, 1 复位中间继电器
- T R, L" E; p' |R M0.1, 14 e7 S' @+ L6 \ |7 M$ M# l" m
R Q0.6, 1
3 Y' p* C5 E$ ]' z4 Q# fR M2.0, 1
% M+ f# ]4 w' W' V" ?: s" a e/ k% Knetwork3, a- @, R+ H- E* q# w4 p
LD I1.3 I1.3按下时电机开始右转& U. r8 b. [$ ?2 N! Q# j3 `2 x
A M0.19 ?9 M: U6 K A: F9 j
CALL 右转( Q+ u. m* z: ?9 r- Z9 W5 H
3 ]; {1 K' ~% O" o7 S
右转子程序" b! Z2 ^- f* e
LD SM0.0
+ H. M/ u4 N0 M2 SA M2.05 j8 L3 v0 ]/ [- N: C* L. y
A M1.0
7 r* C2 X) c+ X; g! \R Q0.7, 1 设置转动的方向( ^2 c8 j- Z7 d0 k+ z6 Z; g
MOVB 16#85, SMB771 H3 e9 d; `7 z4 w, O
MOVW 5000, SMW78
) m% `% ~2 s0 N$ QMOVD 500, SMD82
( N) M" Z/ E5 `. q$ \6 s4 _ATCH 到位中断, 20 设置中断
M* L* O4 z' [; yENI% }! i/ H. s/ e/ m
PLS 1
1 m9 [0 G# `* T, v# U: S8 w ; g: P; T) c& ?' ^2 P& c4 \
中断程序
' ?6 A; {/ ^1 F0 H/ G9 t7 h( YLD SM0.0! H7 U% L0 V0 J; c6 A: r
S Q0.6, 1 让q0.6置1,显示中断程序已运行
1 a( a. N" [! R# A3 n$ fR M1.0, 1 使电机不在运行$ m2 D5 J/ n; i4 d* @- D
R M0.1, 17 u5 n: T" `+ z0 y9 M- r) M
, ]: F& O: ~% T4 x$ g现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6, p, L0 W! l! t/ J% f) e- E
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是! V. `# k- d: y3 U, H3 \
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的* R3 W0 r! ]* r- u! A
。感觉很奇怪啊。
6 D# y0 v3 r& [/ \ W( _再这里请各位给予解答啊 |
|