龙空技术网

【WinCC“脚本”专题】不懂数据类型,又怎能用好C脚本?

驼品 2192

前言:

眼前我们对“c语言的使用方法”可能比较重视,同学们都需要分析一些“c语言的使用方法”的相关资讯。那么小编同时在网上网罗了一些关于“c语言的使用方法””的相关内容,希望你们能喜欢,看官们一起来了解一下吧!

WinCC的C脚本的编程语言符合ANSI-C标准,它的数据类型与ANSI-C的数据类型一致。要用好C脚本,当然要对各种数据类型了然于胸了。

一、ANSI-C数据类型

所谓"数据类型"是按照所定义的变量的性质、表示形式、所占据的存储空间等特点来划分的。在C语言中,数据类型可分为:基本数据类型、构造数据类型、指针类型、空类型四大类,如图1所示。

1、基本数据类型

"基本数据类型"的值不可以再分解为其他类型,它包括:整型、实型、字符型和枚举类型。其中实型数据又分为单精度浮点数类型和双精度浮点数类型。

在基本数据类型中,其前面可以有"修饰符",使其更准确的适应各种情况的需求,修饰符如下:

signed:有符号unsigned:无符号long:长型符short:短型符

其中,所有上述4中修饰符均可以修饰字符型和整型两种基本类型,而long还可以用于double型。C中根据ANSI标准而组合的数据类型的字长和取值范围,如下表所示。

若干注意事项:

(1)整型数默认是有符号的,所以int、short、long int定义的变量为有符号整型数,其前面的signed可以省略;

(2)为了使用方便,C编译程序允许使用如下的整型简写形式:

short int 简写为:shortlong int 简写为:longunsigned short int简写为:unsigned shortunsigned int简写为:unsignedunsigned long int简写为:unsigned long

2、构造类型

在C语言中,构造数据类型包括数组类型、结构类型和联合类型。构造数据类型采用基本数据类型来构造一个新的数据类型。一个构造类型的数据可以分解成若干个"成员",每个"成员"都是一个基本数据类型或已定义的构造类型。

3、指针类型

指针是一种特殊的数据类型,其值用来表示某个变量在内存中的地址。指针是C语言中非常重要的一部分,是C语言的精华。

4、空类型

空类型一般以void来声明,主要用在没有返回值的函数声明中。一般来说,C语言中的函数都需要向调用者返回一个函数值,这个返回的值具有一定的数据类型。如果函数没有返回值,那么也不能不指定数据类型,而需要设置为空类型。

二、WinCC脚本中变量的声明和使用

在WinCC的C脚本中,声明和使用变量的方法和其他C语言开发环境下是类似的。

1、局部变量的声明和使用

在"函数"或"动作"的函数体内部定义的变量即为局部变量,如图2所示。它们的生命周期只局限于定义它们的函数体内。

局部变量的声明和使用规则和其他C语言开发环境一样,由"类型+变量名"构成。以图2为例,分别定义了整型数组a[5]、短整型i、字符型a1、无符号整型m等。

2、全局变量的使用

全局C变量定义在函数的"函数名"前,运行系统中的每一个函数和动作都能访问全局C变量。

全局C变量在某一个函数的"函数名"前定义,如图3所示。若要在其他"函数"或"动作"中访问该全局变量,则首先要用关键字"extern"声明它,然后就能够正常使用该变量了(编译时不会发生编译错误)。

全局变量只能在一个地方定义,且当其值发生变化时,所有访问到它的函数和动作都能识别到其变化。

三、WinCC变量和C脚本变量的关系

WinCC的变量即定义在"变量管理器"中的变量,它的变量数据类型如图4所示。除了"原始数据类型"和"文本参考"数据类型外,其他数据类型都能与C语言的基本数据类型找到对应。

C脚本中,经常要读写WinCC的变量,可调用"内部函数"的"tag"目录下的函数来实现,如图5所示。

图5中,通过调用函数"GetTagWord"将WinCC变量"X坐标"读入并赋值个C脚本的变量"i",经过运算后,在将"i"的值通过函数"SetTagWord"写入WinCC变量"X坐标"中。

在应用中,需要注意C脚本变量的数据类型要和所访问的WinCC变量的数据类型要尽量一致,且调用对应类型的set或get函数。以图5为例,WinCC变量"X坐标"的数据类型为无符号16位数,则应将C脚本中的"i"声明为"unsigned"类型,且应调用"Word"类型的set或get函数。

<<上一篇《创建“函数”和“动作”的完整姿势》

标签: #c语言的使用方法 #unsignedlongc语言