j.wagner96 Geschrieben April 30, 2025 at 15:14 Geschrieben April 30, 2025 at 15:14 (bearbeitet) 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? bearbeitet April 30, 2025 at 15:16 von j.wagner96 Zitieren
photron Geschrieben April 30, 2025 at 16:02 Geschrieben April 30, 2025 at 16:02 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(); Zitieren
j.wagner96 Geschrieben May 2, 2025 at 10:46 Autor Geschrieben May 2, 2025 at 10:46 (bearbeitet) 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. bearbeitet May 2, 2025 at 11:10 von j.wagner96 Zitieren
photron Geschrieben May 2, 2025 at 11:16 Geschrieben May 2, 2025 at 11:16 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()); Zitieren
j.wagner96 Geschrieben May 2, 2025 at 11:24 Autor Geschrieben May 2, 2025 at 11:24 (bearbeitet) 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. bearbeitet May 2, 2025 at 11:41 von j.wagner96 Zitieren
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.