西门子1200PLC最多支持4路高速脉冲输出,可以控制四个步进或伺服电机,如果每个轴都调用一次运动控制值,编程工作量就会成倍的增加。那么有没有通用的程序可以一劳永逸呢,今天就介绍一下西门子1200PLC位置控制的通用程序,编写一个函数就可以实现多个轴的控制。
一、 编写运动控制函数
1. 添加函数块。双击“添加新块”、点击“函数块”、输入名称、编程语言LAD、“确定”;
图 1 新建函数块
2. 双击“位置控制”函数块,定义输入/输出变量;
图 2 定义输入输出变量
3. 添加运动控制指令。“指令”、“工艺”、“运动控制”、拖动MC_Power指令到编程区域,分配多重背景数据块,点击“确定”;
图 3 添加MC_Power指令
4. MC_Power分配变量;
图 4 MC_Power
5. 同样的方法添加MC_Reset确认故障指令;
图 5 MC_Reset
6. 添加MC_Home回原点指令;
图 6 MC_Home
7. 添加MC_Halt停止轴指令;
图 7 MC_Halt
8. 添加MC_MoveAbsolute绝对运动定位指令;
图 8 MC_MoveAbsolute_
9. 添加MC_MoveRelative相对运动定位指令;
图 9 MC_MoveRelative
10. 添加MC_Jog点动指令;
图 10 MC_Jog
11. 读取轴当前位置和当前运行速度;
图 11 读取当前位置和速度
二、主程序调用函数块
1. 双击“Main”,打开主程序,拖动“位置控制”到主程序编辑区,分配背景数据块,点击“确定”,完成函数块FB1的调用;
图 12 调用函数块
2. 分配控制命令和状态变量;
图 13 分配变量
三、 点动控制
1. 下载程序到PLC中,打开监控表,输入监控变量;
图 14 监控表
2. “正向点动”赋值1,旋转料库开始正向运行,“当前位置”开始累加,“当前速度”逐渐增大到设置的点动速度,“正向点动”清零即停止,“当前速度”降为零;
图 15 正向点动
3. “负向点动”赋值1,旋转料库开始负向运行,“当前位置”开始负累加,“当前速度”值逐渐增大到设置的点动速度,符号代表方向,“负向点动”清零即停止,“当前速度”降为零;
图 16 负向点动
四、 回原点
1. “回原点”赋值1,回原点模式为0(把当前位置设置为绝对零点),“当前位置”变为零,“回原点完成”有效,表示回零完成;
图 17 回原点
2. “回原点”清零,“回原点完成”清零,不影响绝对零点位置;
五、 相对运动控制
1. “相对运动距离”和“相对运动速度”赋值,注意速度的范围(在启停速度和最大速度之间),运动距离的符号代表方向;
图 18 设置相对运动参数
2. “相对运动触发”赋值1,上升沿触发指令执行,旋转料库按照设置的速度运动设置的距离“相对运动完成”有效时停止;
图 19 相对运动1
3. “相对运动触发”清零,重复以上步骤,每次都运动设定的距离;
图 20 相对运动2
六、绝对运动控制
1. 绝对运动控制之前先执行回原点,确定绝对零点位置;
2. “绝对运动目标位置”和“绝对运动速度”赋值,注意速度的范围(在启停速度和最大速度之间);
图 21 设置绝对运动参数
3. “绝对运动触发”赋值1,上升沿触发指令,旋转料库安装设置的速度运动到目标位置,“绝对运动完成”有效时停止,当前位置等于目标位置;
图 22 绝对运动1
4. 修改目标位置的值,重复以上步骤;
图 23 绝对运动2
通过以上步骤,创建一个通用的运动控制函数,在运动控制程序中调用此函数,分配对应的各轴相关的变量,就可以实现一劳永逸,大幅减少编程工作量。
领取专属 10元无门槛券
私享最新 技术干货