|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用是西门子224的PLC。步进电机为5相混合式的,0.72/0.36度。我编了个程序让电机右转500个脉冲后停止。应该是很简单的程序,可是我编出来老师出毛病。所以在这让大家看一下。
5 D4 \( b4 _3 N' B, w+ u4 ]MAIN( b7 m% N( x- ^! i+ d/ o
network1
' @% P7 ^# }1 P0 cLD SM0.0 I1.0按下时初始化中间继电器! E. v. `( B& y, i. B. o: n
A I1.0
% M4 r9 g. J! W( P* j( I8 RS M0.1, 1$ `" q# s2 P+ ^3 T2 F$ l
S M1.0, 1
. S5 h/ c ]& ~) i, {$ R7 rS M2.0, 1
% T4 t5 f J# Z* R9 c/ xnetwork2; \/ j- |4 ?$ s$ {( X
LD I0.1 I0.1按下时停止电机3 W: c/ s: f: t- l
R M1.0, 1 复位中间继电器6 t& Z# Z& b5 q
R M0.1, 1
, N" m) Y9 q) xR Q0.6, 15 G0 {( A9 |- ^* o) Y
R M2.0, 1
7 O1 U1 J5 u1 ynetwork34 ]4 k8 X- t8 k6 w X/ [
LD I1.3 I1.3按下时电机开始右转2 {2 s8 L5 Z1 ~9 |# @
A M0.1% d) B5 ~0 ]0 b* Z' f) `
CALL 右转
X7 p3 } T4 P& Z- W# v( \ / s) {2 W3 h; s: [+ F; e0 l, Y3 ]
右转子程序
5 H+ m' k) `' l, d- R, ]LD SM0.06 n, v, d0 C! S) j$ w' \' I6 j3 \ v
A M2.03 L% I2 q4 U) ]0 Y5 B
A M1.0
& M- y6 ~/ Q: l" @+ nR Q0.7, 1 设置转动的方向! i" x9 O+ J0 j7 p# M6 b
MOVB 16#85, SMB77
0 l5 M# o& w: m: GMOVW 5000, SMW78 + Z. |- x8 B1 |# F) _0 O6 w) D B+ x
MOVD 500, SMD82
! s% U$ T9 Y5 c; zATCH 到位中断, 20 设置中断' x% Z1 b( a" ~7 h/ v* v
ENI
* z- F" }* X) j' mPLS 1
( O/ ?/ x4 F' S" {+ X- G
! E4 P; e" ^3 j$ l8 [0 e4 N中断程序
8 g4 W9 p% P6 C# n8 q1 D3 CLD SM0.0 e& x6 q+ Q* U' D+ \ H
S Q0.6, 1 让q0.6置1,显示中断程序已运行4 y3 X5 j, \6 c
R M1.0, 1 使电机不在运行
& p8 F6 V! T" ]4 ?+ y9 @R M0.1, 1- u0 z9 q, \5 s6 ^4 h
9 K* k* p2 ~/ B" j6 f7 g
现在问题是Q0.6的灯亮了,但是电机还在转,发出脉冲的Q0.1位还是亮的。按理说Q0.6" |$ j* C- d7 U
亮了,中断程序就是执行了。但是中断执行了,为什么电机还转 啊?还有一个问题,我设置的是: B' {$ S) d: G1 q) g: o$ O+ m
半步运行,按理说1000个脉冲才是一圈啊,但是现在500个脉冲就转了一圈。Q0.6是在电机转了半圈后亮的
( d! B' }/ p9 u+ |$ ^ J0 X。感觉很奇怪啊。
9 E9 h$ S# @0 {; H I |/ v) G再这里请各位给予解答啊 |
|