|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
& z2 L1 E, Y! k/ Z d, mMAIN
% ?1 m, c$ X, j/ Q# qnetwork1
" ]9 b/ U% b! J2 u, V+ h7 PLD SM0.0 I1.0按下时初始化中间继电器
, o& y9 h0 j& n) t- b- } hA I1.0, J& p" ?! X, W% O- H/ z
S M0.1, 1
. J5 {8 e. _+ p, ~, j- ?& s3 |S M1.0, 1
Y; b- K' v; Q& eS M2.0, 1& `. J1 ^, |: ^# y
network2
9 ^8 ]7 J; Z2 I' T2 P7 G+ l5 HLD I0.1 I0.1按下时停止电机) f# J% O, D# N/ `5 e; z
R M1.0, 1 复位中间继电器0 Y! P: J8 B% c( f n$ V$ i/ J0 b
R M0.1, 1% ]: W& s" d/ V4 B% q' x: e( H
R Q0.6, 1# X5 C' V8 H( c) B# Y
R M2.0, 1- |6 t/ e! ~7 P% j$ l# i
network3* p% u! d' }+ ]) n" N
LD I1.3 I1.3按下时电机开始右转2 R1 S( f0 ]. o. ^
A M0.1
" Y$ h3 U+ M, F- V4 T) cCALL 右转2 t, t2 m5 f$ S% i8 @( R
3 m, L0 q I t8 [; c
右转子程序
8 _, @' M2 ~( q! D( H+ o/ f" ?# dLD SM0.0
t$ H/ a( @7 K! }4 ~A M2.0% ^/ x3 _4 ^ m s, V$ @3 m
A M1.0
5 ^! B; I5 n8 E: w( H2 \) p9 xR Q0.7, 1 设置转动的方向* l- ?7 s6 e# c7 x8 n1 ~0 y
MOVB 16#85, SMB77
9 l+ f, U+ r- q d( G% n, sMOVW 5000, SMW78
* }. h# R y* N8 k8 n9 UMOVD 500, SMD82) e2 i: F; W4 _
ATCH 到位中断, 20 设置中断. X( M7 }: E3 i1 \3 Y
ENI
+ i4 k: N2 o, C, p5 T0 g5 hPLS 1
; Z1 K; u# T0 e3 w, L
4 k: q4 k4 E* g; C+ ]% _3 @3 d中断程序" D: `! G& O: C+ v+ q' ?: t
LD SM0.0
; G# P* M2 R6 \8 T3 p7 rS Q0.6, 1 让q0.6置1,显示中断程序已运行
3 a3 o* U$ F$ X( l# ~. i, W$ wR M1.0, 1 使电机不在运行
9 R3 ?% f+ E( ]6 PR M0.1, 1
( `1 _; d I8 K+ } 4 e8 j8 e( w& {2 K7 T
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6# h$ H b4 f! u3 k- V# L
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
: w. |6 r: a7 T半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的0 q0 @. K: T0 y9 I1 ~
。感觉很奇怪啊。
$ O# H6 F; {& L) S再这里请各位给予解答啊 |
|