Skip to main content

示例:网络基础服务

产品CODESYS 基础库

该软件包包含的多个示例项目 NetBaseService 图书馆。

无论是否使用 TLS 通信,所有示例均可使用。如果需要 TLS 连接,那么 CODESYS Security Agent 要创建证书,绝对需要附加组件。要打开 CODESYS Security Agent,单击 “安全客户端” 图标 _cds_icon_cyber_screen_grey.png 在右下角。

设备 选项卡,您可以为创建新证书 NBSServer 以及对于 NBSClient。如果信息为 NBSServer 或者 NBSClient 不可用,则需要先下载。

描述

示例: TCP_Server_TCP_Client

该项目包含两个 CODESYS Control Win x64 控制器,每个控制器都有一个应用程序,用于模拟服务器与客户端的关系。在中设置共享客户机名称和相应的 IP 地址 CLIENT_PRG 既可以为客户编程,也可以在 SERVER_PRG 服务器程序。如果不需要 TLS 通信,则变量 myTLSContext 可以删除 (SERVER_PRGCLIENT_PRG)。服务器应用程序 (myServer) 应首先激活。

示例: DemoClientServerOptionProvider

该项目基于 TCP_Server_TCP_Client 示例。在客户程序 CLIENT_PRG,一个实例 ClientOptions 函数块已声明。此功能块(在 POU 池中)包含三个选项,这些选项是在套接字打开时设置的。在声明部分中 CLIENT_PRG,则使用以下方法设置选项 SetOptionProvider() 方法。在服务器程序 SERVER_PRG,没有选择 TCP_Server 已设置为使用默认值。如有必要,可以按照与客户机相同的方式设置该选项。如果使用 UDP 通信,则可以在 UDP 对等体中设置选项,也可以使用相同的 SetOptionProvider() 方法。

示例: TCP_Reader_TCP_Processor_TCP_Writer_Example

该项目包含两个 CODESYS Control Win x64 控制器,每个控制器都有一个应用程序,用于模拟服务器与客户端的关系。服务器仅返回客户端发送的值。这个 CLIENT_PRG 程序显示了如何使用异步读取、处理和写入的示例 NBS.TCP_ReaderNBS.TCP_Processor,以及 NBS.TCP_Writer 功能块。这个 NBS.TCP_Processor 在此示例中,函数块被重写以实现 ProcessStream 方法。此示例还显示了使用直接 TCP 客户端方法的可能性 Read()Write() 在以下情况下同步读取、操作和写入 xAsync=FALSE

请注意,这种服务器与客户端的关系使用 TLS 上下文,因此绝对需要将服务器证书导入客户端,反之亦然。对于未加密的通信, NBS.TLSContext 功能块可以删除。

示例: UDP_Receive_Send_Example

该项目包含两个 CODESYS Control Win x64 控制器,每个控制器都有一个应用程序,用于模拟 UDP 生产者与 UDP 使用者的同步关系。制片人节目 PRODUCER_PRG 仅返回先前已经收到的数据。因此, Receive()Send() 的接口方法 IPeer 使用功能块。首先,生产者创建了一个字符串并将其发送给消费者。消费者控制器还包含一个对等体,这是通过来自对等方的直接方法调用接收数据的地方 Receive2()。这类似于 Receive(),但它还有额外的输出 eTransmission 例如,为了显示帧是否为单播。在接收和发送之间, ChangeStringValue 调用方法以更改通信的有效载荷。因为这是 UDP,所以建议先启用消费者,然后启用生产

示例: UDP_Processor_Example

该项目包含两个 CODESYS Control Win x64 设备,每个设备都有一个应用程序,用于模拟 UDP 生产者与 UDP 消费者之间的关系。在消费者应用程序中,有一个 UDP_Processor 这扩展了 NBS.UDP_Processor 所以这个函数块实现了 ProcessPacket 接口方法。一些数据使用此方法(由接口调用)进行处理。

系统要求和限制

编程系统

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

运行时系统

CODESYS Control Win (版本 3.5.19.0)

附加组件

-

注意

_example_icon.png 下载 项目