📄 c_serial.st
字号:
// ***************************************************************************
// *** ******
// *** 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 + -