|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
, r) Y" c/ b, W" FMAIN. @8 m0 J4 T* t& K9 s
network1) s. k: G& z v# R! K
LD SM0.0 I1.0按下时初始化中间继电器# |$ g% `! ]/ N1 ~; g( F0 F
A I1.0
8 {7 u1 u3 @) @, pS M0.1, 1- e8 d0 n9 K, [. _7 w" r$ q
S M1.0, 15 m) r3 `, [' N% b$ a% w" k- J( V k
S M2.0, 1
( }, C S/ t! y* U# Qnetwork2
* J0 m4 r- N a. p* wLD I0.1 I0.1按下时停止电机1 G/ N w2 P1 D0 x" } r* u! \# Q
R M1.0, 1 复位中间继电器( `3 t) T* I8 V
R M0.1, 1* P- y: M$ \. l) e$ `
R Q0.6, 1
. |4 a% I: G4 Q3 P2 F: vR M2.0, 15 S o& r( K/ u
network30 a) L: Z, ?' k! S0 W; s& V
LD I1.3 I1.3按下时电机开始右转8 S- f* l n+ u3 c, }; u9 }# G. g
A M0.1
- |! \( f/ Z2 M2 QCALL 右转; z; U6 i2 K% \7 ?* k6 U _
, h; F, X. { y+ V5 A% @$ P& G
右转子程序' l, ?; ]5 t k7 c9 E0 N
LD SM0.0' f f* g) M! N ?% f# E
A M2.0! b4 | A" J1 F: O
A M1.0( h9 O" F# f( K X$ a% j
R Q0.7, 1 设置转动的方向
; ` E# [9 E- tMOVB 16#85, SMB77
! K# ^( b: w, D: v, v, YMOVW 5000, SMW78 , Q; v; t" E/ p. a6 l
MOVD 500, SMD824 Q0 S+ z/ h# D' [: r9 v( x
ATCH 到位中断, 20 设置中断
9 A8 z4 K+ S: e0 bENI
0 n0 P# h0 l# n: Q# Y" fPLS 1& i* [7 o# P+ W( I
& ?- V5 L9 X% ?) ]$ b
中断程序
1 g# v$ j& A/ N3 B9 M1 @LD SM0.0
7 i ]9 @8 v& O& p: ^) _S Q0.6, 1 让q0.6置1,显示中断程序已运行8 _" Q! y, Y6 Q* m9 d3 M5 z/ l
R M1.0, 1 使电机不在运行( k$ B. G& q( V, v3 r
R M0.1, 1
3 l5 _) y3 y7 a& h2 J: ` . z/ H4 R4 U; d
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6' W2 D& u) b' s! l$ h- m
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
* M; V: A5 z3 A; q% K半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的2 R7 ~: r+ c2 d( q% C$ `
。感觉很奇怪啊。
* c! ^* k( z: z) H8 M再这里请各位给予解答啊 |
|