|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
. ]# U4 J/ t$ qMAIN6 y$ i3 c! O! y3 `( i4 ^
network1
) K, D/ G( X' U# i8 \& ~4 FLD SM0.0 I1.0按下时初始化中间继电器
8 d5 ^+ D( ?6 r1 Z4 P4 }A I1.0
8 h( k' e/ q3 |) ~S M0.1, 1
2 [8 [' P5 [; R. R" q" a/ XS M1.0, 1& S* }. X7 D9 ?1 F. M
S M2.0, 16 D+ W, g8 C/ F
network26 A3 Y7 Z1 [3 j+ [, ]0 D0 G
LD I0.1 I0.1按下时停止电机
R, ^8 [- x, Y: Z8 d9 j7 tR M1.0, 1 复位中间继电器$ B. V! q# o, w/ x& p1 i. h- q
R M0.1, 1' }) a. C0 A. p( H. |' k
R Q0.6, 1; W; c% k% B% v- P7 E) L
R M2.0, 1- r, @8 G: E" z5 N$ U! ^: b
network3
. Y2 t$ M* s( C! {LD I1.3 I1.3按下时电机开始右转. p& W# b+ S; W
A M0.1! d! K$ n9 M4 z9 i- ]7 y
CALL 右转
: t, o5 P/ G' v) o' N5 e$ o3 O
0 b' _. ~3 W0 J右转子程序
2 a! Q7 J: x0 D9 x) t5 A; HLD SM0.0
. [% {9 z# T6 _) BA M2.0
( Q% y8 l& m# U. MA M1.0
5 Q6 |0 E( V7 b6 IR Q0.7, 1 设置转动的方向8 L q& R3 c0 P/ N7 Y
MOVB 16#85, SMB77
' Z: ?" ~4 V" f" l( U# s9 oMOVW 5000, SMW78 ; f0 ^2 H! d* a) C, `2 C
MOVD 500, SMD82 _& G% v5 T; |! k; I1 p
ATCH 到位中断, 20 设置中断/ ~. n. o; M5 h( W3 D4 n& G& M
ENI
% d/ \8 W7 n2 V% j5 @! aPLS 13 d# P& y( m9 G6 ^" y5 k/ h
3 d3 F% z. n, [* Q" P) r/ ^中断程序: Q" Z! j; C) z( g
LD SM0.0
% n4 ]% r, u# F* a+ S$ U, uS Q0.6, 1 让q0.6置1,显示中断程序已运行) u# S0 U" z/ Y/ m7 H
R M1.0, 1 使电机不在运行
' _: `% O3 m$ z3 q( `# }" K6 DR M0.1, 1
; o# N& m5 T& Q1 @ - G) F3 j; P( ~& u( z; M
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6
6 N1 O( A/ \3 E亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是 V9 ~* }# g4 f/ m+ _; n$ v8 d
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
- @' I8 h% n7 E# e。感觉很奇怪啊。
, a6 |" _! N% R4 }* C1 @4 K A5 T再这里请各位给予解答啊 |
|