How to run Modbus TCP in real time using Simulink?
Hi,
I have a Matlab script to communicate with my relay using Modbus TCP. The script was generated using Modbus Explorer in Matlab.
The code works well. It turns on/off my relay according to specified conditions as well as reads its status.
I am now trying to execute Matlab code from my Simulink model. I imported Matlab Function block which includes Matlab code (generated before) to control the relay. When I click Run button, I am getting error below:
Cannot write ‘double’ data to the buffer. The input data have to be ‘uint8’ type. Function ‘MATLAB Function’ (#24.1132.1168), line 31, column 1: "write(m, ‘coils’, 1000, 1, serverId)"
I tried to change names of my variables (as someone suggested that this could be the issue), I also changed all data types but I could not fix it.
I can’t understand why am I getting this error if the same code executed in Matlab works fine?
I would be really grateful for your help!Hi,
I have a Matlab script to communicate with my relay using Modbus TCP. The script was generated using Modbus Explorer in Matlab.
The code works well. It turns on/off my relay according to specified conditions as well as reads its status.
I am now trying to execute Matlab code from my Simulink model. I imported Matlab Function block which includes Matlab code (generated before) to control the relay. When I click Run button, I am getting error below:
Cannot write ‘double’ data to the buffer. The input data have to be ‘uint8’ type. Function ‘MATLAB Function’ (#24.1132.1168), line 31, column 1: "write(m, ‘coils’, 1000, 1, serverId)"
I tried to change names of my variables (as someone suggested that this could be the issue), I also changed all data types but I could not fix it.
I can’t understand why am I getting this error if the same code executed in Matlab works fine?
I would be really grateful for your help! Hi,
I have a Matlab script to communicate with my relay using Modbus TCP. The script was generated using Modbus Explorer in Matlab.
The code works well. It turns on/off my relay according to specified conditions as well as reads its status.
I am now trying to execute Matlab code from my Simulink model. I imported Matlab Function block which includes Matlab code (generated before) to control the relay. When I click Run button, I am getting error below:
Cannot write ‘double’ data to the buffer. The input data have to be ‘uint8’ type. Function ‘MATLAB Function’ (#24.1132.1168), line 31, column 1: "write(m, ‘coils’, 1000, 1, serverId)"
I tried to change names of my variables (as someone suggested that this could be the issue), I also changed all data types but I could not fix it.
I can’t understand why am I getting this error if the same code executed in Matlab works fine?
I would be really grateful for your help! modbus tcp, simulink MATLAB Answers — New Questions