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

From SoftMC-Wiki
Jump to: navigation, search
(Created page with "{{Languages}} The task's purpose is to use motion Function Blocks such as MC_MoveRelative, MC_MoveVelocity and mc_halt. <br/> The main program initializes a startup process i...")
 
 
Line 1: Line 1:
{{Languages}}
+
{{Languages|Project_Example:_Main_Motion_(Function_Block_Diagram)}}
The task's purpose is to use motion Function Blocks such as MC_MoveRelative, MC_MoveVelocity and mc_halt. <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, programs 'Axis1' and 'Axis2' are called. <br/>
+
设置'Done'变量后,调用'Axis1''Axis2'<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:Motion A1.PNG|border|600px]]          [[File:Motion A2.PNG|border|600px]]
 
[[File:Motion A1.PNG|border|600px]]          [[File:Motion A2.PNG|border|600px]]
Line 13: Line 13:
 
<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:Motion CDHD I_O.PNG|border|600px]]
 
[[File:Motion CDHD I_O.PNG|border|600px]]
Line 20: Line 20:
 
<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'实例)来初始化softMC中的启动过程。<br/>
A rising edge detection will set the 'Done' variable (and also a global variable) and then call programs 'Axis1' and 'Axis2':
+
当进程完成后,全局变量将被设置为TRUE。 之后,调用'Axis1''Axis2'程序:
  
 
[[File:Motion main program FBD.PNG|border|450px]]
 
[[File:Motion main program FBD.PNG|border|450px]]
Line 27: Line 27:
 
<br/>
 
<br/>
  
==Axis POU - Declaration Section==
+
==轴POU - 声明部分==
 
<br/>
 
<br/>
The declaration section in the Axis programs contains the following instances (as shown in the next picture):<br/>
+
Axis程序中的声明部分包含以下实例(如下图所示):<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. '''mc_reset_01 -''' an instance of MC_Reset FB.<br/>
+
5.'''mc_reset_01 -'''MC_Reset FB的一个实例。<br/>
This Function Block makes the transition from the state ‘ErrorStop’ to ‘Standstill’ or ‘Disabled’ by resetting all internal axis-related errors. It does not affect the output of the FB instances.<br/>
+
该功能块通过复位所有内部轴相关的错误,从状态'ErrorStop'转换到'Standstill'或'Disabled'。 它不影响FB实例的输出。<br/>
 +
 
 
<br/>
 
<br/>
 
<br/>
 
<br/>
Line 52: Line 53:
  
  
==Axis POU - Implementation Section==
+
==Axis POU - 实现部分==
Note: Programs 'Axis1' and 'Axis2' are similar.<br/>
+
注意:程序“Axis1”和“Axis2”类似。<br/>
Output5 is turned on when POU is called.<br/>
+
当调用POU时,Output5打开。<br/>
Input1, Input2, Input3 and Input4 are attached to Output1, Output2, Output3 and Output4 respectively.<br/>
+
Input1,Input2,Input3和Input4分别连接到Output1,Output2,Output3和Output4。<br/>
If Output1 is triggered, the MC_Power FB is enabled. <br/>
+
如果Output1被触发,则MC_Power FB被使能。 <br/>
 
<br/>
 
<br/>
 
[[File:Motion Axis1 implementation FBD.PNG|border|400px]]
 
[[File:Motion Axis1 implementation FBD.PNG|border|400px]]
 
<br/>
 
<br/>
  
If Axis is enabled, Input4 is not on, MC_MoveRelative_01.Busy has a False value and a rising edge is detected in Input2, then MC_MoveVelocity FB is executed with a positive direction.<br/>
+
如果轴使能,则Input4不亮,MC_MoveRelative_01.Busy具有False值,并且在Input2中检测到上升沿,则MC_MoveVelocity FB以正方向执行。<br/>
 
