quote:以下是引用认真在2006-03-21 13:05:57的发言:quote:以下是引用无名在2006-03-20 20:53:25的发言:quote:以下是引用阿鸣在2006-03-19 12:03:31的发言:quote:以下是引用入错行在2006-03-15 14:59:15的发言:
如不需要检测跳变时刻,用实际逻辑结果不也很好吗?
有时必须用跳变来的方便、简捷。例如两个互为备用的设备,A停下立刻启动B,用A的运行状态位的下降沿触发B启动,反之亦然。
妙处很多。不解其妙处,则不为慧者。慧者乃非一日练就,日久天长,你定能为慧者。
这个例子感觉不是很明显,不用下降沿一样可以实现启动B的功能.
像这样: ( if A.Run <> 1 then Setup B ) 不一定要用下降沿.
举个这样的例子:
设备启动/停止时 记录当时的系统时间就要用到沿信号触发条件.
本人认为阿鸣的举例较为贴切。在实际应用中,设备启/停信号不能为长信号,应为一脉冲(方波,即一按钮信号),用沿触发来的方便。
你与阿鸣只看到表面,不是说SETUP B就是一个置位信号,它只是一个命令,可以是长信号,也可以是一个脉冲.
另外,你说的沿信号在实际中并不能作为实际的按钮触发,因为沿信号只是一个扫描周期,尽管是方波,但也只是一个扫描周期的方波,并不能保证继电器的正常动作,你对沿信号的理解还不是清楚.
在实际应用中,如果编程不够严谨,设备启/停命令信号用长信号会容易产生错误.但这也仅仅是在"编程不够严谨"的时候才容易产生的.
如果针对一个继电器的驱动,它的触点驱动电机,你要做的还是要把信号延长,保证继电器有足够的动作时间,因为一个沿信号的驱动,对继电器没有任何作用,你的电机是启动不了的.
举例:
an #A_Run
Fp #M_bit
= #Do_Drive 沿信号绝对不能作为实际的DO驱动
这个例子里Do_Drive 不能作为实际控制的驱动信号的,只能作为一个命令信号.
但这个命令信号要作为实际的继电器的驱动,还要用定时器.
A #Do_Drive
l S5t#2s
SE T1
= #Do_Real_DriveB 真正的驱动
但这与下面这个命令没有任何区别
AN #A_Run
l s5t#2s
SE T1
A T1
= #Do_Real_DriveB
如果是长信号驱动的,比如说是电磁阀只类的,那就更不用说了,用沿信号更是一无是处!