Project Example: Main Motion (Structure Text)/zh-hans

From SoftMC-Wiki
Jump to: navigation, search
语言: English  • 中文(简体)‎

任务的目的是使用运动功能块,如MC_MoveRelative,MC_MoveVelocity和mc_halt。
主程序在softMC中初始化启动过程。
完成启动过程后,将设置一个全局变量,并调用程序'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'Instance)来初始化softMC中的启动过程。
上升沿检测将设置'Done'变量(也是一个全局变量),然后调用程序'Axis1'和'Axis2':

Motion main program ST.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”,直到速度为零。使用“完成”输出设置,状态将转移到“停止”。

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

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


Motion Axis1 declaration ST.PNG


Axis POU - 实现部分

注意:程序“Axis1”和“Axis2”类似。
当调用POU时,Output5打开。
Input1,Input2,Input3和Input4分别连接到Output1,Output2,Output3和Output4。

如果Output1被触发,则MC_Power FB被使能。

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

'jog1_ftrig'和'jog2_ftrig'是F_TRIG FB的实例,它们分别为Input2和Input3设置下降沿检测。
当在Input2或Input3中检测到下降沿时,触发一个布尔变量'stop_jog'。
如果轴已启用且“stop_jog”为TRUE,则执行MC_halt FB。

如果Input2和Input3未打开,Input4为ON,则执行MC_MoveRelative。

如果Input11为ON,则执行MC_Reset。

Motion Axis1 implementation ST.PNG


可视化

程序由图形界面控制:

Motion visualization ST.PNG

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