C脚本求救

电柜上有一2位旋钮,用于某阀门开启/关闭,另外上位机WINCC中也要在界面里增加个类似旋钮实现控制该阀门.
用库里的Toggle的on_off3,C脚本....
我目的:如果在上位机里使能该旋钮,先提示"确定要开启某阀门吗",如果点击"确定"钮,则往下执行,如果点击"否"钮则程序返回...,但是如果点击确定后电柜面板旋钮处于开启位置(I2.0),则提示提示"电柜面板旋钮已处于开启位置"则程序返回,但是我第一个提示正确,第2个提示不成功
以下是Toggle的on_off3属性C脚本,哪里不合适?
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

BOOL value;
LINKINFO plink;
//if (!C_ask()) return; 
int itemp1;
int itemp2;
CHAR *MSG1="是否确认要手动改变设备的运行状态?";
CHAR *MSG2="电柜面板上对应开关已开启!";
 itemp1=MessageBox(NULL,MSG1,"提示",
                MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
 if (itemp1==IDNO) return;

//有问题部分........
if("倒料站除尘面板开启钮"==TRUE) 
{itemp2=MessageBox(NULL,MSG2,"提示",
MB_OK|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) ;
return;}
else
//有问题部分........
        
//以下是Toggle,默认程序,不用管它
PDLRTGetPropEx(0,lpszPictureName,lpszObjectName,"Toggle",VT_BOOL,&value,NULL,NULL,0,NULL,NULL);
if(value) value =FALSE;
else value = TRUE;

PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL); //Rueckgabe-Typ :BOOL 

if (plink.LinkType >2) return;
else SetTagBit (plink.szLinkName,(short int) value);


}

最佳答案

应该这样:
if(GetTagBit("倒料站除尘面板开启钮")==1) 
{itemp2=MessageBox(NULL,MSG2,"提示",
MB_OK|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) ;
return;}
else
前提是“倒料站除尘面板开启钮”是2进制变量。

提问者对于答案的评价:
OK

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc266815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • 关于用户管理

    请问各位大侠,如何在WINCC中作一个用户登录窗口,就是有写按钮或者输入域需要用户权限登录后才能操作,我想做个按钮,点一下,输入用户名和密码,然后进行相应的权限操作 最佳答案 首先…

    SIMATIC WinCC 2019年6月11日
  • plc与Wincc的通讯问题

    我的是315-2与Wincc连接是将出现项目中的一个连接无通讯,为暗格,我用的是Tcp/IP驱动连接,IP地址与CP设同一个地址,但是就是不能显示模拟量的动态状态,请高手指点 最佳…

    SIMATIC WinCC 2019年6月11日
  • 如何修改为CASE语句VBS问题

    1.以下脚本如何改为CASE语句呢?用VBSSub Process_OnPropertyChanged(Byval Item, Byval …

    SIMATIC WinCC 2018年12月14日
  • 数值输入PLC

    在WINCC中将VB0的数值写入S7-200PLC。我的OPC通道没问题。但是我却不能把数值写入VB0中。     我是这样做的:…

    SIMATIC WinCC 2019年6月11日
  • GetLocalDate(oRs.Fields(1).Value)转换时间的语句为什么打印不到excel上去

    1、我想把时间打印到excel表格上去,发现用GetLocalDate(oRs.Fields(1).Value),excel表格上打印不出时间来,而用oRs.Fields(1).V…

    2021年7月5日
  • OLE-DB Tag and Alarm Export 支持64位

    https://support.industry.siemens.com/cs/document/77940055/%E5%9C%A8wincc%E4%B8%AD%E5%A6%82…

    2021年7月5日
  • wincc7.0如何用vbs连接mysql数据库

    wincc7.0如何用vbs连接mysql数据库 问题补充:我按着楼上的代码写入vbs脚本,设置了一个按钮,鼠标点击触发事件,运行后并没有任何反应 最佳答案 资料转帖的,仅供参考,…

    SIMATIC WinCC 2021年7月5日
  • wincc归档路径

    各位大侠:    小弟今有一问题,我已将wincc项目安装在c盘,但c盘空间有限,存储归档数据的容量有限,请问归档数据是否存储在项目文件夹下…

    SIMATIC WinCC 2019年6月11日
  • Wincc高版本授权向下兼容吗?

    系统结构因素,系统只能用Wincc7.0版本的,现在在售的基本都是7.4,7.5的根本买不到7.0,问题是7.4授权能用在7.0上吗? 钻石用户推荐最佳答案 1、高版本的授权应该不…

    SIMATIC WinCC 2021年7月5日
  • 安装许可证

    XP系统安装WINCC%ignore_a_1%后总是提示缺少许可证,具体需要哪些 最佳答案 和你项目使用到的功能有关,一般如果只是运行,则需要rt授权;如果需要组态,则需要rc授权…

    SIMATIC WinCC 2021年7月5日