您现在的位置是:首页 > PLC技术 > PLC技术

STEP 7中数据块的访问技术方法

来源:艾特贸易2017-08-13

简介在用户程序中可能存在多个数据块,而每个数据块的数据结构并不完全相同,因此在访问数据块时,必须指明数据块的编号、数据类型与位置。如果访问不存在数据单元或数据块,而且

    在用户程序中可能存在多个数据块,而每个数据块的数据结构并不完全相同,因此在访问数据块时,必须指明数据块的编号、数据类型与位置。如果访问不存在数据单元或数据块,而且没有编写错误处理OB块,CPU将进入STOP模式。

    1.寻址数据块

    与位存储器相似,数据块中的数据单元按字节进行寻址,S7-300的最大块长度是8 KB。可以装载数据字节、数据字或数据双字。当使用数据字时,需要指定第一个字节地址(L DBW 2),按该地址装入两个字节。使用双字时,按该地址装入4个字节。

    2.访问数据块

    访问数据块时需要明确数据块的编号和数据块中的数据类型及位置,在STEP 7中可以采用传统访问方式,即先打开后访问,也可以采用完全表示的直接访问方式。

   (1)先打开后访问

    可用指令“OPN DB…”打开共享数据块(自动关闭之前打开的共享数据块),或用指令“OPN DI…”打开背景数据块(自动关闭之前打开的背景数据块)。如果在创建数据块时,给数据块定义了符号名,如Motor_DB,也可以使用指令OPNMotor_DB”打开数据块。

    如果DB已经打开,则可用装入(L)或传送(T)指令访问数据块。

    【例5-1  打开并访问共享数据块

   OPNMotor_DB1    说明:打开数据块DB1,作为共享数据块

    LDBW2    DB1的数据字DBW2装入累加器1的低字中

    TMW0    将累加器低字中的内容传送到存储字MW0

    TDBW4    将累加器1低字中的内容传送到DB1的数据字DBW4

   OPN DB2    打开数据块DB2,作为共享数据块,同时关闭数据块DB1

    LDB10    装入共享数据块DB2的长度

    LMD10    MD10装入累加器

   <D    比较数据块DB2的长度是否足够长

   JC ERRO    如果长度小于存储双字MD10中的数值,则跳转到ERRO

    【例5-2  打开并访问背景数据块

   OPN DB1    说明:打开数据块DB1,作为共享数据块

    LDBW2    DB1的数据字DBW2装入累加器1的低字中

    TW0    将累加器低字中的内容传送到存储字MW0

    TDBW4    将累加器1低字中的内容传送到DB1的数据字DBW4

   OPN DB2    打开数据块DB2,作为背景数据块

    LDBB2    DB2的数据字节DBB2装入累加器1低字的低字节中

    TDBB10    将累加器1低字低字节的内容传送到DB2的数据字节DBB10

   (2)直接访问数据块

    直接访问数据块,就是在指令中间同时给出数据块的编号和数据块中的地址。可以用绝对地址,也可以用符号地址直接访问数据块。使用绝对地址访问数据块,必须手动定位程序中的数据块单元,采用符号就可以很容易地用源程序调整。数据块中的存储单元的地址由两部分组成,如DB1. DBW2则表示数据块DB1的第二个数据字表示。

    用绝对地址直接访问数据块如下:

    LDB1DBW2    说明:打开数据块DB1,并装入地址为2的字数据单元

    TDB1DBW4    将数据传送到数据块DB1的数据字单元DBW4

    要用符号地址直接访问数据块,必须在符号表中为DB分配一个符号名,同时为数据块中的数据单元用LAD/STL/FBD S7程序编辑器分配符号名,如下所示:

    LMotor_DB”.V1    说明:打开符号名为“Motor_DB的数据块,并装入名为“V1”的数据单元