关于WINCC C 脚本 和 VB脚本一些问题

我刚接触WINCC,对与脚本的语法不是很熟悉,就想问一下全局变量和局部变量数据传送的问题。
我有一个整形的变量:tag
对于C脚本:
#define tag "tag"
int temp;
temp=GetTagsword(tag); //这是把全局变量的值传送给局部变量;
if (temp>0)
{
temp=temp+1;
}
SetTagsword(tag,temp) //这是把局部变量的值传给全局变量,但是编译时提示警告;

如上一段C脚本可运行,但编译时有警告,不知道正确的传送格式应该是这样的,这种tag=temp或"tag"=temp格式不行啊。如果上述例子改为VB脚本的话,传送格式应该是怎样的,全局怎么传给局部,局部又怎么回给全局变量。

问题补充:
分号不算拉,要是少了编译过不了,这里忘了,警告的提示是说
SetTagsword(tag,temp),警告时英文这里用了temp,这用数字就没有了,但是要不这样传送那要怎么传送啊?

最佳答案

最后一条语句少了个分号,根据编译的警告就能知道错在哪里。
VB脚本更简单

Dim temp
temp = HMIRuntime.Tags("tag").Read
If  temp > 0 Then
    temp = temp + 1
End if
HMIRuntime.Tags("tag").Write temp


______________________________________________________________________

看了下函数SetTagSWord的参数value要求类型为short int,你把temp定义为short int就没有警告了

提问者对于答案的评价:
谢谢,不过改了也没用,因为只有整数进行算术运算才不会有警告

最佳答案作者回复:
C语言对数据类型是要求严格的,一定要类型匹配

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

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

相关推荐