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



saitc701

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



好在来

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 87回
  • 年度积分:0
  • 历史总积分:175
  • 注册:2004年4月17日
发表于:2006-03-24 11:34:00
101楼
知道有些时候为了节约PLC的输入点,就才去了一个按钮按单次是开,按双次是关的办法。

闲人

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 30回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2004年7月18日
发表于:2006-05-21 22:10:00
102楼
  呵呵,楼上说得对,我有一次就是输入点数不够用了才用这个方法的,按一次正转再按一次反转,重复在正反转间转换,不过要按下停止时才能停机.

龙逆天

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 87回
  • 年度积分:0
  • 历史总积分:97
  • 注册:2006年3月28日
发表于:2006-05-22 09:32:00
103楼
ldi yo 
out m0 
ld x0 
sftlp m0 y0 k1 k1

二聋戏猪

  • 精华:0帖
  • 求助:0帖
  • 帖子:41帖 | 240回
  • 年度积分:0
  • 历史总积分:377
  • 注册:2006年4月11日
发表于:2006-05-22 10:42:00
104楼
请问,能具体解释下那个二分频的程序吗?

智慧阿呆

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 12回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2006年5月20日
发表于:2006-05-23 11:05:00
105楼
用一个按钮开关(按一次ON,再按一次OFF....)也可实现,而且不占用PLC系统资源,也可用于一般电路(爱迪生那个年代就是这样);另外用触发器也可实现。它们各有长处,但共同点无非需有状态记忆。希望各位学了PLC而别忘了基础及原理!

鸡蛋饼...

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 315回
  • 年度积分:0
  • 历史总积分:414
  • 注册:2003年8月26日
发表于:2006-05-29 12:26:00
106楼
//按一次启动再按一次停止  ---------------------------------------方1
      A     I      0.0                  //启动按钮(自复位型按钮)
      FP    M      0.0
      =     M      0.1

      A     M      0.1
      CU    C      1
      L     C      1
      L     2
      MOD                               //取模
      T     MW     2                    //判断为0还是1


      L     MW     2
      L     1
      ==I   
      =     Q      1.2                  //输出




//------------------------------------------------------------方2
//按一次启动再按一停 止
      A     I     10.0                  //启动按钮(自复位型按钮)
      FP    M     10.0
      =     M     10.1


      A     M     10.1
      AN    M     10.3
      S     Q     10.0                  //输出
      S     M     10.3
      JC    m000
      A     M     10.1
      R     Q     10.0
      R     M     10.3                  //输出
m000: NOP   0

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-03 12:38:00
107楼
引用“逸芙雪”网友的[to keyi: 你的程序编得很精彩 我都试过了]     
 
to:“科一”、“逸芙雪”二位网友
   
   “科一”老师的3个程序之第一及第三个都可以实现楼主的要求。第三个程序虽然可以通过,但还是有点小小的缺陷。而第二个程序则完全是不行的!
“科一”老师的第二个程序如下:
 [ ldp x0
   rcl k4m0 k1
   ld m0
   or m2
   out y0
   end  ]
其中[ rcl k4m0 k1 ]命令(在FX系列PLC中)的涵义是由“m0”开始到“m15”这16个“位”组成的“字”加上“m8022”这一个“位”首尾相接构成一个“环形移位寄存器”,
当命令的“执行条件”为“ON”时,这个“环形移位寄存器”各个“位”的(“0”或“1”)状态(在一个扫描周期里)逐“位”向左移动一“位”(“m0” 移至“m1” 、“m1”移至“m2”、……“m14” 移至“m15”、“m15” 移至“m8022”、“m8022” 移至“m0”周而复始如此循环)。
  如果我们没有预先给这个“环形移位寄存器”的某些“位”置“1”,那么,该“环形移位寄存器”的各个“位”皆为“0”。则,无论你摁动按钮使“X0”状态从“OFF”变化到“ON”多少次,“m0”及“m2”都不可能为“1”!故,程序执行:[ld m0 or m2  out y0 ]的结果总是:[ Y0=“0” ]!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-03 12:44:00
108楼
即使我们预先给这个“环形移位寄存器”的某些“位”置“1”,“科一”老师的这个程序也不可能保证随时都可实现:[摁一下按钮,输出“位”Y0就改变一次状态]的“目的”。其原因有两条:

 1、 组成该“环形移位寄存器”的“m0”至“m15”及“m8022”这17个“继电器”都不是“保持型继电器”。当PLC重新上电时,该“环形移位寄存器”的17个“位”都要变成“0”状态!

 2、 该“环形移位寄存器”的“位数”是17位,对于有“奇数”位的“环形移位寄存器”我们不可能将其的内容设置成“0”和“1”均匀相间的分布状态:不是“0”状态的“位”多于“1”状态的“位”,就是“1”状态的“位”多于“0”状态的“位”! 故,总会有某个环节要遇到两个相邻的“0”或相邻的“1”出现,这就表明:当这时摁动按钮使“X0”由“OFF”跃变到“ON”时,要出现“输出位”Y0的状态不随操作者的愿望而“改变”的情形!

