Cognex康耐视相机操作使用说明书_第1页
Cognex康耐视相机操作使用说明书_第2页
Cognex康耐视相机操作使用说明书_第3页
Cognex康耐视相机操作使用说明书_第4页
Cognex康耐视相机操作使用说明书_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

康耐视相机操作使用说明书康耐视相机操作使用说明书 文档密级 不保密 内部 机密 项目名称 版本号1 0 描述康耐视相机操作使用说明书 编写人余国鹰编写日期2015 9 10 文件状态 草稿 修改 定稿 审核人审核日期 目录目录 一 一 康耐视相机具体设置康耐视相机具体设置 3 1 1软件安装 错误错误 未定义书签 未定义书签 1 2流程编辑 3 1 3CODESYS通信注意事项 6 二 二 相机标定相机标定 7 2 1相机校准 7 2 2绝对坐标实现 9 2 3相对坐标实现 10 三 三 示教器示例程序示教器示例程序 11 3 1绝对坐标实现范例 11 3 2相对坐标实现范例 11 四 四 CODESYS 逻辑开发逻辑开发 13 4 1SOCKET通信开发 13 4 2外部点数据处理 14 五 五 细节说明细节说明 17 一 一 康耐视相机具体设置康耐视相机具体设置 1 1 软件安装 双击康耐视相机软件 Cognex In Sight Software 4 8 1 按照步骤一步步安装即可 1 2 流程编辑 1 设置电脑本地连接 IPV4 地址为 192 168 39 12 设置为 39 段即可 2 双击康耐视 In Sight 浏览器软件进入相机设置界面 软件会自动搜索连接的相机设备 如 下图 1 1 所示 图 1 1 3 双击相机设备 红色椭圆内设备图标 进入相机编辑界面 如下图 1 2 所示 图 1 2 4 在应用程序步骤中 开始 设置工具 配置结果 完成这 4 个步骤形成一个完整的相机操 作流程 开始 单击 开始 中 已连接 如下图 1 3 所示 可以进行连接设备 断开设备 刷新 添加等操作 图 1 3 单击 开始 中的 设置图像 如下图 1 4 所示 在 采集 加载图像 对话框中 触发器 按钮是进行拍照 实况视频 按钮是实时显示相 机中的图像 从 PC 加载图像 按钮是加载一张存在的图像 图 1 4 在 编辑采集设置 对话框中 设置一系列相机参数 根据具体需要进行调节 设置工具 单击 设置工具 中 定位部件 按钮 对检测模型进行定位 作为识别的 模型进行对比 单击 设置工具 中 检测部件 按钮 对模型进行编辑操作 在 定位部件 的设置对话框中 如下图 1 5 所示 合格阀值 每次拍照之后的得分如 果大于阀值 则拍照成功 否则失败 旋转公差 检测部件能够旋转的角度范围 如果 在范围之类则会拍照成功 否则会失败 图 1 5 配置结果 单击 配置结果 中 通信 按钮 进行通讯设置操作 如下图 1 6 所示 新时达机器人视觉通信采用的 TCP IP 通讯方式 单击 TCP IP 如下图 1 7 所示 在 TCP IP 设置 对话框中 服务器主机名 设为 192 168 39 220 机器人控制器 IP 地 址 端口 设置与 CodeSys 中相同 本例中设为 9876 超时时间 设为 15000 结 束符 设为字符串 CR13 单击 格式化输出字符串 进行输出操作 如下图 1 8 所示 勾选 使用分隔符 表 示在输出之间用逗号分隔符进行隔开 方便进行数据处理操作 单击 添加 按钮 可 以输出很多数据 这里只需要输出 4 个数据 失败 定位器 X 定位器 Y 定位 器 角度 输出数据说明 均为 7 个字节宽度 除图案 失败是整形外 其它数据均为浮点型 小数 点位数为 2 位 1 第一位图案 失败 判定符 为 0 表示采集到特征 拍照成功 为 1 则拍照失败 2 第二位图案 定位器 X 输出用户坐标系下的 X 方向绝对值 3 第三位图案 定位器 Y 输出用户坐标系下的 Y 方向绝对值 4 第四位图案 定位器 角度 输出用户坐标系下的相对角度 图 1 6 图 1 7 图 1 8 完成 在 完成 中单击 保存作业 则保存当前作业任务中的所有设置 在 完 成 中单击 运行作业 则运行当前作业任务 注意 以上参数设定必须在脱机模式下才能够设置 在联机状态下参数不能设置 与外 界设备实时通讯必须在联机模式下 物体旋转一定角度拍照失败 看检测部件是否超过相机 视野范围和旋转角度值设置是否合理 1 3 Codesys 通信注意事项 a 说明 设定 PC 端的 IP 地址 IP 地址必须 192 168 39 XXX 这里设定为 192 168 39 12 用网线与相机控制器相连 b 通信流程包括 建立 TCPIP 的服务器端并连接 给相机发送指令 从相机接收数据 c 图 1 7 中如果把 字段分隔符 改为 停止 则两个数据之间就是无分隔符的直接 连接 如果选择其他 则有相应的分隔符号 d 例 采用 消零 为 有 字段分隔符 为 停止 的方式时 相机发送数据 001 00 和 1010 02 时 实际上发送了 45 48 48 49 46 48 48 49 48 49 48 46 48 50 13 13 是回车符的 ASIIC 码 e 在下载工程成功时 查看通讯是否连接正常 当 client congnex 任务中的 step cognex 2 和 server cognex 中的 step server 2 时 此时通讯成功 否则通讯 不正常 需要查看设备是否连接好和 In Sight 软件是否处于联机状态 f 详细指令及其他形式的通信可参考文档 通信设定 sdnb cn5 714d fh fz5 二 二 相机标定相机标定 要实现将相机采集的数据转换为机器人坐标系下的位姿数据 必须建立相机坐标系与机 器人坐标系的对应转换关系 该过程通过相机标定来实现 相机也分平面相机和三维相机 前者只支持平面数据采集 后者则可以获取 xyz 空间值 以三维相机为例 要详细建立相机三维空间的位置与机器人坐标系的对应关系 必须通过严 格的手眼标定来实现 不同相机有手眼标定算法 通过示教多个点来建立手眼转换关系 这 里不详述 如果只做平面工件抓取 那只需要工件变化的坐标值 x y 以及绕 z 轴的转动角度 c 问 题就简单的多 只需要进行平面的简单标定即可实现 以康耐视相机为例 格力等客户只需 要实现流水线来料的抓取操作 标定平面坐标系即可 康耐视相机可以提供移动后的工件相 对于移动前的偏移位置量 或者提供工件的绝对移动位置 这里 我们提供这两种工作方式 的实现过程 相机校准 相机默认输出的坐标值是相机采集到的像素值 并非实际工件位置尺寸 因此需要将物 理坐标与像素值进行映射标定 设定校准后 可使测量结果像素值转换为实际尺寸并输出 康耐视提供了校准参数的制作过程 1 单击 设置图像 界面右下角出现下图 2 1 所示界面 校准类型中有很多种 根据 实际需要选择 这里选择 网格 然后单击 校准 按钮 出现下图 2 2 所示界面 图 2 1 2 打印校准网格纸张 在图 2 2 中 单击 打印网格 按钮 然后将打印的网格纸张放 在相机视野正中间 3 在 设置 界面中 网格类型 为方格图案 带基准 其它值均为默认 4 单击 姿势 进入姿势设置界面 如图 2 3 所示 原点位置为默认 单击 触发器 按钮 相机会自动拍照 最后单击 校准 校准工作就结束 5 单击 结果 可以查看校准情况 如图 2 4 所示 图 2 2 图 2 3 图 2 4 6 建立检测模型 单击 定位部件 出现如图 2 5 所示界面 单击 位置工具 中 图 案 然后单击 添加 单击 OK 接着单击界面右下角 模型 拖动绿色模型矩形框 使被检测模型处于绿色矩形框中 最后单击界面右下角 训练 此时检测模型已经建立 图 2 5 7 查看模型建立是否成功 在界面右侧选择板中 可以查看建立图案的情况 绿色圆点 表示模型建立成功 同时会输出检测模型的位置 角度 得分 如图 2 6 所示 图 2 6 通过以上7步即可完成相机的校准过程 2 2 绝对坐标实现 绝对坐标的实现必须借助机器人的用户坐标系 即机器人在用户坐标系下走绝对位置运 动 具体实现由以下几个步骤组成 首先 用step机器人三点法示教出一个固定用户坐标系 用户坐标系的原点根据实际情 况而定 一般选择流水线上一个固定位置参考点 该参考点要方便相机进行坐标转化标定 关于用户坐标系的标定 可参见新时达机器人操作使用说明书 其次 进行相机坐标与实际位置坐标的标定转换 在完成第一步中的固定用户坐标系标 定后 在该坐标系下选取工件上的三点 计算出这三点在用户坐标系的X Y值 该步骤可通 过机器人协助示教获得在用户坐标系下的位姿值 在图像输入的 校准 模块中 按照 2 1中的步骤完成相机坐标与实际位置坐标的校准参数制作转换 最后 机器人实现绝对位置运动 在完成第二步后 工件每偏移一点 相机均可计算出 其在用户坐标系下新的位置值X Y和绕Z轴的theta角度值 这样 只需要在示教器程序中设 置抓取运动点参考的坐标系为用户坐标系即可 即RefSys语句下走绝对cpe点 该cpe点是 codesys里直接读取的相机返回值 2 3 相对坐标实现 相对坐标的实现就比较简单 只需要将相机坐标转换为实际位置坐标即可 在工件上选 取三个特征点 用带尖机器人示教出这三点在机器人基坐标系下的坐标值 主要是X和Y 按照2 1中的校准流程制作出校准参数 这样 工件偏移后 相机可以直接计算出其新的坐 标X Y和theta 需要注意的是 使用相对坐标运动时 相机输出数据必须是相对量 即测量坐标与基准 坐标之差 而不是绝对测量坐标 具体信息见后续章节 三 三 示教器示例程序示教器示例程序 绝对坐标实现范例 Tool tool0 若带工具 则先加载好 PTP ap0 走到一个安全位置点 Lin cp3 走到标准抓取位置 工件处于标准位置时机器人的抓取位姿 提前示教好 RefSys ref1 切到用户坐标系下 WaitTime uint3 BOOLEXTSet boolbasepos TRUE 端口号为2 发送信号到codesys 读取当前位置作为标准 抓取位置 WaitTime uint4 BOOLEXTSet boolbasepos FALSE 关闭该端口 以上为获得标准抓取位置需要的步骤 RefSys WORLD PTP ap0 LP int0 BOOLEXTSet boolphoto TRUE 发送相机拍照命令 端口号0 WaitTime uint0 等待PLC处理时间 建议在300ms以上 bool0 BOOLEXTRead boolenableget 读取抓取标志位 为TRUE则能抓取 BOOLEXTSet boolphoto FALSE 关闭该端口 保证下次为高电平触发 IF bool0 0 THEN 为true则可抓取 否则重新发送拍照命令 WaitTime uint1 GOTO int0 END IF RefSys ref1 切到用户坐标系下 Lin rcpe0 走到codesys里输出的绝对位置 外部点形式 端口号0 BOOLEXTSet boolfinishget TRUE 发送抓取完成标志 WaitTime uint2 BOOLEXTSet boolfinishget FALSE 关闭抓取完成标志 PTP ap1 GOTO int1 回到循环开始 等待下一个工件 3 2 相对坐标实现范例 Tool tool0 若带工具 则先加载好 PTP ap0 走到一个安全位置点 Lin cp3 走到标准抓取位置 工件处于标准位置时机器人的抓取位姿 提前示教好 WaitTime uint3 BOOLEXTSet boolbasepos TRUE 端口号为2 读取当前位置作为标准抓取位置 WaitTime uint4 BOOLEXTSet boolbasepos FALSE 关闭该端口 以上为获得标准抓取位置需要的步骤 PTP ap0 回到安全点 LP int0 BOOLEXTSet boolphoto TRUE 发送相机拍照命令 端口号0 WaitTime uint0 等待PLC处理时间 建议在300ms以上 bool0 BOOLEXTRead boolenableget 读取抓取标志位 为TRUE则能抓取 BOOLEXTSet boolphoto FALSE 关闭该端口 保证下次为高电平触发 IF bool0 0 THEN 为true则可抓取 否则重新发送拍照命令 WaitTime uint1 GOTO int0 END IF Lin rcpe1 走到codesys里输出的绝对位置 外部点形式 该位置是机器人当前位置加上 相对偏移 端口号1 BOOLEXTSet boolfinishget TRUE 发送抓取完成标志 WaitTime uint2 BOOLEXTSet boolfinishget FALSE 关闭抓取完成标志 PTP ap1 GOTO int1 回到循环开始 等待下一个工件 四 四 CodesysCodesys 逻辑开发逻辑开发 Socket 通信开发 首先 要在 codesys 上完成 socket 通讯开发 通讯开发的要点包括协议类型 协议数据 数据收发 逻辑判断等 一般的相机都是支持 TCP IP 协议的 我们也多是采用该协议完成 step 控制器与各类相 机的通讯连接及数据交互的 一般来说 机器人控制器作为主机 server 服务器 相机处理 器作为从机 client 客户端 控制器作为主机的好处在于 控制器 知道 自己什么时候需 要拍照 需要数据 此时给相机发送命令即可 相机作为客户端始终处于监听状态 主机控 制器的 IP 地址为 192 168 39 220 端口号任意 如取为 9876 用网线与相机控制器相连 在 完成相机与控制器的通信数据格式设定后 接下来就是 codesys 端编程实现 通信示例说明 CASE step OF 0 SAddr sAddr 192 168 39 120 服务器地址 server xEnable TRUE ipAddr SAddr uiPort 9876 建立服务器 IF server xBusy TRUE THEN connect xEnable server xBusy hServer server hServer 连接 IF connect xActive TRUE THEN 连接成功 step 1 执行接收数据 END IF IF connect xError TRUE THEN 连接报错 step 3 复位 END IF END IF IF server xError TRUE THEN step 3 END IF 从相机传过来的数据以 ASCII 码的形式存储到 recvokcr 数组 数组的第一位存储的是串行数据 输出中设定的首位 例如设定的整数位为 1 小数位为 1 当相机发送一个 1 0 时 用 BYTE 型 recvokcr 数组 1 0 回车 CR 对应的 ASCII 码 49 62 48 13 1 size1 SIZEOF recvokcr 数组长度 precv ADR recvokcr 数组地址 recv xEnable TRUE hConnection connect hConnection szSize size1 pData precv 接收数据 IF recv szCount 7 THEN 判断是否收到数据输出 这里的数字应小于数据总长度 step 5 数据处理 END IF IF recv xError THEN 接收数据报错 step 3 END IF 以 ASCII 码的形式从 senddata 数组传给相机 给相机发送 M 回车 CR 命令可以采集一 张图片 2 size2 SIZEOF senddata 数组长度 senddata 0 16 4D M 的 ASCII 码 16 进制表示 是单次测量的指令 senddata 1 16 0D 回车 CR 的 ASCII 码 16 进制表示 欧姆龙相机用 MCR 来发送数 据 psend ADR senddata 指令地址 send xExecute TRUE hConnection connect hConnection szSize size2 pData psend udiTimeOut 1000000 IF send xDone TRUE THEN 发送成功 send xExecute FALSE 函数复位 step 1 END IF IF send xError TRUE THEN 发送报错 send xExecute FALSE step 3 END IF 5 数据处理程序 3 复位后返回 connect xEnable FALSE server xEnable FALSE recv xEnable FALSE hConnection connect hConnection szSize size pData precv step 99 99 step 0 END CASE 注意 多数 socket 函数都是上升沿执行 所以在调用后 应在合适的地方将其关闭 给 下降沿 这样下一周期执行时才会继续生效 否则可能造成函数执行无效 程序死循环卡 死在某一步 或者报错处理 4 2 外部点数据处理 在步骤 1 1 通过 socket 实现控制器与相机的通信连接及数据收发处理后 本步骤主要完 成与 HMI 的命令收发处理以及外部 cpe 点位置计算与返回 完整流程逻辑如下 获取示教器输入 GetHMIBOOL Enable TRUE PortNumber 0 Data ReqGet 获取拍照命令 GetHMIBOOL Enable TRUE PortNumber 1 Data FinishGet 获取完成抓取命令 GetHMIBOOL Enable TRUE PortNumber 2 Data BasePosGet 获取标准抓取位置命令 获取标准抓取位置 当前通过 IO 语句发送命令实现 端口号为 2 IF BasePosGet TRUE AND BasePosCount 0 THEN BasePosCount 1 ReadRefSys Enable TRUE RefSys RefSys qz 注意 ReadRefSys 读出来的当前坐标系的 ABC 为弧度 需要转换为角度 RefSys qz a RefSys qz a R2D RefSys qz b RefSys qz b R2D RefSys qz c RefSys qz c R2D ReadTCPData Enable TRUE RefSys RefSys qz CartPos BasePos 注意 当前读取用户坐标 系下的位置值 END IF IF BasePosGet FALSE THEN BasePosCount 0 END IF 请求相机数据并计算抓取外部点 与通讯部分分开使用 通过标志符确定是否获取数据成功 rtrig CLK TakePhoPLC IF rtrig Q TRUE THEN TakePhoPLC FALSE baseTCP 为标准抓取位置 baseTCP x BasePos x baseTCP y BasePos y baseTCP z BasePos z baseTCP a BasePos a D2R baseTCP b BasePos b D2R baseTCP c BasePos c D2R Tpos 为相机输出数据 Tpos x server Pos x Tpos y server Pos y Tpos z 0 Tpos a 0 Tpos b 0 Tpos c server Pos c D2R 以下过程为坐标变换 将相机坐标系下的角度 theta 转换到用户坐标系下 FB Cartpos2Homomatrix 0 SR RefSys 0 baseTCP baseTCP homomatrix FB Cartpos2Homomatrix 0 Ref Homomatrix FB Cartpos2Homomatrix 1 SR RefSys 0 Tpos basecamera homomatrix FB Cartpos2Homomatrix 1 Ref Homomatrix FB MulHomomatrix 0 homomatrix 1 basecamera homomatrix homomatrix 2 baseTCP homomatrix T0TCP FB MulHomomatrix 0 homomatrix out change to xyzabc FB Homomatrix2Cartpos 0 Ref Homomatrix T0TCP SR RefSys 0 SR test FB Homomatrix2Cartpos 0 Ref Homomatrix T0TCP SR RefSys 0 SR RefSys 0 SR RefSys 0 a SR RefSys 0 a R2D SR RefSys 0 b SR RefSys 0 b R2D SR RefSys 0 c SR RefSys 0 c R2D 绝对坐标输出 端口号 0 EXTPos x server Pos x x 和 y 值用相机输出数据 EXTPos y server Pos y EXTPos z BasePos z z a b 用标准抓取位置值 EXTPos a BasePos a EXTPos b BasePos b EXTPos c SR RefSys 0 c theta 用转换过的角度 SetCartPos Enable TRUE PortNumber 0 RobotCartPos EXTPos 相对坐标输出 端口号 1 EXTPos 1 x BasePos x server Pos x EXTPos 1 y BasePos y server Pos y EXTPos 1 z BasePos z EXTPos 1 a BasePos a EXTPos 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论