我这的WINNCC画面里有个对象,在对象属性中显示自定义对象,画的就是一个类似于刀闸开关的东西,功能是实现手自动切换,当点击对象时,开关朝上,表示手动,再点击一次开关朝下,表示自动,并通过“事件”中的鼠标动作链接C脚本将变量对应的置0或1,请问是如何实现的,C脚本各行是什么意思,以及什么是自定义对象?C程序如下:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#include "trigger.h"
BOOL value;
LINKINFO plink;
PDLRTGetPropEx(0,lpszPictureName,lpszObjectName,"Toggle",VT_BOOL,&value,NULL,NULL,0,NULL,NULL);
if(value) value =FALSE;
else value = TRUE;
if (PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL))
{
if ((plink.LinkType >BUBRT_LT_VARIABLE_INDIRECT) || (plink.LinkType < BUBRT_LT_VARIABLE_DIRECT)) return;
else
{
PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL);
SetTagBit (plink.szLinkName,(short int) value);
}
}
}
图片说明:
最佳答案
1、自定义对象就是利用基本对象组成的可自定义属性的新对象。
2、你脚本中用到的函数 PDLRTGetPropEx 、 PDLRTGetLink 及数据类型均在头文件 trigger.h 中声明。非通用函数,没有说明的话难以知道具体参数含义。
3、大体上, PDLRTGetPropEx 用于获取该自定义对象状态对应变量的当前值,再取反; PDLRTGetLink 用于获取自定对象的变量连接类型,再赋值给变量。
提问者对于答案的评价:
已经解决了,谢谢,其实就是库立的一个Toggle。脚本也是自己生成的!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc264327.html