面向对象实现气缸吹气类的PLC逻辑

机器中会用到很多气缸、真空、吹气等部件,一个个定义管理会显得代码冗余,可以通过抽取这些部件的共性,从而建立一个功能块统一实现这些操作,达到统一化、便利化的目的。

  1. 软硬件版本
    1.1. 倍福Beckhoff
    1.1.1. 控制器硬件
    TwinCAT控制制器,PC或者EPC,包括:
    嵌入式控制器:CX5020-0125(IMG版本:CX1800-0411-0007 v3.92)
    工控机:C6xxx、CP2xxx、CP6xxx等

1.1.2. 控制软件
笔记本和控制器都是基于TwinCAT 2版本
2. 准备工作
2.1. 络接线
通过路由器进行局域 连接,控制器 线连在路由器,调试PC也接入局域 ,实现PC和控制器之间的通信。
2.2. 设置控制器和PC的地址
设置原则是,将倍福控制器(PLC)的IP地址和编程笔记本设置到同一 段,例如:控制器ip地址为:192.168.1.18,本地调试PC的IP地址为:192.168.1.30

    其好处就是代码书写的简洁直观,能够重复调用,拓展性强。
    3.3. FB_Actuator功能块逻辑的书写
    在创建完结构体和全局变量后,需要编写功能块的逻辑,根据真空、气缸、吹气的元件特点,可以归结为:工作位信 触发—》到达工作位、基本位信 触发—》到达基本位,因此可以共用一个FB功能块。
    3.3.1. VAR_INPUT输入变量
    功能块的输入变量,是对功能块内部逻辑中相关输入变量的绑定,完整的输入变量定义如下所示:

    3.3.3. VAR功能块内部使用的变量
    在功能块逻辑中,需要使用一些计时、上升沿、下降沿等变量,因此定义了功能块内部使用的变量,完整的变量声明如下所示:

    3.4.2. 超时 警逻辑书写
    超时 警,即原件在接收到指令后开始计时,在规定时间内还没到位,则超时 警,实现的逻辑如下:

    3.4.3. FB_AppAlarmSetLogic功能块讲解
    FB_AppAlarmSetLogic即为 警显示的功能块,其实现如下。fbAlmMoveTimeout是FB_AppAlarmSetLogic的实例调用。

    3.4.4. 功能块的状态输出
    子程序M_Status为功能块状态输出的书写,即达到某个信 后,输出到达信 ,并且对一些变量进行计时,完整的定义如下:

    简而言之就是dowork为执行,iswork为到达
    3.4.5. 运动计时

    3.4.6. 功能块调用
    在写好FB功能块之后,即可进行调用,如下所示

    这个功能块是控制真空的,所以就一个感应器信 输入和一个信 输出。同理,吹气、气缸的也可这样定义

    3.5. 程序步骤中调用
    3.5.1. 自动程序调用
    在自动流程中对Rq进行置ture或者false

    3.5.2. 手动程序调用
    触摸屏的信 ,转化为bool变量进行输入。

    文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树类和接口类和面向对象93529 人正在系统学习中

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月10日
下一篇 2021年8月10日

相关推荐