将变量作为在 NXT 内置存储器中储存值的位置。其它编程模块可通过数据线连接至该模块读取变量的当前值(甚至可以进行更改)。 创建变量 - 要创建变量,必须首先在软件的“编辑”菜单中选择“定义变量”命令。在对话框中,为新的变量命名,名称要简短且易懂,然后设置变量保存的数据类型(例如,文本、数字或逻辑)。
- 然后将“变量”模块拖入程序并从列表中选择变量的名称。
- 选择“读取”或“写入”变量。选择写入变量将通过最新信息覆盖当前值来更改变量值。要进行此操作,必须将输入数据线连接至将提供最新信息的模块数据中心。
- 可为变量设置一个起始恒量值,在输入框中键入(如果变量数据类型设置为逻辑,则可使用单选按钮)。
注:如果需要更改数据类型或变量的名称,返回“编辑”菜单的“定义变量”命令并更改设置。
使用变量
变量值将随时间而变化。可能创建一个称为“记录光线强度”的变量,并将初始值设为 50。然后当机器人(装有光线传感器)移动到某个位置时,可使用“变量”模块(设置为“写入”)记录该位置的当前光线强度。要进行此操作,可从“光线传感器”模块连接输出数据线至“变量”模块的输入接头。此后,在程序中可使用“变量”模块(设置为“读取”)以读取在该位置记录的光线值。其它通过数据线连接至该模块输出接头的模块可以访问变量中保存的信息(例如,记录的光线强度)。 - 将模块放置于工作区域时,模块数据中心将自动打开。数据线必须连接至该模块的输出接头,以便其它模块可以读取变量的当前值。要向变量写入新的信息,必须也将输入数据线连接至模块的数据中心。(有关更多信息,请参见以下“数据中心”部分。)
配置变量模块
- 在该列表中,使用“编辑”菜单的“定义变量”命令选择所创建的变量。
- 选择读取变量的当前值或向变量写入新信息。
- 要为变量设定恒量值,在输入框键入数字或文本或如果变量为逻辑数据类型,使用单选按钮。请记住,如果输入数据线连接至模块且“变量”模块设置为“读取”,通过数据线动态传入的新信息将覆盖任何恒量值。
注:如果需要更改数据类型或变量的名称,返回“编辑”菜单的“定义变量”命令并更改设置。
在主程序和我的模块之间共享变量数据
为了在主要程序和“我的模块”之间(相当于在两个 .rbt 文件之间)共享数据,需要执行两项操作:- 在主程序和“我的模块”内定义具有相同名称和数据类型的变量。
- 在主程序和“我的模块”中使用该变量模块。
在程序的任何位置读取/写入 数据,都会保存在NXT的上相同存储器位置上。(即,无论在主程序和“我的模块”中的任何位置更改该变量的数据,处于程序其他位置的该变量模块中的数据会同时更改)
配置变量模块的数据中心
可以通过将数据线(从其它模块的数据中心)连接至“变量”模块的数据中心动态地控制“变量”模块。在模块数据中心放置于工作区域之后,单击模块左下角的选项卡可打开模块数据中心。 承载至模块的输入信息的数据线连接至数据中心左侧的接头。承载输出信息的数据线连接至右侧的接头。 [A] 输入接头
[B] 输出接头
[C] 数字数据线(黄色)
[D] 逻辑数据线(绿色)
[E] 文本数据线(橙色)
[F] 故障数据线(灰色)
从输入接头将数据传输至输出接头
如果输入接头有对应的输出接头(参见上面的 A),输入数据将从输入接头传输至输出接头,而不会被更改。在这种情况下,如果输入接头连接至输入数据线,仅可使用输出接头;连接输出数据线至此类输出接头而不连接输入数据线将导致输出数据线“故障”(并显示为灰色)。
承载特定类型数据的数据线
每条数据线在模块之间承载特定类型的数据。例如,如果数据线与模块数据中心的逻辑接头连接,则它仅可连接至另一模块数据中心的逻辑接头。下表显示了每个接头可接受或发送的数据类型。
数据线颜色
数据线通过特定的颜色识别:承载数字数据的数据线为黄色,承载逻辑数据的数据线为绿色,承载文本数据的数据线为橙色。
“故障”数据线
如果将数据线连接至数据类型错误的接头,则数据线将会出现“故障”(并显示为灰色)。如果数据线故障则无法下载程序。如果单击“故障”数据线,便可在工作区域右下角的帮助小窗口中查看“故障”原因。
数据必须位于接头的可能范围内
如果输入数据线所传输的值超出其所连接接头的可能范围,模块将忽略该值或将该值改为范围内。对于仅允许较少输入值的接头(例如:仅 0、1 或 2),接头将忽略传入值超出范围的输入。对于可接受较大输入范围的接头(例如:0 - 100),接头将强制性将任何超出范围的输入改为范围内。例如,如果“移动”模块的“电源”接头收到输入值 150,模块会将输入值更改为 100(即,位于“电源”接头范围的数字)。
此表显示了“变量”模块数据中心上接头的不同特性:
| 接头 | 数据类型 | 可能范围 | 值的含义 | 忽略此“接头”的条件... | | 数值* | 任何 | | 读取或写入的值 | |
*此数据接头将根据变量数据类型更改外观。
|