April 30, 2025 at 03:14 PMApr 30, 2025 Hi All! to communicate with pumps in a test rig, I use a RS232 bricklet. Communication seems alright when I use BrickViewer and was already able to send commands and recieve data (see image). As future communication should be run by a MATLAB script, I tried sending the same command in the following code (derived from the RS232 Bricklet Example), which did not work at all. clear clc import com.tinkerforge.IPConnection; import com.tinkerforge.BrickletRS232V2; import java.lang.String; HOST = 'localhost'; PORT = 4223; UID = 'MyUID'; % Change XYZ to the UID of your RS232 Bricklet 2.0 ipcon = IPConnection(); % Create IP connection rs232 = BrickletRS232V2(UID, ipcon); % Create device object ipcon.connect(HOST, PORT); % Connect to brickd rs232.disableReadCallback(); rs232.write(String('OUT_SP_1 100').toCharArray()); ipcon.disconnect(); I also tried adding \r\n to the char, which also did not work. Can you tell, where my fault is? Edited April 30, 2025 at 03:16 PMApr 30, 2025 by j.wagner96
April 30, 2025 at 04:02 PMApr 30, 2025 Try this. clear clc import com.tinkerforge.IPConnection; import com.tinkerforge.BrickletRS232V2; import java.lang.String; HOST = 'localhost'; PORT = 4223; UID = 'MyUID'; % Change XYZ to the UID of your RS232 Bricklet 2.0 ipcon = IPConnection(); % Create IP connection rs232 = BrickletRS232V2(UID, ipcon); % Create device object ipcon.connect(HOST, PORT); % Connect to brickd % make sure the Bricklet has the expected configuration rs232.setConfiguration(9600, BrickletRS232V2.PARITY_NONE, BrickletRS232V2.STOPBITS_1, BrickletRS232V2.WORDLENGTH_8, BrickletRS232V2.FLOWCONTROL_OFF); rs232.disableReadCallback(); rs232.write(String('OUT_SP_1 100\r\n').toCharArray()); ipcon.disconnect();
May 2, 2025 at 10:46 AMMay 2, 2025 Author Thanks for your help! Manually setting the configuration sadly didn't have an effect and the device does not react to any commands sent by the matlab script. Edited May 2, 2025 at 11:10 AMMay 2, 2025 by j.wagner96
May 2, 2025 at 11:16 AMMay 2, 2025 It seems in MATLAB "\r\n" doesn't produce the CR and LF characters you're looking for. Try this: rs232.write(String('OUT_SP_1 100' + char(13) + char(10)).toCharArray());
May 2, 2025 at 11:24 AMMay 2, 2025 Author That seems right, but there's still no reaction of the device. EDIT: Found the error. Instead of adding the CR and LF like in your advice rs232.write(String('OUT_SP_1 100' + char(13) + char(10)).toCharArray()); , concatenate it like so: rs232.write(String(['OUT_SP_1 100' char(13) char(10)]).toCharArray()); that worked - at least - for me. Edited May 2, 2025 at 11:41 AMMay 2, 2025 by j.wagner96
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.