|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。' ]' V; R& p: ~- k' y: k! @
MAIN
$ t M+ q/ E/ j& }network18 v2 z) n+ a( J X# `
LD SM0.0 I1.0按下时初始化中间继电器
! u0 J7 O; S& O# D3 KA I1.0
! C3 c3 {( T- Q( ]2 ES M0.1, 1! F( c# u$ \, t/ p1 L* g6 J
S M1.0, 1
& r- h! x% M* R2 {S M2.0, 1( \" T4 r$ U. X. H5 n
network2; \ |9 x6 B( k8 D) n
LD I0.1 I0.1按下时停止电机9 v2 m. Z7 n$ m% l. a( C
R M1.0, 1 复位中间继电器3 }6 F* X' h& Q3 b2 W
R M0.1, 15 n* m, O' l9 h$ D
R Q0.6, 1
' V, Z; x7 U- r3 qR M2.0, 1
/ f. ]0 [4 b" onetwork3
P, \8 t+ u: E4 N, L( ]LD I1.3 I1.3按下时电机开始右转
2 i/ V, T. l9 a3 _( ~* Y a7 g, e5 ~A M0.1
; O4 q$ Q& ?+ x* n# _. ?CALL 右转
9 {3 `" I# k/ R. j5 J
E5 b6 `3 [, R k1 k3 L; t右转子程序8 y- c4 z& t" [4 L" b
LD SM0.0# Q/ R: X& ]+ N" W0 h
A M2.01 y* D8 z& `2 y& ~. i% K5 \
A M1.0) u4 I1 J* X) K, ]
R Q0.7, 1 设置转动的方向6 v' f% M8 X7 _3 F* \8 a1 f; ~+ K
MOVB 16#85, SMB77
% a( U5 w& O" R# n2 qMOVW 5000, SMW78
+ v+ L3 i4 z. A- ]& XMOVD 500, SMD82
6 W( i; j# A/ s! cATCH 到位中断, 20 设置中断& F! y! }) V w" T; m
ENI
* ]2 a& |$ Z, i- Z6 k& FPLS 1
+ B& ]; r. {* p3 {8 _6 F: ~8 m
0 Q: ?7 ~4 {8 ?7 h3 \中断程序 B" Q8 B a9 k; _
LD SM0.0
/ [, s5 R4 @( { O0 d/ pS Q0.6, 1 让q0.6置1,显示中断程序已运行
4 ]7 A) l" V' |( [& pR M1.0, 1 使电机不在运行: X/ J7 e7 v3 ]8 L
R M0.1, 1
& c1 l1 d* a; a% ^6 O
; t2 S0 A' ?5 w6 n8 }5 G现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6, d7 X/ a; \0 p& w' e# O1 k
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是
; I5 O7 F* ?4 {, l半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的1 d. x9 c( N9 Z2 B; x2 e% ]" b& `
。感觉很奇怪啊。% \2 V+ k$ m5 y2 t
再这里请各位给予解答啊 |
|