操作步骤 -创建数据块 在下一部分,将学习如何将简单的几何形状(其作业数据已在 PLC 数据类型中定义)传送到冲孔机。冲孔作业在程序代码中被细分成多个冲孔操作,这些冲孔操作由冲孔机连续执行。冲孔机有一个十字工作台,金属板将紧紧地夹在这个工作台上。可以将十字工作台沿 x 轴和/ 或 y轴移动,就像在坐标系中一样。十字工作台由两个电机推动。该工具有不同的印模用来在金属板上冲出各种形状,例如大小不同的圆形和矩形。该工具还可以Zui多旋转 90 度来切 出具有不同对齐角度的矩形。 现在,可使用 PLC数据类型创建多个背景数据块。之后,该背景数据块将包含具体值,如圆 孔的值。 创建背景数据块“DB_OrderHole”: 1.双击“程序块”(Program blocks) 文件夹下方的命令“添加新块”(Add new block)。 “添加新块”(Addnew block) 对话框随即打开。 1. 单击“数据块 (DB)”(Data block (DB)) 按钮。 2.指定名称“DB_OrderHole”。 3. 选择数据块“UDT_Hole”作为类型。 4. 单击“确定”(OK)。输入相应的起始值: 要制造特定的金属板部件,例如控制柜的侧面板,则将必需的几何形状加载到冲孔机。为此需要创建另一个包含数据块列表的数据块。 创建数据块“DB_OrderList”: 1. 双击“添加新块”(Add new block)命令。 “添加新块”(Add new block) 对话框随即打开。 2. 单击“数据块 (DB)”(Data block (DB))按钮。 3. 指定名称“DB_OrderList”。 4. 选择“全局数据块”(Global DB) 作为该数据块的类型。 5.单击“确定”(OK)。在数据块中创建以下作业列表: 操作步骤 - 创建程序代码为每个作业类型,创建一个单独的函数。在此,将冲孔作业细分为具体的各个冲孔操作,并 包含在 ARRAY 中。 1. 创建 PLC数据类型“UDT_Punch”。 2. 双击“PLC 数据类型”(PLC data types) 下方的命令“添加新数据类型”(Addnew data type)。 将创建一个名为“UserDataType_x”的新 PLC 数据类型。 3. 将 PLC数据类型重命名为“UDT_Punch”。 4. 在 PLC 数据类型中声明以下行: Tool > DINT x >REAL y > REAL w > REAL 5. 创建 ARRAY 数据块“DB_PunchList”。
冲孔机现在应该会开始处理作业。如果它已经在处理作业,则应从作业列表中获取下一个作 业并进行准备。 1. 创建一个 SCL函数块。 2. 双击“添加新块”(Add new block) 命令。 “添加新块”(Add new block) 对话框随即打开。3. 单击“函数块 (FB)”(Function block (FB)) 按钮。 4.指定名称“FB_PrepareNextOrder”。 5. 声明该块接口,如下所示:6. 声明全局变量“AllOrdersDone”:7. 编写以下程序代码:通过将当前冲孔作业细分成几个冲孔操作,为列表中的下一个作业做好了准备。冲孔机必须能够识别当前正在处理哪个冲孔作业。 1. 创建一个 SCL 函数。 2. 双击“添加新块”(Add new block) 命令。“添加新块”(Add new block) 对话框随即打开。 3. 单击“函数 (FC)”(Function (FC)) 按钮。 4.指定名称“FC_PrepareOrder”。除了上述的操作方式之外,还通过在预定义作业中使用数据块“DB_OrderList”将作业加载到冲孔设备中,动态生成作业列表。也可选择不同的作业列表。在执行一个作业列表后,再将新的作业列表加载到冲孔设备中。为此,需额外编写以下代码: 为函数块“FB_PrepareNextOrder”创建一个背景数据块。1. 双击“程序块”(Program blocks) 文件夹下方的命令“添加新块”(Add new block)。“添加新块”(Add new block) 对话框随即打开。 2. 单击“数据块 (DB)”(Data block (DB)) 按钮。3. 指定名称“DB_FB_PrepareNextOrder”。 4. 选择数据块“FB_PrepareNextOrder”作为类型。5. 单击“确定”(OK)。如需交换作业列表,则需额外创建一个 SCL 函数: 1. 创建 STL函数“FC_SwapOrderList”。 2. 声明该块接口,如下所示:1. 双击“程序块”(Program blocks)文件夹下方的命令“添加新块”(Add new block)。 “添加新块”(Add new block) 对话框随即打开。 2.单击“数据块 (DB)”(Data block (DB)) 按钮。 3. 指定名称“DB_OrderRepository”。 4.选择“全局数据块”(Global DB) 作为该数据块的类型。 5. 单击“确定”(OK)。使用 PLC 数据类型 (UDT)(S7-1200, S7-1500) 使用 PLC 数据类型 PLC 数据类型 (UDT)是可自行定义且在程序中可以多次使用的数据结构。 此结构可包含不同 数据类型的多个元素。 声明 PLC数据类型期间,可以定义各个元素的数据类型。 如果需要各种数据类型的组装数据记录,则会频繁使用 PLC 数据类型,并且将从程序中的不同点处理这些数据。 例如,这些数据可以是: • 用于物料跟踪的数据记录 • 用于电机设置的参数集 • 配方 使用 PLC数据类型有以下优点: • PLC 数据类型元素也可以间接寻址,这意味着地址可变,并且到运行时才会计算。 • 基于 PLC数据类型的变量继承 PLC 数据类型的所有属性。 如果对 PLC 数据类型进行了更 改,所有基于此 PLC数据类型的变量都会自动修改。 • 使用统一的符号表示可以提高程序可读性,这是因为 PLC 数据类型各个元素的名称都显 示在程序中。 •可以对 S7-1500 CPU 高性能进行zuijia利用。 • PLC 数据类型可以作为块调用的完整结构进行传送。 •由于需要提供的参数更少,简化了调用接口。 STEP 7 V5.x 中的操作步骤 STEP 7 V5.x 已经允许用户使用STRUCT 数据类型或 PLC 数据类型(UDT)将数据记录创建为 一个结构化变量。但由于使用了符号寻址,会给性能带来些许影响。 数据块中的声明大多数以匿名结构来实现。 随后块本身经过编程将该结构的值作为实参进行传送,而计算出的值被复制回该结构。 这样就可以传送数据块编号,并在块中使用juedui寻址。需要提供的参数数量通常较大。实际数据存储在数据块中,计算出的值传送到其它块。 但在传送数据块变量时,没有可用的符号表示。STEP7 TIA Portal 中的编程示例 可以将形参和实参分配给 PLC 数据类型。 这意味着无需声明每个单独的参数。 如果块具有PLC 数据类型的输入参数,则必须传送具有相同 PLC 数据类型的变量作为实参。 以下示例说明了使用两个形参的函数块 (FB)的调用和参数分配: 1. 要创建 PLC 数据类型,请在项目树中双击“PLC 数据类型”(PLC data types)文件夹中的命令“新 增数据类型”(Add new data type)。 这样,将创建并打开一个用于创建 PLC 数据类型的新声明表。2. 将 PLC 数据类型重命名为“UDT_Material”。 3. 在 PLC 数据类型中声明以下行: ArticleNumber> 数据类型: DINT ArticleName > 数据类型: STRING Amount > 数据类型:REAL Unit > 数据类型: STRING 在全局数据块中,使用 PLC 数据类型。 可以将 PLC数据类型直接指定为数据块的数据类型 或在数据块中作为变量的数据类型。 要为此创建全局数据块,请按以下步骤操作: 1.双击“添加新块”(Add new block) 命令。 这样会打开“添加新块”(Add new block) 对话框。 2.单击“数据块 (DB)”(Data block (DB)) 按钮。 3. 指定名称“DB_MaterialBuffer”。 4.选择数据块类型“ARRAY DB”。 5. 选择 PLC 数据类型“UDT_Material”作为 ARRAY 数据类型。6.指定“1000”作为 ARRAY 上限。 7. 单击“确定”(OK)。在函数块调用中,将形参与全局数据块“DB_MaterialBuffer”中的变量互连。 1. 创建一个 SCL函数块并将其命名为“FB_Material”。 2. 按如下方式声明块接口:使用 STL 中的 MOVE 指令 (S7-1500)应用场合 现在,在 S7-1500 CPU 上可使用 STL 中的 MOVE 指令进行编程。采用这种方式具有以下优势: •程序结构的创建更为简单便捷。 • CPU 的性能显著提高。 STEP 7 V5.x 中的编程方式 在 STEP 7 V5.x中,使用“BLKMOV:块移动“和”UBLKMOV:不可中断的存储区移动”系统 函数,实现 MOVE 功能。 STEP 7 TIAPortal 中的操作步骤 在 STEP 7 TIA Portal 中,提供了以下新 MOVE 指令: • MOVE:移动值 •MOVE_BLK:块移动 • MOVE_BLK_VARIANT:块移动 • UMOVE_BLK:不可中断的存储区移动。