Qt环境下基于研控MCN420电子伺服压力机控制系统开发与应用
【摘要】电子伺服压力机因其高精度、高响应的优势逐渐取代传统的液压、伺服液压等设备而被广泛应用于电机轴承、汽车零部件、3C等行业产品装配以及产品铆压成型。相对传统的PLC方案,研控MCN420运动控制器针对装配行业的应用增加了位置全闭环控制和压力全闭环控制,有效的提高了伺服压力机整体的位置精度和压力精度,减少因机器变形和产品毛坯尺寸造成的产品不良率。高速的数据采集功能给产品分析提供了更为精确的筛选数据,从而能更有效的分析产品特性,提高产品工艺要求。此系统提供了界面逻辑编程,用户可根据实际工艺需求,配合本地IO接口或者扩展IO模块与外部设备进行信号交互。
【关键词】研控、MCN420运动控制器、伺服压力机控制系统、装配
0 引言
随着工业4.0的发展,目前国内市场在装配、铆压成型等应用上对产品的精度以及数据采集、分析存储功能需求的不断提升。传统的伺服液压,以及基于PLC的电子伺服压力机控制方案在很大程度上已经满足不了。国外电子伺服压力机如:德国的Kistler、Promess,日本的Janome、DDK,韩国的C&M等都先后推出了与电缸一体的电子伺服压力机系统方案,但在消除机器变形,以及数据分析上并未做更深的研究,对于客户要求定制化的曲线分析功能,以及复杂的外设逻辑处理灵活性也不够强。
伺服压力机控制系统是整个压力机的核心。系统基于Qt+研控MCN420控制器,在Windows系统上通过总线通讯调用MCN420的运动函数动态库,实现了数据采集、运动逻辑可编程、以及强大的曲线数据分析,和定制化的质量检测等功能。
1 系统硬件方案
系统的硬件如图1:主要包括:工业平板电脑、运动控制器、伺服驱动器、电机、电缸、光栅尺、压力传感器、扩展IO模块。MCN420与伺服驱动器的连接,对驱动器输入模拟信号,通过光栅尺或者压力传感器的反馈实现位置闭环控制,重复精度为0.01mm或者压力闭环控制,重复精度小于等于±1%。位置重复精度过大由于机器在承载受力情况下的机身背板变形引起,位置控制来源光栅尺可以减小机器变形带来的误差。在铆压成型工艺中对于毛坯尺寸不一的产品,高精度的压力闭环模式能解决因尺寸不一样带来的压力过冲问题。
2 运动控制
2.1 系统框架设计
系统是整个压力机的控制核心,主要功能如图2,包含运动逻辑程序编写及编译,曲线显示、质量检测、过程数据存储和分析以及IO监测、文件管理等功能。实现了用户在Ui界面运动逻辑、IO逻辑可编程。利用底层高速的数据采集,可针对特殊材料的特性进行准确分析和精准的质量判定。增加了除普通点检测功能外的窗口判定、拐点判定,以及其他特殊点的判定方式。通过Posgresql数据库存储的大量数据,初步实现生产数据的统计以及查询范围内的趋势显示等功能。
2.2 运动程序设计
控制系统的运动控制模块主要包含了程序命令的编写、语法检测、转换。为了减少程序编写的错误,在UI界面采用类似的MOVEP,MOVEL,MOVEF等指令。在软件设计时,利用虚函数的多态性将接口与实现分离,用一个CMotionControl的类包含所有基本的运动控制的函数,然后创建一个继承于该类的 CYanKoMotion类实现具体的运动控制,然后在CYanKoMotion类中实现轴的各种控制模式的运动以及运动状态的获取。代码如下:
class CMotionControl : public QObject
{
Q_OBJECT
public:
CMotionControl(AllData *allData);//初始化
public:
AllData *data;
virtual TMotionStatus AxisMotion(TTeachFile tTeachFile,int iProg) = 0;//轴运动模块
virtual void MotionMonitor() =0;//所有运动状态监控
virtual void MotionStop() = 0;//运动停止
virtual void StartMotionRun(int iProg ,bool bStart) = 0;//运动开始
virtual void MotionStatus() = 0;//运动状态
virtual TMotionStatus DeviceIOManage(TTeachFile tTeachFile,int iProg) = 0;//设备IO监控
…….
};
在程序完成编辑,语法检测无误后,将所有程序指令中包含数据进行转换。运动程序启动循环到相应的行号时传入AxisMotion()中,通过运动函数写入控制器并启动运动。在MotionMonitor()中监控IO变化状态或者用于其他逻辑判断变量的变化。一个基本的压装程序可以做如下编写:MOVEP X100.00 Vel= 100;//快进MOVEP X120.00 Vel=20;//探测MOVEF X50.00 Vel= 10;//压装MOVEP X10.00 Vel= 100;//回退
2.3 数据分析及质量检测
2.3.1 数据分析
对存储的数据进行分析提取材料特性,从而设置合理的检测参数,结合外部的其他检测设备组成生产、检测一体的全自动化流水线是将来伺服压力机发展的主要趋势。目前在系统中对终止压力、终止位置、接触位置、最大压力、合格率、生产计数进行了统计。如下生产统计图,数据分析图之数据统计分析。
从存储在数据库中的数据可以对任意10条曲线进行分析对比,如下曲线对比图。
2.3.2 质量分析 压力机目前常用的检测方法有点检测、区域检测、窗口检测。基本能满足大部分的产品检测需求。在针对部分汽车零部件产品要求找到应力突变点,或者更为精确的接触产品表面位置等,通过这些特性来判定产品是否合格。控制器底层将接触表面位置锁存,锁存周期误差在1ms以内。通过1ms采集周期的数据在应用层经过算法计算找到力突变的拐点,如拐点查询示意图,图中加粗的点为计算拐点。
3 结束语 本文研究了在Qt平台上基于IPC + 研控MCN420运动控制器在电子伺服压力机上的应用。通过上位机系统的操作实现了压力机主轴的基本工艺运动动作、曲线分析、数据存储、质量检测等功能。通过在汽车零部件、电机等行业的实际工业现场应用,证明位置重复精度和压力重复精度、产品检测合格率等指标能满足大部分的客户需求。
Qt环境下基于研控MCN420电子伺服压力机控制系统开发与应用相关推荐
- 科学计算机撤销,云计算环境下基于属性的撤销方案-计算机科学.PDF
云计算环境下基于属性的撤销方案-计算机科学.PDF 第 卷 第 期 计 算 机 科 学 45 8 Vol.45No.8 年 月 2018 8 COMPUTER SCIENCE Au.2018 g 云计 ...
- VC6环境下使用图形控件NTGraph的方法和步骤
VC6环境下使用图形控件NTGraph的方法和步骤 源出处:http://www.codeproject.com/KB/miscctrl/ntgraph_activex.aspx 先看看NTGraph ...
- 【应用笔记】【AN004】VB环境下基于RS-485的4-20mA电流采集
版本:第一版作者:周新稳 杨帅 日期:20160226 =========================== 本资料高清PDF 下载: http://pan.baidu.com/s/1c1uuhLQ ...
- C++:Windows环境下基于Eclipse配置C/C++开发环境
C++:Windows环境下基于Eclipse配置C/C++开发环境 目录 Windows下的MinGW下载.安装和配置 1.MinGW下载 2.MinGW安装与配置 3.基于Eclipse配置 Wi ...
- PaddleOCR——Docker环境下基于HubServing模式部署Restful API服务(CPU版本)
Docker环境下基于HubServing模式部署Restful API服务(CPU版本) 在日常项目应用中,相信大家一般都会希望能通过Docker技术,把PaddleOCR服务打包成一个镜像,以便在 ...
- matlab 图像矢量量化,MATLAB环境下基于矢量量化的说话人识别系统(1)
第21卷第6期湖 北 工 业 大 学 学 报2006年12月 Vol.21No.6 Journal of Hubei Univer sity of Technology Dec.2006 [收稿日期] ...
- 电热耦合_作者特稿︱电网运行环境下基于电热耦合潮流的架空线路应力预估
导语 架空导线的力学状态(应力.弧垂)是决定其安全运行的关键因素,耐张段水平应力过小将导致耐张段内各线档弧垂增大,严重时会破坏安全净距引发短路故障:反之,应力过大则会导致导线振动频率的增加和疲劳极限的 ...
- Linux环境下基于策略的路由
Linux环境下基于策略的路由 原文作者:Matthew G. Marsh 原文出处:[url]http://www.sysadminmag.com/linux/articles/v09/i01/a3 ...
- 【VUE】vue在vue-cli3环境下基于axios解决跨域问题
[VUE]vue在vue-cli3环境下基于axios解决跨域问题 参考文章: (1)[VUE]vue在vue-cli3环境下基于axios解决跨域问题 (2)https://www.cnblogs. ...
最新文章
- FD_CLOEXEC用法及原因_转
- 【Paper】2011_Distributed fault detection for interconnected second-order systems
- git fetch和git pull的区别_Git实战(实验楼)学习笔记 实验2 基本用法(下)
- 06.动态SQL和foreach
- 惊恐的市场洗牌网游市场诞生危机论
- 提高 Linux 开发效率的 5 个工具
- 用c#算成绩的总和_用c#编写输出成绩的总分和平均分
- 【Git/Github学习笔记】Github的使用介绍
- linux下解包bin二进制文件_Linux系统bin文件打包方法
- 南方cass计算表面积_CASS在工程中的应用“计算表面积”的方法
- Canvas 自由落体
- [听风]TBC单体插件数据统计Recount
- 三年之期已至,加多宝如何续写上市新故事
- html图片背景属性,css 背景(background)属性、背景图定位
- 【专题】经典DP问题(上)
- 如何编写测试用例?(详细分析)
- 2022研究生学术与职业素养讲座(MOOC)期末答案
- 深度学习真的working吗
- web应用存在的10大安全问题,安全测试不容忽视!
- 2017百度之星作死记
热门文章
- 傻瓜式php环境套装,BitNami 傻瓜式开源软件安装套件
- 向日葵远程控制软件 屏幕比例问题
- Elastic学习方法论
- 绘制一个具备基本功能的计算机模型原理图,数字信号处理仿真实验二
- 【超详细】计算机操作系统总结(汤子瀛版)
- Auto.js脚本程序打包
- 实验记录 | mutect问题详解:No tribble type was provided on the command line and the type of the file?
- 【英语语法入门】 第06讲 反身代词
- [Matlab]IIR滤波器参数
- 应用概率统计(陈魁)第八章部分课后答案