Difference between revisions of "Project Example: Label Machine (Function Block Diagram)/zh-hans"

From SoftMC-Wiki
Jump to: navigation, search
(Created page with "{{Languages}} The task is to place a label at a particular position on a product. <br/> The application has two drives: one to feed the product via a conveyor belt, the other ...")
 
 
Line 1: Line 1:
{{Languages}}
+
{{Languages|Project_Example:_Label_Machine_(Function_Block_Diagram)}}
The task is to place a label at a particular position on a product. <br/>
+
任务是在产品的特定位置放置标签。<br/>
The application has two drives: one to feed the product via a conveyor belt, the other to feed labels and to place them on the moving products.<br/>
+
该应用有两个驱动器:一个用于通过传送带进给产品,另一个用于进给标签并将其放置在移动的产品上。<br/>
The labeling process is triggered by a position-detection sensor.<br/>
+
标记过程由位置检测传感器触发。<br/>
From the detection of the product to the start of the label movement, there is a delay that depends on the velocity of the conveyor, the position of the sensor and the position of the label on the product.
+
从产品的检测到开始移动标签,存在依赖于传送带的速度,传感器的位置和标签在产品上的位置的延迟。
 
<br/>
 
<br/>
 
<br/>
 
<br/>
Line 9: Line 9:
 
<br/>
 
<br/>
 
<br/>
 
<br/>
Both axes move with the same velocity set point. <br/>
+
两个轴以相同的速度移动到设定点。<br/>
The delay for TON FB is calculated from the sensor distance and the velocity. After a labeling step, the Label Drive stops again and waits for the next trigger, while the conveyor continuously moves.
+
从传感器距离和速度计算TON FB的延迟。 在放置标签完成之后,标签的驱动器再次停止,并等待下一个触发,而传送带连续移动。
 
<br/>
 
<br/>
 
<br/>
 
<br/>
  
The main program initializes a startup process in the softMC. <br/>
+
主程序在softMC中初始化启动过程。<br/>
After the startup process is done, the program sets 'Done' variable and a global variable. <br/>
+
启动过程完成后,程序将设置'Done'变量和一个全局变量。<br/>
After 'Done' variable is set, program 'Labeling' is called. <br/>
+
在设置'Done'变量后,调用'标签'<br/>
The application uses two drives and their outputs. <br/>
+
该应用程序使用两个驱动器及其输出。<br/>
 
<br/>
 
<br/>
  
After installation of device description file (created by the Configurator) to Device Repository, the drive's address will be declared in the Axis Pool:
+
将设备描述文件(由Configurator创建)安装到设备存储库后,驱动器的地址将在Axis Pool中声明:
  
 
[[File:Label A1.PNG|border|600px]]          [[File:Label A2.PNG|border|600px]]
 
[[File:Label A1.PNG|border|600px]]          [[File:Label A2.PNG|border|600px]]
Line 26: Line 26:
 
<br/>
 
<br/>
  
In the EtherCAT Slaves section, we can find the I/O mapping for each device.<br/>
+
在EtherCAT从站部分,我们可以找到每个设备的I/O映射。<br/>
In the picture below Input1, Input2, Input3, Input4, Input5, Input11, Output1, Output2, Output3, Output4 and Output5 are declared as new variables (can also be mapped as existing variables):
+
在下图中,Input1,Input2,Input3,Input4,Input5,Input11,Output1,Output2,Output3,Output4和Output5被声明为新变量(也可以映射为现有变量):
  
 
[[File:Label CDHD I_O.PNG|border|600px]]
 
[[File:Label CDHD I_O.PNG|border|600px]]
Line 33: Line 33:
 
<br/>
 
<br/>
  
The main program uses 'softMC_Startup' FB ('mc_st' Instance) to initialize a startup process in the softMC.<br/>
+
主程序使用'softMC_Startup'FB('mc_st'Instance)来初始化softMC中的启动过程。<br/>
A rising edge detection will set the 'Done' variable (and also a global variable) and then call program 'Labeling':
+
上升沿检测将设置'Done'变量(也是全局变量),然后调用程序'Labeling'
  
 
[[File:Label main program FBD.PNG|border|500px]]
 
[[File:Label main program FBD.PNG|border|500px]]
Line 40: Line 40:
 
<br/>
 
<br/>
  
==Labeling POU - Declaration Section==
+
==Labeling POU - 声明部分==
 
<br/>
 
<br/>
The declaration section in the Labeling program contains the following instances (as shown in the next picture):<br/>
+
Labeling程序中的声明部分包含以下实例(如下图所示):<br/>
 
<br/>
 
<br/>
1. '''MC_POWER_01 -''' an instance of MC_Power FB.<br/>
+
1.'''MC_POWER_01 -'''MC_Power FB的一个实例。<br/>
This Function Block enables/disables an axis.<br/>
+
该功能块启用/禁用轴。<br/>
If the axis is associated with a real drive, a state machine is invoked to enable/disable the drive via PDO.<br/>
+
如果轴与实际驱动器相关联,则调用状态机以通过PDO启用/禁用驱动器。<br/>
If the axis is simulated, a MC-Basic subroutine is invoked to enable/disable the axis.<br/>
+
如果轴被仿真,则调用MC-Basic子程序来启用/禁用轴。<br/>
 
