|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
3 l( c9 Z% z; k* eMAIN$ }- k2 H: r! a
network1# f# ^7 ]# m# Z6 t$ f! c
LD SM0.0 I1.0按下时初始化中间继电器: `' o8 {0 v0 Q1 {# N
A I1.0
! t' W8 d P$ AS M0.1, 1
8 {# o3 \8 A; Q1 ~* f4 fS M1.0, 1
% I# Q' {( R3 q; ZS M2.0, 1
6 r6 D0 K2 J1 Z2 |7 }! q8 I. b% ~' j+ Unetwork2
' y* [& g2 [- [( ~/ ]- vLD I0.1 I0.1按下时停止电机
+ Q- k9 T b; `4 VR M1.0, 1 复位中间继电器
5 |; t/ o( O" U) Q; GR M0.1, 1) _8 } h6 D: }: m4 s, B2 T5 _' d
R Q0.6, 1
! z4 j" F& P( |) l g% X" B LR M2.0, 18 J" o4 ^* r: s- k
network3
2 _- o9 _, o% p1 NLD I1.3 I1.3按下时电机开始右转4 M3 t: J; [) ]0 Z
A M0.18 Q$ I7 i% d0 ^# ]( V# d [/ B
CALL 右转: i. W% P/ a" ]5 |3 O' l# u
* U( D5 M$ F/ {/ @% l
右转子程序
* A: Q; R- ~9 XLD SM0.0
% }7 o5 M0 V/ g% j; Z! H( A2 R( dA M2.05 x8 o) J5 |7 [, F- u2 P. ^# s
A M1.09 n2 m# F& C3 O8 A4 ]5 {: y
R Q0.7, 1 设置转动的方向, o' C- f7 |+ E. V
MOVB 16#85, SMB775 Q& C; {0 [( R4 q* h9 r5 a
MOVW 5000, SMW78
1 p5 d- o$ V/ a4 jMOVD 500, SMD82
2 O+ u/ S3 Q3 o, fATCH 到位中断, 20 设置中断3 e3 \6 W& t' L6 \! g
ENI: f4 V3 T. B' F: H) v: o
PLS 1% I# t1 F. l2 Q& f+ W9 k
* r6 w& ]3 J& g c# }9 P; c7 d中断程序
! a+ r. M, \( y* v; V( m% ^5 f) ULD SM0.0/ _* X5 f( F' R# Y/ f% J) C
S Q0.6, 1 让q0.6置1,显示中断程序已运行8 Y: c, U) a8 F9 ~
R M1.0, 1 使电机不在运行7 A' B3 w6 ^( ?! N3 H8 ?
R M0.1, 1
$ D' q% L; c! l7 r- X! B% D & K, @6 n7 Z+ {6 I$ y
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6
2 y+ p# X: F4 E: q6 f+ @) ^亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是3 p9 _% F. T2 N
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
, h: Y8 H7 F2 s。感觉很奇怪啊。2 k! E2 z# r7 ^# K9 m; l
再这里请各位给予解答啊 |
|