首页 问答社区 正文

当您将帧数组设置为等于单个帧时,KRC2 在做什么?

我正在配置一个 KRC4 机器人,它有一些错误没有出现在我们运行相同程序的 KRC2 机器人上。
我没有在 KRC2 上设置程序,所以我在开发时试图理解意图
我想问的具体问题是,在 KRC2 程序中,一个名为 TTool 的 FRAME 数组被设置为等于系统变量 $Tool。这会在 KRC4 中引发错误。我假设这是因为 FRAME 数组设置为等于 FRAME 对象。在 KRC2 中,这是否只是将 TTool 的第一个索引项设置为等于 FRAME $Tool?

DECL FRAME TTool[6]
; TTool在system.dat中声明; TTool 值由加载的程序设置
;在 ToolChange 程序中 TTool = $Tool;这在 KRC2 中有效(不知何故),但在 KRC4 中有错误

; KRC4 假设 solutionTTool[toolIndex] = $Tool;这在 KRC4 中可行,但我想知道 KRC2 是否会假定 toolIndex 为 0。

您不能将某种类型的变量分配给 an 该类型的数组。我认为您需要更仔细地检查 KRC2 代码。必须有另一个与数组同名的变量(不是数组)。如果变量不具有相同的范围,KSS 不会抱怨,但 WorkVisual 可能会抱怨一个变量遮蔽另一个变量。
而且不......没有索引零......在以索引 1 开头的 KSS 数组中。

谢谢 Mode 先生!我会再次检查本地范围内是否有另一个同名变量。我认为控制器会抱怨双重声明,因为它已经在配置中声明.dat.

我搜索了KRC2控制器的多个备份中的所有文件,发现TTool声明在两个地方:config.dat和sps.sub。都将TTool声明为数组框架。这似乎无助于理解它在 KRC2 控制器上的工作方式。我也不确定如何知道 toolChange 程序正在使用哪个 TTool。代码

那些旧的机器人“创建”一个类型为 pos 的新变量使用未声明的变量。因此,如果您使用未声明的单个变量 TTool,它将在运行时创建,并且不会出现错误。如果您想将单个实数或布尔值分配给未声明的变量,则会出现错误,因为机器人总是创造一个 pos。并且可以将框架($tool)分配给 pos 而不会出错。只有当并发数组变量的声明不在使用未声明变量的程序的 dat 文件中时,这才有效。在较新的机器人上,没有自动创建 pos 类型的变量,所以你会得到一个错误,每个变量都必须声明在使用范围内。

海报

本文转载自互联网或由网友投稿发布,如有侵权,请联系删除

本文地址:https://www.yushouy.com/robots/a648a7de.html

相关推荐

看起来这里没有任何东西...

发布评论

感谢您的支持