Cognex康耐视相机操作使用说明书

上传人:无*** 文档编号:46131931 上传时间:2021-12-10 格式:DOC 页数:26 大小:563KB
收藏 版权申诉 举报 下载
Cognex康耐视相机操作使用说明书_第1页
第1页 / 共26页
Cognex康耐视相机操作使用说明书_第2页
第2页 / 共26页
Cognex康耐视相机操作使用说明书_第3页
第3页 / 共26页
资源描述:

《Cognex康耐视相机操作使用说明书》由会员分享,可在线阅读,更多相关《Cognex康耐视相机操作使用说明书(26页珍藏版)》请在装配图网上搜索。

1、Cognex康耐视相机操作使用说明书康耐视相机操作使用说明书文件状态:草稿修改定稿文档密级不保密内部机密项目名称版本号10描述康耐视相机操作使用说明书编写人余国鹰编写日期05/9/10审核人审核日期目录一、康耐视相机具体设置1.1软件安装错误!未定义书签。12流程编辑3.3odesys通信注意事项6二、相机标定相机校准2.2绝对坐标实现92.3相对坐标实现0三、示教器示例程序11.1绝对坐标实现范例1132相对坐标实现范例11四、CODESYS逻辑开发134.1ockt通信开发134.外部点数据处理1五、细节说明17一、 康耐视相机具体设置1.1 软件安装双击康耐视相机软件ognx_In-Si

2、ht_Soware_48.1,按照步骤一步步安装即可。1.2 流程编辑. 设置电脑本地连接IPV4地址为192169.2(设置为39段即可)。2.双击康耐视n-Sight浏览器软件进入相机设置界面,软件会自动搜索连接的相机设备,如下图1.1所示。图1.13. 双击相机设备(红色椭圆内设备图标),进入相机编辑界面,如下图1.2所示。图12 4. 在应用程序步骤中,开始、设置工具、配置结果、完成这4个步骤形成一个完整的相机操作流程; 开始 单击“开始”中“已连接”,如下图1.3所示,可以进行连接设备、断开设备、刷新、添加等操作。图1.3单击“开始”中的“设置图像”,如下图1.4所示。在“采集加载图

3、像”对话框中,“触发器”按钮是进行拍照,“实况视频”按钮是实时显示相机中的图像,“从PC加载图像”按钮是加载一张存在的图像。图14在“编辑采集设置”对话框中,设置一系列相机参数,根据具体需要进行调节 设置工具 单击“设置工具”中“定位部件”按钮,对检测模型进行定位,作为识别的模型进行对比;单击“设置工具”中“检测部件”按钮,对模型进行编辑操作。在“定位部件”的设置对话框中,如下图1.5所示,合格阀值:每次拍照之后的得分如果大于阀值,则拍照成功,否则失败;旋转公差:检测部件能够旋转的角度范围,如果在范围之类则会拍照成功,否则会失败图1. 配置结果 单击“配置结果”中“通信”按钮,进行通讯设置操作

4、,如下图1.6所示。新时达机器人视觉通信采用的TC/P通讯方式,单击“TCPP”,如下图1.7所示,在“P/IP设置”对话框中,“服务器主机名”设为92.1839.22(机器人控制器IP地址),“端口”设置与CodeSys中相同,本例中设为987,“超时时间”设为15000,“结束符”设为字符串(R3)。单击“格式化输出字符串”,进行输出操作,如下图18所示。勾选“使用分隔符”,表示在输出之间用逗号分隔符进行隔开,方便进行数据处理操作;单击“添加”按钮,可以输出很多数据,这里只需要输出4个数据,“失败”、“定位器.”、“定位器.Y”、“定位器.角度”;输出数据说明:均为7个字节宽度,除图案失败

5、是整形外,其它数据均为浮点型,小数点位数为2位。1) 第一位图案失败:判定符,为0表示采集到特征,拍照成功;为1则拍照失败。2) 第二位图案.定位器.X:输出用户坐标系下的方向绝对值。3) 第三位图案定位器.:输出用户坐标系下的Y方向绝对值。4) 第四位图案定位器.角度:输出用户坐标系下的相对角度。图.6图7图18 完成 在“完成”中单击“保存作业”,则保存当前作业任务中的所有设置;在“完成”中单击“运行作业”,则运行当前作业任务。注意,以上参数设定必须在脱机模式下才能够设置,在联机状态下参数不能设置,与外界设备实时通讯必须在联机模式下;物体旋转一定角度拍照失败,看检测部件是否超过相机视野范围

