<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Ticket search results</title><link>https://forge.codesys.com/tol/iec-snippets/snippets/</link><description>You searched for labels:"UDP"</description><language>en</language><lastBuildDate>Mon, 20 Dec 2021 12:32:15 -0000</lastBuildDate><item><title>UDP Send and Receive with Net Base Services SP16</title><link>https://forge.codesys.com/tol/iec-snippets/snippets/5/</link><description>Requries Library: NetBaseSrv = Net Base Services, 3.5.16.0 using the Namespace NBS

~~~ST
PROGRAM PLC_PRG
VAR
	//Control
	xStart : BOOL; //Use this to toggle the system ON
	xSend  : BOOL; //Send data one time. needs a false to true transition
	
	//Settings
	uiSendToPort : UINT := 6454;
	uiReceivePort : UINT := 6454;
	theirIP : NBS.IPv4Address := (ipAddress := '10.0.0.10');
	myIP : NBS.IPv4Address := (ipAddress := '10.0.0.9');
	MySendData : ARRAY [0..529] OF BYTE := [TO_BYTE('A'),TO_BYTE('r'),TO_BYTE('t'),TO_BYTE('-'),
                                       TO_BYTE('N'),TO_BYTE('e'),TO_BYTE('t'),00,
                                       00,16#50,0,14,
                                       0,0,0,0,
                                       0,2,
                                       512(0)]; //SOME RANDOM DATA
	NumberOfBytesToSend : UDINT := 20;
	
	//Receive Data
	MyReceiveData : ARRAY [0..529] OF BYTE;
	WhoSentThisData : NBS.IIPAddress;
	
	//Just some function Blocks
	myUDP_Peer : NBS.UDP_Peer;
	myUDP_Send : NBS.UDP_Send;
	myUDP_Receive : NBS.UDP_Receive;
END_VAR
~~~


~~~ST
myUDP_Peer(
	xEnable:= xStart, 
	xBusy=&gt; , 
	xError=&gt; , 
	eErrorID=&gt; , 
	itfAsyncProperty:= , 
	itfIPAddress:= myIP, 
	uiPort:= uiReceivePort, 
	itfMulticast:= , 
	xActive=&gt; , 
	itfPeer=&gt; );

myUDP_Send(
	xExecute:= xSend, 
	udiTimeOut:= 1000000, // 1second timeout
	xDone=&gt; , 
	xBusy=&gt; , 
	xError=&gt; , 
	eErrorID=&gt; , 
	itfTSNContext:= , 
	itfPeer:= myUDP_Peer.itfPeer, 
	itfIPAddress:= theirIP, 
	uiPort:= uiSendToPort, 
	pData:= ADR(MySendData), 
	udiSize:= MIN(NumberOfBytesToSend,SIZEOF(MySendData)), 
	udiCount=&gt; );

xSend := FALSE;
	
myUDP_Receive(
	xEnable:= myUDP_Peer.xActive, 
	xBusy=&gt; , 
	xError=&gt; , 
	eErrorID=&gt; , 
	itfPeer:= myUDP_Peer.itfPeer, 
	pData:= ADR(MyReceiveData), 
	udiSize:= SIZEOF(MyReceiveData), 
	xReady=&gt; , 
	itfIPAddressFrom=&gt; , 
	uiPortFrom=&gt; , 
	udiCount=&gt; );
~~~</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">i-campbell</dc:creator><pubDate>Mon, 20 Dec 2021 12:32:15 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com/tol/iec-snippets/snippets/5/</guid></item></channel></rss>