s7-300的数据类型

s7-300的数据类型
s7-300的数据类型

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和变量声明表中定义复合数据类型。

三、参数类型

是为在逻辑块之间传递参数的形参(Formal Parameter,形式参数)定义的数据类型。

数据库常用数据类型

(1) 整数型 整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。 l bigint:大整数,数范围为-263 (-9223372036854775808)~263-1 (9223372036854775807) ,其精度为19,小数位数为0,长度为8字节。 l int:整数,数范围为-231 (-2,147,483,648) ~231 - 1 (2,147,483,647) ,其精度为10,小数位数为0,长度为4字节。 l smallint:短整数,数范围为-215 (-32768) ~215 - 1 (32767) ,其精度为5,小数位数为0,长度为2字节。 l tinyint:微短整数,数范围为0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。 (2) 精确整数型 精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal 和numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。 声明精确整数型数据的格式是numeric | decimal(p[,s]),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56.342689时,该列实际存储的是56.3427。 decimal和numeric可存储从-1038 +1 到1038 –1 的固定精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。 l 精度为1~9时,存储字节长度为5; l 精度为10~19时,存储字节长度为9; l 精度为20~28时,存储字节长度为13; l 精度为29~38时,存储字节长度为17。 例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。 注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。 (3) 浮点型 浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。

step7编程知识

第一章符号表 在STEP7中,用户可以直接使用的变量包括PLC的输入/输出地址、M存储区地址、数据DB块名、功能块名和系统已经在组织块和逻辑块中定义的变量等。如果能在STEP7中将变量用具有实际意义的符号名字代替,那么用户程序的可读性就会更好。 1.全局符号和局部符号 STEP7中可以定义两类符合:全局符号和局部符号,与其它编程语言的定义一样,全局符号是在整个用户程序范围内有效;局部符号是仅仅在定义的块内部有效。

2.符号的定义 符号名的长度不能多于24个字符,而且定义时不区分大小写字符。数据块中的地址(DBD,DBW,DBB,DBX)不能在符号表中定义,而应在数据声明表中定义。组织块(OB)、某些系统功能块(SFB)以及系统功能(SFC)已被系统根据块的功能预先赋予了符号名。在符号表中可以定义全局符号,需要注意的是,并不需要下载符号表。编辑符号后并保持符号表,这时符号表就生效了。 3.符号表的导入导出功能 在符号表编辑器中,可以通过导入导出功能。用户可以导出当前的符号表到一个文本文件,这样就可以用文本编辑器对符号进行编辑,还可以将文本编辑器中的符号表导入到用户程序中。导出符号表时,用户可以选择文件格式为“*.DIF”,则可以在Excel中打开、编辑并存储DIF文件;也可以选择文件格式为“*.SDF”在Access中打开、编辑并存储SDF文件。

第二章组织块OB 组织块(Organization Block),STEP7提供了大量的组织块用于执行用户程序,OB是CPU操作系统与用户程序间的接口。OB被嵌在用户程序中,根据某个事件的发生,执行相应的中断,自动调用相应的OB。 1.OB1工作原理: CPU启动完毕后,操作系统就调用OB1,并且循环执行OB1的程序,读取当前输入模块的信号状态,刷新输入映像区并接收全局数据。每一次OB1程序执行完后,操作系统发送全局数据,传送输出映像区数据到输出模块。循环处理的主程序OB1的优先级最低,除OB90(背景组织块)外,其他所有的OB块均可以中断OB1的执行。 2.OB10~OB17: 时间日期中断组织块,这8个OB的默认优先级相同,都没有指定默认时间。但是,只有S7-400系统的高级CPU才可以使用全部8个OB,S7-300系列只能使用OB10。 3.OB20~0B23: 延时中断组织块,S7-300系列只能使用OB20。 4.OB30~OB38: 循环中断组织块,它们经过一段固定的时间间隔中断用户的程序。循环中断组织块每一次运行的时间一定要短于中断的间隔。如果一个循环中断组织块没有执行完,循环中断时间到,又要求循环中断组织块运行,则时间故障组织块OB80启动。反复的循环中断导致了故障程序的运行。 5.OB40~OB47 硬件中断组织块,用于快速响应信号模块SM、通信处理模块CP和功能模块FM的信号变化。 6.OB80: 时间错误处理组织块,OB执行出现故障,操作系统调用OB80。这样的故障包括:循环时间超出、执行OB时应答故障、向前移动时间以至于跃过了OB的启动时间。例如,当循环中断组织块仍在执行前一次调用时,该组织块的启动事件发生,操作系统调用OB80。如果OB80未编程,则CPU变为STOP方式。

