找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
S7-300的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。
一、基本数据类型
1、位(bit)
常称为BOOL(布尔型),只有两个值:0或1。如:I0.0,Q0.1,M0.0,V0.1等。
2、字节(Byte)
一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。范围:00~FF(十进制的0~255)。
3、字(Word)
相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。字的范围为十六进制的0000~FFFF(即十进制的0~65536)。在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。
4、双字(Double Word)
相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为32位。如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~4294967295)。在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。
以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
5、16位整数(INT,Integer)
整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-32768~32767。
6、32位整数(DINT,Double Integer)
32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。
7、浮点数(R,Real)
浮点数为32位,可以用来表示小数。浮点数可以为:1.m×2e,其存储结构如图所示:
8、常数的表示方法
常数可以是字节、字或双字,CPU以二进制方式存储,也可以用十进制,十六进制ASCII码或浮点数形式来表示。如下图所示:
说明:(1)S5T#格式为:S5T#aD_bH_cM_dS_eMS,其中a,b,c,d,e分别是日,小时,分,秒和毫秒的数值,输入时可以省掉下划线,如表中所示。
(2)D#取值范围为:D#1990_1_1~D#2168_12_31。
二、复合数据类型
用户通过复合基本数据类型而生成就是复合数据类型。
复合数据类型包括以下几种:
1、数组(ARRAY)
将一组同一类型的数据组合在一起组成一个单位就是数组。
2、结构(STRUCT)
将一组同不同类型的数据组合在一起组成一个单位就是结构。
3、字符串(STRING)
字符串是由最多254个字符组成的一维数组。
4、日期和时间(DATE-AND-TIME)
用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用8个字节,BCD编码。星期天代码为1,星期一~星期六代码分别是2~7。
如:DT#2004_07_15_12:30:15.200为2004年7月15日12时30分15.2秒。
5、用户定义的数据类型(UDT,User-Defined Data Types)
由用户将基本数据类型和复合数据类型组合在一起形成的数据类型。
可以在数据块DB和变量声明表中定义复合数据类型。
图. 01
根据 WinCC 运行界面, 组态显示设备的语言。在 SIMATIC Manager 中,选择菜单 "Options > Display Language...", "Add/Delete Language, Set Default Language:..." window opens. ...".
在 "Installed Languages in Project:" 列出了您选择的语言,点击 "Set as Default" 按钮。
点击 "Apply" 按钮,然后点击 "OK" 按钮,关闭对话框。
一旦您设定了默认的显示语言,枚举类型的显示文本必须与默认的语言一致。
图. 02
2 给S7 block 参数分配属性 "S7_enum"
枚举类型的接口参数必须拥有 "S7_enum" 属性。 下图是一个使用了属性"S7_enum" 功能块的SCL源代码。
图. 03
注意:
您也可以在其他编程语言中为S7 控制器定义 "S7_enum" 属性 (例如: AWL).
3 在功能块接口使用枚举类型
给功能块参数分配组态的枚举类型。打开 "Properties - Input/Output" 对话框,在"Enumeration" 组合框选择需要的枚举类型。
图. 04
在"Value"组合框中选择初始值。枚举类型的组态文本可以被选择。
图. 05
4 编译 AS 和 OS
编译控制器和WinCC站的程序。
注意:
编译枚举类型变量到WinCC项目中,在WinCC运行时可用:
在文本库中的条目
枚举类型的名称以及各自数值的显示文本被添加到文本库中。
图. 06
内部 WinCC tags
下图示意了针对枚举类型创建的内部变量。
图. 07
文本参考变量的初始值分配给WinCC Tag Management中相应的文本 ID。
下图,白色区域示意了不同运行语言环境下枚举类型内部变量的值。蓝色 I/O 域为枚举变量的当前值。 当前值能够被改变。黄色文本区域显示了枚举变量的当前值。当枚举变量改变时,当前的枚举类型的文本将会在当前语言环境下显示。
图. 08
图. 09
5 使用枚举类型的文本动态化过程画面
枚举类型的内部变量已经通过OS编译在项目中创建,能够用来动态化文本显示。下面我们描述了一种通过使用WinCC "Static Text" 对象来显示枚举类型当前值。
"Static Text"的一个非相关的属性被包含着过程信息的变量(枚举变量)动态化。
在这个例子中,属性 "Static Text > Flashing > Flashing Background Color Off" 连接到枚举变量。
图. 10
注意:
在动态化属性的 "Static" 列,你选择一个在过程模式下任何时候都不会变化的值。这保证了当画面打开和过程连接时,其属性的变化。这对于当画面打开时,在下一步将被组态的脚本能够被执行是非常重要的。
通过C 动作将事件 "Static Text > Property Topics > Flashing > Flashing Background Color Off > Change" 动态化。
图. 11
C 动作具有如下结构.
图. 12
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!