在wincc定义了全局变量,为什么在脚本上还要定义

#include"apdefap.h"double_main(char*lpszPictureName,char*lpszObjectName,char*lpszProp... #include "apdefap.h"
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
static DWORD b;
if (!GetTagBit("a"))
{
b+=1;
if(b==10000)
b=0;
}
return b;
}

我把static DWORD b;这个删掉就说没定义b,但是a我也没定义,因为,a,b我都在变量管理定义为全局变量了,为什么这里还要定义!求解,这样虽然能运行,但是切换画面,b的值就清零了。
简单滴说,我想做一个设备运行后,记录运行时间的脚本
#include "apdefap.h"
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
static DWORD b;
if (!GetTagBit("a"))
{
b+=1;
if(b==10000)
b=0;
}
return b;
}
把static DWORD b改成DWORD B就不计数
展开
 我来答
kenter_li
推荐于2018-03-20
知道答主
回答量:5
采纳率:0%
帮助的人:10.1万
展开全部
在WinCC画面切换时c脚本又重新初始化了,因此不能用c脚本变量来做累计,可定义一个WinCC内部变量做累加,这样在整个WinCC运行过程中内部变量的累加都是正常的。
但这也不是好方法,因为WinCC是用于上位监控的,设备运行时间的累计你应该放在PLC中完成,这样可避免WinCC不运行时、重启或c脚本触发不可靠而导致设备运行时间累计不准确的问题。
du瓶邪
推荐于2016-03-10 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2898万
展开全部
外部变量是指Wincc与通信伙伴使用的变量,如读取您PLC中数据的变量,这些变量将占用Wincc授权点数.
内部变量是指仅供Wincc内部使用的变量,这些变量任意使用,不占用Wincc点数.内部变量通过使用脚本赋值可以与外部变量进行数据交换.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
静思静默
2013-05-21
知道答主
回答量:10
采纳率:0%
帮助的人:1.5万
展开全部
是声明与定义吧,不一样
追问
不是的,我只想做一个设备运行后,记录运行时间的脚本,然后翻页不清零,我现在做的可以记录,但是会清零
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l117813358
2013-05-21 · 超过19用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:54.3万
展开全部
wincc是区别大小写的
更多追问追答
追问
不是的,我只想做一个设备运行后,记录运行时间的脚本,然后翻页不清零,我现在做的可以记录,但是会清零
追答
你用全局动作,触发时间1秒 里面设置每触发一次加一就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式