|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。/ T% m: P4 J- ]2 j: l6 s# s
MAIN3 Y! I& J/ F9 W
network1
1 G# i% m9 O t1 h( [5 E3 W0 ~LD SM0.0 I1.0按下时初始化中间继电器4 Z0 Y, w+ m! r; X9 z; t
A I1.0- P! _$ H% y$ M9 T5 Q
S M0.1, 1 ]/ n% ], u/ g" z
S M1.0, 1: A# b0 x: M- {7 {6 n5 |1 y
S M2.0, 1
# E# ~ y, j5 ~8 snetwork2
" Z$ o, q2 a5 a& P+ ^+ @/ A' o/ bLD I0.1 I0.1按下时停止电机4 M7 [1 Q5 o. c
R M1.0, 1 复位中间继电器
; C' Z+ e- u# t* h4 _) BR M0.1, 1
. m# R. F0 M# Y& G+ Q4 h" ?2 FR Q0.6, 1
) P+ _" i; B3 @9 ?) OR M2.0, 1
: r4 d; R! \$ w" Y, D4 R7 znetwork38 S& d) H! B1 @5 M# \9 l ?% A
LD I1.3 I1.3按下时电机开始右转
, N5 m5 g8 n# y- r1 nA M0.1
/ t4 ^8 ^ O TCALL 右转
! L! P: w) }: o2 q
, D1 A/ u0 W# j' S1 ?) m右转子程序
/ ~2 c: [9 V9 p$ v) o5 wLD SM0.0% g# z' u, f, K. V. p/ ?) q3 {6 u! O
A M2.0
0 U3 T2 J% Y# n/ L. ]3 Y$ w: vA M1.03 f5 u+ b+ s- _
R Q0.7, 1 设置转动的方向
( X& ~% K$ G5 V/ g5 cMOVB 16#85, SMB77
F! C* P9 R( K E$ Q2 h1 hMOVW 5000, SMW78 6 f/ P' X/ J$ n
MOVD 500, SMD82
5 Z8 n t+ }( N$ I# eATCH 到位中断, 20 设置中断
5 e9 Y% l9 U/ R, ^% z8 C1 cENI
0 P n( x2 D' s9 O+ F+ {PLS 1
& m3 o% C8 X+ ]6 B
5 e8 ~' E+ {4 K. S. o中断程序! c/ ]( z. c2 `: U
LD SM0.07 ]: D3 M% H, |3 H7 X
S Q0.6, 1 让q0.6置1,显示中断程序已运行+ Q2 [& |2 ~, q5 f
R M1.0, 1 使电机不在运行
/ a- ?& s% R$ W% v) tR M0.1, 1
9 y# G$ v; K/ m4 P# @; m$ w
( ~: X9 {( {% y' n/ C现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6
( N. p' M) D. P; x2 F! r2 s亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
7 ?6 C4 G9 i2 M& o+ \半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
; g* K$ J2 @/ ?. M, \9 E。感觉很奇怪啊。2 K# Z5 q( h% A3 w
再这里请各位给予解答啊 |
|