WINCC关于自定义对象和C脚本的一些问题

我这的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);
   }
}
}

图片说明:

WINCC关于自定义对象和C脚本的一些问题   

最佳答案

1、自定义对象就是利用基本对象组成的可自定义属性的新对象。
2、你脚本中用到的函数 PDLRTGetPropEx 、 PDLRTGetLink 及数据类型均在头文件 trigger.h 中声明。非通用函数,没有说明的话难以知道具体参数含义。
3、大体上, PDLRTGetPropEx 用于获取该自定义对象状态对应变量的当前值,再取反; PDLRTGetLink 用于获取自定对象的变量连接类型,再赋值给变量。

提问者对于答案的评价:
已经解决了,谢谢,其实就是库立的一个Toggle。脚本也是自己生成的!

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

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

相关推荐

  • listview显示问题

    各位大侠: 深入浅出的书上将数据显示在listview控件上的代码本人不才,运行时总是出现错误,希望好心人能提供一段通过测试的代码,如附讲解,将更加感激。 本人…

    SIMATIC WinCC 2019年6月11日
  • WINCC中的报警用的消息文本为什么只显示一个X

    WINCC中的报警用的消息文本为什么只显示一个X,我说的是消息文本,不是信息文本。我想用消息文本说明故障发生的原因,并且我也把消息文本设置完了,但是在WINCC的报警运行画面上,消…

    SIMATIC WinCC 2019年6月11日
  • B.Data数据软件

    这个软件是要另外下载还是在Wincc中有集成,或者是那个版本的Wincc中有集成,如果要下载那里比较方便? 最佳答案 B.Data数据软件是收费的,simatic b.d…

    SIMATIC WinCC 2018年12月9日
  • SIMATIC Process Historian 2013以及PH-Ready分别是单独的组件吗?

    WinCC里我看没有包含这两个组件,不知道哪里可以下来试试 最佳答案 要在 WinCC V7.0 SP3 中使用 Process&…

    SIMATIC WinCC 2017年11月12日
  • 关于wincc项目拷贝

    在PC1上做好的项目,拷贝至PC2上。将计算机名等信息更改后,项目在PC2运行正常。 问题: 想在PC2上修改项目,例如:在某元件属性中,点击更改C的动作。无效…

    SIMATIC WinCC 2019年6月11日
  • wincc 变量高低位赋值

    请问:如何在wincc中,将两个int型变量的值写入到一个dint变量的高低位中?, 问题补充:请问VBS可以实现吗 最佳答案 dim mytag(2)mytag(0)=…

    SIMATIC WinCC 2020年11月1日
  • VB程序弹出画面缓慢

    现做了一个改造项目工程,画面中的阀门、电机都是用的WINCC库中的图标,因为之前别人制作的时候,没有弄结构变量,所以只好每个阀门、电机都制作单独的操作小画面,然后我在"事…

    SIMATIC WinCC 2019年6月11日
  • 不能加仿真PLC

    定义外部设备时仿真PLC组件加不进去,总说驱动有问题,别的设备没问题能加 驱动我装了啊 我用的组态王 加载驱动程序失败,设备名:仿真PLC。错误码:S…

    SIMATIC WinCC 2019年6月11日
  • 西门子触摸屏怎么记录用户登录注销信息?

    西门子TP900的触摸屏,用博图软件,要达到以下要求。1,每个用户什么时间登录,什么时间注销都会有记录。2,这个记录能保持一段时间可供查询。请教大家该怎么做,最好能具体点,查询了网…

    SIMATIC WinCC 2017年6月1日
  • GetTagBitWait与GetTagBit有什么区别啊?

    函数GetTagBitWait()与函数GetTagBit()有什么区别啊? 最佳答案 GetTagxxx与GetTagWaitxxx的区别在于: 1、GetTagxxx…

    SIMATIC WinCC 2019年6月11日