6、和旋转角度值设置是否合理。1.3 odeys通信注意事项a) 说明:设定P端的I地址,IP地址必须12.18.39.XX,这里设定为19168.9.1,用网线与相机控制器相连;b) 通信流程包括:建立CPI的服务器端并连接,给相机发送指令,从相机接收数据;c) 图.中如果把“字段分隔符”改为“停止”,则两个数据之间就是无分隔符的直接连接;如果选择其他,则有相应的分隔符号;d) 例:采用“消零”为“有”,“字段分隔符”为“停止”的方式时,相机发送数据“-001.0”和“1010.0”时,实际上发送了“4 48 48 49 4 48 9 494 46 48 5 ”(1是回车符的ASIIC码);e)

7、 在下载工程成功时,查看通讯是否连接正常。当clien_onnex任务中的epcognex:=2和sve_ognx中的step_erver:2时,此时通讯成功,否则通讯不正常,需要查看设备是否连接好和I-ight软件是否处于联机状态。f) 详细指令及其他形式的通信可参考文档通信设定dn-c-71d_h_z5。二、 相机标定要实现将相机采集的数据转换为机器人坐标系下的位姿数据,必须建立相机坐标系与机器人坐标系的对应转换关系,该过程通过相机标定来实现。相机也分平面相机和三维相机,前者只支持平面数据采集,后者则可以获取xz空间值。以三维相机为例,要详细建立相机三维空间的位置与机器人坐标系的对应关系,

8、必须通过严格的手眼标定来实现。不同相机有手眼标定算法,通过示教多个点来建立手眼转换关系。这里不详述。如果只做平面工件抓取,那只需要工件变化的坐标值、以及绕z轴的转动角度c,问题就简单的多,只需要进行平面的简单标定即可实现。以康耐视相机为例,格力等客户只需要实现流水线来料的抓取操作,标定平面坐标系即可,康耐视相机可以提供移动后的工件相对于移动前的偏移位置量,或者提供工件的绝对移动位置。这里,我们提供这两种工作方式的实现过程。1.4 相机校准相机默认输出的坐标值是相机采集到的像素值,并非实际工件位置尺寸,因此需要将物理坐标与像素值进行映射标定。设定校准后,可使测量结果像素值转换为实际尺寸并输出,康

9、耐视提供了校准参数的制作过程。1单击“设置图像“,界面右下角出现下图2.1所示界面。校准类型中有很多种,根据实际需要选择,这里选择“网格”,然后单击“校准”按钮,出现下图2.2所示界面。图21.打印校准网格纸张。在图2.2中,单击“打印网格”按钮,然后将打印的网格纸张放在相机视野正中间。3.在“设置”界面中,“网格类型”为方格图案(带基准),其它值均为默认。4.单击“姿势”,进入姿势设置界面,如图.3所示,原点位置为默认,单击“触发器”按钮, 相机会自动拍照,最后单击“校准”,校准工作就结束。5单击“结果”,可以查看校准情况,如图2.4所示。图2.2图.3图2.46.建立检测模型。单击“定位部

10、件”,出现如图25所示界面,单击“位置工具”中“图案”,然后单击“添加”,单击“”,接着单击界面右下角“模型”,拖动绿色模型矩形框,使被检测模型处于绿色矩形框中,最后单击界面右下角“训练”,此时检测模型已经建立。图.7.查看模型建立是否成功。在界面右侧选择板中,可以查看建立图案的情况,绿色圆点表示模型建立成功,同时会输出检测模型的位置、角度、得分,如图26所示。图2.通过以上步即可完成相机的校准过程。1.5 绝对坐标实现 绝对坐标的实现必须借助机器人的用户坐标系,即机器人在用户坐标系下走绝对位置运动。具体实现由以下几个步骤组成。首先,用step机器人三点法示教出一个固定用户坐标系。用户坐标系的