API 中数据类型与PB数据类型对照表

API 中数据类型与PB数据类型对照表 MICROSOFT PB(16Bi t) PB(32Bit) Bool Boolean Boolean Byte, Char Char Char Char* Ref string Ref String Colorref Uint Ulong Double Double Double Dword Uint Ulong Float N/A N/A Handle Uint Ulong Hdc Uint Ulong Hfile Uint Ulong Hinstance Uint Ulong Hwnd Uint Ulong Int Int Int Long Long Long Lparam Uint Ulong Lpbyte Ref Int Ref Long Lpcwstr Ref Blob Ref Blob (Unicode use ToUnicode()) Lpcvoid Ref String Ref String Lpdword Ref Uint R ef Ulong Lpfiletime Ref Time Ref Time Lpint R ef Int Ref Long Lpstr,Lpcstr Ref String Ref String Lpvoid Ref Structstruct_inst Ref Struct struct_inst Lpword Ref Int R ef Ulong Mcierror Long Long Pbyte Ref Int[#] Ref Long[#] Short Int Int Structure Ref Struct struct_inst R ef Struct Struct_inst Uint Uint Uint Void** SUBROUTINE SUBROUTINE Word Uint Uint Wparam Uint Ulong

STEP7-功能块全中文说明

https://www.360docs.net/doc/5211134478.html,parator == IN1等于IN2 <> IN1不等于IN2 > IN1大于IN2 < IN1小于IN2 >= IN1大于或等于IN2 <= IN1小于或等于IN2 2.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP ?I(INT)整数比较 CMP ?D (DINT)比较双精度整数 CMP ?R (REAL)比较实数 3.转换指令概述 BCD_I BCD码转换为整数 I_BCD 整型转换为BCD码 BCD_DI BCD码转换为双精度整数 I_DINT 整型转换为长整型 DI_BCD 长整型转换为BCD码 DI_REAL 长整型转换为浮点型 4 计数器指令 S_CUD 双向计数器 S_CD 降值计数器 S_CU 升值计数器 ---( SC ) 设置计数器线圈 ?---( CU ) 升值计数器线圈 ?---( CD ) 降值计数器线圈 5.S_CUD 双向计数器

` 6. S_CU 升值计数器

7. S_CD 降值计数器 8. ---( SC ) 设置计数器值

9. ---( CU ) 升值计数器线圈 10. ---( CD ) 降值计数器线圈 11. ---(OPN)打开数据块:DB或DI

如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。 12. ---(JMP)--- 无条件跳转 13. ---(JMPN) 若“否”则跳转 14. LABEL标号

【整型数学运算指令】整型数学运算指令概述说明 使用整数运算,您可以对两个整数(16和32位)执行以下运算: ? ADD_I 加整数 ? SUB_I 减整型 ? MUL_I 乘整型 ? DIV_I 除整型 ? ADD_DI 加双精度整数 ? SUB_DI 减长整型 ? MUL_DI 乘长整型 ? DIV_DI 除长整型 ? MOD_DI 返回分数长整型 15. ADD_I 整数加

java基本数据类型习题(选择24)

1、下列哪一个是合法的标识符: A、12class; B、+viod; C、-5; D、_black; 2、下列哪一个不是JAVA语言中保留字: A、if; B、sizeof; C、private; D、null; 3、下列描述中正确的一项是: A、标识符首字符的后面可以跟数字; B、标识符不区分大小写; C、复合数据类型变量包括布尔型、字符型、浮点型; D、数组属于基本数据类型; 4、下列哪一项不属于变量的组成部分: A、变量名; B、变量属性; C、变量初值; D、变量大小; 5、下列关于变量组成部分描述正确的一项是: A、变量名不是标识符;

B、变量名是标识符; C、浮点型属于复合类型; D、变量属性分为:基本类型和符合类型; 6、下列选项中,哪一项不属于JAVA语言的简单数据类型: A、整数型; B、数组; C、字符型; D、浮点型; 7、下列关于变量作用域的描述中,不正确的一项是: A、变量属性是用来描述变量作用域的; B、局部变量作用域只能是它所在的方法的代码段; C、类变量能在类的方法中声明; D、类变量的作用域是整个类; 8、下列关于基本数据类型的说法中,不正确的一项是: A、boolean是JAVA非凡的置值,或者为真或者为假; B、float是带符号的32位浮点数; C、double是带符号的64位浮点数; D、char应该上是8位的Unicode字符; 9、下列关于溢出的说法中,正确的一项是: A、一个整型的数据达到整型能表示的最大数值后,再加1,则机器产生上溢,结果为整型的最大值; B、一个整型的数据达到整型能表示的最小数值后,再减1,

西门子STEP7编程中sfb4的用法

西门子STEP7编程—IEC定时器的使用 2010年03月03日星期三 08:59 西门子STEP7提供了10种定时器指令,用户可以根据不同的情况,很方便的选择一种适合自己的要求。可是STEP7的定时器的时间值用了一种西门子独有的S5TIME的数据类型来表示。某些时候使得定时器用起来不那么顺手,例如,在上位机监控软件画面上显示计时器的当前值或者需要在运行时在监控画面上修改预设值。对此STEP7提供了FC33(S5TI_TIM)和FC40(TIM_S5TI)来实现S5TIME数据类型与TIME数据类型之间的相互转换,但是换来换去的还是很麻烦。笔者认为在这种情况下不如直接使用STEP7的IEC 定时器。 STEP7的IEC定时器是个什么东西呢?其实就是STEP7提供的一系列系统功能块,能实现定时器同样的功能,和STEP7定时器指令不同的是它们是符合IEC1131-3标准的定时器。具体地说就是SFB3(TP)脉冲定时器、SFB4(TON)接通延迟定时器和SFB5(TOF)关闭延迟定时器。 功能块参数说明 STEP7的TIME数据类型在上位机上读写就很方便了,根据它的定义,实际上它就是一个有符号双整数,每一步长表示为1毫秒。 定时器的类型就三种。1、接通延时定时器TON 2、记忆接通延时定时器TONR 3、断开延时定时器 TOF 计时器总共有256个,其中1ms定时器4个(T0,T32,T64,T96),其中10ms 定时器16个(T1~T4,T33~T36,T65~T68,T97~T100),其余的都是100ms定时

器。 1ms定时器的刷新周期为1ms,与扫描周期和程序处理无关;10ms定时器在每个扫描周期开始时进行刷新;100ms定时器在定时器指令被执行时刷新。

C语言的基本数据类型及其表示

3.2C语言的基本数据类型及其表示 C语言的基本数据类型包括整型数据、实型数据和字符型数据,这些不同数据类型如何表示?如何使用?它们的数据范围是什么?下面我们分别进行介绍。 3.2.1常量与变量 1.常量 常量是指程序在运行时其值不能改变的量,它是C语言中使用的基本数据对 象之一。C语言提供的常量有: 以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型,例如:123是一个整型常量,占两个存储字节,数的表示范围是-32768~32767;123.0是实型常量,占四个存储字节,数的表示范围是-3.410-38~3.41038。 需要注意的是,常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。 2.符号常量 在C程序中,常量除了以自身的存在形式直接表示之外,还可以用标识符来表示常量。因为经常碰到这样的问题:常量本身是一个较长的字符序列,且在程序中重复出现,例如:取常数的值为3.1415927,如果在程序中多处出现,直接使用3.1415927的表示形式,势必会使编程工作显得繁琐,而且,当需要把的值修改为3.1415926536时,就必须逐个查找并修改,这样,会降低程序的可修改性和灵活性。因此,C语言中提供了一种符号常量,即用指定的标识符来表示某个常量,在程序中需要使用该常量时就可直接引用标识符。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define标识符常量 其中#define是宏定义命令的专用定义符,标识符是对常量的命名,常量可以是前面介绍的几种类型常量中的任何一种。该使指定的标识符来代表指定的常量,这个被指定的标识符就称为符号常量。例如,在C程序中,要用PAI代表实型常量3.1415927,用W代表字符串常量"Windows98",可用下面两个宏定义命令: #define PAI3.1415927 #define W"Windows98" 宏定义的功能是:在编译预处理时,将程序中宏定义(关于编译预处理和宏定义的概念详见9.10节)命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。例如,对于以上两个宏定义命令,编译程序时,编译系统首先将程序中除这两个宏定义命令之外的所有PAI替换为3.1415927,所有W替换为Windows98。因此,符号常量通常也被称为宏替换名。 习惯上人们把符号常量名用大写字母表示,而把变量名用小写字母表示。例3-1是符号常量的一个简单的应用。其中,PI为定义的符号常量,程序编译时,用3.1416替换所有的PI。 例3-1:已知圆半径r,求圆周长c和圆面积s的值。

Step7-数据类型详细说明总结汇总

STEP7中的基本数据类型 ⑴位(BOOL) 位数据的数据类型为BOOL(布尔)型,在软件编程中BOOL变量的值1和0常用英语词TURE(真)和FALSE(假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为1位。 ⑵字节(BYTE) 字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),#16#表示十六进制,取值范围为B#16#0~B#16#FF。 ⑶字(WORD) 字数据长度为16位,这种数据可采用4种方法进行描述。 二进制:二进制的格式为2#,如2#101,取值范围为2#0~2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。 十六进制:十六进制的格式为W#16#,W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W#16#0~W#16#FFFF。 BCD码:BCD码的格式为C#,取值范围为C#0~C#999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000~1001组合分别表示十进制中的0~9,4位二进制中的1010~1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为-999~+999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。 无符号十进制数:无符号十进制数的格式为B#(×,×),取值范围为B#(0,0)~B#(255,255),无符号十进制数是用十进制的0~255对应二进制数中的0000_0000~ 1111_1111(8位),16位二进制数就需要两个0~255的数来表示,例如: B#(12,254)=2#0000_1100_1111_1110 12 254 上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。在STEP7中,比较常用的是十六进制,即W#16#这种格式。 ⑷双字(DOUBLE WORD) 数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为: 二进制:取值范围为2#0~2#1111_1111_1111_1111_1111_1111_1111_1111。 十六进制:取值范围为DW#16#0~DW#16#FFFF_FFFF。 BCD码:取值范围为C#0~C#9999999。 无符号十进制数:取值范围为B#(0,0,0,0)~B#(255,255,255,255)。 ⑸整数(INT) 整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整数是以原码格式进行存储的,如+786,对应的二进制码为2#0000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786,对应的二进制码为2#1111_1100_1110_1110。将负零(1000_0000_0000_0000)定义为-32768因此取值范围为-32768~32767。0表示正,1表示负。 ⑹双整数(DOUBLE INT) 双整数的数据类型长度为32位,数据格式为带符号十进制数,用L#表示双整数。双整数的二进制码与整数的换算方式一致,其取值范围为L#-2147483648~L#2147483647。 ⑺实数(REAL也叫浮点数Float) 实数的数据类型长度为32位,是以IEEE浮点数格式转换为二进制数存储的,其取值范围为±3.402823e+38~±1.1755494e-38。 实数用1.m×2E例如123.4可表示为1.234×102。 式中:指数E=e-127(1≤e≤254)为8位整数 符号位(S):S=0为正值S=1为负值 规定尾数的整数部分总是为1,只保留尾数的小数部分m(0~22位)

数据类型

第四课数据类型 先来简单说说C语言的标识符和关键字。标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、数组等等。C语言是大小字敏感的一种高级语言,如果我们要定义一个定时器1,可以写做"Timer1",如果程序中有"TIMER1",那么这两个是完全不同定义的标识符。标识符由字符串,数字和下划线等组成,注意的是第一个字符必须是字母或下划线,如"1Timer"是错误的,编译时便会有错误提示。有些编译系统专用的标识符是以下划线开头,所以一般不要以下划线开头命名标识符。标识符在命名时应当简单,含义清晰,这样有助于阅读理解程序。在C51编译器中,只支持标识符的前32位为有效标识,一般情况下也足够用了,除非你要写天书:P。 关键字则是编程语言保留的特殊标识符,它们具有固定名称和含义,在程序编写中不允许标识符与关键字相同。在KEIL uVision2中的关键字除了有ANSI C标准的32个关键字外还根据51单片机的特点扩展了相关的关键字。其实在KEIL uVision2的文本编辑器中编写C程序,系统可以把保留字以不同颜色显示,缺省颜色为天蓝色。 先看表4-1,表中列出了KEIL uVision2 C51编译器所支持的数据类型。在标准C语言中基本的数据类型为char,int,short,long,float 和double,而在C51编译器中int和short相同,float和double相同,这里就不列出说明了。下面来看看它们的具体定义:

表4-1 KEIL uVision2 C51编译器所支持的数据类型 1.char字符类型 char类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。分无符号字符类型unsigned char和有符号字符类型signed char,默认值为signed char类型。unsigned char类型用字节中所有的位来表

STEP7中的基本数据类型-重要

STEP7中的基本数据类型 ⑴位(BOOL ) 位数据的数据类型为BOOL (布尔)型,在软件编程中BOOL变量的值1和0常用英语词TURE (真)和FALSE (假)来表示,对应二进制数中的“ 1和“0,常用于开关量的逻辑运算,存储空间为1位。 ⑵字节(BYTE) 字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),# 16#表示十六进制,取值范围为B#16#0?B#16#FF。 ⑶字(WORD ) 字数据长度为16位,这种数据可采用4种方法进行描述。 二进制:二进制的格式为 2 #,如2 # 101,取值范围为2# 0?2# 1111_1111_1111_1111, 书写时每4位可用下划线隔开,也可直接表示为2# 111111111111 十六进制:十六进制的格式为W # 16#, W代表WORD,表示数据长度为16位,# 16#表示十六进制,数据取值范围为W # 16# 0?W # 16 # FFFF。 BCD码:BCD码的格式为C#,取值范围为C# 0?C# 999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000?1001组合分别表示十进制中的0?9, 4位二进制中的1010?1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为—999? +999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。 无符号十进制数:无符号十进制数的格式为 B #( X, X),取值范围为B #( 0, 0)? B #( 255, 255),无符号十进制数是用十进制的0?255对应二进制数中的0000_0000? 1111_1111 ( 8位),16位二进制数就需要两个0?255的数来表示,例如: B# (12, 254)= 2# 0000_1100_1111_1110 _12 ― 254 上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例 如,如果想得到二进制数0000100110000111,可以使用2# 0000_1001_1000_0111 ,也可以 使用W # 16# 987,还可以使用C# 987或者B #( 9, 135)。在STEP7中,比较常用的是十六进制,即W # 16#这种格式。 ⑷双字(DOUBLE WORD ) 数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为: 二进制:取值范围为 2 # 0?2# 1111_1111_1111_1111_1111_1111_1111_1111 十六进制:取值范围为DW # 16# 0?DW # 16 # FFFF_FFFF。 BCD码:取值范围为C# 0?C# 9999999。 无符号十进制数:取值范围为 B #( 0,0,0,0)?B #( 255,255,255,255 )。 ⑸整数(INT ) 整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整 数是以原码格式进行存储的,如+ 786,对应的二进制码为2# 0000_0011_0001_0010 ,而负 整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786, 对应的二进制码为2# 1111_1100_1110_1110。将负零(1000_0000_0000_0000 )定义为-32768 因此取值范围为-32768?32767。0表示正,1表示负。 ⑹双整数(DOUBLE INT ) 双整数的数据类型长度为32位,数据格式为带符号十进制数,用L #表示双整数。双 整数的二进制码与整数的换算方式一致,其取值范围为L#-2147483648?L # 2147483647。 ⑺实数(REAL也叫浮点数Float)

Java中八种基本数据类型和八种封装数据类型

Java中八种基本数据类型和八种封装数据类型 初使值的求解过程及比较 作者:Zealjiang 1.八种基本数据类型 创建名为MemberTestBasic的java文件,其内容如下:public class MemberTestBasic { /** 八种基本类型 int, short, float ,double, long, boolean, byte, char */ int i; short s; float f; double d; long l; boolean bo; byte by; char c; public static void main(String[] args) { //创建对象m

MemberTestBasic m=new MemberTestBasic(); m.printMember(); } //为对象m创建一个printMember方法 public void printMember() { System.out.print("int->"+i+"\n"); System.out.print("short->"+s+"\n"); System.out.print("float->"+f+"\n"); System.out.print("double->"+d+"\n"); System.out.print("long->"+l+"\n"); System.out.print("boolean->"+bo+"\n"); System.out.print("byte->"+by+"\n"); System.out.print("char->"+c+"\n"); } } 运行结果如下:

MySQL数据表类型 数据类型

表类型 MySQL的数据表类型很多,其中比较重要的是MyISAM,InnoDB这两种。 这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL支持对不同的表设置不同的类型。下面做个对比: 一般情况下我觉得选择MyISAM就行,如果需要事务,或者需要很多用户同时修改某个数据表里的数据时,可以考虑InnoDB数据表。 数据类型 1.整型(xxxint) 右侧的取值范围是在未加unsigned关键字的情况下,如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。 书上说int(m)括弧里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,我测了一下,定义一个字段number 类型为int(4),插入一条记录"123456",用mysql query broswer执行SELECT查询,返回的结果集中123456正确显示,没有影响到显示的宽度,不知道这个m有什么用。 2.浮点型(float和double)

参数m只影响显示效果,不影响精度,d却不同,会影响到精度。 比如设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,小数点后面的数别四舍五入截成457了,但总个数不受到限制(6位,超过了定义的5位)。 3.定点数(decimal) decimal(m,d) 定点类型 浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。参数m是定点类型数字的最大个数(精度),范围为0~65,d小数点右侧数字的个数,范围为0~30,但不得超过m。 对定点数的计算能精确到65位数字。 4.字符串(char,varchar,xxxtext) 1.都可以通过指定n,来限制存储的最大字符数长度,char(20)和varchar(20)将最多只能存储20个字符,超过的字符将会被截掉。n必须小于该类型允许的最大字符数。 2.char类型指定了n之后,如果存入的字符数小于n,后面将会以空格补齐,查询的时候再将末尾的空格去掉,所以char类型存储的字符串末尾不能有空格,varchar不受此限制。 3.内部存储的机制不同。char是固定长度,char(4)不管是存一个字符,2个字符或者4个字符(英文的),都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入一个字符将占用2个字节,2个字符占用3个字节,4个字符占用5个字节。 4.char类型的字符串检索速度要比varchar类型的快。 varchar和text: 1.都是可变长度的,最多能存储65535个字符。 2.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节 (n<=255)或2个字节(n>255),text是实际字符数+2个字节。 3.text类型不能有默认值。

STEP 7 Struct是什么数据类型

STEP 7 Struct是什么数据类型 请问STEP7Struct是什么数据类型 在什么样的情况下需要用到Struct数据类型!! 最佳答案 Struct(结构性类型)是由不同数据类型组成的、属于复合型数据类型,它是用来定义一组相关的数据,其长度由用户定义,它与数组(Array)类型相反(ARRAY是由相同类型的数据组成的数组)。 许多关于结构类型的书籍中提到的关于电机控制系统中,把一个电机所有控制元素,如运行速度、额度电流、起动电流和运行方向等作为参数或逻辑块的局部变量,并且在全局数据块中声明,这样利用它可以结构化大量的数据并且可以用符号进行处理,由于访问结构的元素包含结构的名称,使程序更容易读,指令编写更清晰。 如电机的一组不同类型的数据(称为元素)组成的结构命名为Motor_Data,并且放在共享数据块DB1中,为了用符号访问结构中的一个元素,需要给数据块分配一个符号名,如Drive_1.结构的关键字是“STRUCT“,结构的结束用END_STRUCT.这样在打开数据块DB1(符号名Drive_1),可以看到上面变量声明表为:

Address(地址)Name(名称)Type(类型)InitialValue (初始值) 0.0Struct 0.0Motor_Data(电机数据)Struct 0.0Operating_speed(运行速度)INT 2.0Rated_current(额定电流)REAL 6.0Start_current(起动电流)REAL 10.0Max_temperature(最大温度)REAL 14.0Turning_direction(转动方向)BOOL =16.0END_STRUCT =16.0END_STRUCT 如果访问上述结构中的某个元素,如Rated_current(额度电流),可以直接用下列指令: L“Drive_1”.Motor_data.Rated_current 其中,“Drive_1”是数据块的符号名,该数据块包含结构、结构名称(用点分割)在数据块的后面。结构的元素名(用点分割)跟在结构名的后面。

a 基本数据类型

Java 中的基本数据类型 Java 中的数据类型可以分为两种: 基本数据类型 整型 byte short int long 浮点型 float double 字符型 char 布尔型 boolean 引用数据类型 可以说,除了基本类型以外的所有类型都是引用数据类型 主要包括类,接口,数组等 如下图所示 基本数据类型在内存中的分配 数据类型 基本数据类型 引用数据类型 数值型 字符型(char ) 布尔型(boolean ) 整数类型(byte, short, int, long ) 浮点类型(float, double ) 类(class ) 接口(interface ) 数组( [ ] )

注意!:表格里的^代表的是次方 基本数据类型的转换 有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。 1 自动转换 具体地讲,当一个较“小”数据与一个较“大”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。而在方法调用时,实际参数较“小”,而被调用的方法的形式参数数据又较“大”时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将“小”数据转换成“大”数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最“接近”的“大”数据并进行调用。这些类型由“小”到“大”分别为(byte,short,char)--int--long--float—double。这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。 例如 byte b=10; int i=b;(将byte数据向int赋值时,完成了自动转换) char c=’A’; int i=c;(这时会将’A’对应的ASCII码值赋值给i) 2 强制转换 将“大”数据转换为“小”数据时,你可以使用强制类型转换。 例如: int n=(int)1.23456; 输出结果为1 可以想象,这种转换肯定可能会导致溢出或精度的下降。 注意

关于数据库建表时字段数据类型

char、varchar、text、ntext、bigint、int、smallint、tinyint 和bit的区别及数据库的数据类型 基础: char、varchar、text和nchar、nvarchar、ntext的区别 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。 2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。 3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节

存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar 则最多存储4000个字符,不论是英文还是汉字;而char、varchar 最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar 数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 进一步学习: char、varchar、text、ntext、bigint、int、smallint、tinyint 和bit的区别及数据库的数据类型 Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节 char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

如何将Excel表格中的STEP7变量导入到DB块中(更新版)

如何将Excel表格中的STEP7变量导入到DB块中 说明: 如果要将变量从Excel导入到STEP7项目中,Excel文件事先要以【带格式文本文件(空格分隔)(*.prn)】的格式保存。之后此文件作为外部STL源文件导入到STEP7中所设置的源文件夹中。详细过程如下: 1.打开MS Office Excel,输入DB数据块的值,如图01所示。一列输入变量名,另外一 列输入数据类型: 图01 2.数据格式 DB数据表如图02所示。 图02 Excel表格模版 列说明如下: ?A列为变量名 ?B列为【:】 ?C列为数据类型

?D列为【:=】 ?E列为变量初始值 ?F列为【;】 ?F列为变量注释,注释前必须加【//】 3.Prn文件生成 编辑完成后,使用【文件→另存为】,将Excel保存在硬盘上。保存文件类型为【带格式文本文件(空格分隔)(*.prn)】文件类型。 因此,文件名应该是“.prn” 类型。 图03另存为prn格式 4.点击【是】确认消息 图04 5.关闭Excel文件,点【保存】、【是】确认消息 图05

图06 6.选中保存的Excel 文件,鼠标右键点击,弹出菜单,点击【重命名】,改变后缀文件 类型为prn。 图07 图08 7.将创建的AWL文件导入到STEP 7项目中。具体操作方法为,在SIMATIC Manager 的 源文件上右键,按下图打开AWL路径,,如图09~11所示,在保存路径中选中所创建的AWL文件。 图09AWL文件导入操作

图10选择AWL文件路径 图11 AWL文件导入成功 将AWL文件作为外部源导入到STEP 7中。 8.在源文件夹中双击打开导入的AWL文件,通过菜单命令【插入→块模版→DB】,将 变量标签插入DB块模板。 图12插入模版操作

java的基本数据类型有八种

java的基本数据类型有八种 各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟! java的基本数据类型有八种四类八种基本数据类型1. 整型byte(1字节)short (2个字节)int(4个字节)long (8个字节)2.浮点型float(4个字节)double(8个字节)3.逻辑性boolean(八分之一个字节)4.字符型char(2个字节,一个字符能存储下一个中文汉字)基本数据类型与包装类对应关系和默认值short Short (short)0int Integer 0long Long 0Lchar Char '\u0000'(什么都没有)float Floa t0.0fdouble Double 0.0dboolean Boolean false 若某个类的某个成员是基本数据类型,即使没有初始化,java也会确保它获得一个默认值,如上所示。(这种初始化方法只是用于成员变量,不适用于局部变量)。jdk1.5支持自动拆装箱。可以将基本数据类型转换成它的包装类装箱Integer a = new Integer ();a = 100;拆箱int b = new Intger(100);一个字节等于8位,一个字节等于256个数,-128到127一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节一个汉字两个字符,占用两个字节基本数据类型自动转换byte->short , char->int->longfloat->doubleint ->floatlong->double小可转大,大转小会失去精度。字符串与基本类型或其他类型间的转换⑴其它

基本数据类型的使用

数据类型、运算符和表达式 一、实验内容 1、写出一个程序测试用户系统中各种数据类型的长度。 #include int main(void) {printf(“字符类型数据的字长为%d\n”,sizeof(char)); printf(“短整型类型数据的字长为%d\n”,sizeof(short)); printf(“整型类型数据的字长为%d\n”,sizeof(int)); printf(“长整型类型数据的字长为%d\n”,sizeof(long)); printf(“浮点数类型数据的字长为%d\n”,sizeof(float)); printf(“双精度类型数据的字长为%d\n”,sizeof(double)); return 0; } 2、指出下面程序错误所在 #include main(); float r,s; r=5.0; s=3.14159*r*r; printf(“%f”,s); 3、常见转义字符对输出的控制作用。 main() { int a,b,c; a=5,b=6,c=7; printf("12345678123456781234567812345678\n"); /* 打印一个标尺以便检查输出结果*/ printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c); /* 打印1个字符串*/ printf("c:\\a.txt"); /* 打印一个文件名*/ printf("\n"); } 4、整型数据的溢出错误。 整型(int型)数据的表达范围是-32768~32767,如果最大允许值32767+1,最小允许值-32768-1,会出现什么情况? main() { int a,b; a=32767; b=a+1; printf("a=%d,a+1=%d\n",a,b); a=-32768;

相关文档
最新文档