文档详情

S7-300中UDT与STRUCT型数据总结

工****
实名认证
店铺
DOCX
668.03KB
约18页
文档ID:387128142
S7-300中UDT与STRUCT型数据总结_第1页
1/18

UDT型阐明:从数据类型的意义上说 UDT 并不被 CPU 所辨认,而是在离线程序中自定义(组合)的数据类型 S7 程序的自定义数据类型并不能装载到 S7 CPU 中UDT 是由递增的编辑器创立并编辑或由源文献的编译而生成 当在块调用中进行变量传递时是不能将 UDT 作为内存地址区域来传递的因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用 UDT 的符号名来定义 IN, OUT 和 IN_OUT 参数,由于系统将自动生成相相应的地址下表简介了如何创立和参数化  UDT  类型变量的过程 我们将以两组各十台相似的电机为例UDT1 相应这些电机的所有输入变量 序号环节1在 STEP 7 项目中插入自定义数据类型如图 01 鼠标选中“block”文献夹并点击右键,再弹出菜单中选择命令“Insert New Object > Data Type” 图 012在“Properties - Data Type”对话框中输入 UDT1 的符号名(这里以“Motor”为例)后点击OK 确认图 023打开 UDT1 并输入有关数据类型的变量及其初始值图 03 为 UDT1 变量声明的例子。

图 034然后通过菜单命令“Insert > S7 Block > Data Block”在 STEP 7 项目中添加一种数据块 DB1 ,并在“Properties - Data Block”属性对话框中为其定义符号名(例如此例为“Halle_Motoren” (Hall - Motors))点击OK 确认 图 045打开 DB1 将变量数据类型定义为 UDT1 (符号名“Motor”) 例如图 05 所示:两个数组( ARRAY)变量,每组涉及10个以 UDT1 为数据类型的变量( 编号1 到10)图 05由于此例两组电机是独立的,因此在 DB1 中要为每一组电机创立数据构造例如第一组的数据构造定义为数据类型为 UDT1 的数组“ Array[1..10] ”,符号名为“Halle_1_Motor”6选择菜单命令“View > Data View”可显示所有 DB1 数据图 06注意事项:在数据块中变量定义为  UDT 状况下只能对实际值进行编辑即可以在数据块的数据视图中输入变量的目前值初始值“Initial Value”纵栏显示的是在定义 UDT  变量时所设的初值只是在 DB 块第一次存储时将初值作为目前值。

7为 FC 或 FB 定义 UDT 1 类型的 IN 参数创立 FB 或 FC 时,可以定义 UDT 1 (Motor)类型的 IN 参数,如图07所示例如,与操作语句:“U  #Eingabe.Einschalten” (A  #Input.Switch On)· Eingabe:FC1 的 IN 参数变量 · Einschalten: UDT1 中的一种变量名图 07UDT 数据类型同样合用于 OUT 和 IN_OUT 参数,措施同上8数据块 DB1  的寻址及编程图  08 所示为变量定义为 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 中的一种变量名图 089 在FC 或 FB 中参数化 IN 参数当调用 FC1时, UDT 类型的输入变量必须赋值,例如可以用如下语句将第一组电机地址指针赋给输入参数。

· “Halle_Motoren”.Halle_1_Motor[1]  (“Hall_Motors”.Hall_1_Motor[1])图 09这种参数化过程同样合用于定义为 UDT 类型的 OUT 和 IN_OUT 参数的其他变量10在交叉参照表中可以显示 S7 顾客程序所用地址及应用(例如 DB1 )的列表 图 10数据块“unlinked”属性注意事项:如果在DB 块中定义了 UDT 数据类型并且将 DB “unlinked”属性激活,对于 STEP 7 V5.2 / V5.3,如果对 UDT 作了修改,STEP 7 会应用“Check block consistency”功能自动调节数据块,此时“unlinked”的属性也许会失效当块一致性检查完毕后,保证 DB 的“unlinked”属性仍然有效,否则可作相应设立  STEP 7 协助可提供更多有关信息:· “User-Defined Data Types (UDT) ”· “Entering and Displaying the Structure of Data Blocks Referencing a UDT”· “Entering the Data Structure of Shared Data Blocks”核心词:块例程,自定义数据类型一、案例阐明1、控制对象4个控制方式相似的电机。