11、原点根据实际情况而定,一般选择流水线上一个固定位置参考点,该参考点要方便相机进行坐标转化标定。关于用户坐标系的标定,可参见新时达机器人操作使用说明书;其次,进行相机坐标与实际位置坐标的标定转换。在完成第一步中的固定用户坐标系标定后,在该坐标系下选取工件上的三点,计算出这三点在用户坐标系的、值(该步骤可通过机器人协助示教获得在用户坐标系下的位姿值)。在图像输入的“校准”模块中,按照21中的步骤完成相机坐标与实际位置坐标的校准参数制作转换;最后,机器人实现绝对位置运动。在完成第二步后,工件每偏移一点,相机均可计算出其在用户坐标系下新的位置值X、和绕Z轴的thea角度值。这样,只需要在示教器程序中设

12、置抓取运动点参考的坐标系为用户坐标系即可,即efys语句下走绝对cp点。该pe点是codesys里直接读取的相机返回值。1.6 相对坐标实现相对坐标的实现就比较简单,只需要将相机坐标转换为实际位置坐标即可。在工件上选取三个特征点,用带尖机器人示教出这三点在机器人基坐标系下的坐标值(主要是X和Y)。按照2.中的校准流程制作出校准参数。这样,工件偏移后,相机可以直接计算出其新的坐标X、Y和heta。需要注意的是,使用相对坐标运动时,相机输出数据必须是相对量,即测量坐标与基准坐标之差,而不是绝对测量坐标。具体信息见后续章节。三、 示教器示例程序1.7 绝对坐标实现范例ol(ool0);/若带工具,则

13、先加载好PT(p0);/走到一个安全位置点i(cp3);/走到标准抓取位置(工件处于标准位置时机器人的抓取位姿,提前示教好)ReSy(ref);/切到用户坐标系下aitTime(ut3);OOLESe(bolpo,TU);/端口号为2,发送信号到codesys,读取当前位置作为标准抓取位置WtTime(uint4);OOLEXTSet(oobaseos,ALSE);/关闭该端口/以上为获得标准抓取位置需要的步骤RefSy(WORLD);PT(ap);LP:nt0;BLEXTSt(lphoto,TRUE); /发送相机拍照命令,端口号0aitTi(nt); /等待PC处理时间,建议在30s以上b

14、ol0:=OOLETRea(boolenablee); 读取抓取标志位,为TUE则能抓取BOOXTSe(bolpot,FLE); /关闭该端口,保证下次为高电平触发IF(bol0=0)TN /为tr则可抓取,否则重新发送拍照命令aitTie(uint1);GOO(it0);END_IFRSys(rf1); /切到用户坐标系下in(rcp0); /走到cy里输出的绝对位置(外部点形式,端口号0)BLEXTSet(boinishget,TRUE);/发送抓取完成标志aitTime(in2);BOOESt(boolfniet,FLE); /关闭抓取完成标志PT(ap1);GOTO(nt1); /回到

15、循环开始,等待下一个工件1.8 相对坐标实现范例ol(l0);/若带工具,则先加载好T(ap0); /走到一个安全位置点in(3);/走到标准抓取位置(工件处于标准位置时机器人的抓取位姿,提前示教好)WitTime(nt3);BOOEXTSet(blbaseps,TRE);/端口号为2,读取当前位置作为标准抓取位置WaitTm(int);OLXTet(blbsepos,FALSE);/关闭该端口/以上为获得标准抓取位置需要的步骤PTP(ap);/回到安全点LP:int0;OESe(oolpoto,TRUE); /发送相机拍照命令,端口号0aiTime(unt); /等待PLC处理时间,建议在3

16、00ms以上boo0:=BOLEXead(boolnblegt); /读取抓取标志位,为TRE则能抓取BOOLEXTSt(oolphoto,FALSE); /关闭该端口,保证下次为高电平触发IF(bol00)TEN /为tu则可抓取,否则重新发送拍照命令Waitime(ut1);GOTO(nt);END_IFL(r); 走到cdesys里输出的绝对位置(外部点形式,该位置是机器人当前位置加上相对偏移,端口号1)BOLSet(bolinihget,TRUE); /发送抓取完成标志WaitTime(uint2);OOXTSet(oolfinishge,FLSE);/关闭抓取完成标志PTP(ap);

17、GT(i1); /回到循环开始,等待下一个工件四、 Codesys逻辑开发1.9 Sockt通信开发首先,要在codsys上完成scket通讯开发。通讯开发的要点包括协议类型、协议数据、数据收发、逻辑判断等。一般的相机都是支持TP/I协议的,我们也多是采用该协议完成stp控制器与各类相机的通讯连接及数据交互的。一般来说,机器人控制器作为主机server(服务器),相机处理器作为从机client(客户端)。控制器作为主机的好处在于,控制器“知道”自己什么时候需要拍照、需要数据,此时给相机发送命令即可。相机作为客户端始终处于监听状态。主机控制器的IP地址为12.168.92,端口号任意,如取为98

18、76,用网线与相机控制器相连,在完成相机与控制器的通信数据格式设定后,接下来就是coesys端编程实现。通信示例说明:CASE stp OF0:SAdd.Adr := 1968.3120;/服务器地址srver(Eb:TRUE,ipAr:=Add,uiP:9876);/建立服务器IF(serexBsy TRE) HENconect(Enable:=er.xBuy,hServer:=rv.hSere);/连接IF(cnnec.xAcive = TRE)EN/连接成功step := 1;/执行接收数据ED_I(cnect.xEror =RUE)THN/连接报错step:;/复位END_IFEND_

19、IFIF(serverrror TRE)THENsep := 3;END_I/从相机传过来的数据以SCI码的形式存储到recvokr数组,数组的第一位存储的是串行数据输出中设定的首位/例如设定的整数位为1,小数位为1,当相机发送一个1.时,用BTE型recvokr数组“回车()”对应的ASCI码“49“,”62“,”48“,”3“1:sie := SIEOF(recvkcr);/数组长度ecv :=AR(ekr);/数组地址recv(xEnabe:=TRE,onnecto:=cont.hConnection,szSz:=size1,pDat:=recv);/接收数据(rc.sCou7) THE

20、N/判断是否收到数据输出,这里的数字应小于数据总长度st:=;/数据处理END_IFIF ev.xError THE/接收数据报错sep:=3;END_IF/以ACI码的形式从senddata数组传给相机,给相机发送“回车(C)”命令可以采集一张图片2:sze2 :=SIZEOF(senddata);/数组长度sddta0:164D;/M的AII码,16进制表示,是单次测量的指令。snddat:=16#D;/回车(C)的ASCII码,16进制表示(欧姆龙相机用C来发送数据)psend := D(snddta);/指令地址sd(xcte:=TE,onnectin:=conc.hContio,sz

21、z:=sie,Dta:psend,uiimeOut:=1000);F(endDoe = RUE) THEN/发送成功send(xExeute:=FALSE);/函数复位stp := 1;END_I(sed.xEror = TRUE) THEN/发送报错(ecute:=FALSE);sep :=3;END_IF5:数据处理程序.3: /复位后返回conect(xEable:=FALE);server(xEable:=FALS);recv(xnabl:FASE,hConnecion:cnn.hConnectio,szSiz:=siz,pata:prcv);p: 9;99:stp:0;ED_S注意,

