⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_serial.st

📁 moudbus通讯协议, moudbus通讯协议, moudbus通讯协议,
💻 ST
📖 第 1 页 / 共 3 页
字号:
// ***************************************************************************
// ***																    ******
// *** Sendet Daten 黚er die im Handle definierte COM    				******
// *** erh鋖t man einen Error, kann man sich im WRLEN vergewissern,     ******
// *** wieviele gesendet wurden											******
// ****** ------------------------------------------------------------ *******
// ***  --> Buffer 	   = Pointer des Sendebuffers    		         	******
// ***  --> bufferLength = Gr鲞e des Buffers                            ******
// **   --> wrlen 	   = correct gesendet								******
// ***  <-- ret0       = Error Code                                     ******
// ***************************************************************************
//[<ret0]Error Code
//[>Buffer]Pointer des Sendebuffers
//[>bufferlength]Anzahl der zusendenden Bytes
//[>wrlen]Anzahl der richtig gesendeten Bytes
//
//[#ENGLISH]
// ***************************************************************************
// **************** 		 Serial COM Ser_Send       ***********************
// ***************************************************************************
// ***																    ******
// *** Sends DATA over the initialized COM				   				******
// *** If there is an Error, wrlen returns how many Bytes were sended   ******
// ****** ------------------------------------------------------------ *******
// ***  --> Buffer 	   = Pointer of sendbuffer	    		         	******
// ***  --> bufferLength = size of sendbuffer                           ******
// **   --> wrlen 	   = number of correct sended Bytes					******
// ***  <-- ret0       = Error Code                                     ******
// ***************************************************************************
//[>Buffer]Pointer to sendbuffer
//[>bufferlength]Bytes to send
//[>wrlen]number of correct sended Bytes
//[<ret0]Error Code: 0-20 detailed info -> DOC
FUNCTION GLOBAL Serial::Ser_Send
VAR_INPUT
	Buffer		: pVoid;
	bufferlength		: UDINT;
	wrlen		: ^UDINT;		// If there is an Error, you can see how many Bytes 
END_VAR							//  were send correctly
VAR_OUTPUT
	ret0		: DINT;			// Errorcode (look ErrorTable "GerError()" )	
END_VAR

	   	IF pHandle > 0 THEN
	   
	   		Error_S := ret0 := SERUSER_Send(pHandle, Buffer, bufferlength, wrlen);
	   		//  ret0 = -20  -> SENDERROR  ( in use, break, .. )
			//         -17  -> SENDBUF    ( wrong adress )
	   	ELSE
			Error_S := ret0 := SERUSER_GetError(pHandle);
	   	END_IF;

END_FUNCTION //GLOBAL serial::Ser_Send
//[#DEUTSCH]
// ***************************************************************************
// **************** 		 Serial COM RecvChar       ***********************
// ***************************************************************************
// ****																	******
// ***    liest "EIN" Zeichen des Empfangsbuffers 						******
// ***     und legt es in den 黚ergebenen Buffer						******
// ****** ------------------------------------------------------------ *******
// ***  --> Buffer 	   = Pointer des Empfangsbuffers   		         	******
// ***  <-- ret0       = Error Code                                     ******
// ***************************************************************************
//[<ret0]Error Code
//[>Buffer]Pointer des Empfangsbuffers
//
//[#ENGLISH]
// ***************************************************************************
// **************** 		 Serial COM RecvChar       ***********************
// ***************************************************************************
// ****																	******
// ***    Reads "ONE" CHAR of the receiving buffer 						******
// ***    and write it into the inputet buffer  						******
// ****** ------------------------------------------------------------ *******
// ***  --> Buffer 	   = Pointer to receiving buffer   		         	******
// ***  <-- ret0       = Error Code                                     ******
// ***************************************************************************
//[>Buffer]Pointer to receiving buffer
//[<ret0]Error Code: detailed info -> DOC
FUNCTION GLOBAL Serial::RecvChar
VAR_INPUT
	Buffer		: pVoid;	// Buffer Pointer
END_VAR
VAR_OUTPUT
	ret0		: DINT;		// returns an ErrorCode ("look GetError()")