+
如果轴使能,则Input4不亮,MC_MoveRelative_01.Busy具有False值,并在Input3中检测到上升沿,则MC_MoveVelocity FB以负方向执行。<br/>
If Axis is enabled, Input4 is not on, MC_MoveRelative_01.Busy has a False value and a rising edge is detected in Input3, then MC_MoveVelocity FB is executed with a negative direction.<br/>
 
 
<br/>
 
<br/>
 
[[File:Motion Axis1 implementation1 FBD.PNG|border|600px]]
 
[[File:Motion Axis1 implementation1 FBD.PNG|border|600px]]
 
<br/>
 
<br/>
  
When a falling edge is detected in Input2 or Input3, then a boolean variable 'stop_jog" is  triggered. <br/>
+
当在Input2或Input3中检测到下降沿时,触发一个布尔变量'stop_jog'。<br/>
If axis is enabled and 'stop_jog' is TRUE, the MC_halt FB is executed.<br/>
+
如果轴已启用且“stop_jog”为TRUE,则执行MC_halt FB。<br/>
If Input2 and Input3 are not on, Input 4 is on, then MC_MoveRelative is executed.<br/>
+
如果Input2和Input3未打开,则Input4为ON,则执行MC_MoveRelative。<br/>
If Input11 is on, then MC_Reset is executed.<br/>  
+
如果Input11为ON,则执行MC_Reset。<br/>
 
<br/>
 
<br/>
 
[[File:Motion Axis1 implementation2 FBD.PNG|border|550px]]
 
[[File:Motion Axis1 implementation2 FBD.PNG|border|550px]]
Line 79: Line 79:
  
  
==Visualization==
+
==可视化==
  
The program is controlled by a graphic interface:
+
程序由图形界面控制:
 
<br/>
 
<br/>
  
Line 87: Line 87:
 
<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 - 4 for each drive and watch their status in the green lamps.
+
用户可以打开和关闭每个驱动器的输入1 - 4,并在绿色指示灯中观察它们的状态。

Latest revision as of 05:16, 16 July 2017

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

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

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

Motion A1.PNG Motion A2.PNG

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

Motion CDHD I O.PNG

主程序使用'softMC_Startup'FB('mc_st'实例)来初始化softMC中的启动过程。
当进程完成后,全局变量将被设置为TRUE。 之后,调用'Axis1'和'Axis2'程序:

Motion main program FBD.PNG

轴POU - 声明部分


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

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.mc_reset_01 -MC_Reset FB的一个实例。
该功能块通过复位所有内部轴相关的错误,从状态'ErrorStop'转换到'Standstill'或'Disabled'。 它不影响FB实例的输出。



Motion Axis1 declaration.PNG


Axis POU - 实现部分

注意:程序“Axis1”和“Axis2”类似。
当调用POU时,Output5打开。
Input1,Input2,Input3和Input4分别连接到Output1,Output2,Output3和Output4。
如果Output1被触发,则MC_Power FB被使能。

Motion Axis1 implementation FBD.PNG

如果轴使能,则Input4不亮,MC_MoveRelative_01.Busy具有False值,并且在Input2中检测到上升沿,则MC_MoveVelocity FB以正方向执行。
如果轴使能,则Input4不亮,MC_MoveRelative_01.Busy具有False值,并在Input3中检测到上升沿,则MC_MoveVelocity FB以负方向执行。

Motion Axis1 implementation1 FBD.PNG

当在Input2或Input3中检测到下降沿时,触发一个布尔变量'stop_jog'。
如果轴已启用且“stop_jog”为TRUE,则执行MC_halt FB。
如果Input2和Input3未打开,则Input4为ON,则执行MC_MoveRelative。
如果Input11为ON,则执行MC_Reset。

Motion Axis1 implementation2 FBD.PNG


可视化

程序由图形界面控制:

Motion visualization.PNG

当softMC的启动过程完成后,蓝灯亮起。
用户可以打开和关闭每个驱动器的输入1 - 4,并在绿色指示灯中观察它们的状态。