This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
doc1 [10/06/2014 20:21] Consort removed |
doc1 [03/09/2014 07:30] pieter File build by odt2dw plugin from fileC30xx_ComputerControl.odt |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | < | + | < |
- | **APPLICATION NOTE – ELECTROPHORESIS** | + | C30xx Digital communication |
- | **CONSORT bvba**, parklaan 36, B2300 Turnhout, Belgium | + | ====== Introduction ====== |
- | tel: | + | The new range of electrochemical instrumentation C30xx from **Consort**has been completely redesigned and is significantly improved compared to his predecessors. The digital communication allows more direct commands to be able to read faster and more accurate. |
- | **POWER SUPPLIES** | + | ====== Digital ports ====== |
- | **What | + | The devices ending on a ' |
- | Power (W) = Voltage (V) x Current (A) | + | The Ethernet systems require some set up which is explained in the //Ethernet Configuration document //which can be downloaded from our website[[http:// |
- | Resistance (W) = Voltage (V) / Current (A) | + | The USB driver can be downloaded from our website [[http:// |
- | **How does a power supply react after pressing RUN?** | + | After installing the Ethernet or USB driver, the instrument will appear, when connected, as a serial COMx port. Set the communication software to use this port. The default serial communication settings are 19200 baud, 8 data bits, 1 stop bit, No parity. |
- | The internal generator will start building | + | The device allows a baudrate |
- | **How important is the resistance of an electrophoresis unit?** | + | ====== Command protocol to send ====== |
- | The resistance of an electrophoresis unit depends on its size, gel thickness, amount of buffer, buffer conductivity and temperature. This resistance will normally decrease in time due to a slowly increasing temperature. Electrophoresis units which have a resistance below the minimum load resistance of a power supply will trigger an alarm! Read the output voltage and current during a run to measure the resistance and use above formula to calculate the value. | + | Commands are sent according |
- | **How to keep a constant voltage during a run?** | + | '>' |
- | Program the desired voltage and a higher current and power then the maximum expected values: | + | With: |
- | Current | + | |'>' |
+ | |Command|Single byte. A specific character invoking a special action or requesting information from the device.\\ | | ||
+ | |Data|Additional binary information to complete the command. \\ This is not always required. See the //**command table**// when data is required.\\ | | ||
+ | |Checksum|Single byte, the lowest binary byte of the sum of the previous bytes which have already been sent starting from '>' | ||
+ | |CR+LF|Carriage return + Linefeed, or ASC(13)+ASC(10). \\ To indicate the termination of the command. These 2 bytes are __not required__ for the receipt of the command and may be omitted.| | ||
- | Power > Voltage x Current | + | //- the single quote signs are only to indicate it is a character, the signs are not to be sent to the device.// |
- | **How to keep a constant current during a run?** | + | //- the + signs are to not to be sent either unless when placed between quotes.// |
- | Program | + | //- the function ASC() indicates |
- | Voltage > Current x Resistance | + | //- Simple commands that do not require additional data don't need to be completed with the checksum.// |
- | Power > Voltage x Current | + | ====== Command protocol to receive ====== |
- | **How to keep a constant power during a run?** | + | Responses |
- | Program the desired power and a higher voltage and current then the maximum expected values: | + | '<' |
- | Voltage > Current x Resistance | + | With: |
- | Current > Voltage / Resistance | + | |'<' |
+ | |Command|Single byte. \\ The command for which is being responded.\\ | | ||
+ | |Size|Binary single byte value. \\ The amount of data bytes to follow. The size is only returned when data is following. See the [[# | ||
+ | |Data|The requested information. This information can be ascii coded or binary. See the [[# | ||
+ | |Checksum|Single byte. \\ The lowest byte of the binary sum of the previous bytes which have already been sent starting from '<' | ||
+ | |CR+LF|Carriage return + LineFeed, or ASC(13)+ASC(10), | ||
+ | |()|Size and data are not always returned! See the [[# | ||
- | **Why are my output values different from those of a similar experiment? | + | ====== Command table ====== |
- | Either your programmed parameters are not equal to those described or the resistance of your electrophoresis unit is different (see above). It cannot be due to e.g. an other model of power supply as the relations between Voltage, Current, Power and Resistance are monitored in the same way by any instrument (the electrical laws cannot be disregarded!). | + | ^Command^Additional data bytes^Returned data bytes^Purpose^See| |
+ | |'?' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
+ | |' | ||
- | **What about connecting more than one unit to the same power supply?** | + | ====== Command specifications + examples ====== |
- | The outlets being in parallel each electrophoresis unit will be supplied with exactly the same voltage. However, current and power may differ due to differences between them even when exactly the same model, gel, buffers, etc... are used. Therefore, it is recommended to run several electrophoresis units only in the constant voltage mode on the same power supply. | + | ===== Conventions ===== |
- | **HORIZONTAL GEL ELECTROPHORESIS** | + | |
+ | | ||
+ | | ||
+ | | ||
+ | * The examples are either given in ASCII text or as binary codes, hexadecimally written. The ASCII coded examples don't always show the additional code for the checksum, carriage return and linefeed. | ||
+ | ===== Print Measurements ===== | ||
- | **Gasket too tight or too loose?** | + | Send the command '?' to request the last measurements. |
- | Simply remove the gaskets from the ends of the gel trays and refit into the groove. Refit with the gasket protruding slightly from the ends if the gel tray was too tight or with the gasket fitted below the top edges if the gasket was too loose. | + | e.g. |
- | **How to select the gel concentration?** | + | >? |
- | The range of fragment sizes to be separated will determine the choice of agarose concentration for a gel. Typical agarose concentration is 0.5% to 3.0%. For large DNA fragments low-percentage gels are required, while for small DNA fragments, high-percentage gels are recommended. Weak gels (0.5% agarose) should be electrophoresed at low temperatures (e.g. -4°C). | + | <?{ |
- | Agarose gels of 0.75% to 1.0%, for routine electrophoresis, | + | 31/ |
- | **How to select the electrophoresis buffer?** | + | 0.73 ng/l 18.2 °C |
- | TAE buffer provides optimal resolution of fragments >4 kb in length, while for 0.1 to 3 kb fragments, TBE buffer should be selected. TBE has both a higher buffering capacity and lower conductivity than TAE and therefore should be used for high-voltage electrophoresis. Additionally, | + | ===== Keyboard ===== |
- | **How to select | + | With the commands ' |
- | 2 x TAE buffer can be used in units with low buffer volume to enhance resolution during extended runs. | + | e.g. |
- | **What about the influence of temperature? | + | >- |
- | Electrophoresis at high voltages produces heat. Additionally, | + | <-i /* the keyboard is now disabled */ |
- | **What about the DNA mobility?** | + | >+ |
- | DNA fragments as small as 1 kb or less can be separated using agarose gel electrophoresis. For fragments smaller than 0.1 kb, polyacrylamide gels are more suited. | + | <+g /* the keyboard is now enabled */ |
- | **What about the RNA mobility?** | + | ===== Key Simulation ===== |
- | Either before or during electrophoresis, | + | With the commands ' |
- | **Separation performance? | + | As soon as a ' |
- | Gel concentration, | + | Table Key codes: |
- | The dye’s fluorescence properties allows the band to be visualised under a UV lamp. However, ethidium bromide may slow the DNA migration rate by approx. 15%. As an alternative, | + | ^Code (binary!)^Key| |
+ | |0|UP (arrow)| | ||
+ | |1|OK | | ||
+ | |2|DOWN (arrow)| | ||
+ | |3|STORE| | ||
+ | |4|CAL| | ||
+ | |5|HOLD| | ||
+ | |6|MODE| | ||
- | Note: staining time should be minimised to prevent small nucleic acid fragments from diffusing out of the gel. Background fluorescence of unbound ethidium bromide can be minimised through destaining by soaking the gel for 5 minutes in 0.01 M MgCl2, or for 30 minutes in de-ionised water. Caution! Ethidium bromide is a known mutagen. Always wear gloves when handling. Wear UV safety goggles and protect skin when using any UV light source. | + | e.g. |
- | **VERTICAL GEL ELECTROPHORESIS** | + | 3E 42 00 80 0D 0A/* '> |
- | **How to prevent leaking gels?** | + | 3C 42 7E 0D 0A/* Device answer, command is accepted |
- | The two most important things to be aware of when casting gels using the caster systems are: | + | /* the keyboard is now disabled !! */ |
- | **a.** that the glass plates have been inserted into the casting or gel running module on a flat surface. | + | ===== Request Settings ===== |
- | **b.** that the spacers are flush with the bottom edges of the glass plates. | + | The command ' |
- | Perfect alignment of spacers can be guaranteed using the new glass plates with bonded spacers. | + | e.g.3E 53 91 0D 0A |
- | **How to overcome polymerisation problems?** | + | 3C 53 28 02 03 E8 05 FF 00 01 03 00 00 02 02 00 40 00 00 00 00 01 02 03 04 05 00 3C 2E E0 00 00 00 00 |
- | If you are experiencing problems obtaining good polymerisation adjacent to spacers and combs then this can be overcome by pre-soaking the combs and spacers in distilled water or a 10% solution of ammonium persulphate. | + | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
- | **How to avoid over-tightening? | + | 00 00 00 00 00 00 04 00 00 4D 0D 0A |
- | Over-tightening the cam pins on the casting systems is a common cause of problems when using these units. Cams should only be tightened just until appreciable pressure is felt. | + | 34 35 36 37 38 39 40 41 42 43 44 45 : byte number offsets) |
- | **How to exctract the tube gel?** | ||
- | Tube gel electrophoresis can be difficult because of problems with extracting the tube gel from the capillary tube. The tube gel is best extracted by gently pipetting liquid behind the tube gel and then catching it in the Gel extraction platform. | ||
- | **How to enhance transfer?** | + | //**__Data record structure__**// |
- | If the gel blot sandwich | + | Byte 0, 1: |
+ | |||
+ | '< | ||
+ | |||
+ | Byte 2: | ||
+ | |||
+ | number of bytes to follow, excluding checksum + termination code CR+LF, | ||
+ | |||
+ | here //40// bytes. | ||
+ | |||
+ | Byte 3: | ||
+ | |||
+ | Display focus number. The device has several display outputs which are selected manually using the arrow keys. These are indicated with a focus number starting from 0. This number can be checked this way. The focus can be changed using a specific command. | ||
+ | |||
+ | |||
+ | |||
+ | Byte 4, 5: | ||
+ | |||
+ | Temperature reference for conductivity measurements. | ||
+ | |||
+ | = //1000// for **25°C** | ||
+ | |||
+ | = //896// for **20°C** | ||
+ | |||
+ | Byte 6: | ||
+ | |||
+ | Display Contrast setting | ||
+ | |||
+ | Byte 7: | ||
+ | |||
+ | Standby setting. When 0, the device will stop operation after pressing the standby button or after a power failure, otherwise, the device will restart each time. | ||
+ | |||
+ | Byte 8: | ||
+ | |||
+ | Language setting. 0 = English, 1 = Dutch, 2 = French, 3 = German | ||
+ | |||
+ | Byte 9, 10, 11, 12, 13, 14: | ||
+ | |||
+ | Measurement settings of all the channels. | ||
+ | |||
+ | Here in the example are 6 bytes given for 6-channel model C3040, there are //**only 2 bytes**//// | ||
+ | |||
+ | Byte 15: (// | ||
+ | |||
+ | Display resolution settings. | ||
+ | |||
+ | Byte 16, 17, 18, 19: (//**12, 13, 14, 15**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | 32 bits Password settings. The highestbit (// | ||
+ | |||
+ | Byte 20, 21, 22, 23, 24, 25: (//**16, 17**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | Settings of the ATC channels. The byte sequence and the number contents indicates for which channel the °C measurement will be used as temperature compensation. In this example byte //20// indicates °C1 is used for CH1, byte //21// indicates °C2 is used for CH2, … byte //25// indicates °C6 is used for CH6. Also here are //**only 2 bytes**//// for the models C3010, C3020, C3030.// | ||
+ | |||
+ | ////Byte 26, 27: (//**18, 19**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | Data log settings: | ||
+ | |||
+ | Highestbit (// | ||
+ | |||
+ | Second highestbit (// | ||
+ | |||
+ | Remaining lower //14 //bits: Time interval in seconds | ||
+ | |||
+ | Byte 28, 29: (//**20, 21**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | Data log settings: irrelevant information | ||
+ | |||
+ | Byte 30, 31: (//**22, 23**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | Data log settings: Number | ||
+ | |||
+ | Byte 32, 33, 34, 35, 36: (//**24, 25, 26, 27, 28**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | Data log settings: irrelevant information | ||
+ | |||
+ | Byte 37, 38, 39, 40, 41, 42: (//**29, 30, 31, 32, 33, 34**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | Digital output settings of which byte 41 and 42 (//**33 **//and//** 34**//) returns the time interval | ||
+ | |||
+ | Byte 43: (// | ||
+ | |||
+ | lowest byte of Checksum of preceding data bytes | ||
+ | |||
+ | Byte 44, 45: (//**36, 37**////for the models C3010, C3020, C3030//) | ||
+ | |||
+ | CR + LF, End of data block | ||
+ | |||
+ | |||
+ | |||
+ | ===== Request measurement ===== | ||
+ | |||
+ | The command to print the measurements (using '>?' | ||
+ | |||
+ | Before device version 1.7: | ||
+ | |||
+ | e.g.Request the measurement from channel 1 (=> Send ' | ||
+ | |||
+ | 3E 4D 00 8B 0D 0A /* send the request */ | ||
+ | |||
+ | 3C 4D 13 00 80 01 01 28 00 3E 7E 2A 00 00 94 E3 00 03 D0 90 03 E4 ED 0D 0A /* returned data */ | ||
+ | |||
+ | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 : byte number offsets) | ||
+ | |||
+ | //**__Data record structure__**// | ||
+ | |||
+ | Byte 0 + 1 = '< | ||
+ | |||
+ | start of answer from device | ||
+ | |||
+ | Byte 2: | ||
+ | |||
+ | number of bytes follow, excluding checksum + termination code CR+LF, | ||
+ | |||
+ | here 19 bytes. | ||
+ | |||
+ | Byte 3+4: 16 bit information with measurement status of which: | ||
+ | |||
+ | |||
+ | |||
+ | bit 14: | ||
+ | |||
+ | bit 13: | ||
+ | |||
+ | bit 11: | ||
+ | |||
+ | bit 7: | ||
+ | |||
+ | Byte 5: Type of measurement. This will depend on the device model. | ||
+ | |||
+ | Byte 6, 7, 8, 9, 10: Internal information, | ||
+ | |||
+ | Byte 11: Output format of measurement. | ||
+ | |||
+ | See the table [[# | ||
+ | |||
+ | Byte 12, 13, 14, 15: | ||
+ | |||
+ | 32 bits with measurement data where the value 10000 corresponds to the unit 1. In this example, the hex value 00 00 94 E3 corresponds with 38115. Using the format from byte 11, this example returns thus the value of '3,811 pH'. | ||
+ | |||
+ | Byte 16, 17, 18, 19: | ||
+ | |||
+ | 32 bits with temperature measurement where the value 10000 corresponds to the unit 1. | ||
+ | |||
+ | Here is the temperature 00 03 D0 90 corresponding to 250000 or 25,0°C. | ||
+ | |||
+ | Byte 20, 21: //**Not for the models C3010, C3050 and C3060(without Dissolved Oxygen Measurements)**// | ||
+ | |||
+ | 16 Bits with air pressure measurement. | ||
+ | |||
+ | The value 03 E4 corresponds to an air pressure of 996 hPa. | ||
+ | |||
+ | Byte 22: lowest byte of Checksum of preceding data bytes | ||
+ | |||
+ | Byte 23, 24: CR + LF, End of data block | ||
+ | |||
+ | Starting from device version 1.7: | ||
+ | |||
+ | The returned data is reduced to only the useful information bytes. It also possible now to request the measurements of all channels at once by using 255 as channel number | ||
+ | |||
+ | e.g.Request | ||
+ | |||
+ | 3E 4D 01 8C 0D 0A/* send the request */ | ||
+ | |||
+ | 3C 4D 0E 20 00 09 1E 00 01 F4 C8 00 02 D1 E4 03 DE 33 0D 0A /* returned data | ||
+ | |||
+ | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 : byte number offsets) */ | ||
+ | |||
+ | //**__Data record structure__**// | ||
+ | |||
+ | Byte 0 + 1 = '< | ||
+ | |||
+ | start of answer from device | ||
+ | |||
+ | Byte 2: | ||
+ | |||
+ | number of bytes follow, excluding checksum + termination code CR+LF, | ||
+ | |||
+ | here 14 bytes. | ||
+ | |||
+ | Byte 3+4: 16 bit information with measurement status of which: | ||
+ | |||
+ | bit 14: | ||
+ | |||
+ | bit 13: | ||
+ | |||
+ | bit 11: | ||
+ | |||
+ | bit 7: | ||
+ | |||
+ | Byte 5: Type of measurement. This will depend | ||
+ | |||
+ | Byte 6: Output format of measurement. | ||
+ | |||
+ | See the table [[# | ||
+ | |||
+ | Byte 7, 8, 9, 10: | ||
+ | |||
+ | 32 bits with measurement data where the value 10000 corresponds to the unit 1. In this example, the hex value 00 01 F4 C8 corresponds with 128200. Using the format from byte 1E, this example returns thus the value of '12,8 µg/ | ||
+ | |||
+ | Byte 11, 12, 13, 14: | ||
+ | |||
+ | 32 bits with temperature measurement where the value 10000 corresponds to the unit 1. | ||
+ | |||
+ | Here is the temperature 00 02 D1 E4 corresponding to 184804 or 18,5°C. | ||
+ | |||
+ | Byte 15, 16: //**Not for the models C3010, C3050 and C3060(without Dissolved Oxygen Measurements)**// | ||
+ | |||
+ | 16 Bits with air pressure measurement. | ||
+ | |||
+ | The value 03 DE corresponds to an air pressure of 990 hPa. | ||
+ | |||
+ | Byte 17: lowest byte of Checksum of preceding data bytes | ||
+ | |||
+ | Byte 18, 19: CR + LF, End of data block | ||
+ | |||
+ | e.g.Request the measurements from all available channels | ||
+ | |||
+ | 3E 4D FF 8A 0D 0A | ||
+ | |||
+ | 3C 4D 1C 00 80 02 00 00 25 E3 38 00 03 D0 90 03 E1 20 80 09 1E 00 01 F5 F4 00 02 D0 AC 03 E1 C1 0D 0A | ||
+ | |||
+ | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 /* offsets */ | ||
+ | |||
+ | These returned data bytes contain the measurements from the 2 channels from the C3030 device. The measurements are returned in the order of the channels. | ||
+ | |||
+ | Bytes 0, 1 en 2:Start of answer and the number of returned bytes (here = 1C or 28 decimal) | ||
+ | |||
+ | Bytes 3 → 16:14 bytes of data from first channel. The analysis is similar to bytes 3 → 16 from the previous example. | ||
+ | |||
+ | Bytes 17 → 30:14 bytes of data from the second channel. The analysis is similar to bytes 3 → 16 from the previous example. | ||
+ | |||
+ | Bytes 31: lowest byte of Checksum of preceding data bytes | ||
+ | |||
+ | Bytes 31: CR + LF, End of data block | ||
+ | |||
+ | ===== Set Display Output ===== | ||
+ | |||
+ | The device has several display outputs which are normally selected by the user manually with the arrow keys. It is required to set the correct channel on the display to start the calibration or to request some info like the GLP report. | ||
+ | |||
+ | Use the command ' | ||
+ | |||
+ | e.g.To set the display of CH2 | ||
+ | |||
+ | 3E 46 02 86 0D 0A | ||
+ | |||
+ | 3C 46 82 0D 0A | ||
+ | |||
+ | To set the display of °C3 for the C3040 model (6 channels) | ||
+ | |||
+ | 3E 46 09 8D 0D 0A | ||
+ | |||
+ | 3C 46 82 0D 0A | ||
+ | |||
+ | ===== Request GLP report ===== | ||
+ | |||
+ | Request the GLP report from the current displayed channel. This is the same as selecting manually GLP>SEND REPORT from the calibration menu. | ||
+ | |||
+ | e.g.>G | ||
+ | |||
+ | **** GLP **** | ||
+ | |||
+ | Device : C3040 | ||
+ | |||
+ | Version : 1.2 | ||
+ | |||
+ | Serial nr. : 9999999 | ||
+ | |||
+ | Channel : 2 | ||
+ | |||
+ | Input : S/cm | ||
+ | |||
+ | Reference temp. : 25°C | ||
+ | |||
+ | Cap.Comp. : NO | ||
+ | |||
+ | CALIBRATION | ||
+ | |||
+ | Date : 00/ | ||
+ | |||
+ | Time : 00:00:00 | ||
+ | |||
+ | Reference temp. : 25°C | ||
+ | |||
+ | Standard 1 : 0.01M KCl | ||
+ | |||
+ | Value : 0.000µS/ | ||
+ | |||
+ | CC : 0.000cm1 | ||
+ | |||
+ | °C : 0.0 | ||
+ | |||
+ | Time : 00:00 | ||
+ | |||
+ | Standard 2 : 0.01M KCl | ||
+ | |||
+ | Value : 0.000µS/ | ||
+ | |||
+ | CC : 1.000cm1 | ||
+ | |||
+ | °C : 25.0 | ||
+ | |||
+ | Time : 00:00 | ||
+ | |||
+ | Standard 3 : 0.01M KCl | ||
+ | |||
+ | Value : 0.000µS/ | ||
+ | |||
+ | CC : 1.000cm1 | ||
+ | |||
+ | °C : 25.0 | ||
+ | |||
+ | Time : 00:00 | ||
+ | |||
+ | STATISTICS | ||
+ | |||
+ | CC1 : 1.000cm1 | ||
+ | |||
+ | CC2 : 1.000cm1 | ||
+ | |||
+ | CC3 : 1.000cm1 | ||
+ | |||
+ | ===== Set Parameters Data log ===== | ||
+ | |||
+ | The command ' | ||
+ | |||
+ | * Highest bit: enable data log function | ||
+ | * 2< | ||
+ | * The next 14 bits is the Interval of time in seconds, max 14400 = 4 hours. | ||
+ | * The next bit is irrelevant | ||
+ | * The lowest 15 bits is the maximum number of data points to log. The device is technically limited to 12000 points. | ||
+ | e.g.Enable the data log function, have the values logged at an interval of 15 seconds and let it end when 10000 values have been logged. | ||
+ | |||
+ | 3E 44 80 0F 27 10 48 0D 0A | ||
+ | |||
+ | 3C 44 80 0D 0A | ||
+ | |||
+ | Enable the data log function, have the values logged at an interval of 1 minute and keep only the last 60 values in memory. | ||
+ | |||
+ | 3E 44 C0 3C 00 3C BA 0D 0A | ||
+ | |||
+ | 3C 44 80 0D 0A | ||
+ | |||
+ | Mind that these settings remain valid only as long as the measurement mode has not been canceled due to entering the settings or a calibration. The number of data points to log will then be reset to its maximum. Therefore it is advised to resend the settings when returning in measurement mode. | ||
+ | |||
+ | It is not really advised to log data continuously when less then 12000 points need to be logged. This leads to mixed time points in the data table. | ||
+ | |||
+ | ===== Request Data table as text ===== | ||
+ | |||
+ | The command ' | ||
+ | |||
+ | It is required to use this command during a measurement display screen. This can be achieved by sending a [[#6.7.Set Display Output|outline|Set Display Output]] command first. | ||
+ | |||
+ | e.g. | ||
+ | |||
+ | **< | ||
+ | |||
+ | LOG.0000126/ | ||
+ | |||
+ | LOG.0000226/ | ||
+ | |||
+ | LOG.0000326/ | ||
+ | |||
+ | LOG.0000426/ | ||
+ | |||
+ | LOG.0000526/ | ||
+ | |||
+ | LOG.0000626/ | ||
+ | |||
+ | LOG.0000726/ | ||
+ | |||
+ | LOG.0000826/ | ||
+ | |||
+ | LOG.0000926/ | ||
+ | |||
+ | LOG.0001026/ | ||
+ | |||
+ | LOG.0001126/ | ||
+ | |||
+ | LOG.0001226/ | ||
+ | |||
+ | ===== Request Data table as binary data ===== | ||
+ | |||
+ | The command ' | ||
+ | |||
+ | Additional required information are: | ||
+ | |||
+ | * a 4 byte long number, the start record number, | ||
+ | * a 4 byte long number, the number of records to send. | ||
+ | The device will first return the number of records which will be actually returned. This number can be different from the requested number depending on the amount of available records starting from the given start record number. | ||
+ | |||
+ | e.g.Read the first 100 data records, starting from 0 | ||
+ | |||
+ | 3E 6C 0 0 0 0 0 0 0 64 E 0D 0A' The request | ||
+ | |||
+ | ////3C 6C 0 0 0 64 C D A' the 4 byte number of records/ | ||
+ | |||
+ | 3C 6C A 3C CF 1 D A 82 A7 D2 2B 0 FB D A ' first record at address 0, | ||
+ | |||
+ | 3C 6C A 4 24 11 11 A 82 A7 D2 7 0 8 D A ' address 1, record 2 | ||
+ | |||
+ | 3C 6C A EC 69 21 2C A 82 A7 D2 0 0 59 D A ' address 2, record 3 | ||
+ | |||
+ | 3C 6C A EC 69 31 2C A 82 A7 D2 0 0 69 D A ' address 3, record 4 | ||
+ | |||
+ | 3C 6C A EC 69 41 2C A 82 A7 D2 0 0 79 D A ' address 4, record 5 | ||
+ | |||
+ | 3C 6C A EC 69 51 2C A 82 A7 D2 0 0 89 D A' and so on … | ||
+ | |||
+ | … … … | ||
+ | |||
+ | 3C 6C A EC 69 21 2C A 83 53 D2 0 0 6 D A ' address 98, record 99 | ||
+ | |||
+ | 3C 6C A EC 6A 31 2C A 83 53 D2 0 0 17 D A' address 99, record 100 | ||
+ | |||
+ | //**__Data record structure__**// | ||
+ | |||
+ | The returned information from a data record contains 10 bytes with the following information. | ||
+ | |||
+ | Here's a description with the data from the first record as example: 3C CF 01 0D 0A 82 A7 D2 2B 00 | ||
+ | |||
+ | or binary written: | ||
+ | |||
+ | * First 2 bytes = The measured value. | ||
+ | * 3C CF or //15567//: This value needs to be multiplied with the 'Data value multiplicator', | ||
+ | * highest 4 bits (//b15 //→ //b12//) = channel number minus 1\\ The example is 0, this is the lowest channel number CH1. | ||
+ | * lowest 12 bits (//b11// → //b0//) = temperature. \\ In the example: 1 0D or //269//, this value has an offset of the minimal temperature (-// | ||
+ | * The highest bit is 1 when the value or the temperature is out of range\\ In the example: 0, No out of range measurements. | ||
+ | * The lowest seven bits is a number for 0 to 99, indicating the last 2 digits of the year\\ In the example: 0A, year 10 (lowest 2 digits from 2010).\\ | ||
+ | * b31 → b28:4 bits with the Month (0..12), in example 1000 = //8//, the month August | ||
+ | * b27 → b22:6 bits with the Minutes (0..59), in example 0010 10 = //10// | ||
+ | * b21 → b16:6 bits with the Seconds (0..59), in example 10 0111 = //39 // | ||
+ | * b15 → b11:5 bits with the date (day of the month, 0..31), in example 1101 0 //=//// 26 // | ||
+ | * b10 → b6:5 bits with the hour (0..23), in example 010 00 //=//// 8 // | ||
+ | * b5 → b0: 6 bits with the [[# | ||
+ | * //0//The data is recorded due to the timer | ||
+ | * //1//The data is recorded due to pressing the STORE button | ||
+ | * 2The data is recorded due to pressing the HOLD button | ||
+ | The recorded data from the example is //15.57 pH//, //21.9°C// on the // | ||
+ | |||
+ | ===== Read Date/time ===== | ||
+ | |||
+ | e.g.Send the ' | ||
+ | |||
+ | 3E 59 0D 0A | ||
+ | |||
+ | 3C 59 6 A B F 11 C 1D F9 D A | ||
+ | |||
+ | Returned information: | ||
+ | |||
+ | * 3C 59 6First 3 bytes = start of answer + number of data bytes to follow. | ||
+ | * A B F Next 3 bytes form the date in the order Year (10), month (11) and date (15). | ||
+ | * 11 C 1DNext 3 bytes form the time in the order hour (17), minutes (12) and seconds (29). | ||
+ | * F9 D ALast 3 bytes with checksum and closing codes. | ||
+ | The current date and time here is: 15 November (20)10, 17:12:29. | ||
+ | |||
+ | ===== Set Date/time ===== | ||
+ | |||
+ | e.g.Send the ' | ||
+ | |||
+ | 3E 79 A B F 11 1E 0 A 0D 0A' '> | ||
+ | |||
+ | 3C 79 B5 D A | ||
+ | |||
+ | ===== Read Display text ===== | ||
+ | |||
+ | One line of the text on the display can be read using the command ' | ||
+ | |||
+ | // | ||
+ | |||
+ | //**- **//Only the regular text format will be returned, Bold characters and large font characters are not returned! | ||
+ | |||
+ | - The number of returned characters depend on the current action of the device. Some display outputs give also help information on the right side, which is not returned with this command. | ||
+ | |||
+ | e.g.Read line 0 during the display | ||
+ | |||
+ | 3E 58 00 96 0D 0A/* ' | ||
+ | |||
+ | 3C 58 28 31 20 70 48 20 20 20 20 20 20 20 20 20 20 20 20 32 35 2E 30 F8 43 20 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 0D 0A | ||
+ | |||
+ | 40 bytes are returned for the line as ASCII formatted characters = | ||
+ | |||
+ | '1 pH 25.0øC ' | ||
+ | |||
+ | Read line 2 during the display of the pH calibration menu: | ||
+ | |||
+ | 3E 58 02 98 0D 0A | ||
+ | |||
+ | 3C 58 15 20 20 42 75 66 66 65 72 32 3A 20 20 20 34 2E 30 30 20 70 48 20 C9 0D 0A | ||
+ | |||
+ | Only 21 bytes are returned for the line as ASCII formatted characters = | ||
+ | |||
+ | ' | ||
+ | |||
+ | ===== Start/Stop Display dump ===== | ||
+ | |||
+ | When sending the command ' | ||
+ | |||
+ | Each string sent to the display will be terminated with a CR+LF combination on the serial port. | ||
+ | |||
+ | e.g.Start the dump during the pH measurement: | ||
+ | |||
+ | > | ||
+ | |||
+ | <(d_ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | 18/ | ||
+ | |||
+ | > | ||
+ | |||
+ | <)e_ | ||
+ | |||
+ | Mind that special characters such as battery symbols are given in the internal font code which is similar to the ASCII table, besides these special characters. Mind that characters with an ASCII code less then a space (0x20) are given as underscore ' | ||
+ | |||
+ | ===== Device Information ===== | ||
+ | |||
+ | Using the command ' | ||
+ | |||
+ | ^Byte^Returned information| | ||
+ | |0|Device model| | ||
+ | |1|Version| | ||
+ | |2|Serial number| | ||
+ | |199, | ||
+ | |||
+ | e.g.Request model: | ||
+ | |||
+ | 3E 49 00 87 0D 0A | ||
+ | |||
+ | 3C 49 05 43 33 30 33 30 93 0D 0A/* '< | ||
+ | |||
+ | Request version: | ||
+ | |||
+ | 3E 49 01 88 0D 0A | ||
+ | |||
+ | 3C 49 04 20 31 2E 37 3F 0D 0A/* '< | ||
+ | |||
+ | ===== Read User table ===== | ||
+ | |||
+ | There are 5 pH user tables and 3 Conductivity user tables available in these devices. It is possible to read these user tables using the command ' | ||
+ | |||
+ | e.g.Read pH user table nr. 2 | ||
+ | |||
+ | 3E 55 01 00 94 0D 0A/* '> | ||
+ | |||
+ | 3C 55 41 /* start of answer '< | ||
+ | |||
+ | 42 55 46 32 00 00 /* 6 bytes: 5 characters with name(' | ||
+ | |||
+ | 00 00 C3 50 00 09 27 C0 /* 10 bytes: 4 bytes as minimum and 4 bytes as maximum temperature, | ||
+ | |||
+ | (here 50000 (00 00 C3 50) and 600000 (00 09 27 00), or 5,0 and 60°C */ | ||
+ | |||
+ | 0B/* 1 byte as size of table -1: 0B=11 => 12 values of 4 bytes each, */ | ||
+ | |||
+ | 02/* 1 byte with irrelevant information, | ||
+ | |||
+ | __00 00 71 A8____00 00 00 00____00 00 00 00____00 00 00 00__/* 12 table values (4 bytes each)starting from 5 | ||
+ | |||
+ | < | ||
+ | |||
+ | __00 00 71 A8____00 00 00 00____00 00 71 A8____00 00 00 00__/* obligatory. Values equal to 0 are not used ! | ||
+ | |||
+ | < | ||
+ | |||
+ | __00 00 00 00____00 00 00 00____00 00 00 00____00 00 00 00__/* combination with the measurement format byte | ||
+ | |||
+ | < | ||
+ | |||
+ | 2B /* Format of the table values = '0,01 pH' (see [[# | ||
+ | |||
+ | 67 0D 0A/* checksum + CR +LF */ | ||
+ | |||
+ | e.g.Read Conductivity (EC) user table nr. 1 | ||
+ | |||
+ | 3E 55 00 01 94 0D 0A/* '> | ||
+ | |||
+ | 3C 55 41 /* start of answer '< | ||
+ | |||
+ | 53 54 44 31 00 00 /* 6 bytes: 5 characters with name (' | ||
+ | |||
+ | 00 00 C3 50 00 05 57 30 /* 8 bytes: 4 bytes as minimum and 4 bytes as maximum temperature, | ||
+ | |||
+ | (here 50000 (00 00 C3 50) and 350000 (00 05 57 30), or 5,0 and 35°C | ||
+ | |||
+ | (see [[# | ||
+ | |||
+ | 06/* 1 byte as size of table-1: 06 => 7 values of 4 bytes each */ | ||
+ | |||
+ | 02/* 1 byte with irrelevant information, | ||
+ | |||
+ | __00 00 00 00____00 9B A3 C0____00 AF 04 B0____00 C3 01 E0__/* 12 table values (4 bytes each)starting from 5 | ||
+ | |||
+ | < | ||
+ | |||
+ | __00 D7 9B 50____00 EC D1 00____00 00 00 00__00 00 00 00/* __last 5 table values (marked X) are not used__ | ||
+ | |||
+ | < | ||
+ | |||
+ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /* | ||
+ | |||
+ | < | ||
+ | |||
+ | 07 /* Format of the table values = '1 µS/ | ||
+ | |||
+ | 20 0D 0A/* checksum + CR +LF */ | ||
+ | |||
+ | ===== Store User table ===== | ||
+ | |||
+ | It is also possible to store your user tables with the ' | ||
+ | |||
+ | - Set the device in the SETTINGS menu mode using the ' | ||
+ | - Send the [[# | ||
+ | - Send the [[# | ||
+ | - Send the table number, table type and the table information in the same format as one can read them with the ' | ||
+ | e.g.Store the table 0,01 M KCl as EC table nr 3 | ||
+ | |||
+ | 3E 46 00 84 0D 0A/* Step1: '> | ||
+ | |||
+ | 3C 46 82 0D 0A/* device confirmation */ | ||
+ | |||
+ | 3E 49 C7 4E 0D 0A/* Step2: '> | ||
+ | |||
+ | 3C 49 85 0D 0A/* device confirmation */ | ||
+ | |||
+ | 3E 49 63 EA 0D 0A/* Step3: '> | ||
+ | |||
+ | 3C 49 85 0D 0A/* device confirmation */ | ||
+ | |||
+ | 3E 75 02 01 /* Step4: '> | ||
+ | |||
+ | 53 54 44 31 00 00 00 00 C3 50 00 05 57 30 06 02 /* table name + min/max°C+ ... */ | ||
+ | |||
+ | 00 88 B8 00 00 9B A3 C0 00 AF 04 B0 00 C3 01 E0 /* first 4 values */ | ||
+ | |||
+ | 00 D7 9B 50 00 EC D1 00 00 00 00 00 00 00 00 00 /* next 4 values */ | ||
+ | |||
+ | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /* last 4 values */ | ||
+ | |||
+ | 07 /* Measurement format */ | ||
+ | |||
+ | 44 0D 0A /* checksum + CR + LF */ | ||
+ | |||
+ | 3C 75 B1 0D 0A/* device confirmation */ | ||
+ | |||
+ | Mind that all these table elements (name, min/max, values, format, irrelevant values/ | ||
+ | |||
+ | There is no control on the 12 table values or the measurement format when writing the table. The incorrectness of these are solely the responsibility of the user. | ||
+ | |||
+ | ===== Restart the device ===== | ||
+ | |||
+ | Send the Command '> | ||
+ | |||
+ | e.g. | ||
+ | |||
+ | 3E 52 45 53 45 54 C1 0D 0A /* ' | ||
+ | |||
+ | The device restarts without any answer ! | ||
+ | |||
+ | ====== Measurement formats ====== | ||
+ | |||
+ | The measurements returned as 32 bit numbers are based on the integer 10000 as unit value. The returned format number indicates which value is represented according to the following table. The values should rounded against the given format. | ||
+ | |||
+ | e.g. 1. The measured 32 bit value is //86932//, the given format number is //43//which is 0,01 pH according to the table. This value represents the measurement of //8,69 pH////.// | ||
+ | |||
+ | 2. The measured 32 bit value is // | ||
+ | |||
+ | ^Code^Format^Unit^Data value Multiplicator^Measurement| | ||
+ | |0|0.1 |mV |1000|Redox Potential| | ||
+ | |1|1|mV |1000|Redox Potential| | ||
+ | |2|0.1|%O< | ||
+ | |3|1|%O< | ||
+ | |4|0.001 |µS/cm |10|Conductivity| | ||
+ | |5|0.01 |µS/cm |100|Conductivity| | ||
+ | |6|0.1 |µS/cm |1000|Conductivity| | ||
+ | |7|1|µS/cm |10000|Conductivity| | ||
+ | |8|0.01 |mS/cm |100|Conductivity| | ||
+ | |9|0.1 |mS/cm |1000|Conductivity| | ||
+ | |10|1|mS/cm |10000|Conductivity| | ||
+ | |11|0.001 |mg/l |10|TDS (Total Dissolved Solids)| | ||
+ | |12|0.01 |mg/l |100|TDS (Total Dissolved Solids)| | ||
+ | |13|0.1 |mg/l |1000|TDS (Total Dissolved Solids)| | ||
+ | |14|1|mg/l |10000|TDS (Total Dissolved Solids)| | ||
+ | |15|0.01|g/ | ||
+ | |16|0.1 |g/l |1000|TDS (Total Dissolved Solids)| | ||
+ | |17|1|g/l |10000|TDS (Total Dissolved Solids)| | ||
+ | |18|0.1 |MΩ.cm|1000|Resistivity| | ||
+ | |19|0.01|MΩ.cm|100|Resistivity| | ||
+ | |20|1| KΩ.cm|10000|Resistivity| | ||
+ | |21|0.1 | KΩ.cm|1000|Resistivity| | ||
+ | |22|0.01| KΩ.cm|100|Resistivity| | ||
+ | |23|1| Ω.cm|10000|Resistivity| | ||
+ | |24|0.1 | Ω.cm|1000|Resistivity| | ||
+ | |25|0.1 |SAL|100|Salinity| | ||
+ | |26|0.01 |ng/ | ||
+ | |27|0.1 |ng/ | ||
+ | |28|1|ng/ | ||
+ | |29|0.01 |µg/ | ||
+ | |30|0.1 |µg/ | ||
+ | |31|1|µg/ | ||
+ | |32|0.01 |mg/ | ||
+ | |33|0.1 |mg/ | ||
+ | |34|1|mg/ | ||
+ | |35|0.01 |g/ | ||
+ | |36|0.1 |g/ | ||
+ | |37|1|g/ | ||
+ | |38|0.1 |°C |1000|Temperature in degrees Celsius| | ||
+ | |41|1|hPa |n.a.|Air Pressure| | ||
+ | |42|0.001 |pH |10|pH| | ||
+ | |43|0.01 |pH |10|pH| | ||
+ | |44|0.1 |pH |10|pH| | ||
+ | |45|0.01 |ppm O< | ||
+ | |46|0.1 |ppm O< | ||
+ | |50|0.1|%|100|General unit in percentage| | ||
+ | |51|1|%|100|General unit in percentage| | ||
+ | |53|0.1|mVH |1000|Redox Potential, Normal Hydrogen Electrode reference| | ||
+ | |54|1|mVH |1000|Redox Potential, Normal Hydrogen Electrode reference| | ||
+ | |55|0.01|rH< | ||
+ | |56|0.1|rH< | ||
+ | |57|0.001|µW|10|Power in microWatts, quantification of Vincent| | ||
+ | |58|0.01|µW|100|Power in microWatts, quantification of Vincent| | ||
+ | |59|0.1|µW|1000|Power in microWatts, quantification of Vincent| | ||
+ | |60|1|µW|10000|Power in microWatts, quantification of Vincent| | ||
+ | |61|1|µW|10000|Power in microWatts, quantification of Vincent| | ||
+ | |62|1|µW|10000|Power in microWatts, quantification of Vincent| | ||
+ | |63|1|µW|10000|Power in microWatts, quantification of Vincent| | ||