设计和开发
当您在类图中以图形方式编程时,您的更改会自动导致对类图中对象的适应 POU 查看和 设备 看法。新对象被插入到它们的基本结构中,并且现有对象被调整。例如,您可以通过类图在 POU 中插入声明。
这允许您在类图中设计应用程序的体系结构并同步获取合适的 POU。然后补充 POU 中的实现。
以下步骤为应用程序创建类图。
1. 创建项目
打开 CODESYS.
点击 .
指定名称和位置,然后选择 标准项目 模板。
这 标准项目 对话框打开。
为了 PLC_PRG 输入, 选择 结构化文本 (ST) 实现语言。
项目已创建。
选择 应用 代码并点击 .
这 添加 UML 类图 对话框打开。
指定对象名称
CD_Simple。选择 将项目结构导入活动类图 选项。
点击 添加.

将项目另存为
SimpleMachine.project.
2. 识别接口
接口确定公开可见的方法和属性以实现类。
打开类图的编辑器
CD_Simple.在里面 工具箱 查看,选择一个界面。
将界面拖到编辑器中。
这 添加接口 对话框打开。
指定名称
IBaseMachine.点击 添加 退出对话框。在里面 工具箱 查看,选择一种方法。
将方法拖到界面中。
这 添加接口方法 对话框打开。
指定名称
DoIt.指定返回类型
BOOL.点击 添加 退出对话框。在里面 工具箱 查看,选择一个属性。
将属性拖到界面上。
这 添加接口属性 对话框打开。
指定名称
StateNumber.指定返回类型
INT.点击 添加 退出对话框。
3. 识别类并实现接口
实现相同接口的不同类包含相同的方法和属性。如果稍后更改或扩展接口,那么这将影响所有实现类。
打开类图的编辑器
CD_Simple。在里面 工具箱 查看,选择一个类。
将类拖到编辑器中。
这 添加POU 对话框打开。
指定名称
FB_Machine。选择 功能块 选项。
对于实现语言,选择 UML 状态图 (SC).点击 添加 退出对话框。
班上
FB_Machine被添加到类图中。选择班级。
命令图标显示在类上方。
点击
实现 (IMPLEMENTS) 命令图标,然后单击IMachine界面。这 选择实现语言 对话框打开。
选择 结构化文本 (ST).
班上
FB_Machine继承了接口的属性和方法,因此实现了接口IMachine.
4. 概括
一般来说,一个类继承另一个类的属性和方法。
打开类图的编辑器
CD_Simple.在里面 工具箱 查看,选择一个类。
将一个类拖到编辑器中。
这 添加 POU 对话框打开。
指定名称
FB_Machine_A.选择 扩展 选项并指定类
FB_Machine在输入字段中。功能块
FB_Machine被扩展,因此它是FB_Machine_A.对于实现语言,选择 UML 状态图 (SC).点击 添加 退出对话框。
班上
FB_Machine_A在类图中创建。类之间存在泛化FB_Machine和FB_Machine_A.FB_Machine_A继承其属性和方法FB_Machine.在里面 工具箱 查看,选择 变量声明 元素并将其拖到类中
FB_Machine_A.这 申报变量 对话框打开。
指定名称
iCounter和数据类型INT.点击 好的 退出对话框。现在上课
FB_Machine_A除了继承的属性和方法之外,还有自己的变量。在课堂里
FBMachine_A, 选择方法DoIt()并按下 德尔 钥匙。从图中删除该方法,以及从图中删除的对象 设备 看法。继承功能块
FBMachine_A该方法不需要自己的特殊实现。相反,它调用方法DoIt基本功能块FBMachine必要时。注意
当您调用分配给基本功能块并继承的方法时,请使用指针
SUPER.
5. 实例化
打开类图的编辑器
CD_Simple.选择程序
PLC_PRG.命令图标显示在程序上方。
点击
作品 (VAR) 命令图标,然后单击FB_Machine_A班级。这 变量声明 对话框打开。
指定名称
fb_A.物体
fb_A班级的FBMachine_A被实例化。现在,具体形式的类实例是在运行时生成的。
类图显示与生成应用程序代码相关的所有对象。然而,最重要的是,类图可视化了对象之间的关系:谁实现了谁?谁继承谁?谁实例化什么?否则,此信息将隐藏在声明中,例如在 设备 看法。
6. 实施
打开功能块
FBMachine.声明功能块变量。
FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iState: INT; iMachine : INT; END_VAR实现功能块。
iState := iState + 1; // Dummy for control ID
实现它的方法
DoIt.METHOD PUBLIC DoIt : BOOL iMachine := iMachine + 1; // Dummy
实现属性的Get方法
StateNumber的FBMachine.StateNumber := iState;
实现属性的Set方法
StateNumber的FBMachine.iState := StateNumber;
打开功能块
FBMachine_A.声明功能块变量。
FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iCounter: INT; END_VAR
实现功能块。
iCounter := iCounter + 1;
实现属性的Get方法
StateNumber的FBMachine_A.StateNumber := iCounter;
实现属性的Set方法
StateNumber的FBMachine_A.iCounter := StateNumber;
点击 .
应用程序编译没有错误。

下载并启动应用程序。
可以监控功能块实例
fb_A.