STEP7数据类型和变量
- 格式:ppt
- 大小:511.05 KB
- 文档页数:28
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位的二进制数,无论你使用哪种方式都可以。
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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C #987或者B#(9,135)。
STEP 7 Struct是什么数据类型请问STEP7Struct是什么数据类型在什么样的情况下需要用到Struct数据类型!!最佳答案Struct(结构性类型)是由不同数据类型组成的、属于复合型数据类型,它是用来定义一组相关的数据,其长度由用户定义,它与数组(Array)类型相反(ARRAY是由相同类型的数据组成的数组)。
许多关于结构类型的书籍中提到的关于电机控制系统中,把一个电机所有控制元素,如运行速度、额度电流、起动电流和运行方向等作为参数或逻辑块的局部变量,并且在全局数据块中声明,这样利用它可以结构化大量的数据并且可以用符号进行处理,由于访问结构的元素包含结构的名称,使程序更容易读,指令编写更清晰。
如电机的一组不同类型的数据(称为元素)组成的结构命名为Motor_Data,并且放在共享数据块DB1中,为了用符号访问结构中的一个元素,需要给数据块分配一个符号名,如Drive_1.结构的关键字是“STRUCT“,结构的结束用END_STRUCT.这样在打开数据块DB1(符号名Drive_1),可以看到上面变量声明表为:Address(地址)Name(名称)Type(类型)InitialValue (初始值)0.0Struct0.0Motor_Data(电机数据)Struct0.0Operating_speed(运行速度)INT2.0Rated_current(额定电流)REAL6.0Start_current(起动电流)REAL10.0Max_temperature(最大温度)REAL14.0Turning_direction(转动方向)BOOL=16.0END_STRUCT=16.0END_STRUCT如果访问上述结构中的某个元素,如Rated_current(额度电流),可以直接用下列指令:L“Drive_1”.Motor_data.Rated_current其中,“Drive_1”是数据块的符号名,该数据块包含结构、结构名称(用点分割)在数据块的后面。
STEP7中功能块FB里的stat静态变量与C 语言里静态分配的变量性质是否一样?C语言里静态变量是从栈里分配的,当函数执行完后会自动释放。
那么STEP7中FB里的静态变量在系统分配的机制是否也是如何?是否在FB执行完之后会自己释放?STEP7中引用静态变量stat有啥意义?最佳答案静态变量是FB专有的,其是与背景块一一对应,可以这么说静态变量就是FB的背景数据块。
其作用就是背景数据块的作用,背景块的作用就是,自己编自己的FB,在声明表里定义好自己的静态变量,使用很方便不用考虑使用其它全局变量时,要知道哪个是空的,哪个是别人用过的,就是重叠问题。
尤其是多人编一个系统时就更有用了,用FC 就没有这个优势。
每次调用功能块(FB)时,会被分配一个背景数据块。
此FB的实际参数和静态参数都被存储在该背景数据块中。
在FB中声明的变量决定背景数据块的结构。
背景指定了功能块的调用。
FB2可以使用FB1背景数据块中的静态变量,但需要满足以下条件:(即使用多重背景时应注意的问题):1.在管理多重背景的功能块的变量声明表中,为被调用的功能块的每一次调用定义一个静态(STAT)变量,以被调用的功能块的名称(如FB1)作为静态变量的数据类型。
2.应生成需要调用的功能块(如FB1)。
3.在管理多重背景的功能块(如FB2)必须设置为多重背景功能。
4.必须有一个背景数据块(如DB1)分配给管理多重背景的功能。
背景数据块中的数据是自动生成。
5.多重背景只能声明静态变量(声明类型为“STAT”)。
其具体可参考:1.为什么使用背景数据块,它与全局数据块有什么区别?:/Download/Upload/AS/FAQ/15 360455.pdf2.多重背景数据块的使用:/view/5dd57991daef5ef7ba0d3c2d.html。
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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
I.parator= IN1 等于IN2◊ IN1不等于IN2>IN1 大于IN2<IN1 小于IN2>=IN1大于或等于IN2<=IN1 于或等于IN22.整数就是股有爪数位都是零的数,即能被1整険的« ( »-1-2,0,1,••••••) CMP?I (INT)整数比较CMP ?D (DINT) it较双精度整做CMP ?R (REAL)比较实数3•转换指令祗述BCD_I BCD码转换为整数LBCD整里转换为BCD码BCD_DIBCD西转換为双精《[整数LDINT整型转換为长整璽DI.BCD长整璽转换为BCD码DI.REAL长整塑转换为浮点型4itasffi 令S.CUD双向廿数器S.CD降值廿敛器S.CU升值廿数器——(SC)设置计数器线阖•——(CU)升值计数器线圈•TCD)降值廿数器线圈5.S.CUD双向廿数器实例6. S_CU升值廿數器英话参敗徳语數据类型内存区咸说明G编号Z编号COUNTER C 标识号•具他CPUCU zv BOCL 1、Q、M、L. D 升銓计数輸入CD ZR BOCL L Q、M. L. D 遥越计数瑜入S S BOCL 1. Q、M、L、D 为预设汁救黔设程输入PV Z7/ WORD k Q、M、L. D或用教将汁数网血以的格式输入(范1机至099)PV zw WORD k Q、M、L. D 决童计数關的位R R BOCL 1、Q、M、L. D 复乞输入CV DUAL WORD L Q、M. L. D 当前计数湍但・1六进制救字CV BCD DE2 WORD 1. Q、M、L、D 当前计数舉值.BCD碎Q Q BOCL 1、Q、M、L. D 计数器狀态I 0.0cuC10S CUDQ4.0<)I 0.2HII 0.3 MW10—HI -------CDPV cvcv —BCD——如果I0.2从©变为F.则计数器预设为MW10的値。