您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第三章 S7-300数据类型
执行OB1中的程序(循环执行)事件(日期时间中断、硬件中断等)调用其他OB,FB,FC输出模块AI0.1AI0.2=Q8.0块OB1循环监视时间的开始启动块(OB100)上电后执行一次从模块读信号状态,并保存到过程映象区(PII)把过程映象输出表(PIQ)写到输出模块CPU循环输入模块循环程序执行PLC的扫描过程信号输入端子输入映像寄存器I0.0Q4.1Q4.1Q4.2I0.1M10.0I0.1Q4.2M10.0输出映像寄存器输出锁存器输出端子驱动输入刷新输出刷新程序执行扫描周期输入刷新阶段输出刷新阶段返回本节过程映象字节0字节1字节2:::CPU存储器区字节0字节1字节2:::PIIPIQ用户程序CPU存储器区::AI2.0=Q4.3::::11PLC用户存储区的分类及功能(1/2)回本段PLC用户存储区的分类及功能(2/2)返回上级数据类型数据类型决定数据的属性,在STEP7中,数据类型分为三大类:1数制2基本数据类型3复杂数据类型4参数类型回本部分二进制数:二进制数的1位(bit)只能取0和1这两个不同的值,用来表示开关量的两种不同的状态。该位的值与线圈、触点的关系:ON/OFF,TURE/FALSE。二进制常数:2#1111_0110_1001_0001。十六进制数:十六进制的16个数字是0~9和A~F,每个占二进制数的4位。B#16#,W#16#,DW#16#,W#16#13AF(13AFH)。逢16进1,例如B#16#3C=3×16+12=60。BCD码:BCD码用4位二进制数表示一位十进制数,十进制数9对应的二进制数为1001。最高4位用来表示符号。16位BCD码的范围:-999~+999。32位BCD码的范围:-9999~+9999。1数制2基本数据类型回本段3复杂数据类型数组(ARRAY)结构(STRUCT)字符串(STRING)日期和时间(DATE_AND_TIME)用户定义的数据类型(UDT)功能块类型(FB、SFB)回本段1.数组(ARRAY)数组是由一组同一类型的数据组合在一起而形成的复杂数据类型。数组的维数最大可以到6维;数组中的元素可以是基本数据类型或者复杂数据类型中的任一数据类型(Array类型除外,即数组类型不可以嵌套);数组中每一维的下标取值范围是-32768~32767,要求下标的下限必须小于下标的上限。返回上级2.结构(STRUCT)结构是由一组不同类型(结构的元素可以是基本的或复杂的数据类型)的数据组合在一起而形成的复杂数据类型。结构通常用来定义一组相关的数据,例如电机的一组数据可以按如下方式定义:返回上级3.字符串(STRING)字符串是最多有254个字符(CHAR)的一维数组,最大长度为256个字节(其中前两个字节用来存储字符串的长度信息)。字符串常量用单引号括起来,例如:返回上级4.日期和时间(DATE_AND_TIME)用于存储年、月、日、时、分、秒、毫秒和星期,占用8个字节,用BCD格式保存。星期天的代码为1,1~6的代码为2~7。例如:返回上级5.用户定义的数据类型(UDT)用户定义数据类型表示自定义的结构,存放在UDT块中(UDT1~UDT65535),在另一个数据类型中作为一个数据类型“模板”。当输入数据块时,如果需要输入几个相同的结构,利用UDT可以节省输入时间。6.功能块类型(FB、SFB)这种数据类型仅可以在FB的静态变量区定义,用于实现多背景DB。返回上级4参数数据类型参数类型是一种用于逻辑块(FB、FC)之间传递参数的数据类型,主要有以下几种:(1)TIMER(定时器)和COUNTER(计数器)。(2)BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。(3)POINTER(指针):6字节指针类型,用来传递DB的块号和数据地址。(3)ANY:10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。回本段指令操作数指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标识符和参数组成。操作标识符由主标识符和辅助标识符组成,主标识符用来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位(如:位、字节、字、双字等)。主标识符有:I(输入过程映像寄存器、Q(输出过程映像寄存器)、M(位存储器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)和L(本地数据寄存器);辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)。回本段寻址方式所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方式给出操作数。S7-300有4种寻址方式:立即寻址存储器直接寻址存储器间接寻址寄存器间接寻址回本段1.立即寻址立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指令中,或以惟一形式隐含在指令中。下面各条指令操作数均采用了立即寻址方式,其中“//”后面的内容为指令的注释部分,对指令没有任何影响。返回上级2.存储器直接寻址存储器直接寻址,简称直接寻址。该寻址方式在指令中直接给出操作数的存储单元地址。存储单元地址可用符号地址(如SB1、KM等)或绝对地址(如I0.0、Q4.1等)。下面各条指令操作数均采用了直接寻址方式。返回上级3.存储器间接寻址(1/3)存储器间接寻址,简称间接寻址。该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的内容是操作数所在存储器单元的地址。该存储器一般称为地址指针,在指令中需写在方括号“[]”内。地址指针可以是字或双字,对于地址范围小于65535的存储器可以用字指针;对于其他存储器则要使用双字指针。返回上级4.存储器间接寻址(2/3)【例3-1】存储器间接寻址的单字格式的指针寻址。返回上级4.存储器间接寻址(3/3)存储器间接寻址的双字指针的格式如图所示。【例3-2】存储器间接寻址的双字格式的指针寻址。bbbbbxxxbbbbbbbb00000bbb000000000781516232431说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位序bbbbbxxxbbbbbbbb00000bbb000000000781516232431说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位序返回上级5.寄存器间接寻址(1/4)寄存器间接寻址,简称寄存器寻址。该寻址方式在指令中通过地址寄存器和偏移量间接获取操作数,其中的地址寄存器及偏移量必须写在方括号“[]”内。在S7-300中有两个地址寄存器AR1和AR2,用地址寄存器的内容加上偏移量形成地址指针,并指向操作数所在的存储器单元。地址寄存器的地址指针有两种格式,其长度均为双字,指针格式如图所示。bbbbbxxxbbbbbbbb00000bbbx0000rrr0781516232431说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位24~26(rrr)为被寻址地址的区域标识号位31的x=0为区域内的间接寻址,x=1为区域间的间接寻址位序bbbbbxxxbbbbbbbb00000bbbx0000rrr0781516232431说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位24~26(rrr)为被寻址地址的区域标识号位31的x=0为区域内的间接寻址,x=1为区域间的间接寻址位序返回上级5.寄存器间接寻址(2/4)第一种地址指针格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。【例3-3】区内寄存器间接寻址。返回上级5.寄存器间接寻址(3/4)第二种地址指针格式适用于区域间寄存器间接寻址。【例3-4】区域间寄存器间接寻址。返回上级5.寄存器间接寻址(4/4)第一种地址指针格式包括被寻址数据所在存储单元地址的字节编号和位编号,至于对哪个存储区寻址,则必须在指令中明确给出。这种格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。第二种地址指针格式包含了数据所在存储区的说明位(存储区域标识位),可通过改变标识位实现跨区域寻址,区域标识由位26~24确定。这种指针格式适用于区域间寄存器间接寻址。返回上级寻址数据单元078位数据字节0DBB0数据字节1DBW0数据字节8191DBD8188DBW8190DBB8191数据字节2DBD0数据字节3DBX4.1访问数据单元0123456789DB19(符号名:Values)带有元素名字“Start”的数据位0.0或ADB19.DBX0.0或A“Values”.Start或LDB19.DBW2或L“Values”.Number或LDB19.DBB5或L“Values”.Loop传统访问方法符号寻址完全表示访问1)OPNDB19LDBW2NumberOPNDB19ADBX0.01)OPNDB19LDBB5Loop绝对寻址全局DB(例如)UDT块作为模板用户定义数据类型(UDT)FlourMilkEggsYeastSugar配方2FlourMilkEggsYeastSugar配方3FlourMilkEggsYeastSugarFlourMilkEggsYeastSugar根据UDT建立的DB配方1FlourMilkEggsYeastSugar带有三个UDT类型的元素输入UDT块根据数据类型建立数据块举例:UDT中矩阵声明查看数据查看
本文标题:第三章 S7-300数据类型
链接地址:https://www.777doc.com/doc-4174932 .html