文档库 最新最全的文档下载
当前位置:文档库 › 如何创建和参数化UDT数据类型

如何创建和参数化UDT数据类型

如何创建和参数化UDT数据类型
如何创建和参数化UDT数据类型

如何创建和参数化UDT数据类型中的变量及IN,OUT,IN_OUT参数

从数据类型的意义上说UDT并不被CPU所识别,而是在离线程序中自定义(组合)的数据类型。S7程序的自定义数据类型并不能装载到S7 CPU中。UDT是由递增的编辑器创建并编辑或由源文件的编译而生成。当在块调用中进行变量传递时是不能将UDT作为内存地址区域来传递的。因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用UDT的符号名来定义IN,OUT和IN_OUT参数,因为系统将自动生成相应的地址。下面介绍如何创建和参数化UDT类型变量的过程。我们将以两组各十台的电机为例。UDT1对应这些电机的所有输入变量。

步骤一:在STEP 7项目中插入自定义数据类型。如图鼠标选中“block”文件夹并点击右键,再弹出菜单中选择命令“Insert New Object>Data Type”。

步骤二:在“Properties-Data Type”对话框中输入UDT1的符号名(这里以“Motor”为例)后点击OK确认。

步骤三:打开UDT1并输入相关数据类型的变量及其初始值。下图为UDT1变量声明的例子。

