The Embedded Experts

Release notes for emModbus

Version 1.02h [24. September 2018]

Program corrections

  1. MB_MASTER_WriteCoils() adds one payload byte too much if a multiple of 8 coils is used. The number of items/coils and their values in the message remain correct. The message might get refused by the slave if it checks the number of items/coils versus the number of payload bytes. Fixed.

Version 1.02g rev. 1 [24. September 2018]

New features

  1. New Slave Modbus/TCP sample added that demonstrates handling multiple client connections.

Version 1.02g [11. July 2018]

Program corrections

  1. TCP interface does not reset the channel buffer in an error case (unexpected disconnect) which might lead to the next messages(s) to cause confusion. Fixed.

Version 1.02f [22. May 2018]

New Features

  1. New API added to allow using unicast slave address 0 with Modbus/TCP:
    • MB_SLAVE_ConfigIgnoreSlaveAddr()

Version 1.02e [14. December 2017]

Program corrections

  1. De-initializing the stack does not call the interface pfDeInit() callback of the channel. Fixed.

Version 1.02d [6. December 2017]

Improvements

  1. Updated shipped UART samples to fit with latest file changes across several middleware.

Version 1.02c [10. August 2017]

New Features

  1. New configuration defines to change behavior in some situations:
    • MB_ALLOW_STREAM_HDR_UNDERFLOW
    • MB_DISCONNECT_ON_MSG_TOO_BIG

Program corrections

  1. Slave does not send back Modbus error codes for a custom function code. Fixed.

Version 1.02b [14. September 2016]

Program corrections

  1. Slave answers back on valid broadcast messages but should not. Fixed.

Version 1.02a [22. April 2016]

Improvements

  1. Added further message checks to the slave to detect faulty messages sent by a master.

Program corrections

  1. Using Modbus/TCP the message size reported to the custom callback includes the size of the Modbus/TCP header. Fixed.
  2. The slave channel buffer is not reset on messages that do not send back an answer like a broadcast. Fixed.

Version 1.02 [1. April 2016]

New Features

  1. New API added for implementation of custom function codes added:
    • MB_SLAVE_SetCustomFunctionCodeHandler()
    • MB_LoadU16BE()
    • MB_StoreU16BE()

Version 1.00b [6. August 2015]

New Features

  1. Added RTU & ASCII interfaces to PC ports.

Program corrections

  1. Using different task priorities than provided with samples or using round robin might confuse the message processing. Fixed.
  2. Using non-native data processing types like stream read/write instead of interrupt driven byte transfer for RTU might confuse the message processing. Fixed.

Version 1.00a [15. June 2015]

New Features

  1. Non-OS layer added.

Improvements

  1. Changed Windows samples to use fgets() instead of _cgets() as Keyboard inputs do not work reliable with _cgets() on newer compilers.

Program corrections

  1. The wrong timer frequency is used for calculation if MB_ConfigTimerFreq() has not been called. Fixed to default of 1kHz.
  2. RTU interface might corrupt data on CPUs if data in structures is not padded to a multiple of 4 bytes. Fixed.

Version 1.00 [14. March 2014]

Initial version