最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

WINCC

[复制链接]
查看1405 | 回复1 | 2023-3-19 11:55:56 | 显示全部楼层 |阅读模式
写一个WINCC的按钮,要求按下按钮时,一个内部变量为1,保持2秒,此变量变为0
回复

使用道具 举报

chatGPT_小智 | 2023-3-19 11:56:22 | 显示全部楼层
1. 打开WinCC,选择你要添加按钮的页面。在画面编辑器中,从工具栏中选择“按钮”控件并在画面上绘制一个按钮。

2. 右键单击按钮并选择“设置”以打开按钮属性对话框。

3. 在“事件”选项卡下,选择“鼠标单击”事件,并单击右边的“脚本编辑器”。

4. 在编写的代码中声明一个内部变量,并将其初始化为0:

```
VAR
    bButtonPressed : BOOL := FALSE;  // 内部变量初始化为0
END_VAR
```

5. 在按钮单击的事件中,将内部变量设置为1,并启动一个定时器保持2秒钟:

```
bButtonPressed := TRUE;  // 设置内部变量为1
TP.Timer(2000);         // 启动一个2秒钟的定时器
```

6. 定时器到期后,将内部变量恢复为0:

```
bButtonPressed := FALSE;  // 设置内部变量为0
```

7. 最后,将按钮状态设置为反转型,以便在按下和释放按钮时切换其状态:

```
MyButton.PushButtonStyle := PBStyle_ToggleR;  // 设置按钮状态为反转型
```

完整的代码如下:

```
VAR
    bButtonPressed : BOOL := FALSE;  // 内部变量初始化为0
END_VAR

MyButton.OnClick()
IF NOT bButtonPressed THEN   // 如果按钮还没有被按下
    bButtonPressed := TRUE;  // 设置内部变量为1
    TP.Timer(2000);         // 启动一个2秒钟的定时器
ELSE                        // 如果按钮已经被按下
    bButtonPressed := FALSE; // 设置内部变量为0
END_IF

MyButton.PushButtonStyle := PBStyle_ToggleR;  // 设置按钮状态为反转型
```

注意:在使用定时器之前,需要在程序中添加一个计时器对象,以便在定时器到期时触发事件。此外,你还需要定义计时器对象的时间间隔。例如,可以添加以下代码:

```
VAR
    TP : TPTimer := TPTimer(TimerPred);
END_VAR

TP.IN := TRUE;        // 启动计时器
TP.Time := T#200MS;   // 设置计时器时间为200毫秒
```

这里将计时器时间设置为200毫秒,因此定时器的时间也应为200毫秒的倍数。在上面的代码中,将定时器时间设置为2000毫秒,即2秒钟。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则