<< 向前        下一页 >>

ID : 2836

TrackPrepareData

功能

在视觉传感器检测的多个工件数据中,删除跟踪缓冲区中已存在的数据,返回从下流侧的数据开始依次重新排列的数据组。
这是通过TrackSetVision设置到跟踪缓冲区前进行重复数据删除和重新排列的函数,返回值直接成为TrackSetVision的自变量。

此指令对Ver.2.1.*以上的版本有效。

格式

TrackPrepareData (传送带编号, 工件检测数, 传感器检测坐标 [, 用户数据 [, 属性数据] ])

指定项目

传送带编号

使用整数型数据指定需使用的传送带编号(1~16)。

工件检测数

数值与设置到TrackSetVision的工件检测数的值相同。通过整数型数据指定通过1次执行保存到跟踪缓冲区中的工件个数。
如果输入负值,变成不需要I/O的触发输入的内部触发模式。
发现与跟踪缓冲区的数据重复的数据时,在返回值中减去该数(负数时执行加法)。

内容
正值 用正值设定视觉传感器检测的工件数。
需要接收视觉传感器的I/O输入,事前保存传送带的编码器值。
0 错误
负值 用负值设定想依据内部触发设定的工件数。
不需要视觉传感器的I/O输入,保存该指令执行时的传送带的编码器值。

 

传感器检测坐标

数值与设置到TrackSetVision的传感器检测坐标的值相同。指定与工件检测数相同的视觉传感器检测坐标。指定方法有以下3种。
发现与跟踪缓冲区的数据重复的数据时,在返回值中删除该坐标。另外,有多个数据时,返回值的顺序从下游侧开始重新排列。

数据型 内容
矢量型 工件检测数为1个时,可指定。
变体(Variant)型的1次排列 工件检测数为1个以上时,可指定。
通过矢量型设定排列的各要素。
矢量型的1次排列 工件检测数为1个以上时,可指定。
通过矢量型设定排列的各要素。

 

用户数据

数值与设置到TrackSetVision的用户数据的值相同。指定方法请参照“TrackSetVison”。
可省略。省略时为“-1”。输入负值时,则进行与省略时相同的处理。
返回值变为与数据重新排列对应的值。

属性数据

数值与设置到TrackSetVision的属性数据的值相同。指定方法请参照“TrackSetVison”。
可省略。省略时为“-1”。
返回值变为与数据重新排列对应的值。

返回值

项目 内容
工件检测数 设置到TrackSetVision的工件检测数的值。以减去重复的数据个数。
传感器检测坐标 设置到TrackSetVision的传感器检测坐标的值。删除重复的数据,已按照从下游侧开始重新排列的顺序设置。
用户数据 设置到TrackSetVision的用户数据的值。与数据重新排列对应的值被设置。
属性数据 设置到TrackSetVision的属性数据的值。与数据重新排列对应的值被设置。

结合指定项目,通过变体(Variant)型返回工件检测数、传感器检测坐标、用户数据、属性数据。

指定项目 返回值
工件检测数 传感器检测坐标 用户数据 属性数据
传送带编号工件检测数传感器检测坐标 -1 -1
传送带编号工件检测数传感器检测坐标用户数据 -1
传送带编号工件检测数传感器检测坐标用户数据属性数据

指定的传感器检测坐标在跟踪缓冲区1个也不能保存时,“数据个数”为“0”,返回传感器检测坐标、用户数据、属性数据为“VT_EMPTY”的变体(Variant)型数据。

解说

在视觉传感器检测的多个工件数据中,删除跟踪缓冲区中已存在的数据,返回从下流侧的数据开始依次重新排列的数据组。
这是通过TrackSetVision设置到跟踪缓冲区前进行重复数据删除和重新排列的函数,返回值直接成为TrackSetVision的自变量。

注意事项

传送带及圆形跟踪专用指令。

应用示例

视觉传感器检测出图像坐标“x=100[pixel], y=10[pixel]”、朝向“θ=30[deg]”的工件1

Dim visPos1 As Variant
visPos1 = Array(100, 10, 30)

视觉传感器检测出图像坐标“x=100[pixel], y=200[pixel]”、朝向“θ=0[deg]”的工件2

Dim visPos2 As Variant
visPos2 = Array(100, 200, 0)

视觉传感器检测出图像坐标“x=10[pixel], y=200[pixel]”、朝向“θ=45[deg]”的工件3

Dim visPos3 As Variant
visPos3 = Array(10, 200, 45)

视觉传感器检测到的3个工件,跟踪缓冲区的重复检查

Dim visPreparePos As Variant
visPreparePos = TrackPrepareData (1,3, Array(visPos1, visPos2, visPos3), Array(1, 2, 3), Array(1, 1, 1))

指定用户数据和属性,将不重复的工件保存到跟踪缓冲区

TrackSetVision 1, visPreparePos (0), visPreparePos (1), visPreparePos (2), visPreparePos (3)

事例

为了用2台机器人交互进行跟踪,将保存在跟踪缓冲区的数据的用户数据交替保存为1和2的方法

' 传感器检测坐标的取得
Dim visPos1 As Variant
visPos1 = Array(100, 10, 30)
Dim visPos2 As Variant
visPos2 = Array(100, 200, 0)
Dim visPos3 As Variant
visPos3 = Array(10, 200, 45)

' 取得跟踪缓冲区中没有重复数据的传感器检测坐标
Dim visPreparePos As Variant
visPreparePos = TrackPrepareData (1,3, Array(visPos1, visPos2, visPos3))

' 结合跟踪缓冲区中没有重复数据的数据个数,创建用户数据
' 将用户进行处理的函数作为CreateUserData另行定义
Dim vntUserData As Variant
vntUserData = CreateUserData(visPreparePos (0))

' 将数据保存到跟踪缓冲区
TrackSetVision 1, visPreparePos (0), visPreparePos (1), vntUserData

' [用户描述]
' 设定用户数据的处理
' [out] vntUserData : 用户数据
Function CreateUserData( ByVal workNum As Integer ) As Variant

        ' --------设定用视觉传感器检测出的工件用户数据--------

        CreateUserData= CreateArray(workNum, VT_I4)

End Function

ID : 2836

<< 向前        下一页 >>