编写程序中的模型也称为程序模块,是构成程序的基本元素,如图 1所示。编写图形化控制程序的过程是对程序模块的添加、连接、组合、设置属性的过程。

各种程序模块

添加模块

程序编辑器中有常规方法、拖拉菜单和容器菜单3种添加模块的方式,其中的后2种方式为编写控制程序带来了极大的便利,使得在编写程序时能更加享受编程的乐趣。

常规添加

向编辑区添加模块

如果“模型”面板没有打开(打开了“工作台”或“模板”面板时),单击“模型”面板,单击“控制”、“逻辑”、“运算”、“变量”、“侦测”或“驱动”中的任意一项模型分类,以显示模型列表。按以下步骤添加模块到编辑区:

1. 在模型列表中单击选择要添加到编辑区的模块图标;

2. 鼠标移到编辑区,模块随着鼠标移动,移动鼠标到编辑区的空白处;

3. 单击鼠标左键,模块被添加到编辑区。

单击选择模块图标后,如不想添加此模块,可继续选择其它模块图标,或单击“操作”>“选择”取消添加操作,切换到“选择”状态。

向容器内添加模块

控制程序中某些模块的容器需要添加其它模块才能正常执行,如向“if判断”的容器中添加 “大于”模块条件,按以下步骤操作:

编辑区内已有“if判断”模块。

1. 使用“向编辑区添加模块”的方法添加“逻辑”类中的“大于”模块;

2. 鼠标左键拖动“大于”模块到“if判断”的容器上,“if判断”的容器出现白色的框线,松开左键,“大于”模块被添加到“if判断”的容器中,容器自动缩放,以适应“大于”模块。

添加模块应注意以下事项:

拖动某些不符合语法规则的模块到容器中时,松开鼠标后,模块的拖动的操作被复原,回到拖动之前的位置。如“侦测”类中的“距离”模块直接拖动到“if判断”容器中,是不符合语法的操作。

外形为“方形”的模块可以放置到“方形”的容器中,外形为“圆角形”的模块可以放置到“圆角形”的容器中。不同外形的模块和容器不能组合。

容器可以嵌套,嵌套时所有容器自动缩放以适应放入的模块。

拖拉菜单

使用“拖拉菜单”可以快速在可连接模块后添加新模块,如在“开始”模块后添加“控制”类中的“while永远循环”模块,按以下步骤操作,如图 2所示:

1. 鼠标指针移动到“开始”模块的半圆形出口连接点上,出现更大的红色半圆热点;

2. 在红色热点上按住鼠标左键,向下拖动到空白区域松开左键,出现“拖拉菜单”;

3. 鼠标移到“拖拉菜单”中的“流程”项上以显示子菜单,单击子菜单中的“while 永远循环”图标,将“while 永远循环”模块添加编辑区,并自动与“开始”模块之间出现流程线连接。

使用“拖拉菜单”添加模块

当出现拖拉菜单,不需要添加模块时,在编辑区空白处单击。

拖拉菜单用于编写程序结构,可快速添加并自动连接“可连接模块”,使编写图形化程序非常方便。

使用“拖拉菜单”应注意以下事项:

拖拉菜单仅可用于还未连接模块的出口连接点,模块的“出口连接点”已连接模块时,使用拖拉菜单无效。例外情况:当模块是连接到“end if”模块时,仍可使用拖拉菜单。

仅在循环体内的模块上使用拖拉菜单时,“流程”子菜单才会出现“跳出循环”和“跳出当前循环”模块。

“子程序”模块不会出现在拖拉菜单中,需要使用“常规方法”添加。

容器菜单

使用“容器菜单”可以快速在模块容器中添加新模块,如在“if条件判断”模块容器中添加“逻辑”类中的“大于”模块,按以下步骤操作,如图 3所示:

1. 在“if判断”模块的容器中单击右键,出现“容器菜单”;

2. 在“容器菜单”中单击“大于”模块图标,“大于”模块被添加“if判断”容器中。“if判断”模块的容器自动缩放,以适应“大于”模块。

使用“容器菜单”添加模块

使用“容器菜单”应注意以下事项:

容器菜单中的模块均是可放置到容器中的不可连接模块。