步骤四:然后通过菜单命令“Insert>S7 Block>Data Block”在STEP 7项目中添加一个数据块DB1,并在“Properties-Data”属性对话框中为其定义符号名(例如此例为“Halle_Motoren”(Hall-Motors)。点击OK确认。

步骤五:打开DB1将变量数据类型定义为UDT1(符号名“Motor”)。如图所示:两个数组(ARRAY)变量,每组包括10个以UDT1为数据类型的变量(编号1到10)。

步骤六:选择菜单命令“View>Data View”可显示所有DB1数据。

注意事项:在数据块中变量定义为UDT情况下只能对实际值进行编辑。既可以在数据块的数据视图中输入变量的当前值。初始值“Initial Value”纵栏显示的是在定义UDT变量时所设的初值。只是在DB块第一次存储时将初值作为当前值。

步骤七:为FC或FB定义UDT1类型的IN参数

创建FB或FC时,可以定义UDT1(Motor)类型的IN参数,如图所示。

例如,与操作语句:“U #Eingabe.Einschalten”(A #Input.Switch On)

·Eingabe:FC1的IN参数变量

·Einschalten:UDT1中的一个变量名

UDT数据类型同样适用于OUT和IN_OUT参数,方法同上。

步骤八:数据块 DB1的寻址及编程

下图所示为变量定义为UDT1类型数据结构的 DB1的编程例子。

例如与操作:U “Halle Motoren”.Halle 1 Motor[2].Einschalten(“U Hall_Motors.Hall_1_Motor[2].Switch On)

·Halle_Motoren: DB1的符号名

·Halle_1_Motor[2]: DB 块数组2的变量

·Einschalten: UDT1中的一个变量名

步骤九:在FC或FB中参数化IN参数

当调用FC1时,UDT类型的输入变量必须赋值,例如可以用如下语句将第一组电机地址指针赋给输入参数。

·“Halle_Motoren”.Halle_1_Motor[1] (“Hall_Motors”.Hall_1_Motor[1])

这种参数化过程同样适用于定义为UDT类型的OUT和IN_OUT参数的其它变量。

步骤十:在交叉参考表中可以显示 S7用户程序所用地址及应用(例如 DB1)的列表。

数据块“unlinked”属性注意事项:

如果在DB块中定义了UDT数据类型并且将 DB“unlinked”属性激活,对于 STEP 7 V5.2/V5.3,如果对UDT作了修改,STEP 7会应用“Check block consistency”功能自动调整数据块,此时,“unlinked”的属性可能会失效。当块一致性检查完成后,确保 DB的“unlinked”属性依然有效,否则可作相应设置。

S7-200数据类型

数据类型检查 完全数据类型检查 在该方式下,参数的数据类型必须同符号或变量数据类型匹配。每个有效参数只有一个数据类型(多重指令除外)。例如,SRW(右移字)指令的输入(IN)参数的数据类型是WORD。只是给它分配WORD型的变量,才能编译成功。当设定为完全数据类型检查时,给WORD 型指令分配整型(INT)变量是无效的。 完全数据类型检查只能在IEC1131-3方式下执行。如下表: 完全数据类型检查:用户选定和等价的数据类型

简单的数据类型检查:在简单数据类型方式下,当给一个符号或变量一个数据类型时,也自动分配了和所选定数据类型相匹配的所有数据类型。例如,选择DINT作为数据类型,局部变量也自动分配DWORD数据类型,因为两者都是32位的数据类型。虽然REAL也是32位数据类型,但是它不是自动分配的。由于REAL数据类型没有等价的数据类型,它总是单独定义的。简单数据类型检查只在SIAMTIC方式下使用局部变量时执行。见下表: 无数据类型检查:无数据类型检查方式只在SIMATIC全局变量没有可选的数据类型时使用。在该方式下,所有相同大小的数据类型自动分配给符号。例如,一个符号分配在地址VD100处,下表表示STEP 7-Micro/WIN 32自动为该符号分配了数据类型。 数据类型检查的优点 数据类型检查有助于避免常见的编程错误。如果一条指令支持有符号数,STEP 7-Micro/WIN32将对操作数标示出无符号数的使用。例如,关系比较〈1是一个有符号指令。对于有符号操作数,-1小于0。但是,当〈1指令允许支持无符号数据类型时,编程器必须保证不出现下面的情况。在程序执行期间,对于〈1指令,无符号数40000小于0。 先入先出(表)

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方式。

PROE参数化教程

第10章创建参数化模型 本章将介绍Pro/E Wildfire中文版中参数化模型的概念,以及如何在Pro/E Wildfire 中设置用户参数,如何使用关系式实现用户参数和模型尺寸参数之间的关联等内容。 10.1 参数 参数是参数化建模的重要元素之一,它可以提供对于设计对象的附加信息,用以表明模型的属性。参数和关系式一起使用可用于创建参数化模型。参数化模型的创建可以使设计者方便地通过改变模型中参数的值来改变模型的形状和尺寸大小,从而方便地实现设计意图的变更。 10.1.1 参数概述 Pro/E最典型的特点是参数化。参数化不仅体现在使用尺寸作为参数控制模型,还体现在可以在尺寸间建立数学关系式,使它们保持相对的大小、位置或约束条件。 参数是Pro/E系统中用于控制模型形态而建立的一系列通过关系相互联系在一起的符号。Pro/E系统中主要包含以下几类参数: 1. 局部参数 当前模型中创建的参数。可在模型中编辑局部参数。例如,在Pro/E系统中定义的尺寸参数。 2. 外部参数 在当前模型外面创建的并用于控制模型某些方面的参数。不能在模型中修改外部参数。例如,可在“布局”模式下添加参数以定义某个零件的尺寸。打开该零件时,这些零件尺寸受“布局”模式控制且在零件中是只读的。同样,可在PDM系统内创建参数并将其应用到零件中。 3. 用户定义参数 可连接几何的其它信息。可将用户定义的参数添加到组件、零件、特征或图元。例如,可为组件中的每个零件创建“COST”参数。然后,可将“COST”参数包括在“材料清单”中以计算组件的总成本。 ●系统参数:由系统定义的参数,例如,“质量属性”参数。这些参数通常是只读 的。可在关系中使用它们,但不能控制它们的值。 ●注释元素参数:为“注释元素”定义的参数。 在创建零件模型的过程中,系统为模型中的每一个尺寸定义一个赋值的尺寸符号。用户可以通过关系式使自己定义的用户参数和这个局部参数关联起来,从而达到控制该局部参数的目的。

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

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

STEP7-功能块全中文说明

https://www.wendangku.net/doc/6f1294411.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 整数加

西门子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定时器在定时器指令被执行时刷新。

PLC数据类型

PLC数据类型 1、数据格式及要求 ①数据格式:及指数据的长度和表示方式 ②要求S7-200对数据的格式有一定的要求,指令与数据格式一 致才能正常工作。 2、用一位二进制数表示开关量 ①一位二进制数:一位二进制数有0(OFF)和1(ON)两种不 同的取值,分别对应开关量(或数字量)的两种不同状态。 ②位数据的数据类型:布尔(BOOL)型。 ③位地址:由存储器标识符、字节地址和位号组成,如等。 ④其他存储区的地址格式:由存储器标识符和起始字节号(一 般取偶字节)组成,如VB100、VW100、VD100等。 3、多位二进制数(8421码) ①数及数制:数用于表示一个量具体大小。根据计数方式的不 同,有十进制(D)、二进制(B)十六进制(H)和八进制等不同的计数方式 ②二进制表示:在S7-200中用2#来表示二进制常数,例如“2#”。 ③二进制大小:将二进制的各位(从右往左第n位)乘以对应 的位权(×2n-1),并将结果累加求和可得其大小。例如:2#=1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20=186 4、十六进制数 ①十六进制数的引入:将二进制数从右往左每4位用一个十六进

制数表示,可以实现对多位二进制数的准确读写。 ②不同进制的表示方法; ③十六进制数的表示方法:在S7-200中用16#表示十六进制常 数,例如“2#1010 1110 0111 0101”可转换为“16#AEF7”。 ④十六进制大小:将十六进制数的各位(从右往左第n位)乘 以对应的位权(×16n-1),并将结果累加求和可得其大小。例如:16#2F=2×161+15×160=47 5、数据长度:字节(Byte)、字(Word)、双字(DoubleWord) ①字节(B):从0号位开始的连续8位二进制数称为一个字节 ②字(W):相邻两个字节组成一个字的长度 ③双字(DW):相邻4个字节组成一个双字长度 ④字双字长数据的存储特点:高位存低字节、低位存高字节。 6、负数(有符号数)的表示方法 ①负数的表示:PLC一般用二进制的补码来表示有符号数,其最高位为符号位(0-正、1-负)。 ②绝对值相等的正负有符号数间的关系:正数的补码是它本身。 ④不同数据的取值范围:(下表) 数据基本类型

C语言数据类型及表示范围

C语言各种数据类型在系统中占的字节和取值围 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值围: 符号属性长度属性基本型所占位数取值围输入符举例输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。

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

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)

“参数化设计”工作流程分析

龙源期刊网 https://www.wendangku.net/doc/6f1294411.html, “参数化设计”工作流程分析 作者:杨满丰 来源:《中国科技博览》2015年第35期 [关键词]参数化;设计方法;计算机程序;设计 中图分类号:T3 文献标识码:B 文章编号:1009-914X(2015)35-0333-01 当今在建筑设计、规划设计、景观设计等领域中“参数化设计”已经成为不可不提的设计手段。从城市尺度上的规划设计到单体建筑的形态和表皮设计,从景观规划的场地布局到产品、家具的外观设计,参数化设计这种基于数字化技术的设计方法以极大包容的态度给设计领域带来了一种全新的工作方法与审美选择。本文从设计方案构思层面探讨参数化设计的特点及其工作流程。 一、参数化设计方法的特点 从方案设计层面上理解,参数化设计是指借助数字化技术手段将设计中的诸多要素,依据特定规则进行组织与关联,并获得设计结果的设计方法。参数化设计实际上是关联规则的设计,这个规则决定了一个系统中各要素间的关系和运行方式,给这个系统输入条件变量,系统就会依据规则生成结果。 传统设计方法由于受技术条件的限制通常被限定在以“几何体”为基本形式元素的思维框架内来解决功能问题。参数化设计将关注点转移到寻求设计要素与功能要求的逻辑关系组织上来,使用程序语言来组织设计条件与功能要求间复杂的逻辑关系,制定规则,并推演出结果是参数化设计方法的主要工作思路。计算机程序语言是处理参数化信息的主要技术手段。参数化设计方法从根本上突破了传统设计方法的几何思维限制和人脑计算能力的限制,这种方法可以获得传统设计手段难以表现的形态或形式组织方式。参数化设计方法中,设计师并不是通过设计形式来承载功能,而是通过寻找逻辑关系来设计一个能够推演出结果的系统。 二、参数化设计方法的一般设计过程 1、条件细分 条件细分是参数化设计方法的第一个工作环节。运用参数化设计方法的一个很重要的前提就是充分理解和认可影响设计的因素是复杂的。通过对复杂条件因素的细分,设计师将设计项目各主要条件因素分成足够数量且相对独立的基本单元。它们可以是基本实体单元如砌筑材料,墙、窗户、一个房间等,也可以是一些条件因素,如特定人群的行为、活动、喜好,气候因素,场地条件,人文因素等,细分内容甚至可以是更为抽象的形态构成元素如三维曲面的控制曲线的等。将以上这些与设计相关的各种条件信息,通过分析,找出其中的一种或几种关键

4个步骤教你如何写好abstract部分

4个步骤教你如何写好abstract部分 A b s t r a c t,就是对英文论文的一个简短总结,目的是为了告诉读者论文研究的是什么课题,以此来吸引读者。 一个好的a b s t r a c t,对英文论文的作用是非常大的,是论文的核心部分,所以一定得写好。下面就给大家讲解一下如何写好a b s t r a c t部分。 1.无论任何学科,a b s t rac t需要包括以下几个重要组成部分和重要元素 1)动机或问题的陈述:为什么我们对这个研究问题这么关心?你的研究针对的是实践性的,科学性的,理论性的还是艺术性的?有些a b s t r a c t 写作的时候,在写作动机之前要简要介绍相关的背景信息。

2)措施/流程/解决方法以及调查范围:为了得到相关的结果,你做了什么? 3)结果/发现/产品:在上述的调查研究完成后,你学会了什么?发现了什么?创造了什么? 4)结论/影响:你得出的哪些结论会产生更大的影响?然而,需要注意的是,根据不同的学科,要注意相关的可变性因素。 2.a b s t rac t中的语法特点和要求 1)注意到细微的变化 在陈述主要目标和调查范围的时候,多采用陈述性语言。 2)采用合适的方法 描述方法的时候多使用过去时态。 要注意时态的一致性。 如果有必要,要按照时间的顺序进行排列。 3)注意结果的呈现方式 只需要呈现结果即可。 以过去时态呈现出来。 4)注意结论的可靠性

陈述个人观点。 在陈述主要结论的时候要使用现在时。 不要表现出试探性的倾向。 3.a b s t rac t s的类型 a b s t r a c t s分为两种类型,i n f o r m a t i o n a l a b s t r a c t s和d e s c r i p t i v e a b s t r a c t s。 I n f o r m a t i o n a l A b s t r a c t s --针对r e p o r t s的相关内容进行沟通。 --主要包括p u r p o s e,m e t h o d s,s c o p e,r e s u l t s,c o n c l u s i o n s和 r e c o m m e n d a t i o n s --点明重要的p o i n t s --简短精悍,从一段到一页或两页都是可以的。取决于整篇文章的长度。 --允许读者自己决定是否愿意阅读这份报告。 D e s c r i p t i v e A b s t r a c t s --告诉大家文章内主要包括了什么。 --包括p u r p o s e,m e t h o d s,s c o p e,但是不包括r e s u l t s,c o n c l u s i o n s 和r e c o m m e n d a t i o n s

XML Schema中的复杂数据类型complexType 的分析

XML Schema中的复杂数据类型complexType 的分析 先来对比: simpleType:定义了一个简单类型它决定了元素和属性值的约束和相关信息(一个type不但要定义元素的类型还要定义这个元素的属性的值的类型和约束的) complexType:定义了一个复合类型决定了一组元素和属性值的约束和相关信息 已经知道complexType 里面可以放 attruibute attruibuteGroup

group sequence simpleContent complexContent choice simpleContent 1.应用于complexType 对complexType的内容进行约束和扩展 注意主要是对内容进行约束和扩展 对于属性的定义虽然放在simpleContent里面但其实跟simpleContent没什么关系的该怎么写还是怎么写的 2.用了simpleContent 是限定了元素中间的内容的值既然是限定具体内容的 那么子元素自然是不会有了 所以simpleContect里面是没有子元素的但是一定有属性的不然就是个simpleType了但是属性还是可以有的因为属性不受约束

3以前用simpleType 就是没有子元素没有属性 用complexType 可以实现没有子元素没属性。 但是complexType对于有属性没有子元素的这种情况值的内容没有办法做约束所以就有了simpleContect 看例子:

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”是数据块的符号名,该数据块包含结构、结构名称(用点分割)在数据块的后面。结构的元素名(用点分割)跟在结构名的后面。

教你如何写参数化程序

