一个按钮两种功能 点击:33618 | 回复:603



saitc701

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 60回
  • 年度积分:0
  • 历史总积分:154
  • 注册:2003年9月22日
发表于:2005-05-12 15:46:00
楼主
用一个按钮X0控制Y0的电路,第一次按下按钮Y0变为ON,第二此按下按钮Y0变为OFF 请问怎么实现啊,谢谢!



sicui

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 152回
  • 年度积分:0
  • 历史总积分:446
  • 注册:2006年3月19日
发表于:2006-06-08 20:49:00
141楼
类似这样的问题多发一些!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-09 22:54:00
142楼
怪了!我前几天在这个讨论主题下的第3页里看到过“河北赵”先生的一个“步进”程序,并把它复制保存在《我的文档》里。可是现在怎么就看不见了呢?
  我把它的“复制品”重新拷贝在这里,请前几天还在这个主题下参与讨论或浏览的网友们回忆一下是不是见过这个“步进”程序?
  LD M8002 SET S0
  STL S0      
    LDF X0    SET S20
    STL S20   OUT Y0
    LDP X0    SET S21
    STL S21   OUT T0 K5
    LD  T0    SET S0
    RET
    END

    上面的这个“步进”程序拷贝自“河北赵”的帖子

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-10 12:18:00
143楼
  “河北赵”给出的那个“步进”程序很不好用。由于操作手法的不同就可能达不到楼主的“目的”要求!“河北赵”先生可别对网友们宣称这是你特意设计成这种“效果”的、也别说是你的“创新”噢!因为你应该注意:你是在楼主的“主题”下讨论程序,就应该以楼主的“目的要求”为“标准”,你的程序须围绕这一“标准”来展开设计。楼主的“目的” 要求是:[摁一下按钮,“输出位”Y0就改变一次状态],而运行你的程序会是什么样的结果呢?请看我下面的分析:
  1、给PLC上电使其进入“RUN”,由“M8002”给“步进”程序置为“初始状态”:即“S0”被置位。
  2、摁下连接“X0”的按钮但未放手,“步进”程序的“状态”不发生转移,“输出位”Y0暂不输出“1”。
  3、放开摁压的按钮时,“状态”S0转移至“状态”S20,“输出位”Y0输出“1”。
  4、再次摁下连接“X0”的按钮(这次是“摁压动作”的“前沿”),“状态”S20立即转入“状态”S21,使“输出位”Y0=“0”。经0.5秒后“状态”S21自动回到“初状态”S0。
  正是这一步经0.5秒后“步进”程序的“状态”S21会自动回到“初状态”S0,这就造成下述的结果:[当“输出位”Y0=“1”时,若你欲使“输出位”Y0=“1”的状态改变并操持为Y0=“0”的状态,则,你只能短暂(持续时间少于0.5秒)地操作“X0”的按钮!如若不然,当你放开按钮时,“输出位”就会立即恢复Y0 =“1”的状态!]这一结果不是与楼主的“目的要求”相悖了吗!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-10 12:24:00
144楼
当然,你可以申辩说:这正是本程序在设计上的“独到之处”、是“为了提供一种编程思路,为了对初学者提供帮助”;本程序设计的“目的”就是要求操作者应当采用“短暂摁动”的“操作手法”!
  如果你的申辩是一种“合理的解释”,那么OK!按照你的这一“操作手法”在下述的情形下就会发生“错乱”:
  若“状态元件”S20是保持型的“继电器”比如:在“FX1S”或“FX1n”中的“状态元件”S20,则,当“输出位”Y0=“1”的情形下,PLC断电或转入“STOP”之后再次来电或进入“RUN”,“输出位”就会恢复Y0=“1”的状态。这时,操作者按照你的设计的“目的要求”采用这一“操作方法”短暂地摁动“X0”的按钮,虽然可以在摁下按钮的期间内使“输出位”Y0的“1”状态改变为“0”,但是,当放开按钮时,Y0立即又恢复为“1”状态 !即:不能实现操作者的愿望——[摁一下按钮,“输出位”Y0只改变一次状态]。
  对于“河北赵”先生的这一“步进”程序在运行中出现这种情况时,可分别利用两种方法来解除这一错乱:其一,摁下按钮的持续时间不少于0.5秒;其二,在短于0.5秒的时间内“双击”连接“X0”的按钮。
  错乱解除之后便可恢复采用“短暂地摁动按钮”的“操作手法”控制“输出位”Y0作“双稳态触发”翻转。但这里的“双稳态触发”与常规不同:它是用前一次“操作”的“后沿”来触发Y0使其由“0”跳变为“1”;而用后一次“操作”的“前沿”来触发Y0使其由“1”跳变为“0”。这种触发方式也给我们的操作感觉不爽!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-10 12:27:00
145楼
“河北赵”先生的“步进”程序为什么会出现错乱呢?这是因为如果“状态元件”S20是“保持型”的元件,则,在PLC重新上电或进入“RUN”,因“步进”程序之外(之前)的[LD M8002  SET S0]语句的作用,PLC就会将“初状态”S0给置位,且同时“步进”程序中“状态”S20也因“保持”的特性而处于“STOP”或断电前已被“置位”的保持状态。这一状况就是“步进”程序的规则所不允许的!(对于这一问题,我已在本主题下给指出过了,参见第3页中第15个回帖),可见“河北赵”先生并不愿意学习他人的编程思路,却要求初学者要学习他的编程思路。“河北赵”先生在阅读他人的帖子时毫不用心,所以才会重复犯“科一”网友在前面第1页的第18个回帖中犯过的错误!

电笔

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 645回
  • 年度积分:0
  • 历史总积分:785
  • 注册:2005年4月02日
发表于:2006-06-10 12:49:00
146楼
厉害!收益非浅!

I小龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:28帖 | 807回
  • 年度积分:0
  • 历史总积分:1298
  • 注册:2006年5月23日
发表于:2006-06-10 15:03:00
147楼
谢谢大家,在这里真的开阔了视野,以前,我只会两种方法,现在学多多了,本来想插上一帖的,看看别人都早说了,也就插不上号。大家都是强人啊。

河北赵

  • 精华:0帖
  • 求助:0帖
  • 帖子:55帖 | 590回
  • 年度积分:3
  • 历史总积分:853
  • 注册:2004年9月22日
发表于:2006-06-10 18:22:00
148楼
wanggq 您好:
多谢您的指教。
原文特意提到:该程序“基本能够实现单键控制启动与停止,但是如果关机操作不正常,会引起误动,不能关机,其中原因,请各位初学者分析指出。”
您提到的问题,我已经考虑到了,因此才有上述提示。我的本意一是在初学者掌握编程指令不多的情况下,给初学者提供一种思路,二是请初学者分析、找出其中的问题,以便改进。
再次向wanggq先生表示感谢。

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-10 20:08:00
149楼
TO:“河北赵”

  不用谢!我只要求搞“技术工作”的工友们要有“认真”的态度!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-10 20:29:00
150楼
“laolan”先生提出“理论”:“在高强电火化和电场所使用可能会出现误操作。……如果加上一个辅助继电器利用其扫描一个周期的时间和共模作用。相信效果会好点。”可能是在这个“理论”的影响下(前面第3页中倒数第11个和第12个回帖)“mast”先生也用一个“辅助继电器”M0来作“ALT交替命令”的“操作数”。希望以此能“可靠”地满足楼主的愿望——[摁一下按钮,“输出位”Y0只改变一次状态]。其向我们展示的程序是:
    LD X00  ALT M0
    LD M0  OUT Y00  
    END 
  但是,“mast”的这个程序也不会因为使用了“辅助继电器m0”,而使得程序运行的结果能够“可靠”地满足[摁一下按钮,“输出位”Y0只改变一次状态]这一“目的”要求。
  这是为什么呢?,这是因为“mast”网友用错了“交替命令”的执行型式!这与PLC“硬件”的“共模抑制”概念扯不上关系!“ALT”命令是“连续执行型”命令,在“执行条件”为“ON”的期间内,程序的每一扫描周期都会执行一次“ALT”命令。 当我们操作“X00”时,我们根本不可能把摁下按钮的时值控制在程序的“一个扫描周期”内,也不可能刚好控制在“(2n+1)个周期”。所以,当我们放开按钮时,无法保证“操作数”M0翻转的次数刚好是“奇数”!故,这个程序不能保证实现操作者的愿望。并且在操作者摁下按钮使“执行条件”为“ON”的期间内“输出位”Y0会发生“高速振动”,这就是我们所不希望出现的现象。 
  如果“mast”网友改用“脉冲型执行型”的交替命令“ALTP”,则,不用“辅助继电器”M0作交替命令的“操作数”而改用“输出继电器”Y0直接替换之,也能“非常可靠”地保证实现[摁一下按钮,“输出位”Y0只改变一次状态]这一“目的”的愿望。这是因为由PLC软件定义的“ALTP”命令的“执行”方式是:只在“执行条件”从“OFF”跳变到“ON”这一“前沿”执行。即:在“执行条件”为“ON”的期间内,交替命令仅只“执行一次”!至于“交替命令”的“执行”的“可靠性”,则完全与“用户程序”无关而只与PLC硬件实体的“制造技术”相关!

