【问题标题】:(Twincat-structured text) Count the button pressed according to the LEDs on(Twincat 结构文本)根据 LED 上的 LED 计数按下的按钮
【发布时间】:2018-09-22 11:50:36
【问题描述】:

我正在使用 Twincat 结构化文本做一个类似于 Simon Game 的记忆游戏。我有一个问题,我将如何检查按钮是否与 LED 亮起相同,并计算按下了多少按钮以防你按错? 提前致谢。 这是我的代码:

VAR
iRandomNumber: DINT;
fb_delay : ton;
Run: BOOL;
GameSpeed: TIME:= T#2S;
io.blue: bool;
io.start: bool;
END_VAR

IF IO.Start THEN
run := TRUE;
IF iRandomNumber = 1 THEN
run := FALSE;    
io.Blue := TRUE;
fb_delay(in:=TRUE,PT := GameSpeed);
IF fb_delay.Q THEN
io.Blue:= FALSE;
run:= TRUE;
END_IF
END_IF
ELSIF iRandomNumber= 2 THEN
...    

我确实创建了分配给 4 个 LED 的随机数,这里是 1 个蓝色 LED 的代码,其余 LED 相同。数字为 1、2、3、4,LED 为蓝色、绿色、红色、黄色。 RUN var 是用来激活随机数生成器

【问题讨论】:

    标签: plc twincat


    【解决方案1】:

    我会为颜色创建一个 eNum,然后制作这个 eNum 的数组。 另外我会有一个索引来指向数组最后一个有效条目。

    对于每一轮,都会生成一种新颜色并将其添加到数组中,因此对于按下的每个按钮,您都必须检查数组位置并验证它与最后一个有效索引之前的颜色是否相同。然后生成一个新索引并增加指针。您可以再次播放所有内容并再次验证按钮。

    当指点指数增长时,您可以加快游戏速度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多