2、单个电机控制规定(1)按下启动按钮--电机启动,并开始计时--达到设定期间后发出电机维护提示(2)按下停止按钮--电机停止,并停止计时,但并不将时间清零3)电机运营时间不不小于设定值,时间不能复位,电机运营时间达到或超过设定值后按下复位按钮时间置0,电机维护提示消失4)当电机发生故障时,电机停止运营,并发出报警,故障解决完毕后必须手动确认复位报警信号才干再次启动电机     (5)任何时间电机停止,计时停止,电机运营,继续计时,时间只能有复位按钮可以清零 3、规定将四个电机的所有参数放在1个DB块中,以便管理和做上位接口 二、案例分析根据控制规定得出单个电机所需I/O输入:启动、停止、故障复位、计时复位、电机维护周期、电机故障报警输出:运营、故障报警、已运营时间、电机维护提示根据案例阐明3中的规定我们需要自定义构造UDT和DB块的配合使用 三、编程1、一方面建立UDT构造如下图所示 2、建立寄存参数的DB块,并建立以上图为构造的四个电机的数据 3、建立FB1块进行编程,一方面建立接口如下图所示 程序如下 4、为四个电机分别建立FB1程序的背景DB块,从DB2到DB5如下所示 5、OB1中编写程序如下图所示 四、仿真监控 变量表监控 DB块监控Struct(构造性类型)是由不同数据类型构成的、属于复合型数据类型,它是用来定义一组有关的数据,其长度由顾客定义,它与数组(Array)类型相反(ARRAY是由相似类型的数据构成的数组)。

许多有关构造类型的书籍中提到的有关电机控制系统中,把一种电机所有控制元素,如运营速度、额度电流、起动电流和运营方向等作为参数或逻辑块的局部变量,并且在全局数据块中声明,这样运用它可以构造化大量的数据并且可以用符号进行解决,由于访问构造的元素涉及构造的名称,使程序更容易读,指令编写更清晰如电机的一组不同类型的数据(称为元素)构成的构造命名为Motor_Data,并且放在共享数据块DB1中,为了用符号访问构造中的一种元素,需要给数据块分派一种符号名,如Drive_1. 构造的核心字是‘STRUCT“,构造的结束用END_STRUCT. 这样在打开数据块DB1(符号名Drive_1),可以看到上面变量声明表为:Address(地址)  Name(名称)            Type(类型) Initial Value(初始值)0.0                                       Struct0.0              Motor_Data(电机数据)    Struct0.0              Operating_speed(运营速度) INT2.0              Rated_current(额定电流)   REAL6.0              Start_current (起动电流)   REAL10.0             Max_temperature (最大温度)REAL14.0             Turning_direction (转动方向)BOOL=16.0                               END_STRUCT=16.0                               END_STRUCT如果访问上述构造中的某个元素,如Rated_current(额度电流),可以直接用下列指令:L “Drive_1”.Motor_data.Rated_current其中,“Drive_1”是数据块的符号名,该数据块涉及构造、构造名称(用点分割)在数据块的背面。

构造的元素名(用点分割)跟在构造名的背面1. Struct是什么数据类型构造,属于自定义的数据类型,和C或C++或VC中的构造定义同样2. 在什么样的状况下需要用到 Struct 数据类型举个简朴的例子,一种电机需要运营、报警、手动启动、手动停止、自动启动、自动停止、联锁信号、电机电流信号等;楼主可以将上述信号定义在一种构造中,这样有100个电机,分别定义100个构造名称,即可完毕100台电机的有关参数定义,比你100台电机的每个参数分别定义简朴多了但是构造的缺陷是占用内存空间较大最大的区别是UDT定义的是一种数据类型,不分派变量不传送到S7中去,但是STRUCT定义的是一种具体的数据。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档