ClientSerial (FB)

FUNCTION_BLOCK ClientSerial EXTENDS Client IMPLEMENTS ISysComUser

MODBUS serial client (master).

Please note: some input variables related to connection configuration are read when rising edge on xConnect occurs. To change connection configuration the application needs to - disconnect (xConnect := FALSE and execute the FB) - modify the related input variables - connect (xConnect := TRUE and execute the FB)

The Client provides some statistics of sent request messages and received valid reply messages. Invalid messages are dropped at the communication level, so doesnt appear in the statistics. To analyse situations where invalid reply messages might occur, you can use udiLogOptions with LoggingOptions.WarnOnReceivedInvalidFrames.

Please visit https://forge.codesys.com/prj/codesys-example/modbus/home to find examples.

InOut:

Scope

Name

Type

Initial

Comment

Inherited from

Input

xConnect

BOOL

FALSE

Connect to server (slave).

Client

Output

xConnected

BOOL

Client (master) is connected to server (slave).

Client

xError

BOOL

Error

Client

eErrorID

Error

Error status

Client

udiNumMsgSent

UDINT

Number of request messages send since connect.

Client

udiNumMsgReply

UDINT

Number of reply messages received since connect.

Client

udiNumMsgExcReply

UDINT

Number of exception reply messages received since connect.

Client

udiNumMsgExcReplyIllFct

UDINT

Number of exception reply messages received since connect, signaling illegal function.

Client

udiNumMsgExcReplyIllDataAdr

UDINT

Number of exception reply messages received since connect, signaling illegal data address.

Client

udiNumReplyTimeouts

UDINT

Number of reply timeouts since connect.

Client

udiNumReqNotProcessed

UDINT

Number of requests not processed in time (“request starvation”) since connect.

Client

udiNumReqParamError

UDINT

Number of requests started with parameter error, for example “Read Coils” -> “Quantity of coils” = 0.

Client

udiLastTransactionTime

UDINT

Transaction time in ms - time difference between request message send und reply message received.

Client

Input

iPort

SysCom.SYS_COM_PORTS

SysCom.SYS_COM_PORTS.SYS_COMPORT_NONE

Serial port, only read when rising edge on xConnect occurs.

dwBaudrate

SysCom.SYS_COM_BAUDRATE

SysCom.SYS_COM_BAUDRATE.SYS_BR_115200

Baud rate, only read when rising edge on xConnect occurs.

byDataBits

BYTE

8

Number of data bits/BYTE, 4-8, only read when rising edge on xConnect occurs.

eParity

SysCom.SYS_COM_PARITY

SysCom.SYS_COM_PARITY.SYS_NOPARITY

Parity, only read when rising edge on xConnect occurs.

eStopBits

SysCom.SYS_COM_STOPBITS

SysCom.SYS_COM_STOPBITS.SYS_ONESTOPBIT

Stop bits, only read when rising edge on xConnect occurs.

eDTRcontrol

SYS_COM_DTR_CONTROL

SysCom.SYS_COM_DTR_CONTROL.SYS_DTR_CONTROL_DISABLE

DTR control, only read when rising edge on xConnect occurs.

eRTScontrol

SysCom.SYS_COM_RTS_CONTROL

SysCom.SYS_COM_RTS_CONTROL.SYS_RTS_CONTROL_DISABLE

RTS control, only read when rising edge on xConnect occurs.

eRtuAscii

RtuAscii

RtuAscii.RTU

RTU / ASCII, only read when rising edge on xConnect occurs.

udiLogOptions

UDINT

LoggingOptions.ClientConnectDisconnect

Logging options.