300基本数据类型
- 格式:doc
- 大小:44.50 KB
- 文档页数:6
课后题:第一章:1.什么是可编程控制器?答:可编程序控制器(Programmable Controller):可通过编程或软件配置改变控制对策的控制器。
是一台专业环境应用而设计制造的计算机。
它具有丰富的输入输出接口,并且具有较强的驱动能力。
2.可编程控制器是如何分类的?简述其特点。
答:一体化紧凑型PLC:电源,CPU中央处理系统,I/O接口都集成在一个机壳内。
标准模块式结构化PLC:各种模块相互独立,并安装在固定的机架上,构成一个完整的PLC应用系统。
3.简述可编程控制器的工作原理,如何理解PLC的循环扫描工作过程?答:当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。
完成上述三个阶段称作一个扫描周期。
在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。
PLC采用循环扫描的工作方式,对输入信号进行的是一次性“采样”。
采用这种工作方式,在一个PLC 程序循环周期内,即使实际输入信号状态发生变化,也不会影响到PLC程序的正确执行,从而提高了程序执行的可靠性。
用户程序通过编程器或其他输入设备存放在PLC的用户存储器中。
当PLC开始运行时,CPU根据系统监控程序的规定顺序,通过扫描,可完成各输入点状态采集或输入数据采集,用户程序的执行,各输出点状态的更新,编程器键入响应和显示器更新及CPU自检等功能。
PLC的扫描可按固定顺序进行,也可按用户程序规定的顺序执行。
4.简述PLC与继电接触器控制在工作方式上各有什么特点。
在继电器控制电路中,当电源接通时,电路中所有继电器都处于受制约状态,即该吸合的继电器都同时吸合,不该吸合的继电器受某种条件限制而不能吸合,这种工作方式称为并行工作方式。
而PLC的用户程序是按一定顺序循环执行,所以各软继电器都处于周期性循环扫描接通中,受同一条件制约的各个继电器的动作次序决定于程序扫描顺序,同他们在梯形图中的位置有关,这种工作方式称为串行工作方式。
S7-300PLC数据及软件安装⽅法⼀、S7-300PLC基本数据类型1、位(bit)位数据的数据类型为BOOL型,其值为1或0。
例如I0.0这⼀位的值要么为0,要么为1。
2、字节(byte)8位⼆进制数组成⼀个字节。
例如MB0。
3、字(Word)相邻⼆个字节组成⼀个字,字只能表⽰⽆符号数。
例如MW0是由MB0和MB1⼆个字节组成。
注意⼆点:1)⽤组成字最⼩的字节MB0的编号作为字MW0的编号。
2)组成字的编号最⼩的字节MB0为字的⾼位字节,编号最⼤的字节MB1为低位字节。
字的取值范围为W#16#0000~W#16#FFFF4、双字(Double Word)⼆个字(或四个字节)组成⼀个双字,双字也只能表⽰⽆符号数。
双字MD0由MB0~MB3组成,D表⽰双字,0为双字的起始字节MB0 的编号,MB0是双字的最⾼位,MB3是双字的最低位。
双字的取值范围为DW#16#0000_0000~DW#16#FFFF FFFF5、16位整数(INT, Integer)整数是有符号数,最⾼位为符号位,最⾼位为0时为正数,为1时为负数。
16位整数的取值范围为-32768~+32767,整数⽤补码表⽰。
6、32 位整数(DINT , Doubel Integer)和16位整数⼀样,最⾼位也为符号位32位整数的取值范围为-2147483648~+214748364Z7、32位浮点数实数(REAL)⼜称为浮点数。
8、常数的表⽰⽅法1)B#16#、W#16#、D#16#分别⽤来表⽰⼗六进制字节、字和双字常数。
2)2#⽤来表⽰⼆进制常数,例如2#1001_ 00103)L#表⽰32位双整数常数,例如L#+128⼆、S7-300PLC的系统存储器1、过程映像输⼊输出(I\O)I和Q均可按位、字节、字和双字访问,例如I0.0、IB0、IW0、ID0。
2、位存储器(M)M可按位、字节、字和双字访问,例如M0.0、MB0、MW0、MD0。
一、基本数据类型
基本数据类型的长度不超过32位。
位(BOOL),字节(BYTE),字(WORD),双字(DOUBLE WORD),整数(INT),
双整数(DOUBLE INT),浮点数(REAL),S5TIME(SIMATIC时间),IEC时间(TIME),IEC日期(date),日计时(TIME_OF_DAY),字符(CHAR),
重点:S5TIME和IEC时间数据类型结构,二者区别
二、复杂数据类型
复杂数据类型是由其他基本数据类型组合而成的,长度超过32位的数据类型。
1.日期时间数据类型(Data_And_Time ):
2.字符串类型(String):
3.数组类型Array
4.结构(STRUCT):
5.用户定义类型(UDT):
三、参数数据类型
用于功能FC或功能块FB的数据类型
1. Pointe指针类型,6字节指针类型,传递数据块号和数据地址
2. Any指针类型,10字节指针类型,传递数据块号、数据地址、数据数量以及数据类型
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保
用品等一系列自动化的工控产品。
如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城/。
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)。
第三章西门子PLC的指令系统3.1 S7-300/400的编程语言3.1.1 PLC编程语言的国际标准IEC 61131是PLC的国际标准,1992~1995年发布了IEC 61131标准中的1~4部分,我国在1995年11月发布了GB/T 15969-1/2/3/4(等同于IEC 61131-1/2/3/4)。
IEC 61131-3广泛地应用PLC、DCS和工控机、―软件PLC‖、数控系统、RTU等产品。
定义了5种编程语言1) 指令表IL(Instruction list):西门子称为语句表STL。
2) 结构文本ST(Structured text):西门子称为结构化控制语言(SCL)。
3) 梯形图LD(Ladder diagram):西门子简称为LAD。
4) 功能块图FBD (Function block diagram):标准中称为功能方框图语言。
5) 顺序功能图SFC(Sequential function chart):对应于西门子的S7 Graph。
3.1.2 STEP 7中的编程语言梯形图、语句表和功能块图是3种基本编程语言,可以相互转换。
1.顺序功能图(SFC) :STEP 7中的S7 Graph2.梯形图(LAD):直观易懂,适合于数字量逻辑控制。
―能流‖(Power flow)与程序执行的方向。
3. 语句表(STL):功能比梯形图或功能块图强。
4.功能块图(FBD):―LOGO!‖系列微型PLC使用功能块图编程。
5.结构文本(ST):STEP 7的S7 SCL(结构化控制语言)符合EN 61131-3标准。
SCL适合于复杂的公式计算、复杂的计算任务和最优化算法,或管理大量的数据等。
6.S7 HiGraph 编程语言图形编程语言S7 HiGraph 属于可选软件包,它用状态图(state graphs)来描述异步、非顺序过程的编程语言。
7.S7 CFC 编程语言可选软件包CFC(Continuous Function Chart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能。
UDT型说明:从数据类型的意义上说UDT并不被CPU所识别,而是在离线程序中自定义(组合)的数据类型。
S7程序的自定义数据类型并不能装载到S7 CPU中。
UDT是由递增的编辑器创建并编辑或由源文件的编译而生成。
当在块调用中进行变量传递时是不能将UDT作为内存地址区域来传递的。
因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用UDT 的符号名来定义IN, OUT 和IN_OUT参数,因为系统将自动生成相对应的地址。
下表介绍了如何创建和参数化UDT类型变量的过程。
我们将以两组各十台相同的电机为例。
UDT1对应这些电机的所有输入变量。
步骤在STEP 7项目中插入自定义数据类型。
如图01鼠标选中"block”文件夹并点击右键,再弹出菜单中选择命令〕nsert New Object > Data Type”。
打开DB1将变量数据类型定义为UDT1 (符号名"Motor”)。
例如图05所示:两个数组(ARRAY )变量,每组包括 10个以UDT1为数据类型的变量(编号1到10)。
口 File Edit Insert PLC Debug Vie 1/'-.1 Options Wind 二叫,Help □I 谢明卬 副 总|电|包| 加通15 \|例!《忸| 凶图05由于此例两组电机是独立的,所以在DB1中要为每一组电机创建数据结构。
例如第一组的数据结构定义为数据类型为UDT1的数 组“Array[1..10] ”,符号名为“Halle 1 Motor”。
6选择菜单命令"View > Data View”可显示所有DB1数据。
IFile Edit Insert PLC Debug ”1 日闷 Options Windn'.'\' Help口|⑪然圜副星[电| c|c|阿曲|曰、同| [□面里]图注意事项:在数据块中变量定义为UDT情况下只能对实际值进行编辑。
第3章习题答案1.填空题1)理解或者访问CPU存储区、数据类型、数据大小、数据的位结构2)基本数据类型、复杂数据类型和参数类型。
3)不超过32位的数据(符合IEC1133-3的规定)、S7处理器的累加器中4)超过32位的数据类型、用户通过组合和复合基本数据类型生成的、一个变量中5)系统存储区、装载存储区、装载存储区6)32位累加器、16位状态字寄存器、32位地址寄存器、32位数据块寄存器、诊断缓冲区等。
7)最小独立单位、若干条顺序排列的指令、操作码、操作数8)指令执行时获取操作数、直接或间接方式给出、立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。
9)时基、定时值、时基与定时值、减计时、动作10)加计数器(CU)、减计数器(CD)和加减计数器(CUD)2. S7-300 PLC有哪些内部元器件?各元件地址分配和操作数范围怎么确定?S7-300 PLC内部元器件:输入过程映像寄存器,输出过程映像寄存器,位存储器,外部输入寄存器,外部输出寄存器,定时器(T),计数器(C),数据块寄存器(DB),本地数据寄存器(又称本地数据)3. 在RS触发器中何谓“置位优先”和“复位优先”,如何运用?置位、复位指令与RS触发器指令有何区别?1)复位优先型SR触发器:如果S输入端的信号状态为“1”,R输入端的信号状态为“0”,则触发器置位;如果S输入端的信号状态为“0”,R输入端的信号状态为“1”,则复位触发器;如果两个输入端RLO均为“1”,复位输入端最终有效,即复位输入优先,触发器被复位。
2)置位优先型RS触发器:如果R输入端的信号状态为“1”,S输入端的信号状态为“0”,则复位触发器;如果R输入端的信号状态为“0”,S输入端的信号状态为“1”,则置位触发器;如果两个输入端RLO均为“1”,置位输入端最终有效,即置位输入伏先,触发器被置位。
只有在RLO为“1”时,才会执行S(置位)和R(复位)指令,这些指令不受RL O 为“0”的影响,指令中指定的地址保持不变。
INT 格式转换S5TIME 格式
S5TIME 格式时间的转换,S5T#格式为xwyz ,为16位数据,其中x 为时基(BCD 码格式),00--0--10ms
\01--1--100ms\10--2--1s\11--3--10s\xyz 为BCD 码格式的时间,如W#16#2111表示时基为10S,时间值为111,最终定时时间为10*111=1110s
由此可以逆推出怎样将一个整数经过转换设定具体时间值,
先将需要设定的值转换为BCD 码格式(需注意I-BCD 输入的数据范围
为(+/-999),而S5T#最多可以设置到999),转换之后的设定值与时基
(10ms--W )进行WOR 运算,其中10ms--16#0000\100ms--16#1000\1s--16#2000\10s--16#3000
最终的到了一个值W#16#XWYZ,可以发现此时的数据与S5T#格式的数据结构是一致的,
最终放入定时器,由STEP7自动转换为时间,此方法的缺点是需要同时设定时基个时间。
S5TIME 格式数据与TIME 格式数据STEP7提供了专门的功能来进行转换,只需调用就可以
FC33将S5TIME 转换为TIME ,FC40将TIME 转换为S5TIME 格式因此
INT 格式转换S5TIME 格式也可以使用FC40
来转换
S5TIME 格式转换INT 格式
9、INT\TIME\S5TIME 数据类型的转换
2015年6月3日
17:28
INT格式转换TIME格式
TIME格式转换DINT格式。
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)。
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
12254
上面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为负值
S5TIME时间数据类型长度为16位,包括时基和时间常数两部分,时间常数采用BCD码(二~十进制格式)。
S5TIME 时间数据类型结构如下图所示:
(9)IEC时间(TIME)
IEC时间数据长度为32位,时基为固定值1ms,数据类型为双整数,所表示的时间值为整数值乘以时基。
格式为:
T#aaD_bbH_ccM_ddS_eeeMS
其中aa=天数,bb=小时数,cc=分钟,dd=秒,eee=毫秒。
根据双整数的最大值为2147483647,乘以时基1ms,可以算出,IEC时间的最大值为T#24D_20H_31M_23S_648Ms。
使用IEC时间时,时基保持不变,且精度较高,为1ms。
(10)IEC日期(DATE)
IEC日期数据长度为16位,数据类型为整数,以1日为单位,日期从1990年1月1日开始,1990年1月1日对应的整数为0,日期每增加一天,对应的整数值加1,如23,对应1990年1月22日。
IEC日期格式为D#_年_月_日,例如D#1992_12_2。
取值范围为D#1990_1_1~D#2163_12_31。
(11)日计时(TIME_OF_DAY)
日计时是表示一天中的24小时,数据长度为32位,数据类型为双整数,以1ms为时基,取值范围为TOD#0∶0∶0∶0~TOD#23∶59∶59.999。
(12)字符(CHAR)
字符数据的长度为8位,字符采用ASCII码的存储方式。