登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:求助:希望高手能帮我改一下PLC200的程序

点击:1272 回复:7

大家好!我是一位新手,我用 STEP7 Mincro/win 4.0编了下面一段程序。
         LDR=     0.0, VD50
                          MOVW   0,AQW0
                          NOT  (或者 LDR<> 0.0,VD50)
                          JMP  2
                          //
                          LBL   2
                          LD    SM0.1
                          CALL  SBR_1
   在SBR_1中我调用了INT_0, INT-0用到了PID运算。
  程序中出现的问题是,每次VD50=0.0的时候,按理说中断程序应该不会运行,可是PID还是运行了。开始觉得是  LD    SM0.1 的问题,可是去掉该句中断程序什么时候都不运行了。
06-10-21 10:27
sm0.1是特殊存储器,在首次扫描时为1,其他时间为0,不受程序控制。
06-10-21 13:00
可是去掉sm0.1之后,sbr_1中的中断程序程序不知道为什么不运行?
06-10-21 16:19
LDR=     0.0, VD50
                          MOVW   0,AQW0
                          NOT  (或者 LDR<> 0.0,VD50)
                          JMP  2
                          //
                          LBL   2
只是使LBL2前面的程序不被执行,不影响其后的程序的。
所以                     LD    SM0.1
                          CALL  SBR_1
是总是被执行的。
要想不执行SBR_1,在LBL2前加跳转指令跳过SBR_1的调用。
06-10-21 20:38
楼上的这位高手可能误解了我程序的意思,我的本意是vd50=0.0的时候就执行movw这一句,
否则的话就执行sbr_1。可是我上面的程序在vd50=0.0的时候,好像也执行了sbr_1中的定时中断程序。
06-10-22 09:20
SM0.1一般用于开机后定义高速计数器、寄存等初始状态,使用SM0.0试试吧
06-11-04 10:22
用sm0.0我也试过了,也不行呢。主要是使用sm0.0的时候,无论何时中断程序中的PID程序都不会执行呢。
06-11-09 10:13
LDR 0.0,VD50
= M0.0
LD M0.0
MOVW 0,AQW0
LDN M0.0
JMP 2
06-11-14 08:05

工控新闻

更多新闻资讯