All examples work with or without tls communication. If tls connection is required, the addon 'CODESYS Security Agent' is mandatory to create certificates. To open the security agent click at the bottom right on the security agent symbol:
Select Devices -> there you can create a new certificate for NBSServer and also for Client, if NBSServer or NBSClient information is not available, a download in advance is required.
The project contains two devices, a CODESYS Control Win V3 and a CODESYS Control Win V3 x64, each with one application in it to simulate a Server - Client relationship. Set up in Client -> CLIENT_PRG the client common name and the appropriate ip address, as well as for Server -> SERVER_PRG. If tls communication is not necessary the variable myTLSContext can be removed (SERVER_PRG and CLIENT_PRG). Server application (myServer) should be enabled first.
The project is based on TCP Server <-> TCP Client Example, but in client application there is an instance of ClientOptions(FB). This function block (is part of POU part) includes three options which are set during opening the socket. In declaration part of CLIENT_PRG the options are set with method SetOptionProvider().
In server application there is no option set for TCP_Server (default value is used), but it can be done the same way. If udp communication is used, than the options can be set in udp peer, also with the same method SetOptionProvider().
Example for TCP Reader <-> TCP Processor <-> TCP Writer
The project contains two devices, two CODESYS Control Win V3 x64, each with one application in it to simulate a TCP Server - TCP Client relationship. The server only returns the values which where send from the client. The client inclues an example where asynchronious read, process and write can be done via the function blocks NBS.TCP_Reader, NBS.TCP_Processor and NBS.TCP_Writer. The NBS.TCP_Processor is overwritten in this example to implement the ProcessStream method. Also this example shows a possibility to read, manipulate and write synchroniously via direct TCP_Client methods Read() and Write(), if xAsync is FALSE.
Be aware that for this Server - Client relationship a TLS context is used, so its mandatory to import in the client the server certificate and vice versa. For unencrypted communication the NBS.TLSContext can be deleted.
The project contains two devices, two CODESYS Control Win V3 x64, each with one application in it to simulate a sychronious UDP Producer - UDP Consumer relationship. The producer application just returns the data which was received before, therefore the interface method of IPeer Receive() and Send() are used. Initially the producer creates a string and this sting is send to costumer. The consumer device also includes a peer and here the data is received via direkt method call of peer Receive2() (its similar to Recieve() but has one more output "eTransmission" to show if frame is e.g. unicast. Between receive and send a method ChangeStringValue is called to change the payload of the communication. Because its UDP its recommended to first enable Consumer and then Producer.
Example for UDP Consumer <-> UDP Processor <-> UDP Producer
The project contains two devices, two CODESYS Control Win V3 x64, each with one application in it to simulate a UDP Producer - UDP Consumer relationship. In the Conusmer application there is a UDP_Processor in it, which extends the NBS.UDP_Processor, so this function block implements the interface method ProcessPacket. In this method (which is called from interface) some data is processed.
System requirements and restrictions
System requirements and restrictions
CODESYS Development System Version 126.96.36.199 or higher