Simulink - TCP/IP Send / Receive Variable Size

2 views (last 30 days)
Dear all,
I want to implement a Modbus TCP communication between MATLAB Simulink and a measurement device by using the Instrument Control Toolbox. For the Modbus protocol different function codes are defined, e.g. 0x04 for reading registers and 0x16 for writing registers. Depending on the function code the message to send/receive by the TCP/IP block differs in size. For both blocks (TCP/IP Send and Receive) you need to predefine how many bytes the message will be. You are also restricted to only use one block for the same target (IP/Port) in one model. Therefore it is impossible to do Modbus TCP/IP read and writing operations within the same model. I think this is quite a big limitation. Anybody has an idea how to overcome this challenge?
Regards
Jonathan

Accepted Answer

Govind KP
Govind KP on 14 Jul 2020
Hi Jonathan,
One possible way I can see is to create and use an m-func block in Simulink to call the modbus function.
You can find more details at this link
  1 Comment
johnnynoc4sh
johnnynoc4sh on 14 Jul 2020
Exactly the way how I implemented it. Thanks for the valuable hint!

Sign in to comment.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!