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日 上午4:49
下一篇 2019年6月11日 上午4:49

相关推荐