前面的文章介绍了S7-Graph语言的顺控器和动作,这篇文章我们用Graph语言来编写一个简单应用。
假设有一个全自动砂轮切割机,它的任务是当工件固定好以后对其进行切割。根据控制要求,将工艺过程分为如下一些步骤:
S1 【初始步骤】
↓ (转换条件T1=开机)
S2 【切割机就绪】
↓(转换条件T2=按下启动按钮)
S3 【工件夹紧】
↓(转换条件T3=接近开关S1触发延时)
S4 【开始切割】
↓(转换条件T4=接近开关S3触发延时)
S5 【切割完成】
↓(转换条件T5=接近开关S4触发延时)
S6【工件松开】
↓(转换条件T6=接近开关S2触发延时)
跳转到S2
说明:
接近开关S1用于检测工件夹紧是否到位,为了防止抖动,做延时处理;
接近开关S2用于检测工件松开是否到位,为了防止抖动,做延时处理;
切割机在切割过程会上下移动。上方为基本位置,用接近开关S4检测。下方为工作位置,到位后用接近开关S3检测。为了防止信号抖动,均做延时处理;
在博途中新建项目,使用CPU 1515-2PN为控制器。在程序中添加全局数据块dbX1。为了便于模拟,在数据块中添加控制所需要的点位,如下图所示:
新建Graph语言函数块seqControl1,顺控器总览如下图所示:
顺控器中各步的跳转条件及动作如下图所示:
其中:
步3(夹紧)激活后会启动定时器timerClamp,时间2秒。T3跳转条件中该定时器时间到达后,才会跳到步4(切割);
为了防止抖动,所有接近开关的信号均进行延时处理(示例未给出具体延时代码,需自行编写);
在主程序中调用seqControl1如下图所示:
通过手动更改跳转条件的值,可以模拟流程运行。比如,下面的图片显示顺控器处于工件夹紧的步骤:
这是一个Graph语言的简单示例,还有一些不完善的地方,比如没有错误处理。将在后续的例程介绍中逐步完善。