[西门子] S7-1200PLC运动控制案例:三轴设备画正方形程序设计

[复制链接]
查看80 | 回复0 | 2024-4-26 08:32:29 | 显示全部楼层 |阅读模式
在这个案例中,主要让大家学习1200PLC的运动控制功能,我们借助这个三轴设备(如图1所示)实现长宽为50mm的正方形的绘制。




在HMI上(如图2所示)可以手动实现轴使能、手动X轴正负方向运行;手动Y轴正负方向运行;手动Z轴正负方向运行、示教基准位置点等。自动时,按下“启动”按钮即自动绘制长宽为50mm的正方形。

      
图1
图2
1
程序设计思路
                                

1)可以设置一个基准点(如图3),然后依次算出其他的位置点。

2)使用绝对定位指令,到达相关位置点。
图3
2
程序设计
                                 
1)创建工艺对象:创建X轴的工艺对象(如图4至图10所示)。Y轴和Z轴的工艺对象类似,在此不赘述。
图4
图5
图6
图7
图8
图9
图10
2)因为我们设备上有X、Y、Z三轴轴,每个轴都有位置值,所以可以建立 “UDT数据类型”,用于存储三个轴的位置值。UDT的数据类型名称为“Pos”,如图11及图12所示.

         图12                                                  图11

3)手动控制程序(FC1),如图13至16所示,主要实现的功能是轴使能,三个轴的点动控制、三个轴的回原点、三个轴的故障复位等。
图13
图14
图15
图16
4)位置计算(FC2),要计算zheng方形的4个位置点,可以使用SCL语言编写。当“"inst_Pos".HMI_SetBase”的值(来源于HMI上的按钮)为1时计算4个位置点。如图17及18所示,
图17
图18
计算出来的位置值存储在数组变量中,如图19所示。四个点的坐标值对应图3的四个位置值。
图19
3)主程序
①程序段1主要是调用手动控制程序。并且如何按下了HMI上的“"inst_Pos".HMI_Start”这个按钮之后把状态步MW36设置为1。

②“"inst_Pos".HMI_SetBase”为触摸屏上设置基准点按钮,当按下这个按钮则可以设置1个基准点,依次基准点画一个正方形。由于计算出来的位置值的第3个点和第4个位置点是相反的,所以地址中的值做个交换。"inst_Pos".Pos[1]给到"inst_Pos".FinalPos[1],"inst_Pos".Pos[2]给到"inst_Pos".FinalPos[2],"inst_Pos".Pos[3]给到"inst_Pos".FinalPos[4],"inst_Pos".Pos[4]给到"inst_Pos".FinalPos[3],起始点和结束点是同一个点,所以"inst_Pos".Pos[1]给到"inst_Pos".FinalPos[5]。其中"inst_Pos".FinalPos变量如图20

图20
③调用位置计算程序

④轴的当前位置

⑤状态步判断,然后到达不同的位置









免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则