END_VAR

	IF pHandle > 0 THEN
		Error_S:= ret0 := SERUSER_RecvChar(pHandle, Buffer);
	ELSE
		Error_S:= ret0 := SERUSER_GetError(pHandle);
	END_IF;

END_FUNCTION //GLOBAL serial::RecvChar
//[#DEUTSCH]
// ***************************************************************************
// **************** 		 Serial COM RecvBlock        *********************
// ***************************************************************************
// ****																	******
// ****   liest einen ganzen Block des Empfangsbuffers 					******
// ****   und legt es in den 黚ergebenen Buffer							******
// ****** ------------------------------------------------------------ *******
// ***  --> Buffer 	   = Pointer des Empfangsbuffers   		         	******
// ***  --> rdlength   = Anzahl der zuslesenden Bytes					******
// ***  --> rdlen	   = Anzahl der correct gelesenen Bytes 			******
// ***  <-- ret0       = Error Code                                     ******
// ***************************************************************************
//[<ret0]Error Code
//[>Buffer]Pointer des Empfangsbuffers
//[>rdlength]Anzahl der zuslesenden Bytes
//[>rdlen]Anzahl der richtig gelesenen Bytes
//
//[#ENGLISH]
// ***************************************************************************
// **************** 		 Serial COM RecvBlock        *********************
// ***************************************************************************
// ****																	******
// ****	  reads a area of character of the receiving buffer				******
// ****   an put it into the inputet Buffer								******
// ****** ------------------------------------------------------------ *******
// ***  --> Buffer 	   = Pointer to receivbuffer   		         		******
// ***  --> rdlength   = Bytes you want to read of the receiving buffer	******
// ***  --> rdlen	   = Anzahl der correct gelesenen Bytes 			******
// ***  <-- ret0       = Error Code                                     ******
// ***************************************************************************
//[>Buffer]Pointer to receivbuffer
//[>rdlength]Bytes you want to read of the receiving buffer
//[>rdlen]number of correct readed Bytes
//[<ret0]Error Code: detailed info -> DOC
FUNCTION GLOBAL Serial::RecvBlock			
VAR_INPUT
	Buffer		: pVoid;		// pointer of buffer
	rdlength	: UDINT;		// hwo many Bytes you want to read
	rdlen		: ^UDINT;		// number of correct readed Bytes 
	END_VAR
VAR_OUTPUT
	ret0		: DINT;			// returns an Error ( look "GetError" ) 
END_VAR

		IF pHandle > 0 THEN
			Error_S:= ret0 := SERUSER_RecvBlock(pHandle,Buffer,rdlength,rdlen);
		ELSE
			Error_S:= ret0 := SERUSER_GetError(pHandle);
		END_IF;
			

END_FUNCTION //GLOBAL serial::RecvBlock
//[#DEUTSCH]
// ***************************************************************************
// **************** 		 Serial COM GetSendStatus        *****************
// ***************************************************************************
// ***																	  ****
// ***          liefert, wieviele Bytes noch im Sendebuffer liegen        ****
// *********														    ******
// ***  <-- to_send    = Anzahl der Bytes, die noch zu senden sind     	******
// ***************************************************************************
//
//[<to_send]Anzahl der Bytes, die noch zu senden sind
//
//[#ENGLISH]
// ***************************************************************************
// **************** 		 Serial COM GetSendStatus        *****************
// ***************************************************************************
// ***																	******
// ***          returns, how many Bytes are in the "senbuffer"          ******
// *********														    ******
// ***  <-- to_send    = How many Bytes are too send    				******
// ***************************************************************************
//
//[<to_send]How many Bytes are too send
FUNCTION GLOBAL Serial::GetSendStatus
VAR_OUTPUT
	to_send		: UDINT;	// How many Bytes are too send
END_VAR
	
	IF pHandle > 0 THEN
		to_send := SERUSER_GetSendStatus(pHandle);
    ELSE
		Error_S := SERUSER_GetError(pHandle);
	END_IF;

