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

相关推荐

  • 如何将wincc 2个和时间有关的变量如何耦合在一个曲线功能里面,但是坐标轴无时间变量?

    想咨询一个wincc曲线的问题,我这里有2个变量:一个距离/时间  一个高度/时间。我想将这2条曲线通过时间这个变量做桥梁偶合成距离和高度的曲线。简单的说就是A…

    2017年6月8日
  • wincc内部变量初始值

    我在做wincc的脚本,使用wincc的内部变量,但是想把某些内部变量给定初始值,怎么做,或者有没有wincc激活时就执行一次的动作吗? 最佳答案 参考:http://www.ad…

    SIMATIC WinCC 2019年6月10日
  • WINCC软件中文下载

    那位仁兄有WINCC软件中文下载资料,兄弟谢谢了 问题补充:听说要序列号,请仁兄也帮帮我,我的邮箱是liu197383@163.com 最佳答案 WinCC V7.0&n…

    SIMATIC WinCC 2019年6月11日
  • 请问:什么叫VB脚本啊?

    请问:什么叫VB脚本啊?谢谢!! 最佳答案 用VB语言来进行相关的编程,所谓的脚本就是一般指描述性语言,如JAVASCRIPT,VBSCRIPT,等等,接近人类自然语言,都是解释执…

    SIMATIC WinCC 2019年6月11日
  • 文本问题

    按钮上文字让两行显示如何做? 最佳答案 双击按钮 选择 字体 然后选择文本 在写完第一行后 ctrl+ENTER(回车)&nbsp…

    SIMATIC WinCC 2019年6月11日
  • 通过双击一对象打开一画面窗口,在关闭后双击可继续打开,请问如何实现?

    想实现双击一对象打开一个小的画面窗口,通过SetPictureName可实现,但是在关闭画面窗口后再双击就打不开了,请问大家如何实现鼠标双击打开和关闭后再双击打开这个联系功能?谢谢…

    SIMATIC WinCC 2019年6月11日
  • wincc脚本运行周期与step7同步问题

    在PLC里面写了一些与时间计数有关的计算,输出到DB,wincc接收DB,同时归档。这里的归档是在wincc里面写的脚本。问题:归档想从0秒开始,但是实际上从1秒开始;有的时候1秒…

    SIMATIC WinCC 2021年7月5日
  • wincc数据库读取

       在运行的过程中,由于断电等因素导致软件无法访问,无奈下重做系统,用原始的备份程序运行,但是前半年的历史数据还想能查询到,求各位大神支招。 钻石用…

    SIMATIC WinCC 2021年7月5日
  • 报表保存

    请问,怎么把项目文件夹下的export/tagglong里的时间变成正确的时间,而不是查八个小时啊,谢谢 问题补充:对不起,我没有说清楚,就是我到那个“.CSV”文件里看数据,发现…

    SIMATIC WinCC 2019年6月11日
  • wincc如何在OPC通道下

    我在结构变量中建立结构如图,在opc通道下建立结构变量时在这个窗口中不知道如何填写,请高手指导一下?项目名称,访问路径,数据类型如何填写,假设opc名称为XX, 问题补充:我接了结…

    2021年7月5日