Timer(IN:=TRUE, PT:=T#0.1S) // Receive-Timeout 100 ms: no data Memcpy(ADR(LastReceivedDataBytes), ADR(aDataRX), (nDataLen +1)) Memset(ADR(LastReceivedDataBytes), 0, (SIZEOF(aDataRX)-1)) NCalcChecksum := F_CALC_LIN_CHKSUM(pData := ADR(aDataRX), nLen := nDataLen) Delaytime by 1/Tbaud * Number of Bytes * (8 Databits + 2 Bit:start-Stop) * 1000ms IF NOT SendBusy THEN // Wait until sending ends Send(pSendData:= ADR(aDataTX), Length:= 1, ![]() Timer(IN:=TRUE, PT:=T#0.5S) // Call timer for periodical master requestsĪDataTX := F_ADD_LIN_NODE_PARITY(bNodeId_SL1, bReqLen_SL1) T_ReceiveDelay:TIME // Storage of calculated delay timeĮxecution part: (*= NCalcChecksum:BYTE // Storage of calculated checksum NRxChecksum: BYTE // Storage of received checksum NState:BYTE := 0 // Initial state (start)īNodeId_SL1: BYTE := 16#07 // ID of slave nodeīReqLen_SL1: BYTE := 0 // Optional entry for 4 Data bytes Value 2 ReceiveCounter: UDINT := 0 // Number of received framesĪDataRX:tDataFrame // Receiving data frame buffer ReceiveTimeout: BOOL // Flag copy of receive-timeout ReceiveErrorID: ComError_t // Error-ID copy ReceiveError: BOOL // Flag copy of receive error ReceiveBusy: BOOL // Flag copy of reception not ready LastReceivedDataBytes: tDataFrame // Copy (Latch) of received dataĭataReceived: BOOL // Flag copy of receive confirmation Receive: ReceiveData // Functionblock of TC2_SerialCom SendErrorID: ComError_t // Flag-Copy of Error-IDĪDataTX:tDataFrame // Data frame being send ![]() SendBusy: BOOL // Flag copy of SendData.Busy ![]() Send: SendData // Functionblock of TC2_SerialCom Timer: TON // Timer for periodical requests by the master
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |