Forum.Deepsoftware.Com

DeepSoftware Products => nrComm Lib VCL (32bit / 64bit) => nrComm Lib => Data processing => Topic started by: peer on December 22, 2014, 06:53:22 pm

Title: Modbus timeout handling
Post by: peer on December 22, 2014, 06:53:22 pm
How do I know which request (or address) did timeout in the TimeOut event when registers are polled?
What is the best way to handle a timeout ? Because now a timeout  on one address slows down everything.
Title: Re: Modbus timeout handling
Post by: peer on February 10, 2015, 01:59:55 pm
Support in winter sleep ??
Title: Re: Modbus timeout handling
Post by: Roman Novgorodov on March 02, 2015, 10:33:26 am
Hello

We are still alive :-)

The timeout is handled by following internal code:

procedure TnrModbus.DoTimeoutError;
begin
  inherited DoTimeoutError;
  if stackRequests.Count > 0
    then ConnectedDeviceRemove(TnrModbusPacket(stackRequests[0]).Address);
  PopNextRequest;
end;


But unfortunately stackRequests items are not PUBLIC for access from external.
We will resolve this issue asap.

By the way .NET version of nrComm already provides necessary functionality:
ModBus.GetCurrentRequest()

We will repeat this method in VCL release soon.

Sorry.

Roman Novgorodov
DeepSoftware llc