在比较复杂的程序中,Robolab 提供了子程序和 sub VI 的功能帮助我们简化程序过程,使程序看上去更加的简洁、明晰。

  子程序可以理解为一段特殊的图标集合,他可以在一段程序中被反复使用。子程序使用时首先通过图标机器人编程-robolab2.9 对子程序进行创建并装入 RCX 的内存, 这看起来有些像是程序的一条分支,然而与任务分支不同之处在于子程序的不能立即执行,只有当程序执行到“子程序运行” 机器人编程-robolab2.9图标时才被执行,子程序执行完毕后,程序回到机器人编程-robolab2.9 图标继续执行后面的程序图标。在 Robolab 中对于每个程序,内存中最多可以有 8 个子程序,子程序图标右下角的数值参数指定(0—7) 。

  程序范例:

  对于一个双马达的机器人,通过一个光线传感器检测它下面的桌面,当机器人行驶到桌子边缘时后退转弯,避免掉下去。

  机器人编程-robolab2.9

  这段程序创建了 1 号子程序,它的内容就是当机器人遇到危险时的对策,这段程序的执行只有当光线传感器因为没有探测到桌面反射时才执行。值得一提的是,自程序在被创建之后就被装入 RCX 的内存中,即使你下载了一个新的程序,子程序仍然会驻留程序结束的时候需要发送邮件“4”来让机器人停下设定时间为 300 秒《ROBOLAB 2.9 指南》 第三章:发明家指南内存,直到你使用机器人编程-robolab2.9 图标删除子程序,或者干脆重新下载固件。

  Sub VI 和子程序最大的区别在于子程序将程序内容加载到 RCX 的一个独立的内存中,而 Sub VI 仅仅是将原本的图标集合在一个图标中,如果在一段程序中多次使用到sub VI 则相同的程序会被加载 10 次。

  程序范例:

  在机器人舞蹈程序中如果要将如下一段图标设置成一个 sub VI,并且可以输入舞步的步数。

  机器人编程-robolab2.9

  选定红框内的程序图标,注意不要选择 loop 循环的数值参数框,把它作为 sub VI的外部参数,如图:

  机器人编程-robolab2.9

  当然你可以自定义你的 sub VI 图标,双击图标 ,你会看到你所创建的 sub VI的前面板:

  机器人编程-robolab2.9

  同样,通过 window 下拉菜单选择 Show Block Diagram,察看程序内容:

  机器人编程-robolab2.9

  通过双击程序框右上角的 sub VI 图标来进行个性化的定义:

  机器人编程-robolab2.9

  看看我的定义图标:

  机器人编程-robolab2.9

  定义之后,用文件菜单对 sub VI 文件进行保存,你将来可以在任何程序中用 Selecta VI 来调用它。

  机器人编程-robolab2.9

本站内容未经许可,禁止任何网站及个人进行转载。