发表于:2012/2/2 16:16:19
#0楼
一本书上的梯形图如下图1:
![图]()
图1
上图是一个PDF资料里面的例子。其中I0.0是启动开关,I0.1是关闭开关,且都是触点的。程序的目的是开I0.0,然后让Q0.0、Q0.1、Q0.2分别延时5秒启动起来。开I0.1后,让Q0.2马上断,然后延迟3秒让Q0.1断,再延迟3秒让Q0.0断。
按照以上梯形图,我接起试过,启动是正常,但是关断有问题,开I0.1后Q0.2是马上断,然后延迟3秒,然后Q0.1和Q0.0是一起断的。按照它这个是不能实现上面分别延迟关断的目的。问题是出在T37,T38这两个定时器在启动完Q0.1和Q0.2后没有关断,而是一直在工作。所以我把程序改成下图2:
![图]()
图2
问题1:我感觉在图2的编程不是很好,我觉得应该用单稳态来做,但是在STEP 7 4.0里面没有找到单稳态这个器件...如果要让一个定时器类型的器件在触发过后就关断,你们一般是怎么做的?
问题2:在实际中我遇到过工人把两个按钮一起按下或者是在恶劣环境中按钮陷在里面取不上来了,这种会造成电机损伤。怎么能够编程达到目的是让两个按钮一起按下视作无效操作。你们一般是怎么做的?
关于问题2,我想到用复位优先的双稳态触发器。但是单单这样它还是会执行,不能变做无效,总觉得不够稳妥,请问你们是怎么做到的?
问题3:在STEP 7 4.0的版本里面,有木有在s7 200 里面,有不有类似C++的if语句这种判断器件?我看到器件里面有比较,但是都是比较数据的,最小是1字节的比较。怎么比较位逻辑?如果不能,可以把位逻辑里面的值传送到存储区去,然后再来做比较,比较完了再传回位逻辑里面?
图1
上图是一个PDF资料里面的例子。其中I0.0是启动开关,I0.1是关闭开关,且都是触点的。程序的目的是开I0.0,然后让Q0.0、Q0.1、Q0.2分别延时5秒启动起来。开I0.1后,让Q0.2马上断,然后延迟3秒让Q0.1断,再延迟3秒让Q0.0断。
按照以上梯形图,我接起试过,启动是正常,但是关断有问题,开I0.1后Q0.2是马上断,然后延迟3秒,然后Q0.1和Q0.0是一起断的。按照它这个是不能实现上面分别延迟关断的目的。问题是出在T37,T38这两个定时器在启动完Q0.1和Q0.2后没有关断,而是一直在工作。所以我把程序改成下图2:
图2
问题1:我感觉在图2的编程不是很好,我觉得应该用单稳态来做,但是在STEP 7 4.0里面没有找到单稳态这个器件...如果要让一个定时器类型的器件在触发过后就关断,你们一般是怎么做的?
问题2:在实际中我遇到过工人把两个按钮一起按下或者是在恶劣环境中按钮陷在里面取不上来了,这种会造成电机损伤。怎么能够编程达到目的是让两个按钮一起按下视作无效操作。你们一般是怎么做的?
关于问题2,我想到用复位优先的双稳态触发器。但是单单这样它还是会执行,不能变做无效,总觉得不够稳妥,请问你们是怎么做到的?
问题3:在STEP 7 4.0的版本里面,有木有在s7 200 里面,有不有类似C++的if语句这种判断器件?我看到器件里面有比较,但是都是比较数据的,最小是1字节的比较。怎么比较位逻辑?如果不能,可以把位逻辑里面的值传送到存储区去,然后再来做比较,比较完了再传回位逻辑里面?
[此贴子已经被作者于2012/2/2 16:26:59编辑过]