1.CPK(制程能力指数)用于衡量生产过程的稳定性和能力,评估产品规格的一致性。
2.CPK的值是根据具体的产品规格、生产过程数据以及统计分析得出。
3.CPK的值越高,表示制程能力越强,产品规格的一致性越好。
CPK与不良率(PPM 百万分之一 即每百万件产品中的不良品数)的对照关系
CPK 值 | 不良率(PPM) |
---|---|
0.67 | 非常高 |
1.00 | 较高 |
1.33 | 中等 |
1.67 | 较低 |
2.00 | 非常低 |
当CPK值达到1.33或更高时,通常认为制程能力良好,不良率相对较低
具体的CPK值根据产品特性、客户需求和行业标准而异。
关键参数
- $USL$(Upper Specification Limit):规格上限,即产品规格允许的最大值。
- $LSL$(Lower Specification Limit):规格下限,即产品规格允许的最小值。
- $\mu$(Mean):制程数据的平均值
- $\sigma$(Sigma):制程数据的标准差
- “\frac{}{}”是数学中表示分数的一种标准方式。具体来说,“\frac{a}{b}”表示a除以b的分数形 式, 其中a是分子,b是分母
-
计算与规格上限的偏差公式: [ \frac{USL - \mu}{3*sigma} = [规格上限 减去 平均值] 除以[3乘 标准差]
-
计算与规格下限的偏差公式: [ \frac{\mu - LSL}{3*sigma} = [平均值 减去 规格上限] 除以[3乘 标准差]
案例
某家汽车制造厂商生产汽车发动机缸套,其长度规格要求为98-102毫米(即LSL=98毫米,USL=102毫米)。估该生产过程的稳定性和能力,厂商从生产线上随机抽取了20个发动机缸套样本进行测量,并计算了样本的平均值和标准偏差。
测量数据
- 样本数量:20个
- 样本平均值(μ):99.5毫米
- 样本标准偏差(σ):0.5毫米
-
计算与规格上限的偏差: \frac{102 - 99.5}{3*0.5} = \frac{2.5}{1.5} = 1.67
-
计算与规格下限的偏差: \frac{99.5 - 98}{3*0.5} = \frac{1.5}{1.5} = 1.00
取两者中的最小值作为CPK: 1.00
MiniTab软件 计算CPK
1.打开minitab,把测试获得的数据复制到minitab软件内,数据放在同一列中 填入(尺寸)
数据越多越能真实反映加工能力的水平
2. 计算CPK
(1)找到并点击“选择统计”菜单栏,在其下找到“质量工具”选项,并依次选择能力分析、正态选项
填入 对用数据列 和USL 和LSL
cpk 0.26 说明 产品 不良率高 需要改进生产过程的稳定性和能力
扩展:mintab计算数据标准差和平均值
3.根据上图标准差和平均数计算 USL 和LSL
-
计算与规格上限的偏差USL:[规格上限 减去 平均值] 除以[3乘 标准差]
-
计算与规格下限的偏差LSL: [规格下限 减去 平均值] 除以[3乘 标准差]
MiniTab软件 计算GRR
打开minitab软件,分别录入3组数据:
①10个零部件的编号
②3个操作员名字/编号
③每次测量数据,注意数据一定要录入正确
4.扩展 如果有多行数据 可以通过(在“数据”菜单下的下拉列表中,选择“堆叠”——“列”选项)把数据合并
依次打开统计→质量工具→量具研究→量具R&R研究(交叉)
在部件号位置选择“部件”;
操作员位置选择“操作员”;
测量数据位置选择“测量”,
分析方法勾选“方差分析”
点击“量具信息”,在对话框中录入相关量具信息,研究时间等,点击“确定”回到上一对话框。
GRR结果图
标准差的大小反映了测量结果的稳定性,标准差越大,说明数据点与平均值的偏离程度越大,即数据的离散程度越高;反之,标准差越小,说明数据点越接近平均值,数据的离散程度越低
CogCalibNPointToNPointTool N点校正工具
作用:
计算将图像坐标映射到世界坐标的二维转换
一组点为像素坐标点,另一组点是的物理坐标点(机械手坐标)
此工具用这两组点计算一个最佳的2D转换,并将此2D转换保存工具中,在此工具运行的时候将此2D转换添加到输入图像的坐标空间树中,并输出校正后的图像。
九点标定
九点标定是机器视觉中一种引导类项目常用的标定方法,用于建立相机和机械手之间的坐标变换关系。
过程:
1.相机检测到目标在图像中的像素位置后,
通过标定好的坐标将相机的像素坐标变换到机械手的空间坐标系中,
然后根据机械手坐标系计算出各个电机该如何运动,从而控制机械手到达指定位置
案例
模板匹配 加载九张坐标图 用于确定9个像素坐标
依次获取9个点的坐标
打开N点标定工具 填入9个像素坐标
填入机械手对应坐标 (测试阶段 可以填入相应比例的值 以第一个像素坐标为参考 (267.51,170.67 对应 (0,0) 后续根据变化添加等比例值)
点击计算校正
RMS误差越小 证明校正越准确
注意 :工作距离发生变化 要重新标定
3.计算机器人的旋转中心
机器人抓取工件分别旋转三个角度摆放到相机视野内,相机可以得到三个坐标值,通过三个坐标值拟合
园获得圆心坐标即为旋转中心
4.相机通过公式计算得出最终的输出结果
(rx0,ry0)为旋转中心,(x, y)为被旋转的点,(x0,y0)旋转后的点
x0= cos (a)*(x-rx0)-sin(a)*(y-ry0)+rx0
yO= cos (a)*(y-ry0)+ sin (a)*(x-rx0)+ry0
https://wenku.baidu.com/view/8077e8c59889680203d8ce2f0066f5335b816741.html?_wkts_=1723780094285&bdQuery=%E6%9C%BA%E5%99%A8%E4%BA%BA%E4%B8%8E%E8%A7%86%E8%A7%89%E6%A0%87%E5%AE%9A%E7%90%86%E8%AE%BA%E8%AF%A6%E8%A7%A3
扩展:
补偿
是指机器视觉技术来检测和纠正执行任务过程中产生的误差或偏差,
误差来源
相机镜头畸变、图像处理算法精度、机械结构误差等
补偿的方法
畸变校正
畸变校正通常是在相机标定后进行的,利用标定过程中得到的畸变系数对图像进行校正
机械结构误差
机械结构优化设计
图像处理算法精度
优化算法参数、改进算法结构、引入新的算法等方法,可以提高图像处理的速度和精度
西门子S7通信协议解析
1.西门子集团专为旗下S7系列PLC设备(可编程逻辑控制器)定制的一种通信协议,
2.支持串口和网口通信,网口通信为主 支持 TCP/IP、UDP/IPD等传输层协议
3.用于与其他设备之间的通信,如PC、变频器、传感器等
4.实现数据的读取、写入、传输和处理等功能
5. S7通信 可以选择的开源或商业库,包括s7.net、pronodave、libnodave、sharp7
使用s7netplus 完成S7通信
1.安装nuget包(s7netplus)
2.安装完成后 出现S7.net 安装成功 可以使用
3.基本使用步骤:
(1) 引用命名控件和初始化PLC对象
(2)连接plc
(3)写数据
(4)读数据
(4)断开连接
案例1:
封装PLC功能
public class SiemensPLC
{
public Plc plc = null;
CpuType plcType;
string ip;
short rack;
short slot;
// CpuType: PLC的cpu型号。实验室plc型号是1200/1212C。
// IP: PLC的IP地址。
// rack: 机台号的位置,PLC的知识点。 每个PLC设备或机架提供了一个唯一的标识。识别和管理各个设备
// slot: 插槽号的位置,PLC的知识点 代表一个特定的位置,用于插入相应的模块
// (如I/O模块、通信模块、电源模块等)。通过插槽号,可以快速地识别每个模块在PLC中的位置。
public SiemensPLC(CpuType type, string ip, short rack, short slot)
{
this.plcType = type;
this.ip = ip;
this.rack = rack;
this.slot = slot;
try
{
// 初始化PLC对象
plc = new Plc(plcType, ip, rack, slot);
}
catch (Exception ex)
{
}
}/// <summary>
/// 连接Plc
/// </summary>
public string ConnectPlc()
{
string res = string.Empty;
try
{
plc.Open();//连接plc
res = "ConnectOK";
}
catch (Exception ex)
{
res = $"ConnectFail {ex.Message}";
}
return res;
}
/// <summary>
/// 判断PLC是否已连接
/// </summary>
/// <returns></returns>
public bool PlcIsConn()
{
return plc != null && plc.IsConnected;
}
/// <summary>
/// 向PLC写入数据
/// </summary>
/// <param name="add">地址</param>
/// <param name="value">数据</param>
public void Write(string add, object value)
{
plc.Write(add, value);
}
/// <summary>
/// 读取某个地址的内容
/// </summary>
/// <param name="add">地址</param>
/// <returns></returns>
public object Read(string add)
{
return plc.Read(add);
}
/// <summary>
/// 断开连接
/// </summary>
public void DisconnectPlc()
{
plc.Close();
}
//初始PLC对象
完成通信功能
visonPro 简单机械臂引导流程:
实操 抓取物体-拍照-放置
1,先配置程序拍照,pma1,确定中心位置
2,查看定位坐标,查看控制器上当前位置
3,根据控制器上首次的位置,计算相同位移量的9点坐标(位移量5mm合适)
4,依次填入9点坐标,运行程序,记录pma1的剩余8个点的坐标
5,pma1的9个坐标代表未标定位置 单位像素,控制器上的9个坐标代表已标定的位置 单位mm,填入NPoint工具中,运行,误差需<3
6,先恢复到拍照位,记录pma2的中心点。旋转任意度(如15度),再次记录pma2中心点。再旋转不同度数(如-15度),第三次记录pma2中心点。三点确定一个圆。这个圆的圆心就是旋转中心。
7,把得到的圆心坐标,更新到ini配置文件最后两个参数中。insp工具显示的基准xy和角,更新到ini文件的beseXYA,保存。再覆盖保存vpp,退出
8,操控控制器,移动到放料位,保存xyzr四个坐标到控制器上的放料位
9,操机移动到拍照位,运行软件vpp,调整每一个工具,4条边求一个中心点位。
10,把得到的基准坐标填入insp工具的输入对应框里。并更新ini配置文件
11,基本数据调节完成。重启控制器,复位
12,开始运行控制器,确定好取料位,并更新到控制器。
13,一步一步点击,第一次拍照,角度或者xy位置偏差,程序设置的有补偿,第二次拍照就是补偿后的图片。
14,拍完照,去放料位,有时会不动,可以点击按钮旁边的正方形按钮逐步复位(除了第三步不能复位,后续步骤都可以复位)