laolan

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 19回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2006年5月17日
发表于:2006-06-04 02:13:00
109楼
LD X000
ALTP M0
LD M0
OUT Y00
END
何苦那么复杂

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-04 14:27:00
110楼
To:“laolan”网友
  
  您上面的这个“程序”在这个主题的回复帖子中已出现过多次了!何苦再重复?而且,您的这个“程序”也不是最简的!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-04 14:38:00
111楼
在FX系列PLC中实现楼主“目的”要求的程序,最简便的还数“hdss”网友在本主题下的第4个回复帖子中给出的程序:

   ld   x0  
   altp  y0 
   end

chengj

  • 精华:4帖
  • 求助:0帖
  • 帖子:89帖 | 149回
  • 年度积分:0
  • 历史总积分:1066
  • 注册:2005年6月09日
发表于:2006-06-04 14:49:00
112楼

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-04 14:56:00
113楼
“科一”老师的第三个程序的缺陷是:在FX系列的某些PLC中,当“输出位”Y0为“1”时断电或PLC进入“STOP”,再次来电或PLC重新进入“RUN”时“输出位”Y0会重复之前的“ON”状态。这时,您若要改变“输出位”Y0的状态就得摁动两次开关才能实现!这就与楼主的[摁一下按钮,“输出位”Y0就改变一次状态]的“目的”发生“差错”了。

  我说的这个现象,网友们可以把“科一”老师的第三个程序写入FX1s或FX1n的PLC中去验证一下。

附“科一”老师的第三个程序:
[ ld m8002
  set s20
  stl s20
  pls m0
  ld x0
  pls m1
  ldi m0
  and m1
  set s21
  stl s21
  out y0
  pls m0
  ld x0
  pls m1
  ldi m0
  and m1
  set s20
  ret
  end ]

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-04 15:01:00
114楼
“科一”老师的第三个程序之所以会在FX系列的某些PLC中发生“差错”是因为:本来在“步进”程序中“状态”S的转移是后一“状态”被“置位”的同时前一“状态”(或称其它“状态”)自动复位,以保证程序中只有一个“状态”S(也称“步”)处于“置位”的情形。而FX系列的某些PLC的“状态元件” S都是“保持型继电器”,在这些PLC中,如果在“状态”S21为“1”(这时Y0=“1”)的情形下发生断电或PLC转入“STOP”,再次来电或PLC重新转入“RUN”,这时“状态”S21仍然为“1”,故PLC的“输出位”Y0会恢复“ON”状态。但这时因“步进”程序之外(之前)有语句[ld m8002    set s20 ],这就使得“步进”程序中发生“状态”S20和“状态”S21同时处于“置位”的情形。这就是“步进”程序所不允许发生的情形!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-04 15:13:00
115楼

 改掉这一“缺陷”的办法有多种!这里举出一两例谨供网友们参考:

 在语句[ld m8002    set s20 ]中插入[ani s21],使之变成[ld  m8002   ani s21  set s20]。

 或在语句[ld m8002    set s20 ]之后插入[rst  s21]使之变成[ld  m8002  set  s20  rst  m21]。

 用前一种方法改写后,PLC在“状态”S21保持“置位”状态下重新进入“RUN”时,其“输出位”Y0会恢复“ON”状态;而用后一种方法改写后,PLC在“状态”S21保持“置位”状态下重新进入“RUN”时,其“输出位”Y0不会恢复“ON”状态。这就要视其使用者的“目的”要求来决定怎么改写了。
 

tboy

  • 精华:2帖
  • 求助:0帖
  • 帖子:29帖 | 95回
  • 年度积分:0
  • 历史总积分:249
  • 注册:2005年12月29日
发表于:2006-06-04 16:21:00
116楼
我们的工控有希望的

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2006-06-05 12:52:00
117楼
  我们上网来看别人的帖子,主要是学习别人不同的“逻辑思维”,取长补短以提高我们的编程能力。看别人的程序时应该用心!在同一个主题的帖子下请不要毫无变化的多次地重复别人已经贴出过的实质内容。

我学变频

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 11回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2005年11月13日
发表于:2006-06-05 13:47:00
118楼
ALT指令就行了啊!!!
LD X000
FNCP 66 Y000
EBD

$$$$$$$$$$

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 88回
  • 年度积分:0
  • 历史总积分:88
  • 注册:2005年3月11日
发表于:2006-06-05 14:32:00
119楼
也可以这样做啊:
ldp x0
ani c2
out c1 k1
out c2 k2
ld c1
out y0
ld c2
zrst c1 c2

河北赵

  • 精华:0帖
  • 求助:0帖
  • 帖子:55帖 | 590回
  • 年度积分:3
  • 历史总积分:853
  • 注册:2004年9月22日
发表于:2006-06-05 19:53:00
120楼
9#小生的程序可行,laolan的程序更简捷: LD X0 ALTP M0 LD M0 OUT Y0 END

热门招聘
相关主题

官方公众号

智造工程师