待业青年

  • 精华:6帖
  • 求助:0帖
  • 帖子:285帖 | 879回
  • 年度积分:0
  • 历史总积分:3279
  • 注册:2005年3月26日
发表于:2006-06-10 21:04:00
151楼
你的程序编得很精彩

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-11 20:22:00
152楼
“laolan”先生认为“hdss”网友给出的那个简洁的程序“如果在高强电火化和电场所使用可能会出现误操作。原因是ALTP本身就是一个触发器,在这样的环境下使用会出现可能高次周波振铃现象,加上X00引线的吸收的环境电场。出现的误操作现会更严重。”可见“laolan”先生没有分清“硬件实体电路”和“软件虚拟电路”两个概念的差别!把只有前者才有的一些“属性”也强加在后者的属性上!并混淆视听地说“并不是只有硬件才有属性”。为了使网友们明了我说的意思,我这里打个比方:雌性熊猫有“爱吃竹子”的属性,雄性熊猫也有“爱吃竹子”的属性。而雌性熊猫会有“生产熊猫幼仔”的属性,雄性熊猫却不可能有这一“属性”!这后一句话并不是在说“只有雌性熊猫才会有属性”! 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-11 22:07:00
153楼
  “硬件实体电路”处理的是“电流”、“电压”的分配;“电能”与其它“能量”的转换,当然也处理“信息”;而“软件虚拟电路”处理的仅只是“信息”。前者可用开关触点构成“并联关系”、“串联关系”;后者也可用虚拟的“开关触点”构成“并联关系”、“串联关系”。但是,前者的触点有“接触电阻”的“属性”它有可能因接触不良而使串、并联电路的逻辑结果发生错误;而后者的虚拟触点却不可能有“接触电阻”这一“属性”,因而不可能有“接触不良”之说!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-11 22:13:00
154楼
  累了!下次再接着谈吧!

电神

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 86回
  • 年度积分:0
  • 历史总积分:164
  • 注册:2005年10月18日
发表于:2006-06-11 22:50:00
155楼
是啊,大家都是初学者,相互学习的日子还长,要谦虚认真哦!

mast

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 132回
  • 年度积分:0
  • 历史总积分:234
  • 注册:2006年2月21日
发表于:2006-06-12 20:02:00
156楼
wanggq:

你说得很对,忽略了抖动问题,表示感谢

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-12 21:52:00
157楼
“硬件实体电路”的“双稳态触发器”有“零点漂移”、“共模抑制”、“差模增益”、“耗散功率”、“额定电压”、“芯片材料”等等一些“属性”,而用编程语言(比如用“ALTP”命令)定义的“虚拟器件”之“双稳态触发器”却完全不存在这一些“属性”,而只有“双稳态触发器”的“触发功能”、“触发方式”和程序命令的“执行形式”等“属性”!这其中唯有“触发功能”和“触发方式”才是前后两者的共有“属性”。 前者因有“芯片材料”这一“属性”才谈得上什么“cmos器件”或“双极型器件”,而后者却没有“芯片材料”这一“属性”,所以,对于后者,根本扯不上“cmos”或“双极型”嘛!

Meiling

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 12回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2006年6月10日
发表于:2006-06-12 22:22:00
158楼
怎么老是提简单问题?

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-12 22:25:00
159楼
“laolan”先生提醒我们说:“但不要忘记所谓的软元件是由一条条‘十六或二进制或其他语言’的指令所构成他的属性”。对了“指令所构成”的“属性”怎么会与“硬件实体电路”的“共模”、“cmos器件”、“双极型器件”等等概念扯得上关系呢?

卡依娃

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 146回
  • 年度积分:0
  • 历史总积分:289
  • 注册:2006年5月22日
发表于:2006-06-12 22:27:00
160楼
其实大家用PLC做的!方法是很多都可以的!

热门招聘
相关主题

官方公众号

智造工程师