对于相机少、分类少的应用,空间的应用显得不够合理,是否可以将机台空间更合理地利用?另外流水线式的相机少的机构能否一控多呢?
XPCIE1028运动控制卡适合于多轴点位运动、插补运动、轨迹规划、手轮控制、编码器位置检测、I/O控制、位置锁存等功能的应用。
XPCIE1028视频介绍
1、新建MFC项目,在工具栏菜单“文件”→“新建”→“项目”,启动创建项目向导。
8、上述步骤完成且正确输入头文件的相关指令接口,编译通过,就可以进行筛选程序的开发应用。
1、操作说明
指令1 | int32 __stdcall ZAux_FastOpen(int type, char *pconnectstring, uint32 uims ,ZMC_HANDLE * phandle) | ||||||||
指令说明 | 与控制器建立连接, 可以指定连接的等待时间 | ||||||||
输入参数 |
| ||||||||
输出参数 |
| ||||||||
返回值 | 成功返回值为0,非0详见错误码说明 |
指令2 | int32 __stdcall PC_INT_CARD(ZMC_HANDLE ID_CON) |
指令说明 | 初始化筛选功能 |
参数说明 | ID_CON: 控制器的链接句柄 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令3 | int32 __stdcall PC_SAVE_PARAM(ZMC_HANDLE ID_CON, float * axis_Param,int vice) |
指令说明 | 转盘轴参数设置 |
参数说明 | 1、ID_CON :链接句柄 2、axis_Param :用数组来传递要设置的轴参数(依次为:轴类型->驱动器一圈脉冲数 (如果有减速机,就需要*减速比)->旋转行程或角度(360°)->速度->加速度->减速度->方向->编码器方向) 3、vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令4 | int32__stdcall PC_SET_CAM_NUM(ZMC_HANDLE ID_CON, int num,int vice) |
指令说明 | 设置相机触发路数 |
参数说明 | ID_CON :链接句柄 num:设置相机的触发路数 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令5 | int32 __stdcall PC_SET_OP_NUM(ZMC_HANDLE ID_CON, int num,int vice) |
指令说明 | 设置排料触发路数 |
参数说明 | ID_CON :链接句柄 num:设置排料的触发路数 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令6 | int32 __stdcall PC_SAVE_POS(ZMC_HANDLE ID_CON, int CAM_ID, float CAM_POS, int CAM_IO, float CAM_TIME, float CAM_REG,int vice) |
指令说明 | 配置相机触发参数 |
参数说明 | ID_CON :链接句柄 CAM_ID :相机工位号,从0开始,依次往下 CAM_POS :相机相对转盘原点的绝对位置 CAM_IO :触发此相机的IO口编号 CAM_TIME :触发时间(IO输出时间μs) CAM_REG :相机触发信号反馈输入口编号,默 认-1 为无 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令7 | int32 __stdcall PC_SAVE_POSNG(ZMC_HANDLE ID_CON, int OP_ID, float OP_POS, int OP_IO, float OP_TIME, int OP_IO_STATU, int OP_OUTPUT_FALG,int vice) |
指令说明 | 配置排料触发参数 |
参数说明 | ID_CON :链接句柄 OP_ID :排料工位号,从 0 开始,依次往下 OP_POS :排料相对转盘原点的绝对位置 OP_IO :触发此排料的 IO 口编号 OP_TIME :触发时间(IO 输出时间μs) OP_IO_STATU :输出口工作状态,0 - 关 1- 开 OP_OUTPUT_FALG :是否参与模拟排料,0 - 否 1-是 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令8 | int32 __stdcall PC_TCP_MODE(ZMC_HANDLE ID_CON, int TCP_NUM, int NUM_STAR,int vice); |
指令说明 | 设置网口通讯参数 |
参数说明 | ID_CON :链接句柄 TCP_NUM : MODBUS_4X 寄存器编号默认 0 NUM_STAR :MODBUS_4X 寄存器起始数值,一般设置 0 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令9 | int32 __stdcall PC_MODBUS_SET(ZMC_HANDLE ID_CON, int RESULT,int vice) |
指令说明 | 筛选结果下发控制器,仅限于走串口或 MODBUS_TCP 方式 |
参数说明 | ID_CON :链接句柄 RESULT :结果, 和设定的寄存器初始值有关系,如 MODBUS 寄存器为0,初始值是 8,那么第一个排料口对应的数值是8,第二个对应的9,以此类推。 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令10 | int32 __stdcall PC_SET_MODE(ZMC_HANDLE ID_CON, int mode,int vice) |
指令说明 | 设置视觉处理结果通讯方式 |
参数说明 | ID_CON :链接句柄 mode :通讯模式,0—IO, 1—串口 MODBUS_RTU, 2—网口 MODBUS_TCP, 无实际串口或网口通讯时,直接操作MODBUS 寄存器,选择串口或网口模式都可以 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令11 | int32 __stdcall PC_MODBUS_SET_MODELR(ZMC_HANDLE ID_CON, int Mode,int vice); |
指令说明 | 设置排料信息下发模式,仅限于走串口或 MODBUS_TCP 方式 |
参数说明 | ID_CON :链接句柄 Mode :模式 0 - PC_MODBUS_SET 1 - PC_MODBUS_SET2 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
指令12 | int32 __stdcall PC_CAM_RUN_TASK(ZMC_HANDLE ID_CON,int vice) |
指令说明 | 启动运行 |
参数说明 | ID_CON :链接句柄 vice:1为副盘,0为主盘 |
返回值 | 成功返回值为0,非0详见错误码说明 |
在上位机调用指令的方式下进行触发排料,能够实现在相机较多的情况下,实现快速的触发排料的IO动作,但有个注意的地方,如果排料指令(PC_MODBUS_SET)下发的速度较晚,料已经过了设定的排料位置,就会跳过本次排料,导致后面的料不能正常的触发对应的IO口进行排料。
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”,就可设置副盘的相关参数、开启停止副盘筛选的程序;副盘的排料与示例的主盘排料步骤一样。
在上位机调用PC_INT_CARD指令将筛选程序加载进控制卡后,在厂商提供的MotionRT7的驱动文件中,双击打开名称为“xplcterm”的文件,最后双击打开“xplcterm.exe”的可执行程序即可。
二、方法2
主盘的筛选参数设置与查看界面如下图所示。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
回顾往期内容
开奖啦!参与《运动控制系统应用与实践》赠书活动的粉丝们看这里
送书福利!全自主IDE的《运动控制系统应用与实践》
BissC绝对值编码器在EtherCAT运动控制器中的应用
SSI绝对值编码器在EtherCAT运动控制器中的应用
开放式激光振镜运动控制器在Ubuntu+Qt下自定义图形标刻
开放式激光振镜运动控制器在Ubuntu+Qt下CAD图形标刻
开放式激光振镜运动控制器在Ubuntu+Qt下的文本标刻
开放式激光振镜运动控制器在Ubuntu+Qt下的激光振镜校正
EtherCAT运动控制器上位机开发之Python+Qt(三):PDO配置与SDO读写
EtherCAT运动控制器上位机开发之Python+Qt(二):回零
EtherCAT运动控制器上位机开发之Python+Qt(一):链接与单轴运动
C#之Delta并联机械手的视觉相机标定与形状匹配
C#之Delta并联机械手正逆解的建立和手动运动
PCIe EtherCAT实时运动控制卡PCIE464的安装与调试
PCIe EtherCAT实时运动控制卡PCIE464的IO与编码器读写应用
PCIe EtherCAT实时运动控制卡的DXF图形的CAD导图与多条运动指令的快速加工
VPLC7机器视觉运动控制一体机在三轴SCARA机械手螺丝锁付的应用
VPLC系列机器视觉运动控制一体机在五轴联动点胶上的应用
基于VPLC7机器视觉运动控制一体机的UVW视觉对位解决方案
基于VPLC711的曲面外观检测XYR运动控制解决方案
基于VPLC532E开放式数控系统在五轴义齿机上的应用
机器视觉运动控制快组态软件RTFuse在XYZ三轴运动平台的应用方案
机器视觉运动控制一体机VPLC532E在汽车胶带缠绕的开放式CNC应用
机器视觉运动控制一体机在喇叭跟随点胶上的应用
机器视觉运动控制一体机在光伏汇流焊机器人系统的解决方案
机器视觉运动控制一体机在点胶胶路检测上的应用
机器视觉运动控制一体机在SCARA机械手柔性上下料的应用
开放式激光振镜运动控制器的视觉校正振镜精度解决方案
开放式激光振镜运动控制器的激光清洗应用
PCIE超高速实时运动控制卡在六面外观视觉检测上的应用
超高速PCIe EtherCAT运动控制卡在高速异形插件机上的应用
运动控制器多工位位置比较输出在转盘式视觉筛选设备中的应用
EtherCAT总线冗余让制造更安全更可靠更智能
机器视觉运动控制一体机结构体功能上线,助力客户高效开发
正运动携手EPLAN,以高效的电气设计助力运动控制的数字化设计
EtherCAT运动控制器在SCARA和码垛机械手中的应用
EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划
EtherCAT运动控制器在UVW对位平台中的应用
EtherCAT运动控制器Delta机械手应用
EtherCAT运动控制器的MATLAB开发
运动控制器/运动控制卡配套ZCAN总线ZIO模块的使用
运动控制卡/运动控制器的ZCAN总线ZMIO310扩展模块使用
EtherCAT运动控制器在ROS上的应用(下)
EtherCAT运动控制器在ROS上的应用(上)
皮带同步跟随:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十四)
自定义电子凸轮曲线的运动:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十三)
连续轨迹加工和速度前瞻:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十二)
PT/PVT运动模式介绍:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十一)
项目工程下载与XML配置文件下载:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十)
EtherCAT驱动器回零与控制器回零:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(九)
二维/三维的多轴PSO视觉飞拍与精准输出:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(八)
单轴PSO视觉飞拍与精准输出:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(七)
硬件位置比较输出和编码器锁存:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(六)
EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(五):通过RTSys进行调试与诊断
EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(四):板载IO与总线扩展IO的编码器与脉冲配置的应用
EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(三):EtherCAT总线CSP,CSV,CST模式切换
EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(二):EtherCAT总线初始化
EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(一):驱动安装与建立连接
全国产EtherCAT运动控制边缘控制器(六):RtBasic文件下载与连续轨迹加工的Python+Qt开发
全国产EtherCAT运动控制边缘控制器(五):IO配置与回零运动的Python+Qt开发
全国产EtherCAT运动控制边缘控制器(四):轴参数配置与单轴运动PC上位机C++控制
全国产EtherCAT运动控制边缘控制器(三):外设读写与RTSys开发诊断
全国产EtherCAT运动控制边缘控制器(二):统一的上位机API接口
全国产EtherCAT运动控制边缘控制器(一):ZMC432H硬件接口
简单易用的以太网数据采集卡应用开发之C#
高柔SS加减速曲线在锂电池焊接中的应用
EtherCAT和Ethernet的不同点有哪些, 通信周期又是什么意思?
工业以太网时代,该如何选择总线运动控制器?
正运动技术运动控制器如何快速实现单轴/多轴同步跟随功能?
EtherCAT运动控制器Delta机械手应用
EtherCAT运动控制器的MATLAB开发
EtherCAT运动控制器在数控加工手轮随动中的应用
EtherCAT运动控制器在数控加工手轮随动中的应用之C++
EtherCAT运动控制器在LabVIEW中的运动控制与实时数据采集
运动控制器PSO视觉飞拍与精准输出的C++开发(三):二维/三维/多轴PSO输出
运动控制器PSO视觉飞拍与精准输出的C++开发(一):单轴PSO
运动控制器八通道PSO的视觉飞拍与精准输出
Windows实时运动控制软核(七):LOCAL高速接口测试之Labview
Windows实时运动控制软核(六):LOCAL高速接口测试之Matlab
Windows实时运动控制软核(五):LOCAL高速接口测试之VC6.0
Windows实时运动控制软核(四):LOCAL高速接口测试之VB.NET
Windows实时运动控制软核(三):LOCAL高速接口测试之C++
Windows实时运动控制软核(二):LOCAL高速接口测试之Qt
Windows实时运动控制软核(一):LOCAL高速接口测试之C#
开放式激光振镜运动控制器:C++ 快速调用图形库应用
开放式激光振镜运动控制器:C++振镜矫正方法与实现
开放式激光振镜运动控制器:C++快速开发
开放式激光振镜运动控制器(五):ZMC408SCAN 光纤激光器的能量控制
开放式激光振镜运动控制器(四):ZMC408SCAN振镜控制光纤激光器加工
开放式激光振镜运动控制器(三):ZMC408SCAN轴控光纤激光器加工
开放式激光振镜运动控制器(二):ZMC408SCAN激光接口与控制
开放式激光振镜运动控制器(一):ZMC408SCAN接口与功能
运动控制器PSO位置同步输出(三):高精度等间距二维三维PSO输出
运动控制器PSO位置同步输出(一):硬件平台与PSO指令简介
经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏通讯
经济型EtherCAT运动控制器(三):PLC实现多轴直线插补与电子凸轮
经济型EtherCAT运动控制器(二):ZBasic实现多轴直线插补运动
运动控制+机器视觉Demo软件框架(三):视觉纠偏+连续插补的配方编辑
运动控制+机器视觉Demo软件框架(二):移动标定和形状匹配
开放式激光振镜+运动控制器(五):ZMC408SCAN控制器硬件介绍
开放式激光振镜+运动控制器(四):PSO位置同步输出在激光振镜加工中的应用
快速入门 | 篇十九:正运动技术运动控制器多轴同步与电子凸轮指令简介
快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门
快速入门 | 篇十四:运动控制器基础轴参数与基础运动控制指令
快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用
快速入门 | 篇八:如何进行运动控制器EtherCAT总线的基础使用?
快速入门 | 篇七:如何进行运动控制器ZCAN总线扩展模块的使用?
快速入门 | 篇五:如何进行运动控制器输入/输出IO的应用?
快速入门 | 篇二:如何进行运动控制器ZBasic程序开发?
EtherCAT与RTEX驱动器轴回零的配置与实现
EtherCAT运动控制卡开发教程之Qt(中):小线段连续轨迹加工、暂停与继续
EtherCAT运动控制卡开发教程之Qt(上):开发环境配置与简单运动控制应用
EtherCAT运动控制卡的PWM与模拟量输出和运动速度同步
EtherCAT运动控制卡的硬件接线与C#的硬件外设读写与回零运动
简单易用的运动控制卡(十四):PWM、模拟量输出与运动控制的同步
简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工
EtherCAT运动控制卡和LabVIEW构建智能装备(五)
EtherCAT运动控制卡和LabVIEW构建智能装备(四)
EtherCAT运动控制卡和LabVIEW构建智能装备(三)
EtherCAT运动控制卡和LabVIEW构建智能装备(二)
EtherCAT运动控制卡和LabVIEW构建智能装备(一)
关于正运动技术
经过众多合作伙伴多年的开发应用,正运动技术的产品广泛地应用于3C电子、半导体、新能源、机器人、包装印刷、纺织服装、激光加工、医疗制药、数控机床、传统加工等领域。