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

相关推荐

  • 报警视图显示已确认报警

    请教以下,小弟有个项目是从wincc5.1升级到wincc v14的,里面有个报警视图,因为WINCC离散量报警都是上升沿触发的,这个报警视图在报警来了我确认掉之后,此时…

    SIMATIC WinCC 2021年7月5日
  • WINCC的弹窗只能打开一次,在点就不能弹出?

    我是在直接链接上的 图片说明:    最佳答案 因为画面窗口被关闭后,需要再把“显示”属性设置为“是”才能显示可以使用按钮释放左键事件,添加直接连接 图片说明:…

    2020年11月1日
  • 如保把WINCC历史数据导出到EXCEL

    如保把WINCC中归档数据(历史数据)导出到EXCEL表中? 最佳答案 3楼说的只是打印,如果需要数据保存到电脑里面还是转化为EXCEL格式为好有现成的文档可以参考《如何将WinC…

    SIMATIC WinCC 2019年6月11日
  • WinCC画面延迟严重

    软硬件配置:WinCC7.5 ,TIA博图V16,下位机1513R冗余CPU,工程师站+操作员站,PC均配置内存8G,I5-9500 3.00GHz,64位wi…

    2021年7月5日
  • wincc通讯问题~急求解决 通宵等待

    plc为s7300 cpu315-2dp  通讯卡cp5611,接口为mpi   s7能连接上,但上位wincc不能连接…

    SIMATIC WinCC 2019年6月11日
  • wincc点击激活按钮后,显示如图对话框。

    wincc点击激活按钮后,弹出窗口,显示:项目已经被多次打开,因此不能激活。请大侠帮忙! 图片说明:    最佳答案 关闭wincc,然后在运行里输入reset…

    2017年6月5日
  • WINCC的问题

    各位大侠,请问一下,WINCC能不能与除西门子外的PLC连接?怎么连,不用以太网的话如何通讯?谢谢! 问题补充:各位大侠,请问一下,WINCC能不能与除西门子外的PLC连接?怎么连…

    SIMATIC WinCC 2019年6月11日
  • S7-200和西门子MP277连接怎样设置

    S7-200和西门子MP277连接怎样设置?它们之间用什么通讯?485还是modbus?怎样对200和屏进行通信设置? 最佳答案 flexible中在“通讯/连接”里设置一下,在右…

    SIMATIC WinCC 2019年6月11日
  • WINCC的分布式系统架构

    我想问一下,在WICC里组态分布式系统,对操作系统有什么要求.我已按西门子提供的资料进行了组态和配置,可是在客户机下载了数据包,配置了起始画面.但是运行时提示画面错误.请问各位高手…

    SIMATIC WinCC 2019年6月11日
  • WINCC画面设备数量如何统计

    WINCC画面中有很多设备,如何统计画面中设备不同状态的总数量,比有正在运转的有多少台,停止的有多少台,故障的有多少台;请大神指教! 问题补充:设备参数读取没有通过PLC,直接由M…

    2017年6月24日