22、多数sk函数都是上升沿执行,所以在调用后,应在合适的地方将其关闭(给下降沿),这样下一周期执行时才会继续生效。否则可能造成函数执行无效,程序死循环卡死在某一步、或者报错处理。1.10 外部点数据处理在步骤1.1通过socke实现控制器与相机的通信连接及数据收发处理后,本步骤主要完成与HMI的命令收发处理以及外部ce点位置计算与返回。完整流程逻辑如下:/获取示教器输入GetHIBOOL(Eable := TRUE,PortNumer :=0,ta = RGet);/获取拍照命令GeHOL(b := TRUE,rtNmber : 1,ata= FihGet); /获取完成抓取命令etHIBOO(a

23、ble : TRUE,PrtNuer := 2,Data = aPosGet); /获取标准抓取位置命令/(*获取标准抓取位置(当前通过O语句发送命令实现,端口号为)*)I (BasPoset= UED(BsPoount = 0) EaePosont :1;ReaRefSys(nae := RUE,RefSy =ReSys_);/注意,ReaRefSs读出来的当前坐标系的BC为弧度,需要转换为角度ysqz.a := ReS_z.a R2;Refys_z.:=efSys_z.b R2D;RSqz.c:=Refys_c* RD;ReaCt(Enabl := TRE,ey := efSys_qz,C

24、artos aseos); /注意,当前读取用户坐标系下的位置值EN_IF BaPoGe = ALSETEBasePosCunt := ;ND_F/(*请求相机数据并计算抓取外部点与通讯部分分开使用,通过标志符确定是否获取数据成功*)rtrig(CL :=TakePhP);IF tri. = TRUE TENTakePhoPLC : FAL;/ aseCP为标准抓取位置baseTCP. := BasePos.x;bseTCP.y := sPo.y;bseTC.z := BePsz;basTCP.a := aseos.a*2R;baeTCPb:= BsePo.bD;baeTC.c:= Bseos

25、.*D2R;/ Tp为相机输出数据Tp.x := servPo_;Tposy :=servePos_y;Tos. := 0;Tpos.a :=;Tps. :=;pos. : serve_c*R;/ 以下过程为坐标变换,将相机坐标系下的角度teta转换到用户坐标系下 B_Cats2oomatrix_0(R_RefSy_0:=asCP);baTCPhmomatrix : FBCrpos2ommarix_0.Re_Homatx;Brps2Homomatx_1(SR_RefSys_:= os);bsecamera_omatix:= FB_Caros2oomatrix_.Ref_Hoomix;FuHom

26、omatrix_0(homotrix_1 := bsecamera_hoomaix, hmmatri := baTCP_hoomatrx);T0TCP:=FB_ulHmomatrix_.homati_ot;(* change t xyabc*)FB_HmomatrixCartpos0(ef_Homtr :=T0TCP, SR_Refys0 = S_ts);FB_Hmomatix2Cpos_0(ef_Hommatix : T0TP,R_Refs_0 = SRReSys_);R_ReSy_0a :SR_RSys_0.* 2D;S_fSys_0.b:=SRfSys_0.b* R;SR_Res_0 :

27、= SR_RefSys_0.c* R2;/绝对坐标输出,端口号0EXTPos.x:=servr.Pos_; / 和y值用相机输出数据EXPosy:=er.o_;Eos.z:=Baeos.z; / z、b用标准抓取位置值ETPos.a:=BasePos.a;EXTPs.:=BaePos.b;ETPo.c: SR_RefSys_.c; /hta用转换过的角度StCartos(nabe:=TR,PotNumer:0,RboCatPo:=TPos);/相对坐标输出,端口号1XTs_.x:=BePos.x serr.Pos_x;ETPos_y:=asPos. + servr.Pos_;EXTPo1.z:

28、=BaePos.z;ETPos_1a:BaePos.a;XTPs_1.:=sPosb;EXTP_1.:=_RSys_0.c;EXTos_1.mode:= ;SetCrtPos(Enle:=RU,PrNuber:=1,otCartPs:=EXTPs_1);/发送允许抓取命令nabeG : TRE;EN_I inishGet THnbeGe : SE;END_IF/输出到示教器的数据,告诉示教器可以抓取SetHMIB(Enble : TRUE,Poter := 0, Data := Enaleet);注意:1) EnabeGe变量要设置为VL全局变量,否则示教器会出现数据收发延迟、造成逻辑错乱的情

29、况。2) 每次在更换了检测模型时,一定要注意保存和运行作业任务,然后将软件进入联机模式,这样相机和机器人收发数据才会成功。3) 在建立用户坐标系时,要使用带原点的三点法示教,原点为校准方格的原点,X轴和轴方向均要同校准方格方向相同。4) 机器人程序每次在LP语句之间循环,机器人不运动,检查检测部件是否超出相机的视野范围和一些Bol语句是否给它下降沿信号了。五、 细节说明1. 视觉开关的关键点在于socket通信的稳定性和相机数据的转换。对于前者,必须保证soket通信程序逻辑无明显漏洞,防止cas语句存在死循环;2 通信数据的处理:康耐视发送的是ASCII码,需要转换成浮点型位置数据;. 位置

30、数据的处理:一般采用外部ce点来发送位置数据,cpe点的数据计算在coesys里完成。需要注意的是,pe点的mod请慎重,一般情况下为,但是具体和机器人所处位形有关和控制器和相机I一样,始终以控制器IP为主机进行测试;. 如果要直接连相机,调试相机通信逻辑,可临时将相机改为主机,P机与相机IP在同一段内,通过调试工具连接相机,发送指令数据进行测试;. 使用oket相关函数需要在工程lbray manager里安装相关库,主要有CAA NetBaseSrv,ysSoet和SsMem;8 关于绝对坐标与相对坐标两种支持方式,各有优缺点。绝对坐标需要使用三点法示教用户坐标系,靠相机获得的和Y位置存在一定的误差。而相对坐标给出的全部是相对当前位置的增量,误差会减小。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!