To Consort website  |  Print page

User Tools

Site Tools


doc1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc1 [20/05/2014 18:27]
Consort removed
doc1 [03/09/2014 07:30]
pieter File build by odt2dw plugin from fileC30xx_ComputerControl.odt
Line 1: Line 1:
-====== TAF_ConductvityErrors ====== +====== C30xx_ComputerControl ====== 
-<sub>{{TAF_ConductvityErrors.odt|Original file}}</sub>+<sub>{{C30xx_ComputerControl.odt|Original file}}</sub>
  
-====== Conductivity Accuracy ======+C30xx Digital communication
  
-The accuracy of the Conductivity measurement depends on 4 elements:+====== Introduction ======
  
-  Measurement device +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.
-  Electrode +
-  Standard solutions +
-  Good Laboratory Measurement +
-These will be explained in the following paragraphs.+
  
-===== Device =====+====== Digital ports ======
  
-This error indicates the possible deviation of the actual conductivity of non calibrated measurement when using an ideal electrode. The device error is the sum of 2 different errors: repetition error and linearity error.+The devices ending on '0' are equipped with an USB and a RS232 port, the device ending on '1' are equipped with an Ethernet and a RS232 port
  
-The error of the device is given in the technical specificationsA Conductivity meter usually has several measurement rangestherefore is the error usually given as a percentage of the full scale (% f.s.) of the rangeThis allows to calculate the exact absolute device error value for each range separately.+The Ethernet systems require some set up which is explained in the //Ethernet Configuration document //which can be downloaded from our website[[http://www.consort.be/|http://www.consort.be]], section //Downloads>Software.// 
 + 
 +The USB driver can be downloaded from our website [[http://www.consort.be/|http://www.consort.be]], section //Downloads>Software.// 
 + 
 +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 device allows a baudrate up to 115200 bps. Most computers can operate at this high speed which might be interesting especially for transferring a large data table to the computer. 
 + 
 +====== Command protocol to send ====== 
 + 
 +Commands are sent according to the next protocol: 
 + 
 +'>' + Command + Data + Checksum + CR + LF 
 + 
 +With: 
 + 
 +|'>'|Start of command protocol.\\ | 
 +|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 bytethe 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.| 
 + 
 +//- the single quote signs are only to indicate it is a character, the signs are not to be sent to the device.// 
 + 
 +//- the + signs are to not to be sent either unless when placed between quotes.// 
 + 
 +//- the function ASC() indicates the character with the ASCII value given between the brackets ought to be used.// 
 + 
 +//- Simple commands that do not require additional data don't need to be completed with the checksum.// 
 + 
 +====== Command protocol to receive ====== 
 + 
 +Responses to the command are sent by the device follow the next protocol: 
 + 
 +'<' + Command (+ Size + Data) + Checksum + CR + LF 
 + 
 +With: 
 + 
 +|'<'|Start of response. \\ Note the opposite direction of the character, compared to the protocol to send.\\ | 
 +|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 [[#1.6.Command table|outline|command table]] when size and data will follow.\\ | 
 +|Data|The requested information. This information can be ascii coded or binary. See the [[#1.6.Command table|outline|command table]] when and which data will follow.\\ | 
 +|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), to indicate the termination of the response.\\ | 
 +|()|Size and data are not always returned! See the [[#1.6.Command table|outline|command table]] when and which data will follow.| 
 + 
 +====== Command table ====== 
 + 
 +^Command^Additional data bytes^Returned data bytes^Purpose^See| 
 +|'?'| | |Request to print last measurements in ASCII format| //**[[#1.6.2.Print Measurements|outline|Print measurements]]**//
 +|'-'| | |Disable user keyboard | //**[[#1.6.3.Keyboard|outline|Keyboard]]**//
 +|'+'| | |Enable user keyboard| //**[[#1.6.3.Keyboard|outline|Keyboard]]**//
 +|'B'|1| |Simulation of key| //**[[#1.6.4.Key Simulation|outline|Key simulation]]**//
 +|'S'| |yes|Request the settings from the device| //**[[#1.8.5.Request Settings|outline|Settings]]**//
 +|'M'|1|yes|Request measurements from a channel| //**[[#1.8.6.Request measurement|outline|Request Measurement]]**//
 +|'F'|1| |Change display Output| //**[[#6.7.Set Display Output|outline|Display output]]**//
 +|'G'| |yes|Return the GLP report from the current focused channel| //**[[#6.10.GLP report|outline|GLP report]]**//
 +|'D'|4| |Modify the data logger settings| //**[[#6.11.Parameters Data log|outline|Parameters Data log]]**//
 +|'L'| |yes|Requests complete Data table in ASCII format| //**[[#6.12.Data table text|outline|Data table text]]**//
 +|'l'|8|yes|Requests Data information in binary format| //**[[#6.13.Data table binary|outline|Data table binary]]**//
 +|'Y'| |yes|Read date and time from device| //**[[#6.14.Date/time|outline|Read Date/time]]**//
 +|'y'|6| |Set date and time from device| //**[[#6.13.Set Date/time|outline|Set Date/time]]**//
 +|'X'|1|yes|Read text row from display| //**[[#6.16.Display text|outline|Display text]]**//
 +|'(', ')'| | |Start and stop dumping of display text| //**[[#6.14.Start/Stop Display dump|outline|Start/Stop Display dump]]**//
 +|'I'|1|yes|Request specific device information| //**[[#6.19.Device Information|outline|Device Information]]**//
 +|'U'|2|yes|Read specific user table| [[#6.20.Read User table|outline|Read User table]]| 
 +|'u'|65| |Store user table| [[#6.21.Store User table|outline|Store User table]]| 
 +|'R'|4| |Resets/Restarts the device| //**[[#6.21.Reset|outline|Reset]]**//
 + 
 +====== Command specifications + examples ====== 
 + 
 +===== Conventions ===== 
 + 
 +  * The examples are written in a coloured fixed pitch font (Courier).  
 +  * The blue coloured text in the example highlights the text sent by the computer (see [[#3.Command protocol to send|outline|Command protocol to send]]).  
 +  * The magenta coloured text highlights the answer received from the device (see [[#4.Command protocol to receive|outline|Command protocol to receive]]).  
 +  * Green text highlights additional comments or clarifications which are not sent or received. 
 +  * 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 ===== 
 + 
 +Send the command '?' to request the last measurements.
  
 e.g.  e.g. 
  
-Error specification: 0.5% f.s. of range+>? 
 + 
 +<?{ 
 + 
 +31/05/2010 15:00:18 7.215 pH 18.2 °C 
 + 
 +0.73 ng/l 18.2 °C 
 + 
 +===== Keyboard ===== 
 + 
 +With the commands '-' and '+', it is possible to disable and enable the keyboard so the user cannot interact while the software communicates. This way the software can control the device completely. The keyboard is automatically re-enabled when the device restarts. 
 + 
 +e.g.  
 + 
 +>- 
 + 
 +<-i /* the keyboard is now disabled */ 
 + 
 +>+ 
 + 
 +<+g /* the keyboard is now enabled */ 
 + 
 +===== Key Simulation ===== 
 + 
 +With the commands 'B' and an additional code (see table below), it is possible to simulate the keyboard. 
 + 
 +As soon as a 'B' command has been received, the __keyboard will be automatically disabled__ and should be enabled again with the '+' command when required. 
 + 
 +Table Key codes: 
 + 
 +^Code (binary!)^Key| 
 +|0|UP (arrow)| 
 +|1|OK | 
 +|2|DOWN (arrow)| 
 +|3|STORE| 
 +|4|CAL| 
 +|5|HOLD| 
 +|6|MODE| 
 + 
 +e.g. 
 + 
 +3E 42 00 80 0D 0A/* '>B'+CHR(0)+CS+CR+LF : Simulate up arrow */ 
 + 
 +3C 42 7E 0D 0A/* Device answer, command is accepted */ 
 + 
 +/* the keyboard is now disabled !! */ 
 + 
 +===== Request Settings ===== 
 + 
 +The command 'S' returns the binary settings of the device.  
 + 
 +e.g.3E 53 91 0D 0A 
 + 
 +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  
 + 
 +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 
 + 
 +00 00 00 00 00 00 04 00 00 4D 0D 0A 
 + 
 +34 35 36 37 38 39 40 41 42 43 44 45 : byte number offsets) 
 + 
 + 
 + 
 +//**__Data record structure__**// 
 + 
 +Byte 0, 1:  
 + 
 +'<S' = start of answer from device 
 + 
 +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**////for the models C3010, C3020, C3030////**.**// 
 + 
 +Byte 15: (//**11**////for the models C3010, C3020, C3030//) 
 + 
 +Display resolution settings. 
 + 
 +Byte 16, 17, 18, 19: (//**12, 13, 14, 15**////for the models C3010, C3020, C3030//) 
 + 
 +32 bits Password settings. The highestbit (//32////<sup>nd</sup>//) indicates the password is enabled. 
 + 
 +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 (//16////<sup>th</sup>//) = the data logger is enabled when 1. 
 + 
 +Second highestbit (//15////<sup>th</sup>//) = memory rotation or continuous data registration. 
 + 
 +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 of logged data points 
 + 
 +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 in seconds. 
 + 
 +Byte 43: (//**35**////for the models C3010, C3020, C3030//) 
 + 
 +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 '>?') returns ASCII coded measurement values of all active channels. This requires more time for the sending and can only be used during the regular measurement mode. To request the measurements during calibrations or to reduce communication time, use the command 'M' + (the channel number – 1) for which the data is requested. The device will return all measurement and status information for that channel as binary data. 
 + 
 +Before device version 1.7: 
 + 
 +e.g.Request the measurement from channel 1 (=> Send 'M'+0, see [[#1.6.Command table|outline|command table]]) 
 + 
 +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 = '<M': 
 + 
 +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:temperature out of range, when 1 
 + 
 +bit 13:temperature probe connected, when 1 
 + 
 +bit 11:measurement out of range, when 1 
 + 
 +bit 7:measurement is found to be stable, when 1 
 + 
 +Byte 5: Type of measurement. This will depend on the device model. 
 + 
 +Byte 6, 7, 8, 9, 10: Internal information, not of use 
 + 
 +Byte 11: Output format of measurement.  
 + 
 +See the table [[#1.8.7.Measurement formats|outline|Measurement formats]] to find here the value 2A (= 42 decimal) corresponds with the format of '0,001 pH'. 
 + 
 +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 the measurement from channel 2 (=> Send 'M'+1, see [[#1.6.Command table|outline|command table]]) 
 + 
 +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 = '<M': 
 + 
 +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:temperature out of range, when 1 
 + 
 +bit 13:temperature probe connected, when 1 
 + 
 +bit 11:measurement out of range, when 1 
 + 
 +bit 7:measurement is found to be stable, when 1 
 + 
 +Byte 5: Type of measurement. This will depend on the device model. 
 + 
 +Byte 6: Output format of measurement.  
 + 
 +See the table [[#1.8.7.Measurement formats|outline|Measurement formats]] to find here the value 1E corresponds with the format of '0,1 µg/l' (Ion measurement). 
 + 
 +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/l'
 + 
 +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 'F' + (channel number) to set a specific channel measurement on the display. The display with measurement information of all channels has the number 0, the channels start from 1, the temperature displays start from 1+number of channels. 
 + 
 +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/00/2000 
 + 
 +Time : 00:00:00 
 + 
 +Reference temp. : 25°C 
 + 
 +Standard 1 : 0.01M KCl 
 + 
 +Value : 0.000µS/cm 
 + 
 +CC : 0.000cm1 
 + 
 +°C : 0.0  
 + 
 +Time : 00:00 
 + 
 +Standard 2 : 0.01M KCl 
 + 
 +Value : 0.000µS/cm 
 + 
 +CC : 1.000cm1 
 + 
 +°C : 25.0  
 + 
 +Time : 00:00 
 + 
 +Standard 3 : 0.01M KCl 
 + 
 +Value : 0.000µS/cm 
 + 
 +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 'D' allows to adjust the data log parameters while measuring. Four additional bytes (32 bits) are required: 
 + 
 +  * Highest bit: enable data log function 
 +  * 2<sup>nd</sup> highest bit: log continuously when 1. The oldest data can be overwritten. 
 +  * 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 'L' is the same as manually selecting DATA>PROCESS>SEND from the SETTINGS menu.  
 + 
 +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. 
 + 
 +**<Lˆ** 
 + 
 +LOG.0000126/08/201008:10:39CH1 15.57pH 21.9°C 
 + 
 +LOG.0000226/08/201008:10:39CH21060.µS/cm 22.3°C 
 + 
 +LOG.0000326/08/201008:10:39CH3-501.5mV 25.0°C 
 + 
 +LOG.0000426/08/201008:10:39CH4-501.5mV 25.0°C 
 + 
 +LOG.0000526/08/201008:10:39CH5-501.5mV 25.0°C 
 + 
 +LOG.0000626/08/201008:10:39CH6-501.5mV 25.0°C 
 + 
 +LOG.0000726/08/201008:10:49CH1 15.57pH 21.9°C 
 + 
 +LOG.0000826/08/201008:10:49CH21060.µS/cm 22.3°C 
 + 
 +LOG.0000926/08/201008:10:49CH3-501.5mV 25.0°C 
 + 
 +LOG.0001026/08/201008:10:49CH4-501.5mV 25.0°C 
 + 
 +LOG.0001126/08/201008:10:49CH5-501.5mV 25.0°C 
 + 
 +LOG.0001226/08/201008:10:49CH6-501.4mV 25.0°C 
 + 
 +===== Request Data table as binary data ===== 
 + 
 +The command 'l' allows to read the data table as binary information. This is a lot faster but requires the receiver program to decode the information. 
 + 
 +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/lines (here 100) which will be returned 
 + 
 +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'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', which can be found in the [[#7.Measurement formats|outline|measurement format table]], to obtain a 32 bit measurement value based on 10000 as unit value. The required measurement format can be retrieved from the lower 6 bits from the 9<sup>th</sup> data byte.\\   * Next 2 bytes contain the channel number minus 1 and the measured temperature: 
 +    * 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 (-//5,0//°C) and needs to be multiplied with the 'Data value multiplicator' for °C, which can be found in the [[#7.Measurement formats|outline|measurement format table]], to obtain a 32 bit measurement value based on //10000// as unit value. The resulting °C value is //(269-50)*1000// = //219000// or //21,9//°C.\\   * The 5<sup>th</sup> Byte contains the 'out of range flag' and the lowest 2 digits of the year. 
 +    * 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).\\   * The 6<sup>th</sup> , 7<sup>th</sup> , 8<sup>th</sup>and 9<sup>th</sup> byte (32 bits, starting from //b31// down to //b0//) contain the date/time information and the measurement format range.\\ In the example, this information is binary: 1000 0010 1010 0111 1101 0010 0010 1011 
 +    * 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 [[#7.Measurement formats|outline|measurement format table]] index, in example 10 1011 //=//// 43 //or the range //0.01 pH.//\\   * The 10<sup>th</sup> byte returns additional information which has the following values: 
 +    * //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 //26////<sup>th</sup>//// of August, 2010// at //08:10:39//. The value is recorded due to the timer. 
 + 
 +===== Read Date/time ===== 
 + 
 +e.g.Send the 'Y' command to return the date and time 
 + 
 +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 'y' command +data to set the date and time to 15 Nov 10, 17:30:00 
 + 
 +3E 79 A B F 11 1E 0 A 0D 0A' '>y' + year + month + date + hour + minutes + seconds + CS + cr + lf 
 + 
 +3C 79 B5 D A 
 + 
 +===== Read Display text ===== 
 + 
 +One line of the text on the display can be read using the command 'X' + line number (starting from 0).  
 + 
 +//**Important: **// 
 + 
 +//**- **//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 of the measurement of CH1: 
 + 
 +3E 58 00 96 0D 0A/* 'X' + 0 + … */ 
 + 
 +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 = 
 + 
 +'Buffer2: 4.00 pH ' 
 + 
 +===== Start/Stop Display dump ===== 
 + 
 +When sending the command '(' the device starts to send all data written to the display, also to the serial port. The dumping will be stopped when sending the closing bracket 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: 
 + 
 +>(f_////' start the dump 
 + 
 +<(d_ 
 + 
 +18/04/2012_08:47:05_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_' the characters '_'  
 + 
 +18/04/2012_08:47:06_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_' are CR+LF combinations 
 + 
 +18/04/2012_08:47:06_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:07_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:07_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:08_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:08_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:09_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:09_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:10_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +18/04/2012_08:47:10_1_ -10.5_mV_2_ 72.3_°C_ 0.61_ng/l_ 
 + 
 +>)g_' stop the dump 
 + 
 +<)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 'I' with extra byte, it is possible to request some device specific information. 
 + 
 +^Byte^Returned information| 
 +|0|Device model| 
 +|1|Version| 
 +|2|Serial number| 
 +|199,99|Special codes. See [[#6.18.Store User table|outline|Store User Table]]| 
 + 
 +e.g.Request model: 
 + 
 +3E 49 00 87 0D 0A 
 + 
 +3C 49 05 43 33 30 33 30 93 0D 0A/* '<I'+nr of data bytes+'C3030'+Checksum+CR+LF */ 
 + 
 +Request version: 
 + 
 +3E 49 01 88 0D 0A 
 + 
 +3C 49 04 20 31 2E 37 3F 0D 0A/* '<I'+nr of data bytes+' 1.7'+Checksum+CR+LF */ 
 + 
 +===== 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 'U' added with the //table number – 1// and the //table type (0x00 = pH, 0x01 = EC)//. More explanation is given in the following examples. 
 + 
 +e.g.Read pH user table nr. 2 
 + 
 +3E 55 01 00 94 0D 0A/* '>U'+0x01+0x00+Checksum+CR+LF = __Read pH table 2__ (BUF2)*/ 
 + 
 +3C 55 41 /* start of answer '<U' + 65 data bytes to follow */ 
 + 
 +42 55 46 32 00 00 /* 6 bytes: 5 characters with name('BUF2') + 0x00 as end of string*/ 
 + 
 +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, NOT USED */ 
 + 
 +__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 
 + 
 +<----0----> <----1----> <----2----> <----3----> / to 60°C. The value at 25°C (group 4)is*/ 
 + 
 +__00 00 71 A8____00 00 00 00____00 00 71 A8____00 00 00 00__/* obligatory. Values equal to 0 are not used !  
 + 
 +<----4----> <----5----> <----6----> <----7----> / The representation of the values is in */ 
 + 
 +__00 00 00 00____00 00 00 00____00 00 00 00____00 00 00 00__/* combination with the measurement format byte 
 + 
 +<----8----> <----9----> <----10---> <----11---> / (=last table byte = 2B) */ 
 + 
 +2B /* Format of the table values = '0,01 pH' (see [[#7.Measurement formats|outline|Measurement formats]])*/ 
 + 
 +67 0D 0A/* checksum + CR +LF */ 
 + 
 +e.g.Read Conductivity (EC) user table nr. 1 
 + 
 +3E 55 00 01 94 0D 0A/* '>U'+0x00+0x01+Checksum+CR+LF = __Read EC table 1__ (STD1) */ 
 + 
 +3C 55 41 /* start of answer '<I' + 65 data bytes to follow  */ 
 + 
 +53 54 44 31 00 00 /* 6 bytes: 5 characters with name ('STD1') + 0x00 as end of string  */ 
 + 
 +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 [[#7.Measurement formats|outline|Measurement formats]]) */ 
 + 
 +06/* 1 byte as size of table-1: 06 => 7 values of 4 bytes each */ 
 + 
 +02/* 1 byte with irrelevant information, NOT USED  */ 
 + 
 +__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 
 + 
 +<----0----> <----1----> <----2----> <----3----> / to 35°C. The value at 25°C is obligatory. The */ 
 + 
 +__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__ 
 + 
 +<----4----> <----5----> <----6----> <----X----> / but are required. */ 
 + 
 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /* 
 + 
 +<----X----> <----X----> <----X----> <----X----> / */ 
 + 
 +07 /* Format of the table values = '1 µS/cm' (see [[#7.Measurement formats|outline|Measurement formats]])  */ 
 + 
 +20 0D 0A/* checksum + CR +LF */ 
 + 
 +===== Store User table ===== 
 + 
 +It is also possible to store your user tables with the 'u' command. It is however required to follow the next procedure: 
 + 
 +  - Set the device in the SETTINGS menu mode using the 'B' command. 
 +  - Send the [[#6.16.Device Information|outline|Device Information]] command code with the first unlock code 0xC7. 
 +  - Send the [[#6.16.Device Information|outline|Device Information]] command code with the second unlock code 0x63. 
 +  - Send the table number, table type and the table information in the same format as one can read them with the 'U' command (mind the capital size or lower case of the command codes!). This table format requires : (see examples in [[#6.21.Read User table|outline|Read User Table]])\\ \\ - 6 bytes for the table name,\\ - 10 bytes with table information,\\ - 48 bytes with table values, also required for EC for which the last 20 bytes are irrelevant !\\ - 1 byte with the measurement format of the table values (Important for EC!) 
 +e.g.Store the table 0,01 M KCl as EC table nr 3 
 + 
 +3E 46 00 84 0D 0A/* Step1: '>F'+ 0x00 = command to get into the SETTINGS menu */ 
 + 
 +3C 46 82 0D 0A/* device confirmation */ 
 + 
 +3E 49 C7 4E 0D 0A/* Step2: '>I'+ 0xC7 (199) = First step of unlock code */ 
 + 
 +3C 49 85 0D 0A/* device confirmation */ 
 + 
 +3E 49 63 EA 0D 0A/* Step3: '>I'+ 0x63 (99) = Second step of unlock code */ 
 + 
 +3C 49 85 0D 0A/* device confirmation */ 
 + 
 +3E 75 02 01 /* Step4: '>u'+ 0x02 (= table number __3__)+ 0x01 (=EC table) */ 
 + 
 +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/bytes, ...) are required but only the 12 values and the measurement format for conductivity tables will be stored. The measurement format cannot be changed for pH tables. The names, min/max temperature, number of table values... cannot be changed.  
 + 
 +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 =====
  
-  * Range up to 20.00 µS/cm: max. device error = 0.10 µS/cm +Send the Command '>R' followed by 'ESET'+Checksum to restart the device. There will be no answer given.
-  * Range up to 2000 µS/cm:max. device error = 10 µS/cm +
-This doesn't mean that when you measure a conductivity of 1000 µS/cm, a few moments later the device might indicate 10 µS more or less in the same solutionNo, the device remains quite stable and has a very small repetition error.+
  
-The device error might be minimized after a proper calibration and measurements near the calibration pointsThe further the measurements deviate of the calibration points, the possible error will increase again towards the max. device error. This because of the possible linearity error.+e.g.
  
-===== Electrode =====+3E 52 45 53 45 54 C1 0D 0A /* 'RESET' + Checksum + CR + LF */
  
-A Conductivity electrode is a passive element which remains also rather stable. The error will mostly be coming from impurities or small construction differences. The measurement error is here also the sum of small repetition errors and larger linearity errors. The linearity error is increasing for most electrodes when measuring in higher ranges. Plastic body cells are mostly not suitable for higher conductivity measurements.+The device restarts without any answer !
  
-Elimination of the error is done by choosing a calibration point(s) near the measurements to be done. +====== Measurement formats ======
  
-===== Standard Solutions =====+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.
  
-The standards that are used for the calibration are the largest cause of error which cannot be eliminated. The solutions have mostly an accuracy of 1% or 0.5%. This needs to be checked with the supplier or manufacturer of the solutions.+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////.//
  
-===== Good Measurement Practices =====+2. The measured 32 bit value is //1006325//, the given format number is //9//which is 0,1 mS/cm according to the table. This value represents the measurement of //100,6 mS/cm////.//
  
-  * While calibrating or measuring all solutions should be stirred gently (e.g. with a magnetic stirrerto ensure the electrode gives a true representation of the beaker contents+^Code^Format^Unit^Data value Multiplicator^Measurement| 
-  * Always check there are no air bubbles trapped in the cell while measuring+|0|0.1 |mV |1000|Redox Potential| 
-  * Calibration solutions should be chosen which have values near the expected sample value (see previous elements). +|1|1|mV |1000|Redox Potential| 
-  * Only fresh calibration solutions should be used! Changing all solutions daily is a good practice+|2|0.1|%O<sub>2</sub>|100|Dissolved Oxygen, saturation in water| 
-  * All solutions should be maintained at equal temperature+|3|1|%O<sub>2</sub>|100|Dissolved Oxygen, saturation in water| 
-  * Rinse the electrode twice between measurements and calibrations: first thoroughly in distilled water and then with a small disposable amount of the next sample to be measured.  +|4|0.001 |µS/cm |10|Conductivity| 
-  * Allow the electrodes sufficient time to stabilise while calibrating or measuringA stability indicator on most of our meters prompts the user when readings should be taken+|5|0.01 |µS/cm |100|Conductivity| 
-These measurement practices allow to keep the errors lowerror due to contaminations of the solutionstemperature differences or not taking enough time.+|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/l |100|TDS (Total Dissolved Solids)| 
 +|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/l|100|Ion| 
 +|27|0.1 |ng/l|1000|Ion| 
 +|28|1|ng/l|10000|Ion| 
 +|29|0.01 |µg/l|100|Ion| 
 +|30|0.1 |µg/l|1000|Ion| 
 +|31|1|µg/l|10000|Ion| 
 +|32|0.01 |mg/l|100|Ion| 
 +|33|0.1 |mg/l|1000|Ion| 
 +|34|1|mg/l|10000|Ion| 
 +|35|0.01 |g/l|100|Ion| 
 +|36|0.1 |g/l|1000|Ion| 
 +|37|1|g/l|10000|Ion| 
 +|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<sub>2</sub>|100|Dissolved Oxygen in ppm (=mg/l)
 +|46|0.1 |ppm O<sub>2</sub>|100|Dissolved Oxygen in ppm (=mg/l)| 
 +|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<sub>2</sub>|100| rH<sub>2</sub>, Hydrogen Potential| 
 +|56|0.1|rH<sub>2</sub>|100|rH<sub>2</sub>,Hydrogen Potential| 
 +|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 microWattsquantification of Vincent| 
 +|61|1|µW|10000|Power in microWattsquantification of Vincent| 
 +|62|1|µW|10000|Power in microWatts, quantification of Vincent| 
 +|63|1|µW|10000|Power in microWatts, quantification of Vincent|
  
  
  
doc1.txt · Last modified: 03/09/2014 07:30 by pieter