n
组态注意事项
通常C函数在参考书中有所描述。以下是一些能够在 WinCC 函数和动作中使用的 C 语言样例函数。
编号. | 描述 |
1 | 使用“ strcpy ”命令拷贝字符串 在此例中变量“ Varname ”的值被复制到 C 变量“ a ”中。 n char*pszValue= NULL; char a[50]; pszValue = GetTagChar("Varname"); // 与 ZERO 指针比较 // 进一步处理将变量值拷贝到 C 变量“ a ”中。 |
2 | 使用“ strcmp ”命令比较字符串 两个字符串比较用“ strcmp ”命令。在此例中,在 if 语句中检查字符串“ abcdefgh ”是否在 C 变量“ a ”中。如果是,那么变量“ TEST ”的数值被设置为“ 100 ”。 n char*pszValue= ZERO; char a[50]; pszValue = GetTagChar("Varname"); if(pszValue !=ZERO) // 进一步处理将变量值拷贝到 C 变量“ a ”中。 if (!strcmp("abcdefgh", a)) SetTagWord("TEST", 100); |
3 | 使用“ strcat ”命令连接字符串 在此例中字符串“ _Extension ”被附加到 C 变量“ a ”中。因此,例如如果使用“ strcpy ”命令将字符串“ Test ”写入到 C 变量“ a ”中,那么使用“ strcat ”命令后 C 变量“ a ”的值将变为“ Test_Extension ”。 n char*pszValue= NULL; char a[250]; pszValue = GetTagChar("Varname"); if(pszValue !=NULL) strncpy(a, pszValue, 249-12); strcat(a, "_Extension"); SetTagChar("Variable name", a); |
4 | 使用“ sprintf ”命令将变量值转换为字符串 一个数值被读取到变量“ tag ”中然后使用“ sprintf ”命令写入或附加到字符类型的 C 变量中。 int tag; char a[250]; tag = GetTagWord("Variable_Tag"); sprintf(a,"Tomorrow is the %d",tag); /* 数值从 C 变量(整型)“ tag ”被附加到 C 变量(字符)“ a ”中 */ |
警告
函数 strcpy() 将“ Source ” 指针指向包含结束字符‘ 0 ’的字符串复制到“ Target ”指针指向的位置。字符串一定不能重叠而且一定要足够大(源字符串长度 + 1 因为包含 '0')。
函数 strncpy() 的区别在于仅拷贝“ Source ”的前 n 个字节。如果在前 n 个字节中没有‘ 0’,那么结果不会以‘ 0’结束。这能够导致为定义的系统状态。
对于字符串的处理也可参考条目号: 7929092 。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc330222.html