Skip to main content

示例:AC模块教学

产品CODESYS Application Composer

此示例展示了如何通过简单的照明控制来创建和使用可学习模块。

描述

CODESYS Application Composer 提供应用程序的模块化配置的能力。当该结构在模块树中定义一次时,就会从中生成一个静态 IEC 应用程序。发生这种情况时,模块直接与其子模块连接,并且无法在运行时更改。

此示例演示如何在运行时从一组单独的模块创建动态配置。

此外,该配置会被持久存储,以便每次重新启动应用程序时都可以下载最后设置的配置。

您可以使用包含的库,无需任何修改。该项目只是展示了该库的可能用例。所有需要的修改都已通过关键字注释的方式标记在代码中 AC_ModuleTeaching

附加信息

建筑学

可学习模块的理念基于学生-科目-教师原则。

学生可以学习老师教给他们的科目。学生是否可以学习特定科目由学生决定。因此,一个功能模块配置始终必须由一名教师、至少一名学生和至少一个科目组成。

考虑到架构 AC_ModuleTeaching 库,设计结果如下:

_example_img_ac_module_teaching1.png

TeacherModule, SubjectModule, 和 PupilModule (或者 TeacherRegistration)功能块派生自 AC.Module 功能块。这允许在模块树中配置这三种模块类型。

只有两个功能块与可学习模块的实现相关:

  • SubjectModulePupilModule

  • TeacherModule 可以作为模块插入到模块树中,无需任何修改或附加配置。

顺序

初始化阶段进行如下:

_example_img_ac_module_teaching2.png

Init() 在第一个 PLC 周期中从基本 Application Composer 上下文中调用。

  • TeacherModule:该模块扫描所有模块实例并报告每个实例 SubjectModulePupilModule (Register(THIS^))。这就建立了模块交叉通信的基本框架。

  • SubjectModule:每个模块都为自己分配了一个唯一的 SubjectID (UDINT)。

  • PupilModule:每个模块必须注册自己的 SubjectIDs,它应该能够通过 AddSubjectID(UDINT)

学习过程如下:

_example_img_ac_module_teaching3.png

对于任何事件(例如,单击可视化中的“学习”按钮), SubjectModule 实例报告给 TeacherModule 关于的电话 ReportTeacher()。在 ReportTeacher(), Report(THIS^)TeacherModule 被隐式调用。这 TeacherModule 提供了 SubjectModule 与所有人的接口 PupilModule 实例通过 Learn(ISubject) 有机会学习 SubjectModule。学习一个 SubjectModule 意味着 PupilModule 可能需要投射并标记 SubjectModule 本身(例如,通过存储在成员变量中)。

应用

对于任何特定的应用程序,您必须分别考虑什么人和谁将扮演“受试者”和“学生”的角色。例如,主体可以由传感器代表,瞳孔由演员代表。在该示例中,光传感器用于对象,光传感器用于瞳孔。光可以学会聆听不同传感器的声音,或者稍后再次忘记这些传感器。

实施中应注意以下几点:

  • 光扩展 ACMT.Pup

    Init(): 添加可学习的内容 SubjectID

    Learn(): 这个方法必须被覆盖。首先,应该调用基本实现:

    IF SUPER^.Learn(itfSubjectToLearn := itfSubjectToLearn) = ACMT.ERROR.NO_ERROR THEN

    如果成功,则可以学习该主题。否则,该科目就无法学习并且可以被忽略。

    END_IF

    ForgetAll():这个方法也应该被覆盖并再次删除本地存储的主题。

  • SwitchPush EXTENDS ACMT.SubjectModule // 间接通过继承链 SwitchOnOff -> SwitchBase

    Init():定义 SubjectID

    CallPrioMediumStart(): 呼叫 ReportTeacher如果按下传感器的时间超过 3 秒。

  • 持久化管理器

    通过添加持久性管理器,可以保存所学的科目。因此,当应用程序重新启动时,将恢复上次状态。

系统要求和限制

编程系统

CODESYS Development System (版本3.5.5.0或更高版本)

运行时系统

CODESYS Control Win (版本3.5.5.0)

附加组件

CODESYS Application Composer

注意

_example_icon.png 下载 项目

安装软件包后,您可以在 C:\Users\<user>\CODESYS Examples\AC Module Teaching Example 目录中找到示例项目。