WinCC的C脚本的函数有3类:内部函数、标准函数和项目函数。
一、内部函数
内部函数由WinCC系统创建,不可以被编辑也不可以被重命名。其文件扩展名为"*.icf",保存在WinCC安装目录的"aplib"子目录下,如图1所示。
![f57666d1ca38d032812bc81337591b22.png](https://i-blog.csdnimg.cn/blog_migrate/f1911db8a7f64cb2ec05f3c52a5af099.jpeg)
内部函数有5大类,集中管理在5个文件夹中,它们分别为:ALLOCATE、C_BIB、GRAPHICS、tag以及WINCC五个文件夹。在"全局脚本编辑器"中的浏览窗口中,它们被管理在树形结构下,如图2所示。
![632b7b74f448d878d9be0836b15f2d35.png](https://i-blog.csdnimg.cn/blog_migrate/469ad6cae94e4fbf65a3d12d5bc66512.jpeg)
1、allocate
顾名思义,该组下的函数是和内存的分配和释放有关的。
![55e477b8ff4323d4eddd3c2d354ca4dc.png](https://i-blog.csdnimg.cn/blog_migrate/e8151f887e1ef86b696b892f8c121465.jpeg)
2、c_bib
组C_bib包含来自C库的C函数,分别为:
![0bd25f7bb46ea05e28fa92e7bdffa59e.png](https://i-blog.csdnimg.cn/blog_migrate/0b5c5a89c19b07c6c5b32d0fa637a6b9.jpeg)
若干注意事项:
- 函数localtime用于输出日期,其格式为:月份的编号从0开始;年份从1900年开始计算,从0开始。
- C库函数printf()、sprintf()、fprintf()只能在WinCC中处理360个字符。
3、Graphics
组graphics中包含读取或设置图形对象属性的函数。所有和画面对象相关的操作,首先应该找找看,内部函数Graphics文件夹下,是否有合适的函数可调用。
![bfbe4269a3037d144e671ee8a8c72d55.png](https://i-blog.csdnimg.cn/blog_migrate/a39dec9c22af69bb2e6cfbbd9485ac31.jpeg)
4、Tag
组tag下包含读取和修改变量的函数。几乎所有针对WinCC变量的读写操作,都能在其中找到合适的函数。
![cbe744cc640e8bca96d652e5aa9d9d0f.png](https://i-blog.csdnimg.cn/blog_migrate/7eb08c26ecc7e0c7610a96d7623e6058.jpeg)
5、WinCC
组WinCC的功能允许在运行时定义各种设置,系统子组的功能可用于影响WinCC运行时。
![01b317ac62ed8cb98221ff17e426c9d6.png](https://i-blog.csdnimg.cn/blog_migrate/a988ca638fa3fbe7aef774ca8a9377fb.jpeg)
二、内部函数的用法
内部函数作为WinCC的C脚本函数的一种,它的用法和其他函数没有本质区别。内部函数可用于以下几种情况:
- 在项目函数中调用
- 在标准函数中调用
- 在全局/局部动作中调用
- 图形编辑器中使用C脚本组态对象的事件任务或属性任务时,可以调用内部函数
- 图形编辑器中组态用"动态对话框"的方式,组态对象动态属性时,可以选择调用内部函数。
前面几种用法经常见到,"动态对话框"中调用内部函数,经常会被忽视,如图3所示。
![da404c69d386bd57a20ab069474496a5.png](https://i-blog.csdnimg.cn/blog_migrate/8b39fb87f2479ddb8f280355d7c9e24c.jpeg)
在用"动态对话框"组态对象的动态属性时,可在"表达式/公式"中选择"函数",在弹出的浮动窗口"函数浏览器"中,就可以选择要调用的函数(内部函数)了。
内部函数用WinCC系统创建,不能被用户编辑、修改,但是可以根据需要随时调用它们。内部函数包含了功能各异的函数,掌握并灵活应用它们可以使我们免去很多敲代码的工作。所以,建议有精力的话,可以逐个函数认识一下。
<