发表于:2012/11/30 10:18:23
#0楼
请教各位高手:
近日闲来无事,给自己找点事做,请各位抽空指点一二:
RT,10个灯,每隔一秒亮一个
这个功能倒是很容易实现,
最基本的第一个方法,堆一些定时器就可以了达到目的。
首先给各位陪个不是,我描述和写的都没表述清楚,
正常的逻辑是这样的,
第一个灯亮(保持为1直至停止),隔1s,第二个灯开始亮(保持为1直至停止),再隔1秒,第三个灯亮(保持为1直至停止),如此循环,
到最后是十个灯全亮; 按下停止,全灭。
我后来写的程序都是置位的指令。
所以,移位只能是亮一个灯,我想实现的是逐个点亮,而且每个均保持常亮直至停止。
第二个方法是一个定时器,一个计数器,
启动之后就开始定时,隔1s,计数器+1,
再隔1s,计数器再+1,
如此往复,也可以实现功能。
第三种方法,
我想用西门子300 的PLC,
在子程序FC1中编辑时间延时的程序,
OB1中调用FC1,
启动后,
第一个灯亮,调用FC1,隔1s
第二个灯亮后,再调用FC1,再隔1s
。。。
如此往复,上电后,第一次启动,由于FC1中计时器都为0,可以实现循环,
第二次已启动,其他灯都会亮
期间我尝试在调用结束后,将FC1中的时间清零,效果也不明显.
OB1 的程序段:
确保每次调用FC1时,都是不同的定时器
只需注意last_start和 nextstart
FC1
其他的方法,也可以用移位的指令来实现,
静待高手指点~~~
谢谢
近日闲来无事,给自己找点事做,请各位抽空指点一二:
RT,10个灯,每隔一秒亮一个
这个功能倒是很容易实现,
最基本的第一个方法,堆一些定时器就可以了达到目的。
首先给各位陪个不是,我描述和写的都没表述清楚,
正常的逻辑是这样的,
第一个灯亮(保持为1直至停止),隔1s,第二个灯开始亮(保持为1直至停止),再隔1秒,第三个灯亮(保持为1直至停止),如此循环,
到最后是十个灯全亮; 按下停止,全灭。
我后来写的程序都是置位的指令。
所以,移位只能是亮一个灯,我想实现的是逐个点亮,而且每个均保持常亮直至停止。
第二个方法是一个定时器,一个计数器,
启动之后就开始定时,隔1s,计数器+1,
再隔1s,计数器再+1,
如此往复,也可以实现功能。
第三种方法,
我想用西门子300 的PLC,
在子程序FC1中编辑时间延时的程序,
OB1中调用FC1,
启动后,
第一个灯亮,调用FC1,隔1s
第二个灯亮后,再调用FC1,再隔1s
。。。
如此往复,上电后,第一次启动,由于FC1中计时器都为0,可以实现循环,
第二次已启动,其他灯都会亮
期间我尝试在调用结束后,将FC1中的时间清零,效果也不明显.
OB1 的程序段:
确保每次调用FC1时,都是不同的定时器
只需注意last_start和 nextstart
FC1
其他的方法,也可以用移位的指令来实现,
静待高手指点~~~
谢谢
[此贴子已经被作者于2012/11/30 21:22:37编辑过]
独学而无友,则孤陋而寡闻。
有问题,是必须要解决的。
Another complicated. Another mystery.
有问题,是必须要解决的。
Another complicated. Another mystery.