配置TCP/IP:按MENU---SETUP---NEXT---HOSTCOMM,选择TCP/IP---按ENTER或者F3DETAIL

Port#1 IP addr:输入机器人IP地址,按ENTER后输入,如192.168.1.11;如果控制柜有2个网络端口,则按F3PORT进行切换Port#1或者Port#2。
Subnet Mask:子网掩码,默认为255.255.255.0;
Router IP addr:路由IP地址,可不设置;
Host Name:输入主机(plc)名称,按ENTER后输入,如PLC;
Internet Address:输入主机(plc)IP,按ENTER后输入,如192.168.1.10前三位与机器人IP必须一致。
上述设定完毕后,机器人重启。重启后置光标在Host Name下的CAMERA所在行,按下F4 PING,确认该IP地址已被识别。
Ethernet I/P设置
机器人侧Ethernet I/P 参数
MENU――I/O――NEXT――选择EtherNet/IP
首先确认Enable状态为FALSE,然后将光标移至TYP列,按F4键切换成SCN。再将光标移至Connection1列,按F4 CONFIG
Name/IP address:192.168.1.10,即前面设定的相机地址;
Vendor Id:厂商ID,参见相机软件的eds文件;
Device Type:设备类型,参见相机软件的eds文件;
Product code:产品代码,参见相机软件的eds文件;
Input size:输入容量;
Output size:输出容量;
RPI(ms):32;
Assembly instance(input):输入Assembly实例,参见相机软件的eds文件;
Assembly instance(output):输出Assembly实例,参见相机软件的eds文件;
Configuration instance:配置容量。
按PREV返回上层菜单,Status变为PENDING,同时置Enable为True,重新启动机器人,重启后如Status显示为RUNNING,表示已联机。
GI_X_Position:X方向偏移值
GI_Y_Position:Y方向偏移值
GI_Angle:r方向偏移值
GI_X_Negative:X方向偏移值的正负(默认X方向偏移值为负时,此信号置ON;也可取反)
GI_Y_Negative:Y方向偏移值的正负(默认Y方向偏移值为负时,此信号置ON;也可取反)
GI_A_Negative:r方向偏移值的正负(默认r方向偏移值为负时,此信号置ON;也可取反)
GI_X_Position为DI97-112,GI_Y_Position为DI113-128,GI_Angle为DI129-144,GI_X_Negative为DI145,GI_Y_Negative为 DI146,GI_A_Negative为DI147。由于后三组信号都是一个独立的信号,所以可以不用分配到GI中,直接在程序中调用DI即可。

相机校准
1设定坐标系。
设定机器人的用户坐标系和工具坐标系。
2 相机校准
1)找一张白纸,并在纸上画4个以上的清晰点。或者由康耐视工程师提供标定板。
2)用建立好的TCP寻找纸上点的并在相应用户坐标系下记录这些点的坐标。点位的顺序要确定。
3)让相机拍照,并且让相机找出所有点的像素坐标。(只拍一次照,拍全所有的点)
4)相机把像素坐标和用户坐标按顺序对应起来并计算好。接下来相机就可以把像素坐标转换成空间坐标了。
3 计算偏移(康耐视相机内部处理)
1)找出视野的尺寸。
2)用数学公式求出每个像素的宽度:
3)每个像素宽度=视野的长(或宽)除以视野的的长的个数(宽的个数)
4)相机做一个基准位。
5)求出后面拍照得出的点位和基准位的偏差,其偏差乘以每个像素的宽度,得出的最终数据传回给机器人。
7. 编写程序
DO30对应DO_Trig_Enable(相机使能),DI30对应DI_Trig_Ready(相机使能反馈),DO31对应DO_Trigger(相机拍照),DI31对应DI_Trig_Ack(相机拍照)。DI39 对应DI_Inspect_Comp(获取到数据并检查完成)。
编写拍照程序如下:
1: DO30:TRIG ENABLE=ON ; 相机使能
2: WAIT DI30:TRIGGER READY=ON ; 相机使能确认
3: DO31:TRIGGER=ON ; 相机拍照
4: WAIT DI31:TRIGGER ACK=ON ; 相机拍照完成确认
5: DO31:TRIGGER=OFF ; 关闭相机拍照
6: IF DI39:INSPECT COMPLETE=OFF,JMP LBL2 ;检查确认
7: ;
8: LBL1 ;
9: WAIT DI39:INSPECT COMPLETE=OFF ;
10: JMP LBL3 ;
11: ;
12: LBL2 ;
13: WAIT DI39:INSPECT COMPLETE=ON ;
14: ;
15: LBL3 ;
/END
注:程序从第六行到最后的意思是:相机获取到数据并检查完成后DI39会改变一次状态。也就是说第一次拍照成功DI39=ON,第二次拍照成功DI39=OFF,依次交替,并不是每次拍照成功DI39都会变成ON。
编写获取偏移值程序如下:
1: PR8:COGNEX OFFSET=PR7:ZERO ; 初始化(Z、w、p值为0)
2: IF (DI497:-X=OFF) THEN ; 如果偏移值为正
3: R21:X=GI1:X OFFSET/1000 ; 因为组信号时二进制转换成十进制,所以只能接收整数,因此除以100还是1000取决于相机把偏移值乘以100还是乘以1000发给机器人
4: ELSE ; 如果偏移值为负
5: R21:X=GI1:X OFFSET/(-1000) ; 除以(-1000),值为负数
6: ENDIF ;
7: ; 下同
8: IF (DI498:-Y=OFF) THEN ;
9: R22:Y=GI2:Y OFFSET/1000 ;
10: ELSE ;
11: R22:Y=GI2:Y OFFSET/(-1000) ;
12: ENDIF ;
13: ;
14: IF (DI499:-r=OFF) THEN ;
15: R23:r=GI3:r OFFSET/1000 ;
16: ELSE ;
17: R23:r=GI3:r OFFSET/(-1000) ;
18: ENDIF ;
19: ;
20: PR8,1:COGNEX OFFSET=R21:X ; 把X偏移值赋值到PR8的X
21: PR8,2:COGNEX OFFSET=R22:Y ; 把Y偏移值赋值到PR8的Y
22: PR8,6:COGNEX OFFSET=R23:r ; 把r偏移值赋值到PR8的r
23: ;
24: PR13:PICK ACTUAL=PR27:PICK REF+PR8:COGNEX OFFSET ; 实际抓取位置=基准抓取位置+偏移
/END
8. 注意事项
在配置Ethernet I/P时, Input/Output size要和相机对应上,确认是以Words为单位还是以Bytes为单位。