请教一个西门子PLC编程问题.

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:25:57
最简单的问题啦,知道不能实现,但不知道为什么不能实现.
S7-200.
单点控制一个设备的起停,也就是按一下---开,再按一下---关.循环下去.

打不了梯形图,语言简述一下吧.
I0.0 Q0.0 Q0.0
||-----|P|------|\|-----(SET)

I0.0 Q0.0 Q0.0
||-----|P|------| |-----(RESET)

比如松下的FP0中就有KEEP一类,可简单实现些功能的指令,西门子的也有很多种,但我就是想知道我这样做梯形图毛病出在哪.
请高手不吝伺教.
wanghw1216程序写得好.用个辅助点避开一个扫描周期.
但是对于我的那两行程序想再追问一下:虽然SET和RESET谁在后谁起决定性作用.但是前面的条件是I0.0的上升沿啊.比如没有Q0.0时,要在I0.0的上升沿那个扫描周期才能使Q0.0置1.而在这个周期内,输入映象寄存器Q0.0的值还没有刷新,它的开点(我程序第二行中的Q0.0开点)还是断开的啊.这时,虽然有I0.0的上升沿,但因为没有Q0.0,所以我觉得满足不了RESET的条件啊.
而当下一个周期来到时,虽然有了Q0.0,但是没有了I0.0的上升沿,还是不能RESET.
必须要等到到下次再按下I0.0时才能RESET了.
也就是按一下开,再按一下关.

我这样分析哪里错了呢?
真诚求教!!

回 haoweng朋友,PLC扫描的确很快,但是我在输入条件中加了I0.0的上升沿,所以真正起作用的就只有I0.0接通瞬间的那一个周期,下一个周期这个条件就不成立了.所以我觉得我按一下按钮,只能改变一次,我哪里错了呢?
非常感谢大家,请朋友们帮助.

有一次我睡觉前躺在床上考虑过这个问题,那时候只考虑到用计数器可以实现,今天正好遇到你提出这个问题我又仔细考虑了一下原来不用计数器也能实现。 

你的这个程序差一点就对了,错就错在没有明确rst 和set的优先级上,r 和s的优先级是以谁在后面谁就高的原则,所以,你这个程序无论怎么弄最后都是rst,因为rst在set 后面。 

我对你这个程序调整了一下,并且经过仿真程序的测试,可以实现你的要求。 

程序是:

补充回答:你对plc输出映像区怎么刷新理解错误。输出还是输入以及其他一些存贮区(如中间寄存器m的存储区)都是程序执行到那里立即刷新。并不是你理解的,扫描完一个周期才刷新。但是对于输出映像区虽然已经刷新但并不马上输出结果。也就是说程序运行中输出映像区不断刷新但是对于物理输出触点没有影响,只有程序全部执行完了,才将输出映像区的内容一次性发到物理触点。“输出映像区在程序执行期间可能发生变化,但在整个程序未执行完毕之前不会到输出端口”(引自某西门子plc教材)

西门子S7-200PLC编程请教 西门子plc logo怎样编程 西门子PLC问题 西门子plc选型问题 有谁有西门子PLC编程软件啊 西门子S7-200PLC编程试用版本的从装问题 PLC编程相关问题 请教一个编程问题 用vb和西门子200系列plc实现恒温控制的一些问题请教 哪位大哥能给发点西门子plc编程实例