|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
0 F0 V4 {1 |! ?$ L/ R, d% pMAIN ^- r/ ^" `1 Q% x
network1* D$ s+ G6 {: n' [4 k0 R, u
LD SM0.0 I1.0按下时初始化中间继电器
2 W2 K6 i g! B( M7 g" w% HA I1.0. G% M: A. B0 b! V3 \
S M0.1, 1
9 D6 l$ N' b. {& E% ?4 PS M1.0, 1
9 A$ T" K/ R2 D& t# S: Q0 wS M2.0, 1
* }- c# n; ]$ H3 r* P1 Jnetwork2
0 m( X/ | [3 \/ q1 _8 D1 jLD I0.1 I0.1按下时停止电机3 v; L9 B3 u$ S; o
R M1.0, 1 复位中间继电器
5 _# l: n5 _ k" p- C! `4 C6 wR M0.1, 1' B, u. u; l9 z0 W: D% g0 V- F4 ]
R Q0.6, 18 L! @( H) @- v
R M2.0, 10 V2 f4 G0 F. f3 t
network3
7 l; Y( ?! B' h: |$ t6 k: Z6 }, PLD I1.3 I1.3按下时电机开始右转. V- c; s& d" F: Q' x
A M0.1* S9 K6 t* j% }" M% z
CALL 右转
4 G r, L# w) P( e u6 m7 f/ u
/ t3 T; e U: k( p" V. T* {右转子程序" b' ]" U" o$ ]& s; p q% N
LD SM0.0 [: Y {' U/ G) t
A M2.0/ d8 h6 N& d* c4 p2 M
A M1.0: F1 D8 U/ @. a3 X8 j! X( S6 F. ^
R Q0.7, 1 设置转动的方向
, Y& V, D1 H' }) _2 vMOVB 16#85, SMB776 C, W: l4 l4 Y. z* M3 G
MOVW 5000, SMW78 . x% b" x+ N; W, D
MOVD 500, SMD82
: p7 ]9 O; t# P A4 j v6 M; O1 I1 s! DATCH 到位中断, 20 设置中断
c6 l' j ] a- ?" PENI! S2 w: H; }5 g0 `: O8 W4 k
PLS 1
+ E; C; Y) c, }: b& ` P 3 X/ Q+ L, V: k
中断程序
; Y' J6 l2 n0 L! E) P$ I7 ^" w2 HLD SM0.0& T0 j, _1 d# b
S Q0.6, 1 让q0.6置1,显示中断程序已运行1 E8 D+ r p; p/ G* \8 m- c, a
R M1.0, 1 使电机不在运行( e2 u* X/ p- I' p# Y9 T
R M0.1, 1
( H- c' q6 V- y, Z. }9 {
; X, j( X8 n# S% X6 D! Q现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6 w& U0 j/ {4 S/ F& h' |
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是. q2 v$ x, o; T" @1 A2 L; z! ~* W
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的( D( g4 ?1 p" O( r& D% g
。感觉很奇怪啊。. w# ~; j4 l* L; Y
再这里请各位给予解答啊 |
|