您现在所在的是:

西门子SIEMENS

回帖:1个,阅读:909 [上一页] [1] [下一页]
1194
star7953
文章数:95
年度积分:50
历史总积分:1194
注册时间:2005/4/28
发站内信
发表于:2005/8/30 16:14:00
#0楼
大家好, 我现在做的项目要输出能有个定时的输出高电平脉冲, SMB34,SMB35的时间都短了, 用定时器老是弄不出来?
我的是个自由口通信程序,在PLC 里面比较完数据之后,如果不合,那么输出Q1要2秒钟.

MAIN:
LD     SM0.1
MOVB   16#09, SMB130
MOVB   16#E0, SMB187
MOVB   16#54, SMB188
MOVB   16#0A, SMB189      //通信初始化
MOVB   50, SMB194
ATCH   INT_1, 24
ATCH   INT_0, 26
ENI
LD     SM0.1
MOVD   16#03510D0A, VD0

INT0:                            //发送中断
LD     SM0.0
RCV    VB80, 1                

INT1:
LD     SM0.0
MOVB   5, SMB34              //电缆切换时间
ATCH   INT_2, 10

INT2:                                //数据处理
LDB>   VB102, 16#0A
XMT    VB0, 1
=      Q0.1
CRETI

LDB<=  VB102, 16#0A      //数据小于16#0A, 则调用SBR_0,输出一个2秒脉冲
XMT    VB4, 1
CALL   SBR_0
CRETI

SBR-0:            ??????前面通信没问题,就是这里让输出Q1.0亮2秒再灭就不行了,
                  下面这段定时程序有问题,大家帮我看看哪里有问题啊, 谢谢!!!!
LDN    M0.0
TON    T32, 1000
LD     T32
=      M0.0
S      Q1.0, 1                     //Q1.0输出
CALL   SBR_1
CRET

SBR_1:
LDN    M0.1
TON    T33, 200                 //2秒
LD     T33
=      M0.1
R      Q1.0, 1                      //复位Q1.0
CRET
1681
agitator898
文章数:398
年度积分:50
历史总积分:1681
注册时间:2005/5/23
发站内信
发表于:2005/9/9 14:25:00
#1楼
逻辑关系有误。
你把定时器放在子程序里,前面的主程序不调用它,当然没用。
在子程序中设置触发标志,触发主程序中的定时器和输出端。
鼠老爹——家养老鼠名MINNIE

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002