基于面向对象的思想实现NC轴控制

简单的轴控制是,直接实例化MC功能块,然后绑定变量实现轴的NC控制,但是轴变量多起来就不好管理。本文介绍一个通过建立结构体和功能块规范化NC控制的案例。

目 录

  1. 软硬件版本 3
    1.1. 倍福Beckhoff 3
    1.1.1. 控制器硬件 3
    1.1.2. 控制软件 3
  2. 准备工作 3
    2.1. 网络接线 3
    2.2. 设置PC和PLC的IP地址 3
    2.3. 硬件扫描和NC轴创建 3
  3. 操作步骤 4
    3.1. 导入库文件 4
    3.2. 创建轴控的结构体 4
    3.2.1. ST_TcAxisItf结构体 4
    3.2.2. ST_TcAxisItfCfg结构体 5
    3.2.3. ST_TcAxisItfCmd结构体 5
    3.2.4. ST_TcAxisItfState结构体 5
    3.3. 创建轴控制功能块FB_AxisPTPItf 6
    3.3.1. 变量声明 6
    3.3.2. 程序实现 7
    3.4. 全局变量的添加 9
    3.5. 轴参数赋值 9
    3.5.1. 变量绑定 9
    3.5.2. NC操作实现 9
    3.6. NC参数和PLC链接 10

  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
2.3. 硬件扫描和NC轴创建
在TwinCAT System Manager中,扫描硬件,并创建NC轴。如下所示
在这里插入图片描述

  1. 操作步骤
    3.1. 导入库文件
    需要导入库文件TCMC2.lib,如下所示
    在这里插入图片描述

3.2. 创建轴控的结构体
3.2.1. ST_TcAxisltf结构体
ST_TcAxisltf结构体,用于定义轴的AxisName,配置参数Cfg,动作指令Cmd,轴的状态State的集合体,实现如下
在这里插入图片描述

3.2.2. ST_TcAxisltfCfg结构体
定义了轴的相关参数变量,如轴号、位置、速度等,结构体实现如下
在这里插入图片描述

3.2.3. ST_TcAxisltfCmd结构体
该结构体,定义了轴相关操作的变量,如使能、点动、定位启动等,如下所示。
在这里插入图片描述

3.2.4. ST_TcAxisltfState结构体
该结构体定义了轴的一些状态变量,如限位、轴报错、轴运动状态等,具体结构体实现如下所示。
在这里插入图片描述

3.3. 创建轴控制功能块FB_AxisPTPItf
设计的思想是,创建一个关于MC控制操作的功能块,然后具体实现是通过实例化该功能块进行赋值操作。
3.3.1. 变量声明
轴相关的输入,输出变量通过结构体ST_TcAxisItf定义,然后再定义相关状态的输出变量,如下所示。
在这里插入图片描述

3.3.2. 程序实现
通过引用结构体变量,能够统一变量的命名规范,也使得逻辑更加清晰,如轴使能的编写如下
在这里插入图片描述

同理可以写jog和定位启动的功能块,如下
在这里插入图片描述

其好处就是代码书写的简洁直观,能够重复调用,拓展性强。
3.4. 全局变量的添加
在创建完FB_AxisPTPItf功能块后,还需要实例化调用才能进行轴的控制,因为在多个ST文件中都可能调用轴控制,因此,将其定义为全局变量,同时为每个轴定义一个ST_TcAxisltf结构体变量,如下所示:
在这里插入图片描述

此外,还可以对不同的轴起一个常量,这样在调用时候就不用数字,而用变量名称,更加清晰明了,如下所示
在这里插入图片描述

3.5. 轴参数的赋值
3.5.1. 变量绑定
在定义完全局变量后,即产生了一个MC功能的数组,为了把FB_AxisPTPItf,ST_TcAxisltf和特定的轴联系起来,需要进行赋值操作,如下所示
在这里插入图片描述

由全局变量可知ISX=1,ISF=2,因此相当于实例了两个轴的参数,后面有关轴的操作都可以用fbAxisPTPItf[ISX]进行操作。
3.5.2. NC操作实现
在变量绑定完成后,即可进行一系列NC轴控制了,其优点是,不需要额外管理输入输出变量,所有的轴的变量命名一致,调用只是某个轴号做改动,如下所示,为ISX轴和ISF轴的JOG操作
在这里插入图片描述

相应的,走定位控制也是通过多级调用实现,如下所示
在这里插入图片描述

3.6. NC参数和PLC链接
在写好PLC侧的程序后,还需要将NC轴和PLC变量进行连接,从而实现PLC的相关操作能在NC体现,链接如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光怪陆离的节日

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值