最新提现记录

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

帮我写一个西门子WINCC VBS脚本,要求如下

[复制链接]
查看2869 | 回复11 | 2023-5-24 16:39:59 | 显示全部楼层 |阅读模式
帮我写一个西门子WINCC VBS脚本,要求如下
1 在按钮组态事件中,鼠标动作触发
2 读取二进制内部变量" 启动1“
3 当按钮有动作时,变量"启动1”为1
4 当按钮再次有动作时,变量“启动1”为0
5 WINCC脚本是7.5版本的
回复

使用道具 举报

chatGPT_小控 | 2023-5-24 16:40:08 | 显示全部楼层
以下是符合您要求的WINCC VBS脚本:
  1. Sub OnClick(ByVal CtrlIndex)
  2.     Dim tag '声明变量tag用于存放变量名称
  3.     Dim value '声明变量value用于存放变量值
  4.     tag = "启动1" '将变量名称赋值给tag
  5.     '读取变量值
  6.     value = GetTagValue(tag)
  7.     If (value = 0) Then '如果变量值为0,则将其设置为1
  8.         SetTagValue tag, 1
  9.     Else '如果变量值不为0,则将其设置为0
  10.         SetTagValue tag, 0
  11.     End If
  12. End Sub
复制代码

将此脚本保存为一个.vbs文件,然后在WINCC中将其关联到您的按钮组态事件即可。
回复

使用道具 举报

13460825815 | 2023-5-24 16:50:33 | 显示全部楼层
还有其他编程方式吗
回复

使用道具 举报

chatGPT_小控 | 2023-5-24 16:50:46 | 显示全部楼层
13460825815 发表于 2023-05-24 16:50
还有其他编程方式吗

是的,您可以使用WINCC自带的脚本编辑器VBScript来编写这个脚本。步骤如下:

1. 在WINCC项目导航器中选择相应的图形,打开它的组态窗口。
2. 选择按钮控件,然后在属性窗口中找到Click事件选项,并双击它来打开VBScript编辑器。
3. 在VBScript编辑器中编写以下代码:
  1. Dim tag
  2. tag = "启动1"
  3. If ReadTag(tag) = 0 Then
  4.     WriteTag tag, 1
  5. Else
  6.     WriteTag tag, 0
  7. End If
复制代码

4. 点击保存按钮保存脚本。

这样,每当用户单击按钮时,脚本都会检查变量"启动1"的值,并将其更改为相反的值。请注意,在此示例中,变量"启动1"必须已在WINCC中创建并配置为二进制类型的内部变量。
回复

使用道具 举报

13460825815 | 2023-5-24 16:53:06 | 显示全部楼层
Dim tag
tag = "启动1"
If ReadTag(tag) = 0 Then
    WriteTag tag, 1
Else
    WriteTag tag, 0
这段程序哪里错了
回复

使用道具 举报

chatGPT_小控 | 2023-5-24 16:53:12 | 显示全部楼层
13460825815 发表于 2023-05-24 16:53
Dim tag
tag = "启动1"
If ReadTag(tag) = 0 Then
    ...

这段程序语法上没有错误,但是有一个变量名的问题。在声明变量“tag”的同时,您已经将它的值设置为“启动1”,因此在“ReadTag”和“WriteTag”函数中只需使用变量名“tag”,而不需要再添加一个“tag”。以下是更正后的代码:

Dim tag
tag = "启动1"
If ReadTag(tag) = 0 Then
    WriteTag tag, 1
Else
    WriteTag tag, 0
End If

请注意,确保变量“启动1”已在WINCC中创建,并且其名称是准确的,以便代码能够正常工作。
回复

使用道具 举报

13460825815 | 2023-5-24 16:56:08 | 显示全部楼层
帮我写一个西门子WINCC C脚本,要求如下
1 在按钮组态事件中,鼠标动作触发
2 读取二进制内部变量" 点点“
3 当按钮有动作时,变量"点点”为1
4 当按钮再次有动作时,变量“点点”为0
5 WINCC脚本是7.5版本的
回复

使用道具 举报

chatGPT_小控 | 2023-5-24 16:56:19 | 显示全部楼层
13460825815 发表于 2023-05-24 16:56
帮我写一个西门子WINCC C脚本,要求如下
1 在按钮组态 ...

以下是符合您要求的WINCC C脚本:
  1. #include <windows.h>
  2. #include "extwnd/EXTWND.h"
  3. #include "Siwdef32.h"
  4. #include "siwfunc.h"
  5. void OnClick(int index)
  6. {
  7.    char tagName[32] = "点点"; //将变量名称赋值给tagName
  8.    int value; //声明变量value用于存放变量值
  9.    value = SiwRead(tagName); //读取变量值
  10.    if (value == 0) //如果变量值为0,则将其设置为1
  11.    {
  12.       SiwWrite(tagName, 1);
  13.    }
  14.    else //如果变量值不为0,则将其设置为0
  15.    {
  16.       SiwWrite(tagName, 0);
  17.    }
  18. }
复制代码
将此脚本保存为一个.c文件,然后在WINCC中将其关联到您的按钮组态事件即可。请注意,变量“点点”必须已在WINCC中创建,并且其名称是准确的,以便代码能够正常工作。
回复

使用道具 举报

13460825815 | 2023-5-24 16:59:16 | 显示全部楼层
帮我写一个西门子WINCC VBS脚本,要求如下
1 在按钮组态事件中,鼠标动作触发
2 读取二进制内部变量" 点点“
3 当按钮有动作时,变量"点点”为1
4 当按钮再次有动作时,变量“点点”为0
5 WINCC脚本是7.5版本的
回复

使用道具 举报

chatGPT_小控 | 2023-5-24 16:59:27 | 显示全部楼层
13460825815 发表于 2023-05-24 16:59
帮我写一个西门子WINCC VBS脚本,要求如下
1 在按钮组 ...

以下是符合您要求的WINCC VBS脚本:Sub OnClick(ByVal CtrlIndex)    Dim tag '声明变量tag用于存放变量名称    Dim value '声明变量value用于存放变量值    tag = "点点" '将变量名称赋值给tag    '读取变量值    value = GetTagValue(tag)    If (value = 0) Then '如果变量值为0,则将其设置为1        SetTagValue tag, 1    Else '如果变量值不为0,则将其设置为0        SetTagValue tag, 0    End IfEnd Sub将此脚本保存为一个.vbs文件,然后在WINCC中将其关联到您的按钮组态事件即可。请注意,变量“点点”必须已在WINCC中创建,并且其名称是准确的,以便代码能够正常工作。
回复

使用道具 举报

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

本版积分规则