Difference between revisions of "Project Example: Label Machine (Ladder Diagram)/zh-hans"
(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_(Ladder_Diagram)}} |
− | + | 任务是在产品的特定位置放置标签。<br/> | |
− | + | 该应用有两个驱动器:一个用于通过传送带进给产品,另一个用于进给标签并将其放置在移动的产品上。<br/> | |
− | + | 标记过程由位置检测传感器触发。<br/> | |
− | + | 从产品的检测到开始移动标签,存在依赖于传送带的速度,传感器的位置和标签在产品上的位置的延迟。 | |
<br/> | <br/> | ||
<br/> | <br/> | ||
Line 9: | Line 9: | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
− | + | 两个轴以相同的速度移动到设定点。<br/> | |
− | + | 从传感器距离和速度计算TON FB的延迟。 在放置标签完成之后,标签的驱动器再次停止,并等待下一个触发,而传送带连续移动。 | |
<br/> | <br/> | ||
<br/> | <br/> | ||
− | + | 主程序在softMC中初始化启动过程。<br/> | |
− | + | 启动过程完成后,程序将设置'Done'变量和一个全局变量。<br/> | |
− | + | 在设置'Done'变量后,调用'标签'。<br/> | |
− | + | 该应用程序使用两个驱动器及其输出。<br/> | |
+ | |||
<br/> | <br/> | ||
− | + | 将设备描述文件(由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 27: | ||
<br/> | <br/> | ||
− | + | 在EtherCAT从站部分,我们可以找到每个设备的I/O映射。<br/> | |
− | + | 在下图中,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 34: | ||
<br/> | <br/> | ||
− | + | 主程序使用'softMC_Startup'FB('mc_st'Instance)来初始化softMC中的启动过程。<br/> | |
− | + | 上升沿检测将设置'Done'变量(也是全局变量),然后调用程序'Labeling': | |
[[File:Label main program LD.PNG|border|500px]] | [[File:Label main program LD.PNG|border|500px]] | ||
Line 40: | Line 41: | ||
<br/> | <br/> | ||
− | ==Labeling POU - | + | ==Labeling POU - 声明部分== |
<br/> | <br/> | ||
− | + | Labeling程序中的声明部分包含以下实例(如下图所示):<br/> | |
<br/> | <br/> | ||
− | 1. '''MC_POWER_01 -''' | + | 1.'''MC_POWER_01 -'''MC_Power FB的一个实例。<br/> |
− | + | 该功能块启用/禁用轴。<br/> | |
− | + | 如果轴与实际驱动器相关联,则调用状态机以通过PDO启用/禁用驱动器。<br/> | |
− | + | 如果轴被仿真,则调用MC-Basic子程序来启用/禁用轴。<br/> | |
<br/> | <br/> | ||
− | 2. '''MC_MoveVelocity_01 -''' | + | 2.'''MC_MoveVelocity_01 -'''MC_MoveVelocity FB的一个实例。<br/> |
− | + | 该功能块以指定的速度命令无停止的受控运动。<br/> | |
<br/> | <br/> | ||
− | 3. '''MC_halt_01 -''' | + | 3. '''MC_halt_01 -''' 一个MC_halt FB的实例。<br/> |
− | + | 该功能块命令控制运动停止。 轴移动到状态“DiscreteMotion”,直到速度为零。使用‘Done’输出设置,状态将转移到‘Standstill’。<br/> | |
<br/> | <br/> | ||
− | 4. '''MC_MoveRelative_01 -''' | + | 4. '''MC_MoveRelative_01 -''' MC_MoveRelative FB的一个实例。<br/> |
− | + | 该功能块在受控运动中执行相对于设定位置指定距离的命令。<br/> | |
<br/> | <br/> | ||
− | 5. '''labeling_timer -''' | + | 5.'''labeling_timer -'''- “TON FB(开启延迟定时器)”的一个实例。 |
− | |||
<br/> | <br/> | ||
[[File:Label Axis declaration.PNG|border|1300px]] | [[File:Label Axis declaration.PNG|border|1300px]] | ||
− | ==Labeling POU - | + | ==Labeling POU - 实施部分== |
− | + | 当标签POU被调用时,Output5打开。<br/> | |
− | + | 两个驱动器的Input1将打开Output1(两个驱动器)。<br/> | |
− | + | 当驱动器2的Output1(两个驱动器)都打开时,两个驱动器的Input2将会打开Output2。 | |
<br/> | <br/> | ||
− | + | 如果Output1被触发,则MC_Power FB被启用(对于两个驱动器)。 <br/> | |
<br/> | <br/> | ||
[[File:Label Axis implementation LD.PNG|border|700px]] | [[File:Label Axis implementation LD.PNG|border|700px]] | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
− | + | 如果驱动器2被使能并且驱动器1的Output2打开,则轴2将以恒定速度转动。<br/> | |
− | + | 驱动器1的Input3是产品传感器检测输入。<br/> | |
− | + | 如果驱动器1的Input2打开,则在'timing'(PT)秒后开启驱动器1的Input3时,定时器将开始计数。<br/> | |
− | + | 另外,延时的计算被插入到'delay_real'中,然后从'真实'单位转换为时间单位。<br/> | |
− | + | 当定时器已经完成(Output2仍然开启且驱动器1仍然使能)时,轴1将以配置的“label_length”距离移动。<br/> | |
<br/> | <br/> | ||
[[File:Label Axis implementation1 LD.PNG|border|600px]] | [[File:Label Axis implementation1 LD.PNG|border|600px]] | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
− | + | 当在驱动器1或驱动器2的Input2中检测到下降沿时,触发一个布尔变量'stop_motors'。<br/> | |
− | + | 如果驱动器被使能,那么当'stop_motors'为TRUE时,执行MC_halt FB。<br/> | |
<br/> | <br/> | ||
[[File:Label Axis implementation2 LD.PNG|border|700px]] | [[File:Label Axis implementation2 LD.PNG|border|700px]] | ||
Line 92: | Line 92: | ||
− | == | + | ==可视化== |
− | + | 程序由图形界面控制: | |
<br/> | <br/> | ||
Line 100: | Line 100: | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
− | + | 当softMC的启动过程完成后,蓝灯亮起。<br/> | |
− | + | 用户可以打开和关闭每个驱动器的输入1 - 2,并在绿灯中观察它们的状态。<br/> | |
− | + | 产品传感器检测输入可以打开(驱动1的Input3)。<br/> | |
− | + | 距离,延迟时间和速度由图形中的显示器显示。 |
Latest revision as of 05:53, 16 July 2017
语言: | English • 中文(简体) |
---|
任务是在产品的特定位置放置标签。
该应用有两个驱动器:一个用于通过传送带进给产品,另一个用于进给标签并将其放置在移动的产品上。
标记过程由位置检测传感器触发。
从产品的检测到开始移动标签,存在依赖于传送带的速度,传感器的位置和标签在产品上的位置的延迟。
两个轴以相同的速度移动到设定点。
从传感器距离和速度计算TON FB的延迟。 在放置标签完成之后,标签的驱动器再次停止,并等待下一个触发,而传送带连续移动。
主程序在softMC中初始化启动过程。
启动过程完成后,程序将设置'Done'变量和一个全局变量。
在设置'Done'变量后,调用'标签'。
该应用程序使用两个驱动器及其输出。
将设备描述文件(由Configurator创建)安装到设备存储库后,驱动器的地址将在Axis Pool中声明:
在EtherCAT从站部分,我们可以找到每个设备的I/O映射。
在下图中,Input1,Input2,Input3,Input4,Input5,Input11,Output1,Output2,Output3,Output4和Output5被声明为新变量(也可以映射为现有变量):
主程序使用'softMC_Startup'FB('mc_st'Instance)来初始化softMC中的启动过程。
上升沿检测将设置'Done'变量(也是全局变量),然后调用程序'Labeling':
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(开启延迟定时器)”的一个实例。
Labeling POU - 实施部分
当标签POU被调用时,Output5打开。
两个驱动器的Input1将打开Output1(两个驱动器)。
当驱动器2的Output1(两个驱动器)都打开时,两个驱动器的Input2将会打开Output2。
如果Output1被触发,则MC_Power FB被启用(对于两个驱动器)。
如果驱动器2被使能并且驱动器1的Output2打开,则轴2将以恒定速度转动。
驱动器1的Input3是产品传感器检测输入。
如果驱动器1的Input2打开,则在'timing'(PT)秒后开启驱动器1的Input3时,定时器将开始计数。
另外,延时的计算被插入到'delay_real'中,然后从'真实'单位转换为时间单位。
当定时器已经完成(Output2仍然开启且驱动器1仍然使能)时,轴1将以配置的“label_length”距离移动。
当在驱动器1或驱动器2的Input2中检测到下降沿时,触发一个布尔变量'stop_motors'。
如果驱动器被使能,那么当'stop_motors'为TRUE时,执行MC_halt FB。
可视化
程序由图形界面控制:
当softMC的启动过程完成后,蓝灯亮起。
用户可以打开和关闭每个驱动器的输入1 - 2,并在绿灯中观察它们的状态。
产品传感器检测输入可以打开(驱动1的Input3)。
距离,延迟时间和速度由图形中的显示器显示。