Skip to main content

示例:代理

产品CODESYS Application Composer

此示例展示了如何使用代理。代理使模块实例能够相互通信。应用程序的各个部分位于不同的控制器上。

描述

本例的模块描述了一栋建筑物和一个棚屋,每个建筑物和棚屋都有自己的控制器,因此每个模块都在物理上分离的硬件上运行。

在建筑物中,棚屋通过“棚屋代理”进行引用,该代理是专门为棚屋模块创建的,用于需要通信时使用。通过“棚屋代理”,建筑物控制器可以与棚屋控制器交换(发送和接收)信息。

超出控制器限制的通信通过网络变量列表进行,这些列表由控制器自动创建和配置CODESYS Application Composer如有必要。代理未通过“MirrorVars”实现。无法通过准备好的“RMP”进行通信。

_ex_ac_img_proxy1.png

有关详细信息,请参阅:For more information, see: 代理部分。

附加信息

为了运行此示例,您需要使用连接到同一网络的两个控制器。使用CODESYS Application Composer,将它们下载到控制器并启动它们,您可以使用现有的可视化效果来观察和测试它们。

例如,运行于CODESYS Control Win可以用作已配置虚拟机上的第二个控制器。

所有应用作代理的功能块本身必须扩展AC.ProxyInstance功能块或实现AC.IProxyInstance接口。代理功能块通常也实现与模块相同的接口,以便进行通信。

_ex_ac_img_proxy2.png

如果使用“MirrorVar”变量,则从模块传输或镜像到代理的变量必须在两个应用程序的功能块中具有相同的名称和类型。这可以在模块声明中指定。

除了镜像变量外,还可以通过 RMP 进行通信。该通信在代理实例的主要部分以及模块功能块的循环调用方法之一中完成。为此,提供了一个 64 字节数组,每个实例都具有读写访问权限。

系统要求和限制

编程系统

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

运行时系统

CODESYS Control Win(版本 3.5.17.0)

附加组件

CODESYS Application Composer

注意

_example_icon.png下载项目