<br/>
 
<br/>
2. '''MC_MoveVelocity_01 -''' an instance of MC_MoveVelocity FB.<br/>
+
2.'''MC_MoveVelocity_01 -'''MC_MoveVelocity FB的一个实例。<br/>
This Function Block commands a never ending controlled motion at a specified velocity.<br/>
+
该功能块以指定的速度命令无停止的受控运动。<br/>
 
<br/>
 
<br/>
3. '''MC_halt_01 -''' an instance of MC_halt FB.<br/>
+
3. '''MC_halt_01 -''' 一个MC_halt FB的实例。<br/>
This Function Block commands a controlled motion stop. The axis is moved to the state ‘DiscreteMotion’, until the velocity is zero. With the ‘Done’ output set, the state is transferred to ‘Standstill’.<br/>
+
该功能块命令控制运动停止。 轴移动到状态“DiscreteMotion”,直到速度为零。使用‘Done’输出设置,状态将转移到‘Standstill’。<br/>
 
<br/>
 
<br/>
4. '''MC_MoveRelative_01 -''' an instance of MC_MoveRelative FB.<br/>
+
4. '''MC_MoveRelative_01 -''' MC_MoveRelative FB的一个实例。<br/>
This Function Block commands a controlled motion of a specified distance relative to the set position at the time of the execution.<br/>
+
该功能块在受控运动中执行相对于设定位置指定距离的命令。<br/>
 
<br/>
 
<br/>
5. '''labeling_timer -''' an instance of TON FB (On-Delay timer).
+
5.'''labeling_timer -'''- “TON FB(开启延迟定时器)”的一个实例。<br/>
  
 
<br/>
 
<br/>
Line 64: Line 64:
  
  
==Labeling POU - Implementation Section==
+
==Labeling POU - 实施部分==
Output5 is turned on when Labeling POU is called.<br/>
+
当标签POU被调用时,Output5打开。<br/>
Input1 (of both drives) will turn on Output1 (of both drives).<br/>
+
两个驱动器的Input1将打开Output1(两个驱动器)。<br/>
Input2 (of both drives) will turn on Output2 when Output1 of drive 2 is on (of both drives).<br/>
+
当驱动器2的Output1(两个驱动器)都打开时,两个驱动器的Input2将会打开Output2。<br/>
 
<br/>
 
<br/>
If Output1 is triggered, the MC_Power FB is enabled (for both drives). <br/>
+
如果Output1被触发,则MC_Power FB被启用(对于两个驱动器)。 <br/>
 
<br/>
 
<br/>
 
[[File:Label Axis implementation FBD.PNG|border|500px]]
 
[[File:Label Axis implementation FBD.PNG|border|500px]]
 
<br/>
 
<br/>
 
<br/>
 
<br/>
If drive 2 is enabled and Output2 of drive 1 is on, then Axis 2 will rotate in a constant velocity. <br/>
+
如果驱动器2被使能并且驱动器1的Output2打开,则轴2将以恒定速度旋转。 <br/>
Input3 of drive 1 is the product sensor detection input.<br/>
+
驱动器1的Input3是产品传感器检测输入。<br/>
If Output2 of drive 1 is on, then a timer will start counting when Input3 of drive 1 is turned on for 'timing' (PT) seconds.<br/>
+
如果驱动器1的Input2打开,则在'timing'(PT)秒后开启驱动器1的Input3时,定时器将开始计数。<br/>
In addition, a calculation of the time delay is inserted into 'delay_real' and then converted from 'real' units to time units.<br/>
+
另外,延时的计算被插入到'delay_real'中,然后从“真实”单位转换为时间单位。<br/>
When the timer has elapsed (Output2 is still on and drive 1 is still enabled), axis 1 will move in the configured 'label_length' distance.<br/>
+
当定时器已经完成(Output2仍然开启且驱动器1仍然使能)时,轴1将以配置的“label_length”距离移动。<br/>
 
<br/>
 
<br/>
 
[[File:Label Axis implementation1 FBD.PNG|border|600px]]
 
[[File:Label Axis implementation1 FBD.PNG|border|600px]]
 
<br/>
 
<br/>
 
<br/>
 
<br/>
When a falling edge is detected in Input2 of drive 1 or drive 2, then a boolean variable 'stop_motors' is  triggered. <br/>
+
当在驱动器1或驱动器2的Input2中检测到下降沿时,触发一个布尔变量'stop_motors'<br/>
If drives are enabled, then when 'stop_motors' is TRUE, the MC_halt FB is executed.<br/>
+
如果驱动器被使能,那么当'stop_motors'为TRUE时,执行MC_halt FB。<br/>
 
<br/>
 
<br/>
 
[[File:Label Axis implementation2 FBD.PNG|border|750px]]
 
[[File:Label Axis implementation2 FBD.PNG|border|750px]]
Line 92: Line 92:
  
  
==Visualization==
+
==可视化==
  
The program is controlled by a graphic interface:
+
程序由图形界面控制:
 
<br/>
 
<br/>
  
Line 100: Line 100:
 
<br/>
 
<br/>
 
<br/>
 
<br/>
When the startup process of softMC is done, the blue lamp is turned on.<br/>
+
当softMC的启动过程完成后,蓝灯亮起。<br/>
The user can turn on and off Inputs 1 - 2 for each drive and watch their status in the green lamps.<br/>
+
用户可以打开和关闭每个驱动器的输入1 - 2,并在绿灯中观察它们的状态。<br/>
The product sensor detection input can be turned on (Input3 of drive 1).<br/>
+
产品传感器检测输入可以打开(驱动1的Input3)。<br/>
The distance, delay time and velocity are displayed by graphic meters.
+
距离,延迟时间和速度由图形中的显示器显示。

Latest revision as of 07:42, 16 July 2017

语言: English  • 中文(简体)‎

任务是在产品的特定位置放置标签。
该应用有两个驱动器:一个用于通过传送带进给产品,另一个用于进给标签并将其放置在移动的产品上。
标记过程由位置检测传感器触发。
从产品的检测到开始移动标签,存在依赖于传送带的速度,传感器的位置和标签在产品上的位置的延迟。

Label Machine.PNG

两个轴以相同的速度移动到设定点。
从传感器距离和速度计算TON FB的延迟。 在放置标签完成之后,标签的驱动器再次停止,并等待下一个触发,而传送带连续移动。

主程序在softMC中初始化启动过程。
启动过程完成后,程序将设置'Done'变量和一个全局变量。
在设置'Done'变量后,调用'标签'。
该应用程序使用两个驱动器及其输出。

将设备描述文件(由Configurator创建)安装到设备存储库后,驱动器的地址将在Axis Pool中声明:

Label A1.PNG Label A2.PNG

在EtherCAT从站部分,我们可以找到每个设备的I/O映射。
在下图中,Input1,Input2,Input3,Input4,Input5,Input11,Output1,Output2,Output3,Output4和Output5被声明为新变量(也可以映射为现有变量):

Label CDHD I O.PNG

主程序使用'softMC_Startup'FB('mc_st'Instance)来初始化softMC中的启动过程。
上升沿检测将设置'Done'变量(也是全局变量),然后调用程序'Labeling':

Label main program FBD.PNG

Labeling POU - 声明部分


Labeling程序中的声明部分包含以下实例(如下图所示):

1.MC_POWER_01 -MC_Power FB的一个实例。
该功能块启用/禁用轴。
如果轴与实际驱动器相关联,则调用状态机以通过PDO启用/禁用驱动器。
如果轴被仿真,则调用MC-Basic子程序来启用/禁用轴。

2.MC_MoveVelocity_01 -MC_MoveVelocity FB的一个实例。
该功能块以指定的速度命令无停止的受控运动。

3. MC_halt_01 - 一个MC_halt FB的实例。
该功能块命令控制运动停止。 轴移动到状态“DiscreteMotion”,直到速度为零。使用‘Done’输出设置,状态将转移到‘Standstill’。

4. MC_MoveRelative_01 - MC_MoveRelative FB的一个实例。
该功能块在受控运动中执行相对于设定位置指定距离的命令。

5.labeling_timer -- “TON FB(开启延迟定时器)”的一个实例。


Label Axis declaration.PNG


Labeling POU - 实施部分

当标签POU被调用时,Output5打开。
两个驱动器的Input1将打开Output1(两个驱动器)。
当驱动器2的Output1(两个驱动器)都打开时,两个驱动器的Input2将会打开Output2。

如果Output1被触发,则MC_Power FB被启用(对于两个驱动器)。

Label Axis implementation FBD.PNG

如果驱动器2被使能并且驱动器1的Output2打开,则轴2将以恒定速度旋转。
驱动器1的Input3是产品传感器检测输入。
如果驱动器1的Input2打开,则在'timing'(PT)秒后开启驱动器1的Input3时,定时器将开始计数。
另外,延时的计算被插入到'delay_real'中,然后从“真实”单位转换为时间单位。
当定时器已经完成(Output2仍然开启且驱动器1仍然使能)时,轴1将以配置的“label_length”距离移动。

Label Axis implementation1 FBD.PNG

当在驱动器1或驱动器2的Input2中检测到下降沿时,触发一个布尔变量'stop_motors'。
如果驱动器被使能,那么当'stop_motors'为TRUE时,执行MC_halt FB。

Label Axis implementation2 FBD.PNG


可视化

程序由图形界面控制:

Label visualization.PNG

当softMC的启动过程完成后,蓝灯亮起。
用户可以打开和关闭每个驱动器的输入1 - 2,并在绿灯中观察它们的状态。
产品传感器检测输入可以打开(驱动1的Input3)。
距离,延迟时间和速度由图形中的显示器显示。