END_FUNCTION //GLOBAL serial::GetSendStatus
//[#DEUTSCH]
// ***************************************************************************
// **************** 		 Serial COM GetRecvStatus        *****************
// ***************************************************************************
// ***																	   ***
// ***             liefert anzahl der neu empfangenen Zeichen              ***
// *********														    ******
// ***  <-- length     = Anzahl der Bytes, die neu empfangen wurden    	******
// ***************************************************************************
//
//[<length]Anzahl der Bytes, die neu empfangen wurden
//
//[#ENGLISH]
// ***************************************************************************
// **************** 		 Serial COM GetRecvStatus        *****************
// ***************************************************************************
// ***																	   ***
// ***             returns, howmany Bytes are received                     ***
// *********														    ******
// ***  <-- length     = number of received Bytes    					******
// ***************************************************************************
//
//[<length]number of received Bytes
FUNCTION GLOBAL Serial::GetRecvStatus
VAR_OUTPUT
	length		: UDINT;	// length of received Data
END_VAR
	
	IF pHandle > 0 THEN
		length :=  SERUSER_GetRecvStatus(pHandle);
    ELSE
		Error_S := SERUSER_GetError(pHandle);
	END_IF;

END_FUNCTION //GLOBAL serial::GetRecvStatus
//[#DEUTSCH]
// ***************************************************************************
// **************** 		 Serial COM ClearRecvBuffer        ***************
// ***************************************************************************
// ***																	   ***
// ***      l鰏cht nicht die Zeichen des Empfangsbuffers,                  ***
// ***       sondern setzt den Lesezeiger auf die Startposition,           ***
// *********														    ******
// ***  <-- ret0       = Error Code 								   	   ***
// ***************************************************************************
//
//[<ret0]Error Code
//
//[#ENGLISH]
// ***************************************************************************
// **************** 		 Serial COM ClearRecvBuffer        ***************
// ***************************************************************************
// ***																	   ***
// ***      clears the receiving buffer									   ***
// ***      ( puts the reading arrow to the startposition)				   ***
// *********														    ******
// ***  <-- ret0       = Error Code 								   	   ***
// ***************************************************************************
//
//[<ret0]Error Code: detailed info -> DOC
FUNCTION GLOBAL Serial::ClearRecvBuffer
VAR_OUTPUT
	ret0		: DINT;  	// Error Code
END_VAR

	IF pHandle > 0 THEN
		Error_S:= ret0 := SERUSER_ClearRecvBuffer(pHandle);
	ELSE
		Error_S:= ret0 := SERUSER_GetError(pHandle);
	END_IF;

END_FUNCTION //GLOBAL serial::ClearRecvBuffer
//[#DEUTSCH]
// ***************************************************************************
// **************** 		 Serial COM GetRecvPointer        ****************
// ***************************************************************************
// ***																	   ***
// ***        Ermittelt die Empfangs Buffer Adresse eines Handles		   ***
// *********														    ******
// ***  <-- Buffer_ptr = Pointer des Empfangsbuffers				   	   ***
// ***************************************************************************
//
//[<Buffer_ptr]Pointer des Empfangsbuffers
//
//[#ENGLISH]
// ***************************************************************************
// **************** 		 Serial COM GetRecvPointer        ****************
// ***************************************************************************
// ***																	   ***
// ***		  returns the pointer of the receiving buffer				   ***
// *********														    ******
// ***  <-- Buffer_ptr = Pointer of Receivingbuffer with the input handle  ***
// ***************************************************************************
//
//[<Buffer_ptr]Pointer of Receivingbuffer with the input handle
FUNCTION GLOBAL Serial::GetRecvPointer
VAR_OUTPUT
	Buffer_ptr		: pVoid;		// Pointer of Receiving Buffer
END_VAR

	IF pHandle > 0 THEN
		Buffer_ptr := SERUSER_GetRecvPointer(pHandle);
    ELSE
		Error_S := SERUSER_GetError(pHandle);
	END_IF;


END_FUNCTION //GLOBAL serial::GetRecvPointer
//[#DEUTSCH]
// ************************************************
// *************  Serial COM close   *************
// ************************************************
// ***     										***
// *** Funktion loescht eine initialisierte COM ***

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -