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由于此例两组电机是独立的,所以