|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。- N% h5 u5 U4 `4 M
MAIN
- E. n& u7 Q+ i6 anetwork1
?) K* g# O+ E7 RLD SM0.0 I1.0按下时初始化中间继电器
; {8 J3 a; J4 k+ `/ u7 tA I1.0 B# Z; ^. q0 q, d N* `5 ^6 q
S M0.1, 11 f O: J3 s- r) H# J
S M1.0, 1! n. g/ v( U u( d9 x. @
S M2.0, 1) v. r1 c" E7 ]7 X9 E8 W* ^
network2
F7 V" A$ V4 T2 g' eLD I0.1 I0.1按下时停止电机
6 d, F6 [! }* M4 KR M1.0, 1 复位中间继电器. m! |2 l! g, Y
R M0.1, 1
7 O' J" K4 J9 L2 R" mR Q0.6, 14 z/ Y( l5 M/ a" e# |, k- f
R M2.0, 1/ o: m; A5 I! h0 ~/ K) J
network3- t2 n9 h9 X# R) F, t, O
LD I1.3 I1.3按下时电机开始右转/ S8 E/ p/ B. G+ ~9 r* A
A M0.1
) Z( ]& m! k6 D, L) ~CALL 右转# I& u, G# x) J5 |- {* a
1 A+ q, y4 m% B' o, X2 Y$ E
右转子程序. {% c! M$ b* t
LD SM0.0
* Z" D1 j4 F# S% l" L; |0 [2 rA M2.02 K' E7 L. ^% t0 k) k* e3 ~
A M1.0
d( n1 s Q9 D" x8 @ bR Q0.7, 1 设置转动的方向, f+ W5 y* s. r
MOVB 16#85, SMB77
& a u1 d" ~' Z8 H; @ iMOVW 5000, SMW78 + b5 W* g* B3 V$ g) J; K1 `
MOVD 500, SMD828 c4 T. ?6 `% M( [4 Y ]7 E
ATCH 到位中断, 20 设置中断
8 ]; c/ @; m+ g$ y$ n0 e2 SENI8 C( F& b9 l7 E. r
PLS 15 E; q# ?6 U N/ a
/ v9 l1 T9 o2 {, ?
中断程序
% a) e1 ^7 ^8 R, zLD SM0.0
) [! O0 |- w7 \* Y( M& s3 F1 tS Q0.6, 1 让q0.6置1,显示中断程序已运行6 D7 x4 t" E% P' X: G8 e
R M1.0, 1 使电机不在运行
5 x% |9 Q) Z! A% KR M0.1, 1
/ O9 P" W& P# y8 z& A% O; o # T4 e' v5 ?7 Y: ]4 Y
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6* T% e) [3 A; S; s4 n! C" t
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是" q) L; ` b5 s7 c
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
. _( O' r0 a1 ~. @% A( i7 N。感觉很奇怪啊。
' q' F# @; Q, `' b( z5 [+ k再这里请各位给予解答啊 |
|