|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。 q: n' y, F9 f A- @: P
MAIN2 ]8 ]$ y% P- g, _; Y9 d
network1
2 Q0 G* f) B* {" t# J `/ [LD SM0.0 I1.0按下时初始化中间继电器& j6 J) k ?9 s+ H, }, R2 I l
A I1.01 J3 V9 A$ v% ]) V$ M/ `
S M0.1, 1
$ U1 v. k) D1 bS M1.0, 1 Q; n# k4 o) B2 Q
S M2.0, 1, I" x% U* @- g& D3 d
network2& c0 W- Y% ?# e- F8 A+ R
LD I0.1 I0.1按下时停止电机
0 V1 E) t' ?) y1 C) x% j% v- gR M1.0, 1 复位中间继电器) I3 Q2 T# c0 l) ~
R M0.1, 1
! A$ t4 x* V" B" eR Q0.6, 1- _7 c; v3 f6 L0 h: U ]9 n& _
R M2.0, 1; D1 D( \0 h5 P1 {* d; v
network37 d2 s) l3 _. D s/ N% C6 o
LD I1.3 I1.3按下时电机开始右转* r9 M8 u4 P- H) H: ]$ R
A M0.1* z5 h% Y4 Q1 y2 x
CALL 右转
8 _5 Q/ G; m+ B8 ^/ | k , u' }' ^+ D8 V% Z
右转子程序! Z y( s2 {- X* A4 h3 i" s
LD SM0.0
8 V/ F1 R6 p" U* d9 N2 XA M2.0
; X. ] d* O* }A M1.0
) B. n" L$ d" \: `# rR Q0.7, 1 设置转动的方向- w% H; a: v/ e D) [! _- X
MOVB 16#85, SMB77
0 r' q# K2 x/ t c! ~. o4 i. A. nMOVW 5000, SMW78 0 Q. A* V& ^# F5 P6 l& W: o
MOVD 500, SMD82
! V3 N5 M' p: B+ F! p3 h( AATCH 到位中断, 20 设置中断
4 f7 }1 n* e2 k2 O5 b7 L$ KENI
& ~$ f' V4 `! t3 t: e2 IPLS 1
! l+ }- ?5 U+ u: I3 l. T8 z! w, t+ R: O
7 H' [+ V2 Q6 S1 Q8 v6 z; p中断程序
& T$ O" R2 s7 S( B$ L+ t, qLD SM0.0
" i0 ~, C, o; f+ `5 P, D jS Q0.6, 1 让q0.6置1,显示中断程序已运行* C# h5 Q7 q V$ e! E
R M1.0, 1 使电机不在运行" ^# E# o1 _8 n) }+ V
R M0.1, 1
0 C$ {$ A- t+ }5 L3 s& S/ K9 `0 M ) E- X& N% o a8 b3 {3 B1 C
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6
. C* C. D. n6 ]) ^' N" P& J( E( Q亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是. h1 h, {* z1 s
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
% h7 d+ h5 D# n5 |8 H5 X。感觉很奇怪啊。! q% e0 K# Q9 d4 ]5 B% T' l7 x( I
再这里请各位给予解答啊 |
|