通常,重构是一种在不改变现有软件代码功能的情况下改进其设计的技术。
在CODESYS 中,重构提供了重命名对象和变量以及更新引用引脚的函数。您可以显示已重命名对象和变量的所有出现次数,然后一次性或单独重命名它们。在“工具 选项” 中,您还可以配置CODESYS 将在何处提示您进行重构。
重命名全局变量
要求:打开的项目至少包括一个功能块“FB” 和一个全局变量列表。全局变量列表“GVL” 在编辑器中打开,其中包含变量声明(例如:iGlobal
)。“FB” 使用iGlobal
。
在整个项目中重命名全局变量
-
选择全局变量名称
iGlobal
。 -
右键单击变量,然后单击“重构 重命名 iGlobal” 。
-
在“Rename” 对话框中,在“New name” 输入框中键入名称,例如
iGlobalOK
,然后单击“OK” 。“Refactoring” 对话框将打开。在左侧的设备树视图中,“GVL” 和“FB” 对象以红色和黄色突出显示。在右侧视图中,“FB” 在编辑器中打开,
iGlobal
已重命名为iGlobalOK
。 -
单击“OK” 。
-
您的项目中没有全局变量
iGlobal
。现在,iGlobalOK
无处不在。
重命名整个项目的全局变量(POU 除外)
-
选择全局变量名称
iGlobal
。 -
右键单击变量,然后单击“重构 重命名 iGlobal” 。
-
在“Rename” 对话框中,在“New name” 输入框中键入名称,例如
iGlobalTest
,然后单击“OK” 。“Refactoring” 对话框将打开。在左侧的设备树视图中,“GVL” 和“FB” 对象以红色和黄色突出显示。在右侧窗口中,功能块“FB” 在编辑器中打开。
iGlobalTest
而不是iGlobal
。 -
在右侧视图中单击右键。
-
单击“拒绝此对象” ,然后单击“确定” 。
全局变量
iGlobal
可在项目中的“FB” 中使用。现在,变量iGlobalTest
是在前一个变量出现的对象中指定的。信息视图中的错误信息显示
iGlobal
标识符未定义。
添加和删除输入变量
在程序块的声明部分,可以使用重构命令添加和删除输入和输出变量。CODESYS 在程序块的出现位置和调用位置执行更新。您可以单独接受或拒绝这些更新。为此,还将打开“Refactoring” 对话框。
要求:在编辑器中打开FCT
(功能类型)POU。函数已包含输入变量input1
,input2
, 和inputx
。它们在PLC_PRG
和POU
程序中被调用。
-
在 FCT 函数的声明部分设置焦点。
-
单击“重构 添加变量” 。
会打开用于声明变量的默认对话框。
-
声明变量
input_3
,其作用域为VAR_INPUT
,数据类型为INT
。单击“OK” 关闭对话框。“Refactoring” 对话框将打开(见下图)。受影响的地点用黄色标出。(1)+(2)
-
在右上角,从下拉列表中选择“添加带有占位符文本的输入” 。(3).
-
在窗口左侧,单击其中一个高亮显示的对象(例如
PLC_PRG
)。右键单击并选择“Accept Whole Project” 命令,将新变量添加到FCT
中整个项目的新使用位置。您可以在
PLC_PRG
的右侧视图中看到执行部分的变化:占位符_REFACTOR_
会出现在添加新变量的位置。 -
单击“OK” 关闭“Refactoring” 对话框。
-
单击“编辑 查找” 。在项目中搜索"_REFACTOR_",检查并编辑受影响的位置。
-
请注意:作为替代方法,你可以在新变量中插入另一个初始化值,而无需先使用占位符。在这种情况下,在步骤 4 中选择 "添加带以下值的输入",然后在下拉列表右侧的字段中输入值。

在 CFC 代码块中使用占位符文本的新变量示例:

请注意,您也可以通过重构删除变量。
在声明中对变量重新排序
在功能块的声明部分,您可以通过重构来改变声明的顺序,这适用于作用域为VAR_INPUT
、VAR_OUTPUT
或VAR_IN_OUT
的声明。
要求:POU 的声明部分是开放的,包括声明等:
VAR_INPUT invar2 : INT; invar1 : INT; in : DUT; bvar : BOOL; invar3 : INT; END_VAR
-
右键单击该声明块可访问上下文菜单。
-
单击“重构 重新排序变量” 。
“重新排序” 对话框打开,显示
VAR_INPUT
变量列表。 -
拖动“invar1:INT;” 进入“invar2 之前的位置。” 进入。
invar1
声明现在位于顶部位置。 -
单击“OK” 关闭对话框。
“Refactoring” 对话框将打开。受影响的位置用黄色标出(见上图)。
-
单击“OK” 接受功能块的新订单。
更改变量声明并自动应用重构
重构可以在重命名变量时帮助你进行声明(通过 "自动声明")。
要求:功能块fb_A
.
-
单击“工具 选项” 。
“选项” 对话框将打开。
-
选择“Refactoring” 类别。
-
在“自动声明” 中,激活选项“重命名变量” 和“添加或删除变量,或更改命名空间” 。
-
双击功能块
fb_A
。 -
在
fb_A
的声明中选择一个变量,例如iA
。作为替代方法,您可以将光标设置在变量前或变量中。 -
指定“编辑 声明变量” ([Shift]+[F2]).
“声明变量” 对话框将打开。对话框包括
iA
的设置。 -
将
iA
更名为iCounter_A
。 -
选项“Changes by means of refactoring” 出现并激活。
-
单击“OK” 。
打开对话框“Refactoring” “Renaming from iA to iCounterA” 。所有受变量重命名影响的位置都会在此处标出。
-
单击“OK” 关闭对话框。
更改已应用。