教你如何写参数化程序 由于我对siemens840D比较熟悉,所以以下说讲的一切都是在siemnes840D系统上测试过的,是经过实践检验的编制,可靠性应该是很好的。 先让我来给大家介绍一下参数化的几种形式: 1)用DEF命令,在MPF或者SPF程序中制定变量,以达到调用的目的; 2)通过siemens自带的1000个R参数进行参数的编制; 3)直接调用siemens系统变量,进行参数化程序编制。 大概也就这几种常见的形式了。我一个个给初学者进行讲解: 1)用DEF命令,在MPF或者SPF程序中制定变量,以达到调用的目的。 这是一种很灵活的参数化编制形式。 请看一下例子: ========== MPF: DEFINE Z_MAX AS G0 G90 G40 G17 SUPA Z850 D0 SPOS=0 DEF REAL DiaMAX=50,DiaMIN=45.8,CAO_KUAN=5 EXTERN XICAO_1(REAL,REAL,REAL) $P_UIFR[1]=CTRANS(X,,Y,,Z,,B,) ;G54 B=? ;$P_UIFR[2]=CTRANS(X,,Y,,Z,,B,) ;G55 B=?? ;$P_UIFR[3]=CTRANS(X,,Y,,Z,,B,) ;G56 B=??? ... N320 CS_TOOL("",,1) ;XI CAO B# CS_TP("",,1) G56 G90 G17 G40 MIRROR X0 R90=85.3 R91=WIDTH-110.3 R92=31.3 XICAO_1(DiaMAX,DiaMIN,CAO_KUAN);也可以写成XICAO_1 R90=235.3 XICAO_1 MIRROR Z_MAX ... SPF: %_N_XICAO_1_SPF ;$PATH=/_N_SPF_DIR PROC XICAO_1(REAL DiaMAX,REAL DiaMIN,REAL CAO_KUAN) SAVE ;R90 is X Coordinate ;R91 is Y Coordinate ;R92 is Z Coordinate ;R93 is S Value ;R94 is OutSide F Value ;R95 is InSide F Value

05_STEP 7数据类型和变量 [只读]

内容页码 变量及数据类型的含义 (2) 变量特性及变量声明 (3) STEP 7数据类型概述 (4) STEP 7中的基本数据类型 (5) 复杂数据类型的重要性 (6) STEP 7中的复杂数据类型 (7) STEP 7中的参数类型 (8) 变量建立的区域 (9) 本地数据堆栈工作方式 (10) 示例:暂存器的替换 (11) 数据块(DB ) (12) 数据类型:ARRAY (13) ARRAY 的声明和初始化 (14) 在存储器中存储ARRAY 变量 (15) 数据类型:STRUCT (16) STRUCT 的声明 (17) 在存储器中存贮STRUCT 变量 (18) 用户自定义数据类型:UDT (19) UDT 的使用 (20) 数据类型:DATE_AND_TIME (21) 处理DT 型变量的功能 (22) 数据类型:STRING (23) 存储器中STRING 变量的存储 (24) 处理STRING 变量的功能 (25) 示例5.1:复杂数据类型的使用 (26) 示例5.2:复杂数据类型的访问 (27) 附加练习5.3:使用SFC 1(READ_CLK )读取日时间................................ 28

概述现代计算机系统的发展,简化和加速了对那些复杂而耗时的计算任务的处理。计 算机对庞大信息的处理、存储以及可持续访问的能力,在大多数的应用中扮演着 十分重要的角色。 控制器可用的信息由那些有关“现实世界”的并经过筛选的信息组成。数据是对现 实的一种抽象,因为对于特定的问题,忽略了相关对象的那些非主要和非重要的 属性。 数据类型确定如何将数据表示出来常常是相当困难的。您的选择通常要受到各种因素的限 制,一方面,数据必须能够正确地反映所描述对象的属性,另一方面,使用该数 据必须能够执行过程管理所必须的指令。 数据类型决定了数据可以接受哪些值,使用该数据能够执行哪些指令。 数据类型唯一地定义了: ?允许的数据范围 ?允许使用的指令 数据类型也是最终存贮在存储器中的各个位的潜在表示(格式)形式的抽象。 变量的含义 除了指令,变量是编程系统中最为重要的元素。变量的任务就是在程序中保存数 值,以便后来使用或者做进一步处理。变量的值可以存储在PLC 存储器中“任何” 位置 。

C语言基本数据类型及运算题库

第二章基本数据类型及运算 一、选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是。 A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 答案:C 2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。 A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 答案:C 3. 下列C语言中运算对象必须是整型的运算符是。 A) %= B) / C) = D) *= 答案:A 4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。 A) 0 B) 0.5 C) 1 D) 2 答案:A 5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D 6. 下列变量定义中合法的是。 A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 答案:A 7. 以下4个选项中,不能被看作是一条语句的是。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2; 答案:D 8. 设x=1,y=-1,下列表达式中解为8的是。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9. 在C语言中不合法的整数是。 A)20 B)0x4001 C)08 D)0x12ed 答案: C 10. 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11 D)0x19

相关文档