Hello Friends,
I have a pump system, LAMBDA Fracrional Pump. The communicatoin appendix is attached here. I am trying to initialize a serial write/read connection but I can not read any byte from port.
{{
RS communication protocol for LAMBDA OMNICOLL fraction collector-sampler
11.1.1 Format of data sent by the PC to the fraction collector and back
Data sent by the PC: | #ss mm a xxxx qs c |
Data sent back by the pump: | <mm ss a xxxx qs c |
where, | |
# | is the first sign of a command sent by PC |
< | is the first sign of a message sent by fraction collector |
ss | is the address of the fraction collector (slave) |
mm | is the address of the PC (master) |
A | is the command (see section 11.1.2) |
x | is the data value (4 ASCII numbers from 0 to 9; sent from the highest order digit to the lowest order digit) |
Qs | is the control sum in HEX format (2 ASCII characters of the type 0…9ABCDEF) |
C | is the end sign cr (carriage return) The collector will fulfil the task and block any manual command on the front panel. |
11.1.2 Commands
# ss mm r qs c | start (run) |
# ss mm e qs c | activates remote control of the collector (front panel deactivated) |
# ss mm g qs c | activates local mode (front panel activated) |
# ss mm s qs c | stopp |
# ss mm f qs c | step forward |
# ss mm b qs c | step back |
# ss mm w qs c | step in actual moving direction (depending on LINE or MEAN setting) [corresponds to pressing the STEP button] |
# ss mm l qs c | step to next line |
# ss mm h qs c | “high” mode |
# ss mm u qs c | “normal” mode |
# ss mm m qs c | “MEAN” collection mode (meander or zigzag collection mode) |
# ss mm v qs c | “LINE” collection mode (collects fractions always from left to right) |
# ss mm i qs c | “ROW” collection mode, the collector moves only from row to row |
# ss mm d qs c | unit setting – 0.1 minute step time setting (XXX.X) |
# ss mm j qs c | unit setting – minute step time setting (XXXX) |
# ss mm o qs c | open valve |
# ss mm c qs c | close valve |
# ss mm a qs c | division coefficient setting “1” |
# ss mm k qs c | division coefficient setting “1/60” |
# ss mm p xxxx qs c | number of pulses from pump or drop counter |
# ss mm t xxx.x qs c | collection time (in 0.1 minute steps) |
# ss mm t xxxx qs c | collection time (in minute steps) |
# ss mm q xxx.x qs c | pause time between two fractions (in 0.1 minute steps) (fraction collector automatically enters “high” mode) |
# ss mm q xxxx qs c | pause time between two fractions (in minute steps) (fraction collector automatically enters “high” mode) |
# ss mm n xxxx qs c | number of fractions (fraction collector automatically enters “high” mode) |
# ss mm G x qs c | to request the fraction collector to send data to the PC |
where x is a number from 0-3:
0: collection time setting (TIME)
1: pulse setting (COUNT)
2: pause time setting (PAUSE)
3: number of fractions setting (NUMBER)
The answer of the OMNICOLL fraction collector-sampler is the following:
< mm ss B xxx.x qs c | time xxx.x in 0.1 minute steps (collector is in stand-by mode) |
< mm ss B xxxx qs c | time xxxx in minute steps resp. number of pulses or fractions (collector is in stand-by mode) |
< mm ss R xxx.x qs c | time xxx.x in 0.1 minute steps (collector is in operation) |
< mm ss R xxxx qs c | time xxxx in minute steps resp. number of pulses or fractions (collector is in operation) |
11.1.3 Checksum control
The following examples show , how the checksum is calculated
mm = 01 [PC address (master) is set to 01]
ss = 02 [Device address (slave) is set to 02]
The PC sends: | #0201g4Dcr |
The control addition (checksum) is made in the following way (only the last byte (2 ASCII characters of the type 0…9ABCDEF) is taken):
# | 0 | 2 | 0 | 1 | g | 4D (last byte) | cr |
23h | +30h | +32h | +30h | +31h | +67h | =14Dh | 0Dh |
The PC sends: | #0201t102320cr |
The control addition (checksum) is made in the following way (only the last byte (2 ASCII characters of the type 0…9ABCDEF) is taken):
# | 0 | 2 | 0 | 1 | t | 1 | 0 | 2 | 3 | 20 (last byte) | cr |
23h | +30h | +32h | +30h | +31h | +74h | +31h | 30h | +32h | +33h | = 220h | 0dh |
11.1.4 Format of the data transmission
Speed: | 2400 Bd (Baud) 8 data bits, odd parity, 1 stop bit |
11.2 How to set the OMNICOLL Fraction Collector-Sampler address?
When the LAMBDA OMNICOLL fraction collector and sampler has been equipped with the optional RS-232 interface, it can be controlled digitally, e.g. from a PC.
Disconnect the fraction collector-sampler from the mains. While keeping the direction button STEP pressed connect the fraction collector to the mains again. The message “A” and two numbers will appear on the display. This number from 00 to 99 is the current address of the fraction collector. To change the address press the buttons Λ Λ Λ Λ under the display until the desired number is obtained. Confirm your choice by pressing the button SET.
11.3 RS-connection scheme
The 5-pole DIN connector “REMOTE” of the communication module (Art. No. 6911 or 6929) is used for the remote control and RS connection.
When the optional RS-232 interface is available the pins are used as follows:
No. | Colour | Description |
1 | blue | Input remote control +3-12 V |
2 | white | RS-232 TTTL (TXD) |
3 | black | Ground (GND) |
4 | ||
5 | yellow | RS-232 RTTL (RXD) |
}}
As you can see we have slave and master address in command string line. I am confused I appreciate any help to get the ball rolling.
Thanks