第三周总结

1.学习使用禾川hcsstuido软件,尝试连接禾川伺服读取参数

主y
上x

上z
主a


上z设置 2的二十三次方转一圈 实际仍然是失效原因


2.学习使用专业游标卡尺

  • 黄色ORIGIN=设置绝对机械原点,不是普通清零。
    之前没有把卡尺测爪完全合拢的状态下,按过ORIGIN,机器就把那个错误位置记成零点。
    现在测爪真正闭合后,相对于错误原点,就跑出负数。
  • ABS/O 相对 / 绝对模式切换
    蓝色旁边绿色按键ABS/O:切换【绝对原点 ABS】和【相对置零 O 模式】
    ABS 模式:读取机械原点(ORIGIN 记录的零点)
    O 模式:临时相对清零,按这个可以临时归零,但关机就丢失。

3.法兰距(工业相机法兰距,也叫法兰后焦)

定义:相机镜头安装法兰平面,到传感器芯片感光面的距离。单位毫米。
镜头拧上去之后,镜头的基准面贴住相机法兰面,光线走过这段距离,正好聚焦打在芯片上。
法兰距错一点点,整张图直接虚焦、模糊。


  • M58 相机 → C 口镜头
    同样需要专用 M58 转 C 接环,补偿后焦。

4.修改了雷赛例程

  • 切换轴功能失效
    • 原因:程序启动时(Form1_Load)只对初始轴号执行过一次使能,
      直接切换轴号后,新轴从未被使能,状态机将停留在"停止状态"(红)
    • 解决:为nud控件 添加事件nud_AxisId_ValueChanged
 private void nud_AxisId_ValueChanged(object sender, EventArgs e)
 {
     ushort usNewAxis = GetAxis();                 // 切换后的新轴号
     if (usNewAxis == _lastAxis)
     {
         return;                                   // 轴号未变化,无需处理
     }

     // 1. 失能旧轴(释放旧轴的使能信号)
     LTDMC.nmc_set_axis_disable(usCardId, _lastAxis);

     // 2. 使能新轴
     short sRtn = LTDMC.nmc_set_axis_enable(usCardId, usNewAxis);
     if (sRtn == 0)
     {
         AppendMessage(string.Format("[轴切换] 已切换到轴{0}并使能成功,请确认状态机变为\"操作使能状态\"", usNewAxis));
     }
     else
     {
         AppendMessage(string.Format("[轴切换] 轴{0}使能失败,返回码:{1}(请检查总线状态/轴从站配置)", usNewAxis, sRtn));
     }

     _lastAxis = usNewAxis;                        // 3. 更新记录的上一次轴号
 }
  • 实现正向/反向运动 到达指定位置变速功能
 private void MonitorThreadFunc()
 {
     while (_monitorRunning)
     {
         try
         {
             // 已变速过则跳过,等待下一次运动(btn_Start_Click 会复位该标志)后再判断
             if (!_hasChangedSpeed)
             {
                 // 跨线程安全读取控件值
                 ushort usAxis = (ushort)GetNumericValue(nud_AxisId);   // 轴号
                 double dTargetPos = GetNumericValue(numericUpDown1);    // 变速触发位置(numericUpDown1 设定值)

                 double dCmdPos = 0;
                 LTDMC.dmc_get_position_unit(usCardId, usAxis, ref dCmdPos);  // 读取当前指令位置

                 double dCurrentVel = 0;
                 LTDMC.dmc_read_current_speed_unit(usCardId, usAxis, ref dCurrentVel); // 读取当前速度(判断方向)

                 // 判断是否到达设定位置:
                 // 正向运动(速度>0):位置递增,到达条件为 当前>=设定
                 // 反向运动(速度<0):位置递减,到达条件为 当前<=设定
                 // 轴静止(速度=0):不做判断,避免误触发
                 bool bArrived = false;
                 if (dCurrentVel > 0)
                 {
                     bArrived = dCmdPos >= dTargetPos;
                 }
                 else if (dCurrentVel < 0)
                 {
                     bArrived = dCmdPos <= dTargetPos;
                 }

                 if (bArrived)
                 {
                     _hasChangedSpeed = true;   // 先置位,防止 dmc_change_speed_unit 被重复调用

                     double dNewVel = GetNumericValue(nud_NewVel);     // 变速后的新速度
                     double dTaccDec = GetNumericValue(nud_TaccDec);   // 变速时间
                     // 执行在线变速(与按钮 btn_ChangeVel_Click 中的调用完全一致)
                     LTDMC.dmc_change_speed_unit(usCardId, usAxis, dNewVel, dTaccDec);

                     // 可选:把变速信息记录到右侧信息框(仅作运行反馈/调试用,不需要可删除)
                     AppendMessage(string.Format("[自动变速] 位置 {0:0.###} 到达设定位置 {1:0.###},速度已变更为 {2:0.###} unit/s",
                         dCmdPos, dTargetPos, dNewVel));
                 }
             }
             Thread.Sleep(10);   // 监控周期 10ms(100Hz),如需降低占用可调大
         }
         catch (Exception ex)
         {
             // 线程内捕获异常,避免线程崩溃;记录信息并短暂停顿防止空转
             AppendMessage("[监控线程异常] " + ex.Message);
             Thread.Sleep(100);
         }
     }
 }

5.飞拍相机最小帧率计算

  • V= 物体运动速度 mm/s
  • FOV = 相机视场宽度(运动方向上的视野,mm)
  • FPS min = 最低需要帧率
  • FPS min= V/FOV
    想要画面不丢目标、不会物体跑出视野才拍下一张,每秒拍摄数量必须大于等于
    V/FOV
  • 举例子:
    输送带速度 200 mm/s
    运动方向视野 FOV=100mm
    FPS min=200/100=2 FPS
    相机帧率必须>2FPS,比如选用 5FPS、10FPS 才能留有裕量。

6.通过物方精度和运动速度确定曝光时间

7.复习选型逻辑

工业视觉相机镜头全套选型逻辑

  • 确定最小缺陷
  • 最小缺陷至少占2个像素,确定最大物方精度
    • 50 ÷ 2 = 25μm/pixel
    • 物方精度大于25 则50un缺陷占不满2个像素,会导致漏检
  • 工作距离WD、放大倍率、景深DOF,出厂固定,只能选型
  • 相机像元尺寸 = 物方精度 × 镜头倍率
    光学倍率 = 芯片成像尺寸 ÷ 工件实际尺寸
    通过物方精度和镜头倍率 确定相机像元尺寸
  • 通过相机和帧率,确定带宽选型

8.复习canopen 与ethercat协议比较

9雷赛板卡高速比较功能

PSO 位置比较

10连续等间距飞拍

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容