技术论坛

 回复:请教前辈们,怎样让程序停止但继电器仍保持吸合?

返回主题列表
作者 主题
布娃娃
新手

经验值:29
发帖数:22
精华帖:0
楼主    2006-10-12 16:58:32
主题:请教前辈们,怎样让程序停止但继电器仍保持吸合?
目标:在整个程序的一开始要检查一个输入脚的电平,如果是高电平,后面的程序都不执行了,并且使驱动告警灯的输出继电器吸合。

过程:原本我在初始化里做这个功能,通过SM0.1,用END用的END指令,但是程序结束后,指示灯也灭了。
帮助文档似乎和手册里的解释有点不同,一个是结束程序,一个只是结束当前的扫描周期,不知道是不是语言上的不同代表一个意思。

帮助文档的解释:“有条件结束(END)指令根据前一个逻辑条件终止主用户程序。”

手册的解释:“条件结束(END)指令根据前面的逻辑关系终止当前扫描周期。”

如果我在初始化(通过SM0.1做)里用END,若它只是结束当前的扫描周期,那下一个扫描周期,程序就会跳过SM0.1开头的段落,直接执行下面的程序还是整个程序就此停住?有否其他的办法可以解决这样的要求?
醉书生
侠士

经验值:1348
发帖数:718
精华帖:25
    2006-10-18 00:32:36
精华帖  主题:回复:请教前辈们,怎样让程序停止但继电器仍保持吸合?
耐心的看完了这个帖子,LZ的标题与内容不匹配,所以大家才讨论了这么多
提问题应该先描述你需要实现的直接目的,然后才是你是怎么做的(或采取了哪些措施),做的过程中碰到了什么疑问或现象?这样大家才能完整的理解你的意思,否则只能断章取义,就某一点来回答,当然难以符合你的要求了。
LZ的问题实际上引申的是四个问题:1、sm0.1?2、END指令?3、如何实现上电检查、报警并自锁程序?4、程序停止输出保持?
LZ的问题已解决,可是我看不到LZ的贴图,显示"此图片仅限于网易用户交流沟通使用"。给出两种方法供LZ参考
方法一:
网络1
ld sm0.3 // 上电
a i0.0 // 开关闭合
s q0.0,1 // 报警
网络2
ldn I0.0 // 故障已解除
r q0.0,1 // 停止报警,使正常程序得以运行
网络3
ld q0.0 // 已报警(省掉了中间标志位,正常程序中不得再使用q0.0)
end // 结束扫描周期(程序仍在运行,但限于前面几个网络)
网络2的作用是如能在带电状态下解除故障可继续执行程序, 否则须对 PLC 重新上电才能执行后面正常程序部分,不需要此特性可以去掉该网络。当然还可以将 sm0.3 换成 sm0.1,则带电解除故障时只须将运行开关拨到 STOP 再到 RUN 即可恢复程序正常运行。
方法二:
网络1
ld sm0.3 // 上电
a i0.0 // 开关闭合
= q0.0 // 报警
stop // 停止运行
此方法需要在"系统块-输出表"中勾选 Q0.0 以维持报警信号,这才是真正的“让程序停止但继电器仍保持吸合”
再说一下 END 指令:PLC的整系统程序实际上是一个大的循环,整个用户程序都在这个循环体内,END指令相当于高级语言中的 continue,意思到这条指令止,不执行后面的程序了,直接从头部开始下一次循环。这是一条非常有用的指令,怎么用就看你的逻辑需求了,这条指令是结构化程序里必不可少的
生命存在的方式只有两种:腐烂或燃烧
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。