j.wagner96 Posted April 30, 2025 at 03:14 PM Posted April 30, 2025 at 03:14 PM (edited) 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 PM by j.wagner96 Quote
photron Posted April 30, 2025 at 04:02 PM Posted April 30, 2025 at 04:02 PM 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(); Quote
j.wagner96 Posted May 2, 2025 at 10:46 AM Author Posted May 2, 2025 at 10:46 AM (edited) 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 AM by j.wagner96 Quote
photron Posted May 2, 2025 at 11:16 AM Posted May 2, 2025 at 11:16 AM 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()); Quote
j.wagner96 Posted May 2, 2025 at 11:24 AM Author Posted May 2, 2025 at 11:24 AM (edited) 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 AM by j.wagner96 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.