电子说
应用背景
随着市场对筛选需求的增长,“圆盘筛选机”这一个词更多地出现在了工控行业、电子行业等领域。目前市面上大多数的圆盘筛选机是一个工站的应用,即一个大圆盘完成一工位的筛选工作。
对于相机少、分类少的应用,空间的应用显得不够合理,是否可以将机台空间更合理地利用?另外流水线式的相机少的机构能否一控多呢?
正运动技术解决方案:
正运动针对现有市场需求,为此推广部署致力于机台空间的合理利用,将XPCIE1028控制卡对筛选应用进行了升级延伸,实现一卡双工位的控制(即双盘筛选),两个工位之间完全独立,测试的筛选工作效率达到1.2W+。
01 XPCIE1028控制卡介绍
XPCIE1028是正运动技术新推出的一款采用新型XPCIE总线接口的高速视觉筛选专用的运动控制卡,可控制多个步进电机或数字式伺服电机。
XPCIE1028运动控制卡适合于多轴点位运动、插补运动、轨迹规划、手轮控制、编码器位置检测、I/O控制、位置锁存等功能的应用。
XPCIE1028运动控制卡自带8路高速输入和多达16路高速硬件位置比较输出,能够轻松实现视觉飞拍和高速、精准触发控制等视觉筛选机所需的多种实时性运动控制,以及高稳定性。,时长
XPCIE1028视频介绍点击→【视觉筛选机专用卡】超高速PCle实时运动控制卡XPCIE1028 ,实现15000+pcs/分钟的IO触发检测速度!查看。
02 C++语言MFC进行筛选项目的开发
1、新建MFC项目,在工具栏菜单“文件”→“新建”→“项目”,启动创建项目向导。
2、点击下一步,修改项目名称及项目保存路径。
3、点击创建,选择类型为“基于对话框”,继续点击“下一步”,直至完成,项目创建成功。
4、根据厂商提供的库文件,将对应位数的zauxdll2.h、zauxdll.lib、zauxdll.dll、zmotion.dll、zmotion.lib、zmotion.h、zmc_xp.h、zmc_xp.lib以及zmc_xp.dll添加到项目文件夹内,并在项目中包含。
5、在项目添加筛选运动库及相关头文件。
6、在弹出来的窗口中依次添加筛选运动库和相关头文件。
7、在中添加头文件引用#include“zmotion.h”、#include “zauxdll2.h”和#include“zmc_xp.h”。
8、上述步骤完成且正确输入头文件的相关指令接口,编译通过,就可以进行筛选程序的开发应用。
03 筛选排料流程以及相关函数介绍
1、操作说明
通过上位机编写筛选程序时,首先用ZAux_FastOpen指令连接控制卡,再用PC_INT_CARD指令加载筛选程序,然后配置轴、相机、排料等参数,参数设置完成后,选择相机结果下发模式和通信模式,然后开始筛选程序的运行,当进料传感器感应到进料后,模拟相机处理的结果,将相机处理的结果下发给控制卡,当运动到对应的排料口的位置后,将会触发对应的OUT口进行排料。
2、指令说明
04 上位机调用指令方式下实现主盘排料例程
在上位机调用指令的方式下进行触发排料,能够实现在相机较多的情况下,实现快速的触发排料的IO动作,但有个注意的地方,如果排料指令(PC_MODBUS_SET)下发的速度较晚,料已经过了设定的排料位置,就会跳过本次排料,导致后面的料不能正常的触发对应的IO口进行排料。
1、连接控制卡及加载筛选程序
iret= ZAux_FastOpen(5, "LOCAL1", 1000, &c_value::g_handle); MessageBox("控制卡连接成功!"); int ret = PC_INT_CARD(c_value::g_handle); //初始化筛选功能 while (ret != 0) { ret = PC_INT_CARD(c_value::g_handle); //初始化筛选功能 }
2、设置相机、排料等参数及运行程序
int ret = 0; // 定义一个数组,来存放轴的参数设置(依次为轴类型- >脉冲当量- >旋转行程(360°)- >速度- >加速度- >减速度- >方向- >编码器方向(0为正方向,1为负方向)) float axis_param[10]{1,1000,360,50,1000,1000,0,0}; //设置主盘的轴参数 ret=PC_SAVE_PARAM(c_value::g_handle, axis_param,0); //设置主盘的两路相机 ret = PC_SET_CAM_NUM(c_value::g_handle,2,0); //设置主盘的3路排料 ret = PC_SET_OP_NUM(c_value::g_handle,3,0); //设置主盘的2路相机触发的参数 ret = PC_SAVE_POS(c_value::g_handle, 0, 100.2, 3, 1500, -1,0); ret = PC_SAVE_POS(c_value::g_handle, 1, 150.5, 4, 1500, -1,0); //设置主盘的3路排料触发的参数 ret = PC_SAVE_POSNG(c_value::g_handle,0,255.5,6,1500,1,0,0); ret = PC_SAVE_POSNG(c_value::g_handle, 1, 305.5, 7, 1500, 1, 0,0); ret = PC_SAVE_POSNG(c_value::g_handle, 2, 345.5, 8, 1500, 1, 0,0); //设置主盘的网口的通讯参数为0号寄存器,起始值为0(0代表第一个排料口(NG),1代表第二个排料口(OK),2代表第三个排料口(RETEST)) ret = PC_TCP_MODE(c_value::g_handle,0,0,0); //设置主盘的视觉处理结果通讯方式为modbus_tcp ret = PC_SET_MODE(c_value::g_handle, 2,0); //运行筛选主盘程序 ret=PC_CAM_RUN_TASK(c_value::g_handle,0); while (ret != 0) { ret = PC_CAM_RUN_TASK(c_value::g_handle,0); } MessageBox("开始运行!"); Check1_Shake.SetCheck(TRUE); c_value::G_run_test = 1; //开启排料线程进行排料下发指令 CWinThread* blowTest = AfxBeginThread(blow_test,this);
3、排料线程
//排料线程 UINT CMFCApplication1Dlg::blow_test(LPVOID p) { int cam_num = 0; //中间值,存放上一次的相机触发计数来与本次的作比较 int cam_tempnum = 0; while (c_value::G_run_test != 0) { //读取指定编号的相机执行次数 PC_READ_CURCAM_RUN(c_value::g_handle, 1, cam_num); if (cam_num > cam_tempnum) { //模拟相机处理的结果为ok,指定ok料仓进行排料 PC_MODBUS_SET(c_value::g_handle,1,0); cam_tempnum++; } } return 0; }
如果需要使用副盘,在调用上位机接口中的最后面参数(即:vice)写“1”,就可设置副盘的相关参数、开启停止副盘筛选的程序;副盘的排料与示例的主盘排料步骤一样。
05 筛选调试工具的使用
一、方法1
在上位机调用PC_INT_CARD指令将筛选程序加载进控制卡后,在厂商提供的MotionRT7的驱动文件中,双击打开名称为“xplcterm”的文件,最后双击打开“xplcterm.exe”的可执行程序即可。
二、方法2
1.上位机调用PC_INT_CARD指令将筛选程序加载进控制卡后,打开RTSys软件上,连接控制卡。
2.在“工具”里,点击“插件”的“XPlc Screen”。
主盘的筛选参数设置与查看界面如下图所示。
3.筛选调试软件开启副盘的界面:点击“开启副盘”,再点击“副盘设置”的按钮就可以打开副盘的调试界面。
副盘的筛选参数设置与查看界面如下图所示。
4.示例程序运行时,主盘一段时间的进料、相机执行、排料执行等次数。
本次,正运动技术PCIe实时运动控制卡的双盘视觉筛选机上位机开发应用,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业。正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。主要业务有:运动控制卡_运动控制器_EtherCAT运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位_XPCIe/XPCI系列运动控制卡等等。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !