在wincc的c脚本动作里读取wincc定义的外部变量值

在wincc的c脚本动作里读取wincc定义的外部变量值并传送给内部变量,通讯正常,外部变量对应plc地址DB3.DW41.0,内部变量对应输入输出域,显示的数值却是0,此时外部变量值为1,程序如下
#include "apdefap.h"

int gscAction( void )
{
#pragma option(mbcs)
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END

DWORD state14=0;

GetTagBitState("VAR_68",&state14);
//state14=GetTagBit("VAR_68");
 if( !state14==0){
int   value14=0;
value14=GetTagDWord("jiantou14");
 value14+=1;
if( value14>1){value14=0;}
SetTagDWord("jiantou14",value14);
}
return 0; 
}
用SetTagBitWait;SetTagBitState都试过,就是读不出来

问题补充:
VAR_17时外部变量,jiantou14是内部变量,功能是想外部变量为1时,内部变量值循环+1,用来控制状态显示,好做成轮子的动态效果。

最佳答案

参考链接:
《如何WINCC,通过c脚本读取存档变量》
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=40018&cid=1032
《西门子上位机WINCC怎样与外部变量进行连接》
http://maxcola.blog.163.com/blog/static/197164083201212552536859/
《为什么在WINCC C脚本内定义的变量,不与WINCC变量链接,内部变量就不动作》
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=81138&cid=1027

提问者对于答案的评价:
问题我自己解决掉了,加wait函数也不太好用,后来改成读位好一些,感觉还是软件存在一定问题,谢谢啦

专家置评

已阅,最佳答案正确。

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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午3:15
下一篇 2018年12月2日 下午3:16

相关推荐