ST实现单按钮灯光控制(codesys) 点击:1138 | 回复:15



不偷懒的Z先森

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2018年9月22日
发表于:2018-09-22 15:51:44
楼主
求助帖30分-已结帖

PLC小白,请问下用ST如何实现单按钮的灯光控制,感觉逻辑上没有想明白。


按钮 — 按下,松开—灯亮(必须是按下松开之后灯才亮);再按下—松开—灯灭(同左边);

设置变量 Button Button_Press Button_Release Lamp


感谢各位大佬





青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:55帖
  • 帖子:109帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2018-09-22 20:28:07
1楼

IF A:=TRUE  THEN

B:=TRUE;

ELSE   

B:=FALSE;

END_IF

竹叶三—王者之师

  • [版主]
  • 精华:7帖
  • 求助:21帖
  • 帖子:1141帖 | 3349回
  • 年度积分:198
  • 历史总积分:58069
  • 注册:2009年7月21日
发表于:2018-09-22 20:36:39
2楼


回复内容:

对: 青岛黄工 IF A:=TRUE  THENB:=TRUE;ELS... 内容的回复!

-------------------------

黄工,你这个不是他要的效果。你这个是点动。就是按钮按下,输出为on,按钮松开,输出为off。但是他想要的是单按钮启停效果。按下(松开)为on,再次按下(松开)为off。其实需要一个中间变量。保存上一次的按钮输出状态,这样就可以实现单按钮启停了。

青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:55帖
  • 帖子:109帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2018-09-22 21:27:52
3楼


回复内容:

对: 竹叶三—王者之师 回复内容:对: 青岛黄工  IF A:=TRUE  T... 内容的回复!

-------------------------

,这样啊

PROGRAM POU_1

VAR

   R1 :R_TRIG;

   R2 :F_TRIG;

   A  : BOOL;    (*按钮*)

   B  : BOOL;    (*灯*)

   C  : BOOL;    (*中间变量*)

END_VAR


R1(CLK:=A,Q=>);    (*上升沿*)

IF R1.Q AND B:=TURE   THEN

C:=FALSE;

ELSIF R1.Q AND B:=FALSE THEN

C:=TRUE;

END_IF

END_IF


R2(CLK:=A,Q=>)     (*下降沿时输出*)

IF R2.Q  THEN

B:=C;

END_IF

没经过验证啊,有条件的可以试试。

墨轩cc

  • 精华:0帖
  • 求助:4帖
  • 帖子:17帖 | 293回
  • 年度积分:0
  • 历史总积分:701
  • 注册:2016年11月01日
发表于:2018-09-25 11:27:14
4楼


用梯形图比较容易吧,用ST没想过

Lonely_99

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2490回
  • 年度积分:0
  • 历史总积分:117
  • 注册:2014年10月29日
发表于:2018-09-25 11:53:23
5楼

免费分享是一种美德。。。

Freddy

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 57回
  • 年度积分:261
  • 历史总积分:425
  • 注册:2016年11月08日
发表于:2018-09-25 17:25:30
6楼


回复内容:

对: 青岛黄工 回复内容:对: 竹叶三—王者之师  回复内容:对: 青... 内容的回复!

-------------------------

一条异或指令搞定,别整这么复杂了,老板!新人估计看的累


out := (buttom的上升沿 )XOR (out)

Freddy

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 57回
  • 年度积分:261
  • 历史总积分:425
  • 注册:2016年11月08日
发表于:2018-09-25 17:28:39
7楼

out := (buttom的下降沿 )XOR (out)

上面不好意思看错了,以为取上升沿,取下降沿就行了,这个很简单的。自己去试试吧

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2018-09-25 20:03:13
8楼

直接用输入点上升沿或者下降沿(你的点用常开或者常闭)驱动交替指令即可

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2018-09-25 20:19:09
9楼

225.JPG

常开接点或者常闭接点均可以,

竹叶三—王者之师

  • [版主]
  • 精华:7帖
  • 求助:21帖
  • 帖子:1141帖 | 3349回
  • 年度积分:198
  • 历史总积分:58069
  • 注册:2009年7月21日
发表于:2018-09-26 15:18:24
10楼

楼主是想用ST来写,不是用梯形图。另外,有些PLC是没有ALT指令的。其实Freddy的思路很好。

回复内容:

对: 乖乖小笨熊 直接用输入点上升沿或者下降沿(你的点用常开或者常闭)驱... 内容的回复!

-------------------------


不偷懒的Z先森

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2018年9月22日
发表于:2018-09-26 20:05:40
11楼


回复内容:

对: 青岛黄工 回复内容:对: 竹叶三—王者之师  回复内容:对: 青... 内容的回复!

-------------------------

感谢黄工,就是因为要学习ST所以才要用,但是我想应该灯的亮灭都是下降沿触发

不偷懒的Z先森

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2018年9月22日
发表于:2018-09-26 20:06:27
12楼


回复内容:

对: Freddy out := (buttom的下降沿 )XOR (ou... 内容的回复!

-------------------------

谢谢

青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:55帖
  • 帖子:109帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2018-09-28 14:44:14
13楼


实现问题的途径有多种,给新人看,还是详细点比较好,不过写的不多,却看不题目的,就是SB了。这种货,远离为好。

Smile-lyc

  • [管理员]
  • 精华:114帖
  • 求助:50帖
  • 帖子:2793帖 | 22283回
  • 年度积分:311
  • 历史总积分:144042
  • 注册:2006年8月04日
发表于:2018-10-27 14:24:51
14楼

温馨提醒:凡是设置积分悬赏的求助帖,请楼主及时结贴发放积分。

同时也希望楼主能把解决问题经验或思路一起分享!


chenlongfeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2017年9月20日
发表于:2022-05-24 17:00:26
15楼

"Freddy" 的回复,发表在7楼
        对内容: 【out := (buttom的下降沿 )XOR (out)上面不好意思看错了,以为取上升沿,取下降沿就行了,这个很简单的。自己去试试吧...】进行回复:

        -----------------------------------------------------------------

很棒的回答



热门招聘
相关主题

官方公众号

智造工程师