单击模块容器出现的容器菜单,菜单中的模块是可放置此容器中的常用模块,不一定包含了可放置到此容器的所有模块,某些模块仍需要手动向容器内添加,如运算类的“数学函数”模块。

选择模块

编写程序时,对模块的移动、属性设置等操作需要先选择模块,选择模块有以下方式:

● 单选模块:在模块的主体上单击左键;

● 多选模块:按住键盘“Ctrl”键,依次在要选择的模块上单击左键,选择完毕后松开“Ctrl”键;

● 框选模块:按住键盘“Shift”键,鼠标左键在编辑区的空白处按下并拖动,白色矩形显示框选范围,选定合适的范围后松开鼠标左键,再松开“Shift”键,所有被框选的模块被选中。

● 工作台选择模块:单击“工作台”显示工作台列表,在工作台列表中单击模块名称,模块被选中,视角自动以选中的模块为中心。

取消选择:在编辑区的空白处单击,取消选择以任何方式选中的模块。

删除模块

要删除模块,可用以下方式:

● 选择要删除的模块,单击“操作”>“删除”,将模块删除;

● 选择要删除的模块,按键盘上的“Delete”键,将模块删除;

删除模块会有以下几种情况:

● 删除独立的单个模块,此模块被删除;

● 删除有容器的模块,模块本身及容器内的模块均被删除;

● 删除“while条件循环”、“while永远循环”、“for次数循环”时,连接到循环体内的模块均被删除;

● 删除“if判断”时,连接到条件成立和条件不成立的分支中的模块均被删除,与此“if判断”对应的“end if”也被删除;

● 删除“子程序”模块时,连接到“子程序”模块的整个子程序均被删除;

删除模块时注意以下事项:

“开始”模块不能被删除;

放置到容器内的模块不能被直接删除,需要将其拖到容器外之后,再删除;

“end if”模块不能单独删除,删除与之对应的“if判断”模块后,自动被删除;

连接模块

模块的连接操作有“连接”、“重新连接”和“断开连接”3种。

连接

模块之间需要“连接”构成程序流程,如连接“开始”模块和“while永远循环”模块,按以下步骤操作:

1. 鼠标指针移动到“开始”模块的半圆形出口连接点上,出现更大的红色半圆热点;

2. 在红色热点上按住鼠标左键,并拖动到“while永远循环”模块主体上,此模块的主体出现白色线框;

3. 松开鼠标左键,“开始”模块与“while永远循环”之间用流程线连接起来,流程线的流动方向显示了程序的执行流程——从“开始”模块到“while永远循环”模块。

重新连接

已连接好的模块可以重新连接,以修改程序的执行流程,如将“开始”模块重新连接到“while条件循环”,重新连接的操作方法与“连接”相同,步骤如下:

1. 鼠标指针移动到“开始”模块的半圆形出口连接点上,出现更大的红色半圆热点;

2. 在红色热点上按住鼠标左键,并拖动到“while条件循环”模块主体上,此模块的主体出现白色线框;

3. 松开鼠标左键,“开始”模块与“while永远循环”之间的流程线消失,与“while条件循环”之间出现流程线,此时的流程为——从“开始”到“while条件循环”。

断开连接

可断开模块与上个流程模块的连接,如断开上例中“开始”模块与“while条件循环”模块之间的连接,操作步骤如下:

1. 选择“while条件循环”模块;

2. 单击“操作”>“断开”,“开始”模块与“while条件循环”模块的连接被断开,它们之间的流程线消失。

断开连接时注意事项:

只能断开与上个流程模块的连接,不能断开与下个流程模块的连接;

“end if”模块执行“断开”操作无效;

未直接或间接连接到“开始”或“子程序”的模块,相当于代码程序中的“注释”。这些模块不会被程序执行,保存重新打开控制程序之后,这些模块会被保留。

排列模块

手动排列

编辑区内的任何模块可以移动位置,操作步骤如下:

1. 选择要移动的模块(可多选,参见5.2),在模块上(多选时,在任意一个选中的模块上)按住鼠标左键并拖动;

2. 拖动到目标位置后,松开鼠标左键。

自动排列

单击“操作”>“自动排列”,所有处于“开始”或“子程序”模块连接范围的模块按照软件内置的规则自动排列。未连接到“开始”或“子程序”模块的模块不会自动排列。