Campbell CR800 Series Operator's Manual

Other manuals for CR800 Series: Operator's Manual

Summary of CR800 Series

  • Page 1

    Ope rato r's m anual cr800 series dataloggers revision: 12/16 want to get going? Go to the quickstart (p. 35) section. C o p y r i g h t © 2 0 0 0 – 2 0 1 6 c a m p b e l l s c i e n t i f i c , i n c ..

  • Page 3: Warranty

    3 warranty the cr800 measurement and control datalogger is warranted for three (3) years subject to this limited warranty: limited warranty: products manufactured by csi are warranted by csi to be free from defects in materials and workmanship under normal use and service for twelve months from the ...

  • Page 5: Assistance

    5 assistance products may not be returned without prior authorization. The following contact information is for us and international customers residing in countries served by campbell scientific, inc. Directly. Affiliate companies handle repairs for customers within their territories. Please visit w...

  • Page 7: Precautions

    7 precautions danger — many hazards are associated with installing, using, maintaining, and working on or around tripods, towers, and any attachments to tripods and towers such as sensors, crossarms, enclosures, antennas, etc. Failure to properly and completely assemble, install, operate, use, and m...

  • Page 8

    8 utility and electrical • you can be killed or sustain serious bodily injury if the tripod, tower, or attachments you are installing, constructing, using, or maintaining, or a tool, stake, or anchor, come in contact with overhead or underground utility lines. • maintain a distance of at least one-a...

  • Page 9: Table Of Contents

    9 table of contents 1. Introduction ............................................................... 29 1.1 hello .............................................................................................. 29 1.2 typography .............................................................................

  • Page 10

    Table of contents 10 5.1.1.4 communication ports — overview ................................. 61 5.1.1.4.1 rs-232 ports ......................................................... 62 5.1.1.4.2 sdi-12 ports ......................................................... 63 5.1.1.4.3 sdm port ...................

  • Page 11

    Table of contents 11 5.9.2 protection from voltage transients — overview ...................... 85 5.9.3 factory calibration — overview ............................................... 86 5.9.4 internal battery — overview ..................................................... 86 5.10 datalogger suppor...

  • Page 12

    Table of contents 12 7.6.2.1 short cut programming wizard .................................... 122 7.6.2.2 crbasic editor .............................................................. 122 7.6.2.2.1 inserting comments into program ...................... 123 7.6.2.2.2 conserving program memory .........

  • Page 13

    Table of contents 13 7.7.1.2 conditional output ........................................................ 173 7.7.1.3 groundwater pump test ................................................ 173 7.7.1.4 miscellaneous features .................................................. 176 7.7.1.5 pulsecountrese...

  • Page 14

    Table of contents 14 7.7.14.4 sdi-12 power considerations........................................ 255 7.7.15 compiling: conditional code................................................... 256 7.7.16 measurement: rtd, prt, pt100, pt1000 .............................. 258 7.7.16.1 measurement theory (...

  • Page 15

    Table of contents 15 8.1.2.7.2 voltage measurement mechanics ....................... 348 8.1.2.7.3 voltage measurement quality ............................ 351 8.1.3 pulse measurements — details ................................................ 369 8.1.3.1 pulse measurement terminals ...................

  • Page 16

    Table of contents 16 8.7.2.1 pass-code lockout by-pass .......................................... 403 8.7.3 passwords ................................................................................. 404 8.7.3.1 .Csipasswd ...................................................................... 404 8....

  • Page 17

    Table of contents 17 8.10.1.15 web api — details ....................................................... 435 8.10.2 dnp3 — details....................................................................... 436 8.10.3 modbus — details ................................................................... 43...

  • Page 18

    Table of contents 18 10.5.4 status table as debug resource .............................................. 470 10.5.4.1 compileresults .............................................................. 471 10.5.4.2 skippedscan .................................................................. 472 10.5.4....

  • Page 19

    Table of contents 19 b. Serial port pinouts .................................................. 553 b.1 cs i/o communication port ........................................................... 553 b.2 rs-232 communication port .......................................................... 554 b.2.1 pin outs...

  • Page 20

    Table of contents 20 e.10.4 primary power sources — list ................................................ 577 e.10.5 24 vdc power supply kits — list ........................................... 578 e.11 enclosures — list ........................................................................... 578 ...

  • Page 21

    Table of contents 21 figure 44: bool8 data from bit shift example (numeric monitor) ....... 195 figure 45: bool8 data from bit shift example (pc data file) .............. 196 figure 46: input sample vectors ............................................................ 204 figure 47: mean wind-vector ...

  • Page 22

    Table of contents 22 figure 89: vibrating wire sensor ........................................................... 382 figure 90: input conditioning circuit for period averaging .................. 384 figure 91: circuit to limit c terminal input to 5 vdc ........................... 385 figure 92: cur...

  • Page 23

    Table of contents 23 calibration report for relative humidity sensor ................... 218 calibration report for salinity sensor .................................... 221 calibration report for flow meter .......................................... 223 calibration report for water content sensor .....

  • Page 24

    Table of contents 24 parameters that control measurement sequence and timing .................................................................................................. 350 analog measurement integration ............................................ 354 ac noise rejection on small signals 1 .....

  • Page 25

    Table of contents 25 info tables and settings: kd status table fields ................. 533 info tables and settings: settings only in settings editor ... 533 info tables and settings: communications, general ............ 534 info tables and settings: communications, pakbus ............. 534 info ta...

  • Page 26

    Table of contents 26 continuous-analog output (cao) modules......................... 566 relay-drivers — products .................................................... 566 current-excitation modules .................................................. 566 wired sensor types ...............................

  • Page 27

    Table of contents 27 string and variable concatenation ..................... 166 beginprog / scan / nextscan / endprog syntax .................................................................................................. 172 conditional output ............................................. 173 gr...

  • Page 28

    Table of contents 28 pt100 brfull() four-wire full-bridge measurement ........................................................................................ 273 receiving an rs-232 string ............................... 291 measure sensors / send rs-232 data ................ 296 concatenation of n...

  • Page 29: 1. Introduction

    29 1. Introduction 1.1 hello whether in extreme cold in antarctica, scorching heat in death valley, salt spray from the pacific, micro-gravity in space, or the harsh environment of your office, campbell scientific dataloggers support research and operations all over the world. Our customers work a s...

  • Page 30

    Section 1. Introduction 30 in earlier days, campbell scientific dataloggers greeted our customers with a cheery hello at the flip of the on switch. While the user interface of the cr800 datalogger has advanced beyond those simpler days, you can still hear the cheery hello echoed in voices you hear a...

  • Page 31: 2. Precautions

    31 2. Precautions • danger: fire, explosion, and severe-burn hazard. Misuse or improper installation of the internal lithium battery can cause severe injury. Do not recharge, disassemble, heat above 100 °c (212 °f), solder directly to the cell, incinerate, or expose contents to water. Dispose of spe...

  • Page 33: 3. Initial Inspection

    33 3. Initial inspection • check the ships with tab at http://www.Campbellsci.Com/cr800 for a list of items shipped with the cr800. Among other things, the following are provided for immediate use: o screwdriver to connect wires to terminals o type-t thermocouple for use in the quickstart (p. 35) tu...

  • Page 35: 4. Quickstart

    35 4. Quickstart the following tutorial introduces the cr800 by walking you through a programming and data retrieval exercise. 4.1 sensors — quickstart related topics: • sensors — quickstart (p. 35) • measurements — overview (p. 64) • measurements — details (p. 311) • sensors — lists (p. 567) sensor...

  • Page 36

    Section 4. Quickstart 36 o modbus o dnp3 o rs-485 refer to the sensors — lists (p. 567) for a list of specific sensors available from campbell scientific. This list may not be comprehensive. A library of sensor manuals and application notes are available at www.Campbellsci.Com to assist in measuring...

  • Page 37

    Section 4. Quickstart 37 figure 1: wiring panel 4.3 power supplies — quickstart related topics: • power input terminals — specifications • power supplies — quickstart (p. 37) • power supplies — overview (p. 83) • power supplies — details (p. 94) • power supplies — products (p. 576) • power sources (...

  • Page 38

    Section 4. Quickstart 38 the cr800 is internally protected against accidental polarity reversal on the power inputs. 4.3.1 internal battery — quickstart related topics: • internal battery — quickstart (p. 38) • internal battery — details (p. 457) warning misuse or improper installation of the intern...

  • Page 39

    Section 4. Quickstart 39 o pda o multidrop, fiber optic o radio, satellite some comms options can be combined. 4.5 datalogger support software — quickstart related topics: • datalogger support software — quickstart (p. 39) • datalogger support software — overview (p. 86) • datalogger support softwar...

  • Page 40

    Section 4. Quickstart 40 • making a simple measurement • storing measurement data on the cr800 • collecting data from the cr800 with a pc • viewing real-time and historical data with the pc 4.6.1 what you will need the following items are used in this exercise. If you do not have all of these items,...

  • Page 41

    Section 4. Quickstart 41 3. Connect the positive lead of the power supply to the 12v terminal of the green power connector. Connect the negative (ground) lead of the power supply to the g terminal of the green connector. 4. Confirm the power supply connections have the correct polarity then insert t...

  • Page 42

    Section 4. Quickstart 42 note a video tutorial is available at https://www.Campbellsci.Com/videos?Video=80 (https://www.Campbellsci.Com/videos?Video=80). Other video tutorials are available at www.Campbellsci.Com/videos. After exiting the wizard, the main pc200w window becomes visible. This window h...

  • Page 43

    Section 4. Quickstart 43 pc200w ezsetup wizard prompts screen name information needed introduction provides an introduction to the ezsetup wizard along with instructions on how to navigate through the wizard. Datalogger type and name select the cr800 from the list box. Accept the default name of cr8...

  • Page 44

    Section 4. Quickstart 44 4.6.4.1 procedure: (short cut steps 1 to 5) 1. Click on the short cut icon in the upper-right corner of the pc200w window. The icon resembles a clock face. 2. The short cut window is shown. Click new program. 3. In the datalogger model drop-down list, select cr800. 4. In the...

  • Page 45

    Section 4. Quickstart 45 4.6.4.2 procedure: (short cut steps 6 to 7) 6. Double-click type t (copper-constantan) thermocouple to add it into the selected column. A dialog window is presented with several fields. By immediately clicking ok, you accept default options that include selection of 1 sensor...

  • Page 46

    Section 4. Quickstart 46 10. Only one table is needed for this tutorial, so remove table 2. Click 2 table2 tab, then click delete table. 11. Change the name of the remaining table from table1 to onemin, and then change the store every interval to 1 minutes. 12. Add measurements to the table by selec...

  • Page 47

    Section 4. Quickstart 47 • collect data from the cr800. • store the data on the pc. 4.6.5.1 procedure: (pc200w step 1) 1. From the pc200w clock/program tab, click on connect (upper left) to connect the cr800 to the pc. As shown in the following figure, when connected, the connect button changes to d...

  • Page 48

    Section 4. Quickstart 48 shown in the following figure, pc200w now displays data found in the cr800 public table. Figure 8: pc200w monitor data tab – public table 4.6.5.3 procedure: (pc200w step 5) 5. To view the onemin table, select an empty cell in the display area. Click add. In the add selection...

  • Page 49

    Section 4. Quickstart 49 figure 9: pc200w monitor data tab — public and onemin tables 4.6.5.4 procedure: (pc200w step 6) 6. Click on the collect data tab and select data to be collected and the storage location on the pc. Figure 10: pc200w collect data tab.

  • Page 50

    Section 4. Quickstart 50 4.6.5.5 procedure: (pc200w steps 7 to 10) 7. Click the onemin box so a check mark appears in the box. Under what to collect, select new data from datalogger. 8. Click on a table in the list to highlight it, then click change table's output file... To change the name of the d...

  • Page 51

    Section 4. Quickstart 51 4.6.5.6 procedure: (pc200w steps 11 to 12) 11. Click on to open a file for viewing. In the dialog box, select the cr800_onemin.Dat file and click open. 12. The collected data are now shown. Figure 12: pc200w view data table 4.6.5.7 procedure: (pc200w steps 13 to 14) 13. Clic...

  • Page 52

    Section 4. Quickstart 52 figure 13: pc200w view line graph 4.7 data acquisition systems — quickstart related topics: • data acquisition systems — quickstart (p. 52) • data acquisition systems — overview (p. 56) acquiring data with a cr800 datalogger requires integration of the following into a data ...

  • Page 53

    Section 4. Quickstart 53 • data retrieval and comms (p. 38) — data are copied (not moved) from the cr800, usually to a pc, by one or more methods using datalogger support software. Most of these comms options are bi-directional, which allows programs and settings to be sent to the cr800. • datalogge...

  • Page 55: 5. Overview

    55 5. Overview you have just received a big box (or several big boxes) from campbell scientific, opened it, spread its contents across the floor, and now you sit wondering what to do. Well, that depends. Probably, the first thing you should understand is the basic architecture of a data acquisition ...

  • Page 56

    Section 5. Overview 56 figure 15: data acquisition system — overview 5.1 datalogger — overview the cr800 datalogger is the main part of the system. It is a precision instrument designed to withstand demanding environments and to use the smallest amount of power possible. It has a central-processing ...

  • Page 57

    Section 5. Overview 57 the application program is written in crbasic, which is a programming language that includes measurement, data processing, and analysis routines and the standard basic instruction set. For simpler applications, short cut (p. 514), a user- friendly program generator, can be use...

  • Page 58

    Section 5. Overview 58 figure 16: wiring panel cr800 wiring panel terminal definitions lab el s se 1 2 3 4 5 6 com 1 com 2 diff ┌ 1 ┐ ┌ 2 ┐ ┌ 3 ┐ t x r x t x r x h l h l h l vx1 vx2 p1 p2 c1 c2 c3 c4 5v 12 v sw 1 rs - cs m ax func tion analog input single-ended 6 differential (high/low) 3 analog per...

  • Page 59

    Section 5. Overview 59 digital i/o control 4 status 4 general i/o (tx,rx) 2 pulse-width modulation 1 timer i/o 4 interrupt 4 continuous regulated 3 5 vdc 1 continuous unregulated 3 12 vdc 1 switched regulated 3 5 vdc 4 switched unregulated 3 12 vdc 1 uart true rs-232 (tx/rx) 4 2 ttl rs-232 (tx/rx) 2...

  • Page 60

    Section 5. Overview 60 communications and sdi-12 communications. Table cr800 terminal definitions (p. 58) summarizes available options. Figure control and monitoring with c terminals (p. 60) illustrates a simple application wherein a c terminal configured for digital input and another configured for...

  • Page 61

    Section 5. Overview 61 requiring nominal 12 vdc. Sw12 terminals can source up to 900 ma. See the table current source and sink limits (p. 389). • continuous analog output (cao) — available by adding a peripheral analog output device available from campbell scientific. Refer to analog-output modules ...

  • Page 62

    Section 5. Overview 62 the cr800 is equipped with hardware ports that allow communication with other devices and networks, such as: • pc • smart sensors • modbus and dnp3 networks • ethernet • modems • campbell scientific pakbus networks • other campbell scientific dataloggers • campbell scientific ...

  • Page 63

    Section 5. Overview 63 • one nine-pin dce port, labeled rs-232, normally used to communicate with a pc running datalogger support software (p. 86), or to connect a third-party modem. With a null-modem adapter attached, it serves as a dte device. Read more see serial port pinouts (p. 553). • two-term...

  • Page 64

    Section 5. Overview 64 5.1.1.4.5 ethernet port read more see the section tcp/ip — details (p. 428). • ethernet capability requires a peripheral ethernet interface device, as listed in network links — list (p. 570). 5.1.1.5 grounding — overview related topics: • grounding — overview (p. 64) • groundi...

  • Page 65

    Section 5. Overview 65 this section discusses direct sensor-to-datalogger connections and applicable crbasic programming to instruct the cr800 how to make, process, and store the measurements. The cr800 wiring panel has terminals for the following measurement inputs: 5.2.1 time keeping — overview re...

  • Page 66

    Section 5. Overview 66 low signal is simply sensor ground (0 mv). A single-ended measurement measures the high signal with reference to ground, with the low signal tied to ground. A differential measurement measures the high signal with reference to the low signal. Each configuration has a purpose, ...

  • Page 67

    Section 5. Overview 67 figure 19: analog sensor wired to differential channel #1 differential and single-ended input terminals differentiaol diff terminals single-ended se terminals 1h 1 1l 2 2h 3 2l 4 3h 5 3l 6 5.2.2.1.1 single-ended measurements — overview related topics: • single-ended measuremen...

  • Page 68

    Section 5. Overview 68 • sensor is not designed for differential measurements. Many campbell scientific sensors are not designed for differential measurement, but the draw backs of a single-ended measurement are usually mitigated by large programmed excitation and/or sensor output voltages. However,...

  • Page 69

    Section 5. Overview 69 differential measurements — overview (p. 68). The voltage is measured with the cr800 voltage measurement circuitry. 5.2.2.3 resistance measurements — overview related topics: • resistance measurements — specifications • resistance measurements — overview (p. 69) • resistance m...

  • Page 70

    Section 5. Overview 70 figure 21: full-bridge wiring example — pressure transducer 5.2.2.4 strain measurements — overview related topics: • strain measurements — overview (p. 70) • strain measurements — details (p. 343) • fieldcalstrain() examples (p. 228) strain gage measurements are usually associ...

  • Page 71

    Section 5. Overview 71 • low-level ac c terminals configurable for input for the following: • state • edge counting • edge timing note a period-averaging sensor has a frequency output, but it is connected to a se terminal configured for period-average input and measured with the periodaverage() inst...

  • Page 72

    Section 5. Overview 72 pulse input terminals and measurements pulse input terminal input type data option crbasic instruction p terminal • low-level ac • high- frequency • switch-closure • counts • frequency • run average of frequency pulsecount() c terminal • low-level ac with llac4 (p. 562) module...

  • Page 73

    Section 5. Overview 73 5.2.4 period averaging — overview related topics: • period average measurements — specifications • period average measurements — overview (p. 73) • period average measurements — details (p. 383) cr800 se terminals can be configured to measure period average. Note both pulse co...

  • Page 74

    Section 5. Overview 74 measuring the resonant frequency by means of period averaging is the classic technique, but campbell scientific has developed static and dynamic spectral- analysis techniques (vspect (p. 521)) that produce superior noise rejection, higher resolution, diagnostic data, and, in t...

  • Page 75

    Section 5. Overview 75 5.2.6.2 rs-232 — overview the cr800 has 4 ports available for rs-232 input as shown in figure terminals configurable for rs-232 input (p. 75). As indicated in figure use of rs-232 and digital i/o when reading rs-232 devices (p. 75), rs-232 sensors can often be connected to c t...

  • Page 76

    Section 5. Overview 76 calibration increases accuracy of a measurement device by adjusting its output, or the measurement of its output, to match independently verified quantities. Adjusting sensor output directly is preferred, but not always possible or practical. By adding fieldcal() or fieldcalst...

  • Page 77

    Section 5. Overview 77 5.3.1 data file formats in cr800 memory routine cr800 operations store data in binary data tables. However, when the tablefile() instruction is used, data are also stored in one of several formats in discrete text files in internal or external memory. See memory drives — on- b...

  • Page 78

    Section 5. Overview 78 • peer-to-peer communication — no pc required. Special crbasic instructions simplify transferring data between dataloggers for distributed decision making or control. • data consolidation — other pakbus dataloggers can be used as sensors to consolidate all data into one campbe...

  • Page 79

    Section 5. Overview 79 computers / hmi software, instruments (rtus) and modbus-compatible sensors. The cr800 communicates with modbus over rs-232, (with a rs-232 to rs- 485 such as an md485 adapter), and tcp. Modbus systems consist of a master (pc), rtu / plc slaves, field instruments (sensors), and...

  • Page 80

    Section 5. Overview 80 • dhcp • dns • ftp • html • http • • micro-serial server • modbus tcp/ip • ntcip • ntp • pakbus over tcp/ip • ping • pop3 • smtp • snmp • telnet • web api • xml • udp • ipv4 • ipv6 • • 5.3.6 comms hardware — overview the cr800 can accommodate, in one way or another, nearly all...

  • Page 81

    Section 5. Overview 81 figure 26: cr1000kd keyboard/display 5.3.7.1 integrated/keyboard display the integrated keyboard display, illustrated in figure wiring panel (p. 37), is a purchased option when buying a cr800 series datalogger. 5.3.7.2 character set the keyboard display character set is access...

  • Page 82

    Section 5. Overview 82 5.3.7.3 custom menus — overview crbasic programming in the cr800 facilitates creation of custom menus for the cr1000kd keyboard/display. Figure custom menu example (p. 82) shows windows from a simple custom menu named dataview by the programmer. Dataview appears in place of th...

  • Page 83

    Section 5. Overview 83 cdm devices campbell distributed modules measurement and control modules that use the high speed can peripheral interface (cpi) bus technology. These connect through the sc-cpi interface. 5.5 power supplies — overview the cr800 is powered by a nominal 12 vdc source. Acceptable...

  • Page 84

    Section 5. Overview 84 5.7 crbasic programming — overview related topics: • crbasic programming — overview (p. 84) • crbasic programming — details (p. 119) • programming resource library (p. 171) • crbasic editor help a crbasic program directs the cr800 how and when sensors are to be measured, calcu...

  • Page 85

    Section 5. Overview 85 • set aes-128 pakbus encryption key • set .Csipasswd file for securing http and web api • track signatures • encrypt program files if they contain sensitive information • hide program files for extra protection • secure the physical cr800 and power supply under lock and key no...

  • Page 86

    Section 5. Overview 86 5.9.3 factory calibration — overview related topics • auto self-calibration — overview (p. 89) • auto self-calibration — details (p. 337) • auto self-calibration — errors (p. 475) • offset voltage compensation (p. 323) • factory calibration (p. 86) • factory calibration or rep...

  • Page 87

    Section 5. Overview 87 datalogger support software handles communication between a computer or device and the cr800. A wide array of software are available, but the following are the most commonly used: • short cut program generator for windows (scwin) — generates simple crbasic programs without the...

  • Page 88

    Section 5. Overview 88 • move a head gate to regulate water flows in a canal system. • control ph dosing and aeration for water quality purposes. • control a gas analyzer to stop operation when temperature is too low. • control irrigation scheduling. Controlled devices can be physically connected to...

  • Page 89

    Section 5. Overview 89 evaluate as true on its first scan. The timeintointerval() instruction will evaluate as true at the top of the next hour (59 minutes later). Note start is inclusive and stop is exclusive in the range of time that will return a true result. For example: timeisbetween(0,10,60,mi...

  • Page 90

    Section 5. Overview 90 o cpu: drive — automatically allocated — fat32 file system — limited write cycles (100,000) — slow (serial access) • main memory o battery backed o os variables o crbasic compiled program binary structure (490 kb maximum) o crbasic variables o data memory o communication memor...

  • Page 91: 6. Specifications

    91 6. Specifications -- 8 10 30 cr800 specifications are valid from ─25° to 50°c in non-condensing environments unless otherwise specified. Recalibration is recommended every three years. Critical specifications and system configurations should be confirmed with a campbell scientific sales engineer ...

  • Page 93: 7. Installation

    93 7. Installation related topics: • quickstart (p. 35) • specifications (p. 91) • installation (p. 93) • operation (p. 311) 7.1 enclosures — details enclosures — details (p. 93) enclosures — products (p. 578) illustrated in figure enclosure (p. 93) is the typical use of enclosures available from ca...

  • Page 94

    Section 7. Installation 94 7.2 power supplies — details related topics: • power input terminals — specifications • power supplies — quickstart (p. 37) • power supplies — overview (p. 83) • power supplies — details (p. 94) • power supplies — products (p. 576) • power sources (p. 95) • troubleshooting...

  • Page 95

    Section 7. Installation 95 terminals provides protection from intermittent high voltages by clamping these transients to within the range of 19 to 21 v. Sustained input voltages in excess of 19 v, can damage the tvs diode. 7.2.2 calculating power consumption system operating time for batteries can b...

  • Page 96

    Section 7. Installation 96 figure 29: connecting to vehicle power supply 7.2.4 uninterruptable power supply (ups) a ups (un-interruptible power supply) is often the best power source for long- term installations. An external ups consists of a primary-power source, a charging regulator external to th...

  • Page 97

    Section 7. Installation 97 7.3.1 esd protection related topics: • esd protection (p. 97) • lightening protection (p. 98) esd (electrostatic discharge) can originate from several sources, the most common and destructive being lightning strikes. Primary lightning strikes hit the cr800 or sensors direc...

  • Page 98

    Section 7. Installation 98 figure 30: schematic of grounds 7.3.1.1 lightning protection related topics: • esd protection (p. 97) • lightening protection (p. 98) the most common and destructive esds are primary and secondary lightning strikes. Primary lightning strikes hit instrumentation directly. S...

  • Page 99

    Section 7. Installation 99 note lightning strikes may damage or destroy the cr800 and associated sensors and power supplies. In addition to protections discussed in , use of a simple lightning rod and low- resistance path to earth ground is adequate protection in many installations. . Figure 31: lig...

  • Page 100

    Section 7. Installation 100 fluctuations by separating signal grounds ( ) from power grounds ( g). To take advantage of this design, observe the following rules: • connect grounds associated with 12v, sw12, 5v, and c1 – c4 terminals to g terminals. • connect excitation grounds to the nearest termina...

  • Page 101

    Section 7. Installation 101 potentials at the two instruments. For this reason, a differential measurement should be made on the analog output from the external signal conditioner. 7.3.4 ground looping in ionic measurements when measuring soil-moisture with a resistance block, or water conductivity ...

  • Page 102

    Section 7. Installation 102 figure 32: model of a ground loop with a resistive sensor 7.4 protection from moisture — details protection from moisture — overview (p. 85) protection from moisture — details (p. 102) protection from moisture — products (p. 580) when humidity levels reach the dew point, ...

  • Page 103

    Section 7. Installation 103 7.5.1 tools — setup configuration tools include the following: • device configuration utility (p. 103) • network planner (p. 104) • info tables and settings (p. 107) • crbasic program (p. 108) • executable cpu: files (p. 108) • keyboard display (p. 454) • terminal command...

  • Page 104

    Section 7. Installation 104 figure 33: device configuration utility (devconfig) 7.5.1.2 network planner — setup tools network planner is a drag-and-drop application used in designing pakbus datalogger networks. You interact with network planner through a drawing canvas upon which are placed pc and d...

  • Page 105

    Section 7. Installation 105 figure 34: network planner setup 7.5.1.2.1 overview — network planner network planner allows you to • create a graphical representation of a network, as shown in figure network planner setup (p. 105), • determine settings for devices and loggernet, and • program devices a...

  • Page 106

    Section 7. Installation 106 • it does not generate datalogger programs. • it does not understand distances or topography; that is, it does not warn when broadcast distances are exceeded, nor does it identify obstacles to radio transmission. For more detailed information on network planner, please co...

  • Page 107

    Section 7. Installation 107 7.5.1.3 info tables and settings — setup tools related topics: • info tables and settings (p. 527) • common uses of the status table (p. 529) • status table as debug resource (p. 470) info tables and settings contain fields, settings, and information essential to setup, p...

  • Page 108

    Section 7. Installation 108 operations, retrieving these tables repeatedly may cause skipped scans (p. 472). 7.5.1.4 crbasic program — setup tools info tables and settings can be set or accessed using crbasic instructions setstatus() or setsetting(). For example, to set the setting stationname to bl...

  • Page 109

    Section 7. Installation 109 7.5.1.5.1 default.Cr8 file a file named default.Cr8 can be stored on the cr800 cpu: drive. At power up, the cr800 loads default.Cr8 if no other program takes priority (see executable file run priorities (p. 112)) . Default.Cr8 can be edited to preserve critical datalogger...

  • Page 110

    Section 7. Installation 110 or with comms. There is no restriction on the length of the file. Crbasic example using an "include file" (p. 111) shows a program that expects a file to control power to a modem. Consider the the example "include file", cpu:pakbus_broker.Dld. The rules used by the cr800 ...

  • Page 111

    Section 7. Installation 111 figure 36: "include" file settings with pakbusgraph using an "include" file 'this program example demonstrates the use of an 'include' file. An 'include' file is a crbasic file that usually 'resides on the cpu: drive of the cr800. It is essentially a subroutine that is 's...

  • Page 112

    Section 7. Installation 112 public ptemp, batt_volt datatable (test,1,-1) datainterval (0,15,sec,10) minimum (1,batt_volt,fp2,0,false) sample (1,ptemp,fp2) endtable beginprog scan (1,sec,0,0) paneltemp (ptemp,250) battery (batt_volt) calltable test nextscan include "cpu:includefile.Cr1" ' endprog 'i...

  • Page 113

    Section 7. Installation 113 6. If there is no default.Cr8 file or it cannot be compiled, the cr800 will not automatically run any program. 7.5.2 setup tasks following are a few common configuration actions: • updating the operating system (p. 113). • access cr800 infor tables and settings (p. 107) t...

  • Page 114

    Section 7. Installation 114 note the following precautions: • since sending an os resets cr800 memory, data loss will certainly occur. Depending on several factors, the cr800 may also become incapacitated for a time. O is sending the os necessary to correct a critical problem? If not, consider waiti...

  • Page 115

    Section 7. Installation 115 4. Follow the on-screen os download instructions pros/cons this is a good way to recover a cr800 that has gone into an unresponsive state. Often, an operating system can be loaded even if you are unable to communicate with the cr800 through other means. Loading an operati...

  • Page 116

    Section 7. Installation 116 3. Delete usr: drive 4. Stop current program deletes data and clears run options 5. Deletes data generated using the cardout() or tablefile() instructions 7.5.2.1.3 os update with send program command a send program command is a feature of devconfig and other datalogger s...

  • Page 117

    Section 7. Installation 117 3. Click the send new… 4. Select the os file to send 5. Restart the existing program through file control, or send a new program with crbasic editor and specify new run options. Pros/cons this is the best way to load a new operating system on the cr800 and have its settin...

  • Page 118

    Section 7. Installation 118 loading an operating system through this method will do the following: 1. Preserve all datalogger settings 2. Delete all data in final storage 3. Preserve usr drive and data stored there 4. Maintains program run options 5. Deletes data generated using the cardout() or tab...

  • Page 119

    Section 7. Installation 119 figure 37: summary of cr800 configuration 7.6 crbasic programming — details related topics: • crbasic programming — overview (p. 84) • crbasic programming — details (p. 119) • programming resource library (p. 171) • crbasic editor help programs are created with either sho...

  • Page 120

    Section 7. Installation 120 crbasic program structure units optional. Assign engineering units to variables. Units are not active code. The cr800 makes no use of units nor checks unit accuracy. Datatable sample() average() maximum() minimum() define stored-data tables. • process or store trigger: se...

  • Page 121

    Section 7. Installation 121 crbasic program structure 'declarations 'define constants const revdiff = 1 const del = 0 'default const integ = 250 const mult = 1 const offset = 0 declare constants 'define public variables public reftemp public tc(6) 'define units units reftemp = degc units tc = degc d...

  • Page 122

    Section 7. Installation 122 'begin program beginprog 'set scan interval scan (1,sec,3,0) 'measurements paneltemp (reftemp,250) tcdiff (tc()...Offset) measure 'processing (none in this 'example) scan loop 'call data table calltable temp call data table 'controls (none in this 'example) 'loop to next ...

  • Page 123

    Section 7. Installation 123 modification of the ascii text file that constitutes the cr800 application program. Crbasic editor is a component of loggernet , rtdaq , and pc400 datalogger support software (p. 86). Fundamental elements of crbasic include the following: • variables — named packets of cr...

  • Page 124

    Section 7. Installation 124 inserting comments 'this program example demonstrates the insertion of comments into a program. Comments are 'placed in two places: to occupy single lines, such as this explanation does, or to be 'placed after a statement. 'declaration of variables starts here. Public sta...

  • Page 125

    Section 7. Installation 125 7.6.3.1.1 multiple statements on one line multiple short statements can be placed on a single text line if they are separated by a colon ( :). This is a convenient feature in some programs. However, in general, programs that confine text lines to single statements are eas...

  • Page 126

    Section 7. Installation 126 • alias • stationname the table rules for names (p. 159) lists declaration names and allowed lengths. See predefined constants (p. 138) for other naming limitations. 7.6.3.3 declaring variables a variable is a packet of memory that is given an alphanumeric name. Measureme...

  • Page 127

    Section 7. Installation 127 7.6.3.3.1 declaring data types variables and data values stored in final memory can be configured with various data types to optimize program execution and memory usage. The declaration of variables with the dim or public instructions allows an optional type descriptor as...

  • Page 128

    Section 7. Installation 128 data types in variable memory name command description word size (bytes) notes resolution / range string as string ascii string minimum : 3 (4 with null terminato r) default: 24 maximu m: limited only to the size of available cr800 memory. See caution. 1 string size is de...

  • Page 129

    Section 7. Installation 129 data types in final-storage memory name argument description word size (bytes) notes resolution / range long long signed integer 4 use to store count data in the range of ±2,147,483,648 speed: integer math is faster than floating point math. Resolution: 32 bits. Compare t...

  • Page 130

    Section 7. Installation 130 data types in final-storage memory name argument description word size (bytes) notes resolution / range nsec nsec time stamp 8 divided up as four bytes of seconds since 1990 and four bytes of nanoseconds into the second. Used to record and process time data. See nsec data...

  • Page 131

    Section 7. Installation 131 'boolean variable examples public switches(8) as boolean public flags(16) as boolean 'string variable example public firstname as string * 16 'allows a string up to 16 characters long datatable (tablename,true,-1) 'fp2 data storage example sample (1,z,fp2) 'ieee4 / float ...

  • Page 132

    Section 7. Installation 132 with (x,y,z) being the indices, have (x • y • z) number of variables in a cubic x-by- y-by-z matrix. Dimensions greater than three are not permitted by crbasic. When using variables in place of integers as dimension indices (see crbasic example using variable array dimens...

  • Page 133

    Section 7. Installation 133 works best in practice. Crbasic example flag declaration and use (p. 133) demonstrates changing words in a string based on a flag. Flag declaration and use 'this program example demonstrates the declaration and use of flags as boolean variables, 'and the use of strings to...

  • Page 134

    Section 7. Installation 134 when a function() function returns a pointer, apply the ! Operator to the function call, as shown in the following example: function constrainfunc(value as long,low as long,high as long) as long if !Value then return low elseif !Value > !High then return high else return ...

  • Page 135

    Section 7. Installation 135 using a variable array in calculations 'this program example demonstrates the use of a variable array to reduce code. In this 'example, two variable arrays are used to convert four temperature measurements from 'degree c to degrees f. Public tempc(4) public tempf(4) dim t...

  • Page 136

    Section 7. Installation 136 • perform a mathematical or logical operation for each element in a dimension using scalar or similarly located elements in different arrays and dimensions here are some syntax rules and behaviors. Given the array, array(a,b,c): • the () pair must always be present, i.E.,...

  • Page 137

    Section 7. Installation 137 initializing variables 'this program example demonstrates how variables can be declared as specific data types. 'variables not declared as a specific data type default to data type float. Also 'demonstrated is the loading of values into variables that are being declared. ...

  • Page 138

    Section 7. Installation 138 size of the mantissa, which is ±16,777,216. If the attempt is made to express a floating-point constant outside of this range, precision may be lost. Constants in a constant table can also be changed using the setsetting() instruction and the constant table using the cr10...

  • Page 139

    Section 7. Installation 139 program needs to access that value, the program must use the the alias-derived name. Variables in one, two, and three dimensional arrays can be assigned units. Units are not used elsewhere in programming, but add meaning to resultant data table headers. If different units...

  • Page 140

    Section 7. Installation 140 load binary information into a variable 'this program example demonstrates how binary data are loaded into a variable. The binary 'format (1 = high, 0 = low) is useful when loading the status of multiple flags 'or ports into a single variable. For example, storing the bin...

  • Page 141

    Section 7. Installation 141 • after endsequence or an infinite scan() / nextscan and before endprog or slowsequence • immediately following slowsequence. Slowsequence code starts executing after any declaration sequence. Only declaration sequences can occur after endsequence and before slowsequence ...

  • Page 142

    Section 7. Installation 142 typical data table toa5 cr800 cr800 1048 cr800.Std.13.06 cpu:data.Cr8 35723 onemin timestamp record battvolt_avg ptempc_avg tempc_avg(1) tempc_avg(2) ts rn volts deg c deg c deg c avg avg avg avg 7/11/2007 16:10 0 13.18 23.5 23.54 25.12 7/11/2007 16:20 1 13.18 23.5 23.54 ...

  • Page 143

    Section 7. Installation 143 identifies the array index. For example, a variable named values, which is declared as a two-by-two array in the datalogger program, will be represented by four field names: values(1,1), values(1,2), values(2,1), and values(2,2). Scalar variables will not have array subscr...

  • Page 144

    Section 7. Installation 144 datatable (table1,true,-1) datainterval (0,1440,min,0) 'optional instruction to trigger table at 24-hour interval minimum (1,batt_volt,fp2,false,false) 'optional instruction to determine minimum batt_volt endtable 'main program beginprog scan (5,sec,1,0) 'default datalogg...

  • Page 145

    Section 7. Installation 145 overwriting the oldest data) at about the same time. Approximately 2 kb of extra data-table space are allocated to minimize the possibility of new data overwriting the oldest data in ring memory when datalogger support software (p. 86) collects the oldest data at the same...

  • Page 146

    Section 7. Installation 146 if a program is planned to experience multiple lapses, and if comms bandwidth is not a consideration, the lapses parameter should be set to 0 to ensure the cr800 allocates adequate memory for each data table. Datainterval() lapse parameter options datainterval() lapse arg...

  • Page 147

    Section 7. Installation 147 current inputs or calculations. If trigger conditions are true, for example if the data-output interval has expired, processed values are stored into the data table. In crbasic example declaration and use of a data table (p. 143), three averages are stored. Consider the a...

  • Page 148

    Section 7. Installation 148 use of the disable variable 'this program example demonstrates the use of the 'disable' variable, or disablevar, which 'is a parameter in many output processing instructions. Use of the 'disable' variable 'allows source data to be selectively included in averages, maxima,...

  • Page 149

    Section 7. Installation 149 note a particular subroutine can be called by multiple program sequences simultaneously. To preserve measurement and processing integrity, the cr800 queues calls on the subroutine, allowing only one call to be processed at a time in the order calls are received. This may ...

  • Page 150

    Section 7. Installation 150 7.6.3.12 execution and task priority execution of program instructions is divided among the following three tasks: • measurement task — rigidly timed measurement of sensors connected directly to the cr800 • cdm task — rigidly timed measurement and control of cdm/cpi (p. 4...

  • Page 151

    Section 7. Installation 151 program tasks measurement task digital task processing task • analog measurements • excitation • read pulse counters ( pulse()) • read control ports ( getport()) • set control ports ( setport()) • vibratingwire( ) • periodavg() • cs616() • calibrate() • sdm instructions, ...

  • Page 152

    Section 7. Installation 152 3. Measurements in slow sequences 4. Processing tasks 7.6.3.12.2 sequential mode sequential mode executes instructions in the sequence in which they are written in the program. Sequential mode may be slower than pipeline mode since it executes only one line of code at a t...

  • Page 153

    Section 7. Installation 153 7.6.3.13 execution timing timing of program execution is regulated by timing instructions listed in the following table. Program timing instructions instructions general guidelines syntax form scan() / nextscan use in most programs. Begins / ends the main scan. Beginprog ...

  • Page 154

    Section 7. Installation 154 beginprog / scan() / nextscan / endprog syntax 'this program example demonstrates the use of beginprog/endprog and scan()/nextscan syntax. Public paneltemp_ datatable (paneltempdata,true,-1) datainterval (0,1,min,10) sample (1,paneltemp_,fp2) endtable beginprog ' scan (1,...

  • Page 155

    Section 7. Installation 155 splicing, measurements in a slow sequence may span across multiple-scan intervals in the main program. When no measurements need to be spliced, the slow-sequence scan will run independent of the main scan, so slow sequences with no measurements can run at intervals ≤ main...

  • Page 156

    Section 7. Installation 156 permission to proceed with a measurement is granted by the measurement semaphore (p. 514). Main scans with measurements have priority to acquire the semaphore before measurements in a calibration or slow-sequence scan. The semaphore is taken by the main scan at its beginn...

  • Page 157

    Section 7. Installation 157 figure 38: sequential-mode scan priority flow diagrams 7.6.3.14 programming instructions in addition to basic syntax, additional instructions are included in crbasic to facilitate measurements and store data. See crbasic editor help (p. 122) for a comprehensive list of th...

  • Page 158

    Section 7. Installation 158 paneltemp(dest,integ) paneltemp is the keyword. Two parameters follow: dest, a destination variable name in which the temperature value is stored; and integ, of a length of time to integrate the measurement. To place the panel temperature measurement in the variable refte...

  • Page 159

    Section 7. Installation 159 caution concerning characters allowed in names, characters not listed in in the table, rules for names, may appear to be supported in a specific operating system. However, they may not be supported in future operating systems. Rules for names name category 1 maximum lengt...

  • Page 160

    Section 7. Installation 160 'datatable(name, trigvar, size) datatable (temp, tc > 100, 5000) when the trigger is tc > 100, a thermocouple temperature greater than 100 sets the trigger to true and data are stored. 7.6.3.16 programming expression types an expression is a series of words, operators, or...

  • Page 161

    Section 7. Installation 161 discuss floating-point arithmetic thoroughly. One readily available source is the topic floating point at www.Wikipedia.Org. In summary, cr800 programmers should consider at least the following: • floating-point numbers do not perfectly mimic real numbers. • floating-poin...

  • Page 162

    Section 7. Installation 162 boolean from float or long when a float or long is converted to a boolean as shown in crbasic example conversion of float / long to boolean (p. 162), zero becomes false ( 0) and non-zero becomes true ( -1). Conversion of float / long to boolean 'this program example demon...

  • Page 163

    Section 7. Installation 163 evaluation of integers 'this program example demonstrates the evaluation of integers. Public i as long public x as float beginprog i = 126 x = (i+3) * 3.4 'i+3 is evaluated as an integer, then converted to float data type before it is 'multiplied by 3.4. Endprog constants...

  • Page 164

    Section 7. Installation 164 argument true is predefined in the cr800 operating system to only equal -1, so only the argument -1 is always translated as true. Consider the expression if condition(1) = true then ... This condition is true only when condition(1) = -1. If condition(1) is any other non-z...

  • Page 165

    Section 7. Installation 165 using true or false conditions with logic operators such as and and or, logical expressions can be encoded to perform one of the following three general logic functions. Doing so facilitates conditional processing and control applications: 1. Evaluate an expression, take ...

  • Page 166

    Section 7. Installation 166 logical expression examples the not operator complements every bit in the word. A boolean can be false (0 or all bits set to 0) or true (- 1 or all bits set to 1). Complementing a boolean turns true to false (all bits complemented to 0). Example program '(a and b) = (26 a...

  • Page 167

    Section 7. Installation 167 'program beginprog scan (1,sec,0,0) 'assign strings to string variables word(1) = "good" word(2) = "morning" word(3) = "dave" word(4) = "i'm" word(5) = "sorry" word(6) = "afraid" word(7) = "i" word(8) = "can't" word(9) = "do" word(10) = "that" word(11) = " " word(12) = ",...

  • Page 168

    Section 7. Installation 168 • prc is the abbreviation of the name of the data process used. See table data process abbreviations (p. 168) for a complete list of these abbreviations. This is not needed for values from status or public tables. • fieldname index is the array element number in fields th...

  • Page 169

    Section 7. Installation 169 where wderr is a declared variable, status is the table name, and watchdogerrors is the keyword for the watchdog error field. Seven special variable names are used to access information about a table. • eventcount • eventend • output • record • tablefull • tablesize • tim...

  • Page 170

    Section 7. Installation 170 the week, such as monday or friday. See crbasic editor help topic function/endfunction 7.6.4 sending crbasic programs the cr800 requires that a crbasic program file be sent to its memory to direct measurement, processing, and data storage operations. The program file can ...

  • Page 171

    Section 7. Installation 171 crbasic editor program send file control window (p. 171) before the program is sent. To keep data, select run now, run on power-up, and preserve data if no table changed, then press send program. Note to retain data, preserve data if no table changed must be selected whet...

  • Page 172

    Section 7. Installation 172 beginprog / scan / nextscan / endprog syntax 'this program example demonstrates detection and recording of an event. An event has a 'beginning and an end. This program records an event as occurring at the end of the event. 'the event recorded is the transition of a delta ...

  • Page 173

    Section 7. Installation 173 7.7.1.2 conditional output crbasic example conditional output (p. 173) demonstrates conditionally sending data to a data table based on a trigger other than time. Conditional output 'this program example demonstrates the conditional writing of data to a data table. It 'al...

  • Page 174

    Section 7. Installation 174 • execute conditional code • use multiple sequential scans, each with a scan count groundwater pump test 'this program example demonstrates the use of multiple scans in a program by running a 'groundwater pump test. Note that scan() time units of sec have been changed to ...

  • Page 175

    Section 7. Installation 175 'minute 10 to 30 of test: 30-second data-output interval scan (30,msec,0,40) 'there are 40 30-second scans in 20 minutes scancounter(2) = scancounter(2) + 1 'included to show passes through this scan battery (batt_volt) paneltemp (ptemp,250) call measurelevel 'call output...

  • Page 176

    Section 7. Installation 176 7.7.1.4 miscellaneous features crbasic example miscellaneous program features (p. 176) shows how to use several crbasic features: data type, units, names, event counters, flags, data- output intervals, and control statements. Miscellaneous program features 'this program e...

  • Page 177

    Section 7. Installation 177 'optional – declare a station name into a location in the status table. Stationname (cr1000_on_desk) 'optional -- declare units. Units are not used in programming, but only appear in the 'data file header. Units batt_volt = volts units ptemp = deg c units airtemp = deg c ...

  • Page 178

    Section 7. Installation 178 scan (1,sec,1,0) 'measurements 'battery voltage battery (batt_volt) 'wiring panel temperature paneltemp (ptemp_c,250) 'type t thermocouple measurements: tcdiff (airtemp_c,1,mv2_5c,1,typet,ptemp_c,true,0,_60hz,1,0) tcdiff (airtemp_f,1,mv2_5c,1,typet,ptemp_c,true,0,_60hz,1....

  • Page 179

    Section 7. Installation 179 pulsecountreset is needed in applications wherein two separate pulsecount() instructions in separate scans measure the same pulse input terminal. While the compiler does not allow multiple pulsecount() instructions in the same scan to measure the same terminal, multiple s...

  • Page 180

    Section 7. Installation 180 scan (5,sec,1,0) 'measure reference temperature paneltemp (ptemp_c,250) 'measure three thermocouples and scale each. Scaling factors from the scaling array 'are applied to each measurement because the syntax uses an argument of 3 in the reps 'parameter of the tcdiff() ins...

  • Page 181

    Section 7. Installation 181 program signatures 'this program example demonstrates how to request the program text signature (progsig = status.Progsignature), and the 'binary run-time signature (runsig = status.Runsignature). It also calculates two 'executable code segment signatures (exesig(1), exes...

  • Page 182

    Section 7. Installation 182 use of multiple scans 'this program example demonstrates the use of multiple scans. Some applications require 'measurements or processing to occur at an interval different from that of the main 'program scan. Secondary scans are preceded with the slowsequence instruction....

  • Page 183

    Section 7. Installation 183 loading large data sets 'this program example demonstrates how to load a set of data into variables. Twenty values 'are loaded into two arrays: one declared as float, one declared as long. Individual data 'lines can be many more values long than shown (limited only by max...

  • Page 184

    Section 7. Installation 184 • mathematical • logical examples include: • process a variable array without use of for/next • create boolean arrays based on comparisons with another array or a scalar variable • copy a dimension to a new location • perform logical operations for each element in a dimen...

  • Page 185

    Section 7. Installation 185 • if indices are not specified, or none have been preceded with a minus sign, the least significant dimension of the array is assumed. • the offset into the dimension being accessed is given by (a,b,c). • if the array is referenced as array(), the starting point is array(...

  • Page 186

    Section 7. Installation 186 beginprog scan (1,sec,0,0) for i = 1 to 2 'for each column of the source array a(), copy the column into a row of the 'destination array at() at(i,-1)() = a(-1,i)() next i nextscan endprog array assigned expression: comparison / boolean evaluation 'example: comparison / b...

  • Page 187

    Section 7. Installation 187 array assigned expression: fill array dimension 'example: fill array dimension public a(3) public b(3,2) public c(4,3,2) public da(3,2) = {1,1,1,1,1,1} public db(3,2) public dmultiplier(3) = {10,100,1000} public doffset(3) = {1,2,3} beginprog scan (1,sec,0,0) a() = 1 'set...

  • Page 188

    Section 7. Installation 188 note this instruction should not normally be inserted within a for/next construct with the source and destination parameters indexed and reps set to 1. Doing so will perform a single running average, using the values of the different elements of the array, instead of perf...

  • Page 189

    Section 7. Installation 189 for the example above, the delay is: delay in time = (1 ms) • (4 – 1) / 2 = 1.5 ms example: an accelerometer was tested while mounted on a beam. The test had the following characteristics: o accelerometer resonant frequency ≈ 36 hz o measurement period = 2 ms o running av...

  • Page 190

    Section 7. Installation 190 figure 40: running-average frequency response figure 41: running-average signal attenuation.

  • Page 191

    Section 7. Installation 191 7.7.5 data output: two intervals in one data table two data-output intervals in one data table 'this program example demonstrates the use of two time intervals in a data table. One time 'interval in a data table is the norm, but some applications require two. ' 'allocate ...

  • Page 192

    Section 7. Installation 192 'call output tables calltable twoint nextscan endprog 7.7.6 data output: triggers and omitting samples trigvar is the third parameter in the datatable() instruction. It controls whether or not a data record is written to final memory. Trigvar control is subject to other c...

  • Page 193

    Section 7. Installation 193 figure 42: data from trigvar program using trigvar to trigger data storage 'this program example demonstrates the use of the trigvar parameter in the datatable() 'instruction to trigger data storage. In this example, the variable counter is 'incremented by 1 at each scan....

  • Page 194

    Section 7. Installation 194 of information (eight states with one bit per state). To store the same information using a 32 bit boolean data type, 256 bits are required (8 states * 32 bits per state). When programming with bool8 data type, repetitions in the output processing datatable() instruction ...

  • Page 195

    Section 7. Installation 195 figure 43: alarms toggled in bit shift example figure 44: bool8 data from bit shift example (numeric monitor).

  • Page 196

    Section 7. Installation 196 figure 45: bool8 data from bit shift example (pc data file) bool8 and a bit shift operator 'this program example demonstrates the use of the bool8 data type and the ">>" bit-shift 'operator. Public alarm(32) public flags as long public flagsbool8(4) as long datatable (boo...

  • Page 197

    Section 7. Installation 197 'if bit in or bit in the result 'flags is bin/hex is is '---------- ---------- ---------- ' 0 0 0 ' 0 1 1 ' 1 0 1 ' 1 1 1 'binary equivalent of hex: if alarm(1) then flags = flags or &h1 ' &b1 if alarm(2) then flags = flags or &h2 ' &b10 if alarm(3) then flags = flags or ...

  • Page 198

    Section 7. Installation 198 flagsbool8(1) = flags and &hff 'and 1st 8 bits of "flags" & 11111111 flagsbool8(2) = (flags >> 8) and &hff 'and 2nd 8 bits of "flags" & 11111111 flagsbool8(3) = (flags >> 16) and &hff 'and 3rd 8 bits of "flags" & 11111111 flagsbool8(4) = (flags >> 24) and &hff 'and 4th 8 ...

  • Page 199

    Section 7. Installation 199 nsec — one element time array 'this program example demonstrates the use of nsec data type to determine seconds since '00:00:00 1 january 1990. A time stamp is retrieved into variable timevar(1) as seconds 'since 00:00:00 1 january 1990. Because the variable is dimensione...

  • Page 200

    Section 7. Installation 200 'program beginprog scan (1,sec,0,0) paneltemp (ptempc,250) maxvar = firsttable.Ptempc_max timeofmaxvar = firsttable.Ptempc_tmx calltable firsttable calltable secondtable nextscan endprog nsec — seven and nine element time arrays 'this program example demonstrates the use ...

  • Page 201

    Section 7. Installation 201 nsec —convert timestamp to universal time 'this program example demonstrates the use of nsec data type to convert a data time stamp 'to universal time. ' 'application: the cr800 needs to display universal time (ut) in human readable 'string forms. The cr800 can calculate ...

  • Page 202

    Section 7. Installation 202 7.7.9.1 outputopt parameters in the cr800 windvector() instruction, the outputopt parameter defines the processed data that are stored. All output options result in an array of values, the elements of which have _wvc(n) as a suffix, where n is the element number. The arra...

  • Page 203

    Section 7. Installation 203 note cup anemometers typically have a mechanical offset which is added to each measurement. A numeric offset is usually encoded in the crbasic program to compensate for the mechanical offset. When this is done, a measurement will equal the offset only when wind speed is z...

  • Page 204

    Section 7. Installation 204 7.7.9.2.2 calculations input sample vectors figure 46: input sample vectors in figure input sample vectors (p. 204), the short, head-to-tail vectors are the input sample vectors described by s i and Θ i , the sample speed and direction, or by ue i and un i , the east and ...

  • Page 205

    Section 7. Installation 205 or, in the case of orthogonal sensors where standard deviation of wind direction (yamartino algorithm) where, and ux and uy are as defined above. Mean wind vector resultant mean horizontal wind speed, Ū: figure 47: mean wind-vector graph where for polar sensors:.

  • Page 206

    Section 7. Installation 206 or, in the case of orthogonal sensors: resultant mean wind direction, Θu: standard deviation of wind direction, σ (Θu), using campbell scientific algorithm: the algorithm for σ (Θu) is developed by noting, as shown in the figure standard deviation of direction (p. 206), t...

  • Page 207

    Section 7. Installation 207 equating the two expressions for cos (θ') and using the previous equation for s i ; solving for (Θ i ') 2 , one obtains; summing (Θ i ') 2 over n samples and dividing by n yields the variance of Θu. Note the sum of the last term equals 0. The term, is 0 if the deviations ...

  • Page 208

    Section 7. Installation 208 use the following crbasic instructions. Refer to crbasic editor help for complete information. Displaymenu() marks the beginning and end of a custom menu. Only one allowed per program. Note label must be at least six characters long to mask default display clock. Endmenu ...

  • Page 209

    Section 7. Installation 209 custom menu example — control led pick list (p. 211) custom menu example — control led boolean pick list (p. 211) figure 50: custom menu example — home screen figure 51: custom menu example — view data window figure 52: custom menu example — make notes sub menu.

  • Page 210

    Section 7. Installation 210 figure 53: custom menu example — predefined notes pick list figure 54: custom menu example — free entry notes window figure 55: custom menu example — accept / clear notes window.

  • Page 211

    Section 7. Installation 211 figure 56: custom menu example — control sub menu figure 57: custom menu example — control led pick list figure 58: custom menu example — control led boolean pick list note see figures custom menu example — home screen (p. 209) through custom menu example — control led bo...

  • Page 212

    Section 7. Installation 212 custom menus 'this program example demonstrates the building of a custom cr1000kd keyboard/display menu. 'declarations supporting view data menu item public reftemp 'reference temp variable public tctemp(2) 'thermocouple temp array 'delarations supporting blank line menu ...

  • Page 213

    Section 7. Installation 213 submenu ("make notes ") 'create submenu named paneltemps menuitem ("predefined",selectnote) 'choose predefined notes menu item menupick (cal_done,offset_changed) 'create pick list of predefined notes menuitem ("free entry",enternote) 'user entered notes menu item menuitem...

  • Page 214

    Section 7. Installation 214 portset (4,toggleled) 'set control port according 'to result of processing nextscan endprog 7.7.11 field calibration — details related topics: • field calibration — overview (p. 75) • field calibration — details (p. 214) calibration increases accuracy of a sensor by adjus...

  • Page 215

    Section 7. Installation 215 7.7.11.2 field calibration programming field-calibration functionality is included in a crbasic program through either of the following instructions: • fieldcal() — the principal instruction used for non-strain gage type sensors. For introductory purposes, use one fieldca...

  • Page 216

    Section 7. Installation 216 software documentation available at www.Campbellsci.Com. Be aware of the following precautions: • the cr800 does not check for out-of-bounds values in mode variables. • valid mode variable entries are 1 or 4. Before, during, and after calibration, one of the following cod...

  • Page 217

    Section 7. Installation 217 4. Set knownvar variable to the offset or zero value. 5. Set mode variable = 1 to start calibration. 7.7.11.4.2 two-point calibrations (gain and offset) use this two-point calibration procedure to adjust multipliers (slopes) and offsets (y intercepts). See fieldcal() slop...

  • Page 218

    Section 7. Installation 218 • offset • two-point slope and offset • two-point slope only • zero basis (designed for use with static vibrating wire measurements) these demonstration programs are provided as an aid in becoming familiar with the fieldcal() features at a test bench without actual sensor...

  • Page 219

    Section 7. Installation 219 terminals vx1 and se1. The following variables are preset by the program: simulatedrhsignal = 100, knownrh = 0. 3. To start the 'calibration', set variable calmode = 1. When calmode increments to 6, zero calibration is complete. Calibrated rhoffset will equal - 5% at this...

  • Page 220

    Section 7. Installation 220 'declare variable for fieldcal() control public calmode 'declare data table for retrievable calibration results datatable (calhist,newfieldcal,200) samplefieldcal endtable beginprog 'load calibration constants from file cpu:calhist.Cal 'effective after the zero calibratio...

  • Page 221

    Section 7. Installation 221 calibration report for salinity sensor crbasic variable at deployment at seven-day service simulatedsalinitysignal output 1350 mv 1345 mv knownsalintiy (standard solution) 30 mg/l 30 mg/l salinitymultiplier 0.05 mg/l/mv 0.05 mg/l/mv salinityoffset -37.50 mg/l -37.23 mg/l ...

  • Page 222

    Section 7. Installation 222 fieldcal() offset 'this program example demonstrates the use of fieldcal() in calculating and applying an 'offset calibration. An offset calibration compares the signal magnitude of a sensor to a 'known standard and calculates an offset to adjust the sensor output to the ...

  • Page 223

    Section 7. Installation 223 'simulate signal then make the measurement 'zero calibration is applied when variable calmode = 6 excitev (vx1,simulatedsalinitysignal,0) voltse (salinity,1,mv2500,1,1,0,250,0.05,salinityoffset) 'perform an offset calibration. 'start by setting variable calmode = 1. Finis...

  • Page 224

    Section 7. Installation 224 a. For the first point, set variable simulatedflowsignal = 300. Set variable knownflow = 30.0. B. Start the calibration by setting variable calmode = 1. C. When calmode increments to 3, for the second point, set variable simulatedflowsignal = 550. Set variable knownflow =...

  • Page 225

    Section 7. Installation 225 'measurements), the routine is complete. Note the new values in variables flowmultiplier and 'flowoffest. Now enter a new value in the simulated sensor signal as follows and note 'how the new multiplier and offset scale the measurement: ' simulatedflowsignal = 1000 'note:...

  • Page 226

    Section 7. Installation 226 parameter. Subsequent measurements are scaled with the same multiplier. Fieldcal() option 3 does not affect offset. Some measurement applications do not require determination of offset. Frequency analysis, for example, may only require relative data to characterize change...

  • Page 227

    Section 7. Installation 227 fieldcal() multiplier 'this program example demonstrates the use of fieldcal() in calculating and applying a 'multiplier only calibration. A multiplier calibration compares the signal magnitude of a 'sensor to known standards. The calculated multiplier scales the reported...

  • Page 228

    Section 7. Installation 228 'perform a multiplier calibration. 'start by setting variable calmode = 1. Finished when variable calmode = 6. 'fieldcal(function, measurevar, reps, multvar, offsetvar, mode, knownvar, index, avg) fieldcal (3,wc,1,wcmultiplier,0,calmode,knownwc,1,30) 'if there was a calib...

  • Page 229

    Section 7. Installation 229 fieldcalstrain() with the manufacturer's gage factor (gf), becoming the adjusted gage factor (gf adj ), which is then used as the gage factor in straincalc(). Gf is stored in the cal file and continues to be used in subsequent calibrations. Non-linearity of the bridge is ...

  • Page 230

    Section 7. Installation 230 figure 59: quarter-bridge strain gage with rc resistor shunt fieldcalstrain() calibration 'this program example demonstrates the use of the fieldcalstrain() instruction by measuring 'quarter-bridge strain-gage measurements. Public raw_mvperv public microstrain 'variables ...

  • Page 231

    Section 7. Installation 231 scan (100,msec,100,0) 'measure bridge resistance brfull (raw_mvperv,1,mv25,1,vx1,1,2500,true ,true ,0,250,1.0,0) 'calculate strain for 1/4 bridge (1 active element) straincalc (microstrain,1,raw_mvperv,zero_mvperv,1,gf_adj,0) 'steps (1) & (3): zero calibration 'balance br...

  • Page 232

    Section 7. Installation 232 figure 61: strain gage shunt calibration finish 7.7.11.6.4 fieldcalstrain() quarter-bridge zero continuing from fieldcalstrain() quarter-bridge shunt example (p. 231), keep the 249 kΩ resistor in place to simulate a strain. Using the cr1000kd keyboard/display or software ...

  • Page 233

    Section 7. Installation 233 7.7.12 measurement: fast analog voltage measurement speed requirements vary widely. The following are examples: • an agricultural weather station measures weather and soil sensors once every 10 seconds. • a station that warns of rising water in a stream bed measures at 10...

  • Page 234

    Section 7. Installation 234 o brhalf3w() o brhalf4w() o therm107() o therm108() o therm109() • differential instructions: o voltdiff() o tcdiff() o brfull() o brfull6w() to do this, use the same programming techniques demonstrated in the following example programs. Actual measurements speeds will va...

  • Page 235

    Section 7. Installation 235 analog voltage measurement: cluster burst 'this program makes 500 measurements of two single-ended channels at 500 hz. 'sample pattern is 1,2,1,2. Measurement cycle is repeated every 1 sec. The following 'programming features are key to making this application work: '--pi...

  • Page 236

    Section 7. Installation 236 dwell burst measurement 'this program makes 1735 measurements of two single-ended channels at '2000 hz. Sample pattern is 1,1,1..., pause, 2,2,2..., pause. 'measurement cycle is repeated every 2 sec. The following programming features are 'key to making this application w...

  • Page 237

    Section 7. Installation 237 voltage measurement instruction parameters for dwell burst parameters description destination a variable array dimensioned to store all measurements from one input. For example, the declaration, dim fasttemp(500) dimensions array fasttemp() to store 500 measurements, whic...

  • Page 238

    Section 7. Installation 238 • when testing and troubleshooting fast measurements, the following status table registers may provide useful information: o skippedscan (p. 550) o measuretime (p. 544) o processtime (p. 547) o maxproctime (p. 544) o buffdepth (p. 537) o maxbuffdepth (p. 544) • when the n...

  • Page 239

    Section 7. Installation 239 o subscan()/nextsubscan introduces potential problems. These are discussed in subscan() / next sub (p. 155). O subscan()/nextsubscan counts cannot be larger than 65535. O for subscan()/nextsubscan to work, set scan()/nextscan interval large enough for counts to finish bef...

  • Page 240

    Section 7. Installation 240 'excite - delay 1 second - differential measurement: excitev (vx2,2500,0) ' delay (0,1000,msec) voltdiff (voltagediff,1,mv5000,2,true,0,250,1.0,0) 'write data to final-data memory calltable voltage nextscan endprog 7.7.14 serial i/o: sdi-12 sensor support — details relate...

  • Page 241

    Section 7. Installation 241 to enter the sdi-12 transparent mode, enter the datalogger support software terminal emulator as shown in the figure entering sdi-12 transparent mode (p. 241). Press enter until the cr800 responds with the prompt cr800>. Type sdi12 at the prompt and press enter. In respon...

  • Page 242

    Section 7. Installation 242 an active sensor responds to each command. Responses have several standard forms and terminate with (carriage return–line feed). Sdi-12 commands and responses are defined by the sdi-12 support group (www.Sdi-12.Org) and are summarized in the table standard sdi-12 command ...

  • Page 243

    Section 7. Installation 243 sdi-12 commands for transparent mode command name command syntax 1 response 2 notes 1 if the terminator ' ! ' is not present, the command will not be issued. The crbasic sdi12recorder() instruction, however, will still pick up data resulting from a previously issued c! Co...

  • Page 244

    Section 7. Installation 244 sdi-12 start measurement commands measurement commands elicite responses in the form: atttnn where: a is the sensor address ttt is the time (s) until measurement data are available nn is the number of values to be returned when one or more subsequent d! Commands are issue...

  • Page 245

    Section 7. Installation 245 aborting an sdi-12 measurement command a measurement command ( m! Or c!) is aborted when any other valid command is sent to the sensor. Sdi-12 send data command send data commands are normally issued automatically by the cr800 after the amv! Or acv! Measurement commands. ...

  • Page 246

    Section 7. Installation 246 7.7.14.2 sdi-12 recorder mode the cr800 can be programmed to act as an sdi-12 recording device or as an sdi-12 sensor. For troubleshooting purposes, responses to sdi-12 commands can be captured in programmed mode by placing a variable declared as string in the variable pa...

  • Page 247

    Section 7. Installation 247 sdi-12 commands for programmed (sdirecorder()) mode command name sdirecorder() sdicommand argument sdi-12 command sent sensor response 1 cr800 response notes cr800: else, if ttt > 0 then moves to next crbasic program instruction cr800: at next time sdirecorder() is execut...

  • Page 248

    Section 7. Installation 248 7.7.14.2.1 alternate start concurrent measurement command note acv and acv! Are different commands — acv does not end with !. The sdirecorder() acv command facilitates using the sdi-12 standard start concurrent command ( acv!) without the back-to-back measurement sequence...

  • Page 249

    Section 7. Installation 249 public batteryvolt public temp(4) beginprog scan (5,sec,0,0) 'non-sdi-12 measurements here nextscan slowsequence scan (5,min,0,0) sdi12recorder (temp(1),1,0,"m!",1.0,0) sdi12recorder (temp(2),1,1,"m!",1.0,0) sdi12recorder (temp(3),1,2,"m!",1.0,0) sdi12recorder (temp(4),1,...

  • Page 250

    Section 7. Installation 250 note when only one sdi-12 sensor is attached, that is, multiple sensor measurements do not need to start concurrently, another reliable method for making sdi-12 measurements without affecting the main scan is to use the crbasic slowsequence instruction and the sdi-12 m! C...

  • Page 251

    Section 7. Installation 251 slowsequence do sdi12sensorsetup (1,3,1,95) delay (1,95,sec) sdi12sensorresponse (temp(2)) loop endsequence slowsequence do sdi12sensorsetup (1,5,2,95) delay (1,95,sec) sdi12sensorresponse (temp(3)) loop endsequence slowsequence do sdi12sensorsetup (1,7,3,95) delay (1,95,...

  • Page 252

    Section 7. Installation 252 'begin measurement sequence if runsdi12 = true then for x = 1 to 4 temp_tmp(x) = 2e9 'when 2e9 changes, indicates a change next x 'measure sdi-12 sensors sdi12recorder (temp_tmp(1),1,0,cmd(1),1.0,0) sdi12recorder (temp_tmp(2),1,1,cmd(2),1.0,0) sdi12recorder (temp_tmp(3),1...

  • Page 253

    Section 7. Installation 253 7.7.14.2.2 sdi-12 extended command support sdi12recorder() sends any string enclosed in quotation marks in the command parameter. If the command string is a non-standard sdi-12 command, any response is captured into the variable assigned to the destination parameter, so l...

  • Page 254

    Section 7. Installation 254 details of using the sdi12sensorsetup() / sdi12sensorresponse() instruction pair can be found in the crbasic editor help. Other helpful tips include: concerning the reps parameter in the sdi12sensorsetup(), valid reps when expecting an amx! Command range from 0 to 9. Vali...

  • Page 255

    Section 7. Installation 255 slowsequence do sdi12sensorsetup (10,1,0,1) delay (1,500,msec) sdi12sensorresponse (sdi_source) loop endsequence endprog sdi-12 sensor configuration crbasic example — results measurement command from sdi-12 recorder source variables accessed from the cr800 acting as a sdi...

  • Page 256

    Section 7. Installation 256 • active: 66 ma • timeout: 15 s probes 1, 2, 3, and 4 are connected to sdi-12 / control port c1. The time line in table example power usage profile for a network of sdi-12 probes (p. 256) shows a 35 second power-usage profile example. For most applications, total power us...

  • Page 257

    Section 7. Installation 257 the cr200x) accept program files, or include() instruction files, with .Dld extensions. Note do not confuse crbasic files with .Dld extensions with files of .Dld type used by legacy campbell scientific dataloggers. As an example, pseudo code using this feature might be wr...

  • Page 258

    Section 7. Installation 258 #elseif programspeed = 3 const scanrate = 30 '30 seconds const speed = "30 second" #else const scanrate = 5 '5 seconds const speed = "5 second" #endif 'public variables public valueread, selectedspeed as string * 50 'main program beginprog 'return the selected speed and l...

  • Page 259

    Section 7. Installation 259 this manual includes this discussion of prts because of the following: • many applications need the accuracy of a prt. • prt procedures confuse many users. • prts are not usually manufactured ready to use for most cr800 prt setups. This section gives procedures and diagra...

  • Page 260

    Section 7. Installation 260 prt measurement circuit overview configuration features note • voltage excitation four-wire half-bridge (p. 262) • high accuracy over long leads • more input terminals: four per sensor • slower: four differential sub measurements per measurement best configuration three-w...

  • Page 261

    Section 7. Installation 261 pt100 temperature and ideal resistances (rs); α = 0.00385 1 rs –40 rs 0 rs 10 rs 60 °c –40 0 10 60 mΩ 84270 100000 103900 123240 1 commonly available tables provide these resistance values. Callandar-van dusen coefficients for pt100, α = 0.00385 constants coefficient a 3....

  • Page 262

    Section 7. Installation 262 excitation ranges cr6 cr800/cr1000 cr3000 ± 2500 mv ± 2500 mv ± 5000 mv ± 2.000 ma n/a ± 2.500 ma 7.7.16.3 example: 100 Ω prt in four-wire half bridge with voltage excitation (pt100 / brhalf4w() ) figure 65: pt100 brhalf4w() four-wire half-bridge schematic procedure data ...

  • Page 263

    Section 7. Installation 263 b. Rf should approximately equal the resistance of the pt100 at 0 °c. Use a 1%, 10 ppm/°c resistor. 2. Wire circuit to datalogger: use figure: pt100 brhalf4w() four-wire half-bridge schematic (p. 262) as the wiring diagram. 3. Calculate excitation voltage 2 : use the foll...

  • Page 264

    Section 7. Installation 264 if you are doing a dry run, assume the temperature is 10 °c. A. Enter crbasic example: pt100 brhalf4w() four-wire half-bridge measurement (p. 265) into the cr800. It is already programmed with the excitation voltage from step 3 and rs 0 from step 4. B. Place pt100 in medi...

  • Page 265

    Section 7. Installation 265 pt100 brhalf4w() four-wire half-bridge measurement 'this program example demonstrates the measurement of a 100-ohm prt in a four-wire 'half bridge using current excitation. See previous procedure and schematic. 'declare constants and variables: const rf = 100000 'value of...

  • Page 266

    Section 7. Installation 266 arise from variances in the 0.01% range translation resistors internal to the cr800. 7.7.16.4 example: 100 Ω prt in three-wire half bridge with voltage excitation (pt100 / brhalf3w() ) figure 66: pt100 brhalf3w() three-wire half-bridge schematic procedure information brha...

  • Page 267

    Section 7. Installation 267 3. Calculate excitation voltage: use the following equation to calculate the best excitation voltage (vx) for the measurement range of –40 to 60 °c. The equation reduces the absolute result by 1% to allow for resistor inaccuracy: vx max = vs max / (rs max / (rf + rs max )...

  • Page 268

    Section 7. Installation 268 d. Calculate rs 10 : rs 10 = x 10 • rf = 103900 6. Calculate rs 10 /rs 0 , k, and temperature: a. Rs 10 /rs 0 = 1.039 b. K = (rs 10 /rs 0 )-1 = 0.039 c. T = g * k^4 + h * k^3 + i * k^2 + j * k = 9.99 °c d. T = (sqrt(d * (rs 10 /rs 0 ) + e) - a) / f = 9.99 °c 1 a campbell ...

  • Page 269

    Section 7. Installation 269 pt100 brhalf3w() three-wire half-bridge measurement 'this program example demonstrates the measurement of a 100-ohm prt (pt100) in a three-wire 'half bridge with voltage excitation. See adjacent procedure and schematic. 'declare constants and variables: const rf = 1000000...

  • Page 270

    Section 7. Installation 270 7.7.16.5 example: 100 Ω prt in four-wire full bridge with voltage excitation (pt100 / brfull() ) figure 67: pt100 brfull() four-wire full-bridge schematic procedure 1. Build circuit 1 : a. Use figure: pt100 brfull() four-wire full-bridge schematic (p. 270) as a template. ...

  • Page 271

    Section 7. Installation 271 where, vs max = 25 mv (maximum voltage in the ±25 input range) r1 = 5000000 mΩ (5 kΩ) r2 = 100000 mΩ (100 Ω) r4 = 5000000 mΩ (5 kΩ) rs max = 123240 mΩ (pt100 at 60 °c) 2 so, vx max = 44972562111243 mv 4. Calibrate the pt100: if the prt accuracy specification is good enoug...

  • Page 272

    Section 7. Installation 272 c. Measure the prt. If you are doing a dry run, assume the result of brfull() = x 0 = 0. D. Calculate rs 0 x2 0 = (x 0 / 1000) + (r2 / (r1 + r2) = 0.01961 rs 0 = (r4 • x2 0 ) / (1 – x2 0 ) = 100000 mΩ wow! We are lucky to have a perfect prt! In the real world, prt resista...

  • Page 273

    Section 7. Installation 273 crbasic programs and notes pt100 brfull() four-wire full-bridge calibration 'this program example demonstrates the calibration of a 100-ohm prt (pt100) in a four-wire 'full bridge with voltage excitation. See previous procedure and schematic. ' 'declare constants and vari...

  • Page 274

    Section 7. Installation 274 'calculate x2 x2 = (x1/1000) + (r2/(r1+r2) 'calculate rs and rs_rs0 rs = (r4*x2) / (1-x2) rs_rs0 = rs/rs0 ....'calculate temperature from rs_rs0: 'prtcalc(dest,reps,source,prttype,mult,offset) prtcalc (degc,1,rs_rs0,1,1.0,0) nextscan endprog notes the following relationsh...

  • Page 275

    Section 7. Installation 275 rs/r0, k, and temperature rs/r0 = –(r4/((r4*x3 cal )/(1–x3 cal )))*(xp/(xp – 1)) k = (rs/r0)–1 t = (sqrt(d * (r/r0) + e) – a) / f (see prt calculation standards for coefficients) or t = g * k^4 + h * k^3 + i * k^2 + j * k (see prt calculation standards for coefficients) r...

  • Page 276

    Section 7. Installation 276 eq. 1 and eq. 2 yield approximations of the true linearity of a prt. The approximation error can be as high as several hundredths of a degree celsius at different points in the temperature range, and it varies from sensor to sensor. Individual sensors also have errors rel...

  • Page 277

    Section 7. Installation 277 prtcalc()prttype = 2, α = 0.00392 1 constant coefficient a 3.9786300e-03 d -2.3452400e-06 e 1.8174740e-05 f -1.1726200e-06 g 1.7043690e+00 h -2.7795010e+00 i 8.8078440e+00 j 2.5129740e+02 1 us industrial standard, α = 0.00392 (reference: logan enterprises) prtcalc()prttyp...

  • Page 278

    Section 7. Installation 278 prtcalc()prttype = 4, α = 0.003916 1 h -2.8905090e+00 i 8.8326690e+00 j 2.5159480e+02 1 old japanese standard, α = 0.003916 (reference: jis c 1604:1981, national instruments) prtcalc()prttype = 5, α = 0.00375 1 constant coefficient a 3.8100000e-03 d -2.4080000e-06 e 1.692...

  • Page 279

    Section 7. Installation 279 7.7.16.7 self-heating and resolution programming the cr800 to make a prt measurement requires a judgment call. To maximize measurement resolution, the excitation voltage must be maximized. However, to minimize self-heating of the prt element, excitation voltage must be mi...

  • Page 280

    Section 7. Installation 280 read more see ascii / ansi table for a complete list of ascii / ansi codes and their binary and hex equivalents. The face value of the byte, however, is not what is usually of interest. The manufacturer of the instrument must specify what information in the byte is of int...

  • Page 281

    Section 7. Installation 281 cr800 serial ports serial port voltage level logic rs-232 (9 pin) rs-232 full-duplex asynchronous rs- 232 cs i/o (9 pin) ttl full-duplex asynchronous rs- 232 com1 (c1 – c2) ttl full-duplex asynchronous rs- 232/ttl com2 (c3 – c4) ttl full-duplex asynchronous rs- 232/ttl c1...

  • Page 282

    Section 7. Installation 282 asynchronous communication, this coordination is accomplished by having each character surrounded by one or more start and stop bits which designate the beginning and ending points of the information (see synchronous (p. 517) ). Indicates the sending and receiving devices...

  • Page 283

    Section 7. Installation 283 term: lsb least significant bit (the trailing bit). See the endianness (p. 559). Term: marks and spaces rs-232 signal levels are inverted logic compared to ttl. The different levels are called marks and spaces. When referenced to signal ground, the valid rs- 232 voltage l...

  • Page 284

    Section 7. Installation 284 7.7.17.5 serial i/o crbasic programming to transmit or receive rs-232 or ttl signals, a serial port (see table cr800 serial ports (p. 280)) must be opened and configured through crbasic with the serialopen() instruction. The serialclose() instruction can be used to close ...

  • Page 285

    Section 7. Installation 285 serialclose() • examples of when to close o reopen ppp o finished setting new settings in a hayes modem o finished dialing a modem • returns true or false when set equal to a boolean variable serialflush() • puts the read and write pointers back to the beginning • returns...

  • Page 286

    Section 7. Installation 286 serialinrecord() 2 • can run in pipeline mode inside the digital measurement task (along with sdm instructions) if the comport parameter is set to a constant argument such as com1 or com2, and the number of bytes is also entered as a constant. • simplifies synchronization...

  • Page 287

    Section 7. Installation 287 o is power consumption critical? O does the sensor compute a checksum? Which type? A checksum is useful to test for data corruption. 2. Open a serial port with serialopen(). O example: serialopen(com1,9600,0,0,10000) o designate the correct port in crbasic. O correctly wi...

  • Page 288

    Section 7. Installation 288 7.7.17.5.3 serial i/o output programming basics applications with the purpose of transmitting data to another device usually include the following procedures. Other procedures may be required depending on the application. 1. Open a serial port with serialopen() to configu...

  • Page 289

    Section 7. Installation 289 7.7.17.5.4 serial i/o translating bytes one or more of three principle data formats may end up in the serialinstring() variable (see examples in serial input programming basics (p. 286) ). Data may be combinations or variations of these. The instrument manufacturer must p...

  • Page 290

    Section 7. Installation 290 note concerning serialinrecord() running in pipeline mode with nbytes (number of bytes) parameter = 0: for the digital measurement sequence to know how much room to allocate in scan() buffers (default of 3), serialinrecord() allocates the buffer size specified by serialop...

  • Page 291

    Section 7. Installation 291 receiving an rs-232 string 'this program example demonstrates cr800 serial i/o features by: ' 1. Simulating a serial sensor ' 2. Transmitting a serial string via com1 tx. 'the serial string is received at com2 rx via jumper wire. Simulated 'air temperature = 27.435 f, rel...

  • Page 292

    Section 7. Installation 292 'receive serial data as a string '42 is ascii code for "*", 35 is code for "#" serialinrecord (com2,serialinstring,42,0,35,"",01) 'parse the serial string splitstr (instringsplit(),serialinstring,"",2,0) nextscan endprog 7.7.17.6 serial i/o application testing a common pr...

  • Page 294

    Section 7. Installation 294 figure 71: hyperterminal ascii setup 7.7.17.6.2 create send-text file create a file from which to send a serial string. The file shown in the figure hyperterminal send-text file example (p. 294) will send the string [2008:028:10:36:22]c to the cr800. Use notepad (microsof...

  • Page 296

    Section 7. Installation 296 measure sensors / send rs-232 data 'this program example demonstrates the import and export serial data via the cr800 rs-232 'port. Imported data are expected to have the form of the legacy campbell scientific 'time set c command: ' [yr:day:hr:mm:ss]c 'exported data has t...

  • Page 297

    Section 7. Installation 297 'check if it is a leap year: 'if year mod 4 = 0 and year mod 100 0, then it is a leap year or 'if year mod 4 = 0, year mod 100 = 0, and year mod 400 = 0, then it 'is a leap year leapyear = 0 'reset leap year status location leapmod4 = year mod 4 leapmod100 = year mod 100 ...

  • Page 298

    Section 7. Installation 298 case is month = 10 date = doy + -274 case is month = 11 date = doy + -305 case is month = 12 date = doy + -335 endselect 'if it is not a leap year, use this section. Else select case doy case is month = 1 date = doy case is month = 2 date = doy + -31 case is month = 3 dat...

  • Page 299

    Section 7. Installation 299 '//////////////////////////// program //////////////////////////// beginprog stationid = 4771 scan (1,sec, 3, 0) '/////////////////measurement section//////////////////////// 'pulsecount(kwh_in, 1, 1, 2, 0, 1, 0) 'activate this line in working program kwh_in = 4.5 'simula...

  • Page 300

    Section 7. Installation 300 'assign +/- sign for i=1 to 6 if onemindata(i) then 'note: chr45 is - sign outfrag(i)=chr(45) & formatfloat ( abs (onemindata(i)),"%05g") else 'note: chr43 is + sign outfrag(i)=chr(43) & formatfloat ( abs (onemindata(i)),"%05g") endif next i 'concatenate printable ascii s...

  • Page 301

    Section 7. Installation 301 both conditions power-up the interface and leave it on with no timeout. If serialclose() is used after serialopen(), the port is powered down and in a state waiting for characters to come in. Under normal operation, the port is powered down waiting for input. After receiv...

  • Page 302

    Section 7. Installation 302 a: open the port in binary mode (mode 3) instead of pakbus-enabled mode (mode 0). Q: tests with an oscilloscope showed the sensor was responding quickly, but the data were getting held up in the internals of the cr800 somewhere for 30 ms or so. Characters at the start of ...

  • Page 303

    Section 7. Installation 303 into an array of values (characters, floats, or longs), such as move(), movebytes(), getvariables(), serialinrecord(), serialinblock(). In all cases, when writing to an array of values, it is important to understand what you are reading, if you are reading it asynchronous...

  • Page 304

    Section 7. Installation 304 string operators operator description "abc" - "abc" = 0 difference between e and c "abe" - "abc" = 2 difference between c and b "ace" - "abe" = 1 difference between d and null "abcd" - "abc" = 100 , >, , , >=, = ascii codes of the first characters in each string are compa...

  • Page 305

    Section 7. Installation 305 concatenation of numbers and strings 'this program example demonstrates the concatenation of numbers and strings to variables 'declared as float and as string. ' 'declare variables public num(12) as float public str(2) as string dim i beginprog scan (1,sec,0,0) i = 0 'set...

  • Page 306

    Section 7. Installation 306 'following destination variables is string because str() array is declared as string. I = 0 i += 1 str(i) = 1 + 2 + "hey" + 4 + 5 + "6" '= 3hey456 i += 1 str(i) = 1 + 2 + "hey" + (4 + 5) + "6" '= 3hey96 nextscan endprog 7.7.18.3 string null character all strings are autom...

  • Page 307

    Section 7. Installation 307 some smart sensors send strings containing null characters. To manipulate a string that has null characters within it (in addition to being terminated with another null), use movebytes() instruction. 7.7.18.4 inserting string characters example: objective: use movebytes()...

  • Page 308

    Section 7. Installation 308 crbasic example subroutine with global and local variables (p. 308) shows the use of global and local variables. Variables counter() and pi_product are global. Variable i_sub is global but used exclusively by subroutine process. Variables j() and outvar are local since th...

  • Page 309

    Section 7. Installation 309 beginprog counter(1) = 1 counter(2) = 2 scan (1,sec,0,0) 'pass counter() array to j() array, pi_pruduct() to outvar() call processsub (counter(),pi_product()) calltable pi_results nextscan endprog.

  • Page 311: 8. Operation

    311 8. Operation related topics: • quickstart (p. 35) • specifications (p. 91) • installation (p. 93) • operation (p. 311) 8.1 measurements — details related topics: • sensors — quickstart (p. 35) • measurements — overview (p. 64) • measurements — details (p. 311) • sensors — lists (p. 567) several ...

  • Page 312

    Section 8. Operation 312 time-stamp skew is not a problem with most applications because, • program execution times are usually short, so time stamp skew is only a few milliseconds. Most measurement requirements allow for a few milliseconds of skew. • data processed into averages, maxima, minima, an...

  • Page 313

    Section 8. Operation 313 scan (1,sec,10,0) 'delay -- in an operational program, delay may be caused by other code delay (1,500,msec) 'measure value -- can be any analog measurement paneltemp (value,0) 'immediately call slowsequence to execute calltable() triggersequence (1,0) nextscan 'allow data to...

  • Page 314

    Section 8. Operation 314 8.1.2.1 voltage measurement quality read more consult the following technical papers at www.Campbellsci.Com/app-notes for in-depth treatments of several topics addressing voltage measurement quality: • preventing and attacking measurement noise problems • benefits of input r...

  • Page 315

    Section 8. Operation 315 • sensor is not designed for differential measurements. Many campbell scientific sensors are not designed for differential measurement, but the draw backs of a single-ended measurement are usually mitigated by large programmed excitation and/or sensor output voltages. Sensor...

  • Page 316

    Section 8. Operation 316 • minimize polarization of polar sensors such as those for measuring conductivity, soil moisture, or leaf wetness. Polarization may cause measurement errors or sensor degradation. • improve accuracy of an lvdt measurement. The induced voltage in an lvdt decays with time as c...

  • Page 317

    Section 8. Operation 317 figure 74: ac power noise rejection techniques ac noise rejection on small signals the cr800 rejects ac power line noise on all voltage ranges except mv5000 and mv2500 by integrating the measurement over exactly one full ac cycle before a- to-d (p. 489) conversion as listed ...

  • Page 318

    Section 8. Operation 318 ac noise rejection on large signals 1 ac-power line frequency measurement integration time crbasic integration code default settling time maximum recommended settling time 2 60 hz 250 μs • 2 _60hz 3000 μs 8330 μs 50 hz 250 μs • 2 _50hz 3000 μs 10000 μs 1 applies to analog in...

  • Page 319

    Section 8. Operation 319 programmed settling time is a function of arguments placed in the settlingtime and integ parameters of a measurement instruction. Argument combinations and resulting settling times are listed in table crbasic measurement settling times (p. 319). Default settling times (those...

  • Page 320

    Section 8. Operation 320 • where possible, run excitation leads and signal leads in separate shields to minimize transients. • when measurement speed is not a prime consideration, additional time can be used to ensure ample settling time. The settling time required can be measured with the cr800. • ...

  • Page 321

    Section 8. Operation 321 beginprog scan (1,sec,3,0) brfull (pt(1),1,mv7.5,1,vx1,2500,true,true,100, 250,1.0,0) brfull (pt(2),1,mv7.5,1,vx1,2500,true,true,200, 250,1.0,0) brfull (pt(3),1,mv7.5,1,vx1,2500,true,true,300, 250,1.0,0) brfull (pt(4),1,mv7.5,1,vx1,2500,true,true,400, 250,1.0,0) brfull (pt(5...

  • Page 322

    Section 8. Operation 322 first six values of settling time data timestamp rec pt(1) pt(2) pt(3) pt(4) pt(5) pt(6) smp smp smp smp smp smp 1/3/2000 23:34 0 0.03638599 0.03901386 0.04022673 0.04042887 0.04103531 0.04123745 1/3/2000 23:34 1 0.03658813 0.03921601 0.04002459 0.04042887 0.04103531 0.04143...

  • Page 323

    Section 8. Operation 323 • if the open circuit is at the end of a very long cable, the test pulse (300 mv) may not charge the cable (with its high capacitance) up to a voltage that generates nan or a distinct error voltage. The cable may even act as an aerial and inject noise which also might not re...

  • Page 324

    Section 8. Operation 324 summary measurement offset voltages are unavoidable, but can be minimized. Offset voltages originate with: • ground currents • seebeck effect • residual voltage from a previous measurement remedies include: • connect power grounds to power ground terminals ( g) • use input r...

  • Page 325

    Section 8. Operation 325 performed as part of the routine auto-calibration of the cr800. Single-ended measurement instructions voltse() and tcse() measoff parameter determines whether the offset voltage measured is done at the beginning of measurement instruction, or as part of self-calibration. Thi...

  • Page 326

    Section 8. Operation 326 table: offset voltage compensation options (p. 326) lists some of the tools available to minimize the effects of offset voltages. Offset voltage compensation options crbasic measurement instruction input reversal (revdiff =true) excitation reversal (revex = true) measure off...

  • Page 327

    Section 8. Operation 327 1. Switches to the measurement terminals 2. Sets the excitation, and then settle, and then measure 3. Reverse the excitation, and then settles, and then measure 4. Reverse the excitation, reverse the input terminals, settle, measure 5. Reverse the excitation, settle, measure...

  • Page 328

    Section 8. Operation 328 where a-to-d conversion time equals 15 µs. If reps (repetitions) > 1 (multiple measurements by a single instruction), no additional time is required. If reps = 1 in consecutive voltage instructions, add 15 µs per instruction. Measurement accuracy read more for an in-depth tr...

  • Page 329

    Section 8. Operation 329 analog voltage measurement resolution input voltage range (mv) differential measurement with input reversal ( µ v) basic resolution ( µ v) ± 5000 667 1333 ± 2500 333 667 ± 250 33.3 66.7 25 3.33 6.7 7.5 1.0 2.0 2.5 0.33 0.67 note — see specifications (p. 91) for a complete ta...

  • Page 330

    Section 8. Operation 330 measurement with input reversal at a temperature between 0 to 40 °c. Measurement accuracy example the following example illustrates the effect percent-of-reading and offset have on measurement accuracy. The effect of offset is usually negligible on large signals: example: • ...

  • Page 331

    Section 8. Operation 331 where percent-of-reading = 2500 mv • ±0.06% = ±1.5 mv and offset = (1.5 • 667 µv) + 1 µv = 1.00 mv therefore, accuracy = ±1.5 mv + 1.00 mv = ±2.5 mv electronic noise electronic "noise" can cause significant error in a voltage measurement, especially when measuring voltages l...

  • Page 332

    Section 8. Operation 332 • position of the on-board reference thermistor in the wiring panel is not optimal. The absence of these design features causes significant error in the reference junction temperature measurement. If the cr800 must be used for thermocouple measurements, and those measurement...

  • Page 333

    Section 8. Operation 333 equations. In the diagrams, resistors labeled r s are normally the sensors and those labeled r f are normally precision fixed (static) resistors. Crbasic example four-wire full-bridge measurement (p. 334) lists crbasic code that measures and processes four-wire full-bridge c...

  • Page 334

    Section 8. Operation 334 resistive-bridge circuits with voltage excitation resistive-bridge type and circuit diagram crbasic instruction and fundamental relationship relational formulas four-wire half-bridge 1,3 crbasic instruction: brhalf4w() fundamental relationship 2 : full-bridge 1,3 crbasic ins...

  • Page 335

    Section 8. Operation 335 four-wire full-bridge measurement and processing 'this program example demonstrates the measurement and processing of a four-wire resistive 'full bridge. In this example, the default measurement stored in variable x is 'deconstructed to determine the resistance of the r1 res...

  • Page 336

    Section 8. Operation 336 measurements • voltage measurement accuracy, self- calibration, and ratiometric measurements • estimating measurement accuracy for ratiometric measurement instructions. Note error discussed in this section and error-related specifications of the cr800 do not include error in...

  • Page 337

    Section 8. Operation 337 8.1.2.4 auto self-calibration — details related topics • auto self-calibration — overview (p. 89) • auto self-calibration — details (p. 337) • auto self-calibration — errors (p. 475) • offset voltage compensation (p. 323) • factory calibration (p. 86) • factory calibration o...

  • Page 338

    Section 8. Operation 338 21 segments. So, (21 segments) • (4 s / segment) = 84 s per complete auto self- calibration. The worst-case is (91 segments) • (4 s / segment) = 364 s per complete auto self-calibration. During instrument power-up, the cr800 computes calibration coefficients by averaging ten...

  • Page 339

    Section 8. Operation 339 an example use of the calibrate() instruction programmed to calibrate all input ranges is given in the following crbasic code snip: 'calibrate(dest,range) calibrate (cal(1),true) where dest is an array of 54 variables, and range ≠ 0 to calibrate all input ranges. Results of ...

  • Page 340

    Section 8. Operation 340 calseoffset() field descriptions ±mv input range integration calseoffset(1) 5000 250 ms calseoffset(2) 2500 250 ms calseoffset(3) 250 250 ms calseoffset(4) 25 250 ms calseoffset(5) 7.5 250 ms calseoffset(6) 2.5 250 ms calseoffset(7) 5000 60 hz rejection calseoffset(8) 2500 6...

  • Page 341

    Section 8. Operation 341 caldiffoffset() field descriptions field ±mv input range integration caldiffoffset(13) 5000 50 hz rejection caldiffoffset(14) 2500 50 hz rejection caldiffoffset(15) 250 50 hz rejection caldiffoffset(16) 25 50 hz rejection caldiffoffset(17) 7.5 50 hz rejection caldiffoffset(1...

  • Page 342

    Section 8. Operation 342 calibrate() instruction results cal() array field descriptions of array elements typical value differential (diff) single-ended (se) offset or gain ±mv input range integration 22 se offset 2500 60 hz rejection ±5 lsb 23 diff offset 2500 60 hz rejection ±5 lsb 24 gain 2500 60...

  • Page 343

    Section 8. Operation 343 calibrate() instruction results cal() array field descriptions of array elements typical value differential (diff) single-ended (se) offset or gain ±mv input range integration 52 se offset 2.5 50 hz rejection ±20 lsb 53 diff offset 2.5 50 hz rejection ±20 lsb 54 gain 2.5 50 ...

  • Page 344

    Section 8. Operation 344 straincalc() instruction equations straincalc() brconfig code configuration 3 half-bridge strain gage. One gage parallel to + , the other parallel to - 1 : 4 full-bridge strain gage. Two gages parallel to + , the other two parallel to - 1 : 5 full-bridge strain gage. Half th...

  • Page 345

    Section 8. Operation 345 for a complete treatment of current-loop sensors (4 to 20 ma, for example), please consult the following publications available at www.Campbellsci.Com/app- notes: • current output transducers measured with campbell scientific dataloggers (2mi-b) • curs100 100 ohm current shu...

  • Page 346

    Section 8. Operation 346 measurements. The first measurement determines the range to use. It is made with a 250 µs integration on the ±5000 mv range. The second measurement is made using the range determined from the first. Both measurements use the settling time entered in the settlingtime paramete...

  • Page 347

    Section 8. Operation 347 note this section contains advanced information not required for normal operation of the cr800. Summary • voltage input limits for measurement are ±5 vdc. Input limits is the specification listed in specifications (p. 91). • common-mode range is not a fixed number. It varies...

  • Page 348

    Section 8. Operation 348 figure 78: pgia with input signal decomposition 8.1.2.7.2 voltage measurement mechanics measurement sequence an analog voltage measurement as illustrated in the figure simplified voltage measurement sequence (p. 348), proceeds as follows: 1. Switch 2. Settle 3. Amplify 4. In...

  • Page 349

    Section 8. Operation 349 input or differential input. Internal multiplexers route individual terminals to the pgia. Timing (p. 150) of measurement tasks is precisely controlled. The measurement schedule is determined at compile time and loaded into memory. Using two different voltage-measurement ins...

  • Page 350

    Section 8. Operation 350 parameters that control measurement sequence and timing crbasic instruction parameter action measofs correct ground offset on single-ended measurements. Settlingtime sensor input settling time. Integ duration of input signal integration. Revdiff reverse high and low differen...

  • Page 351

    Section 8. Operation 351 • voltse() • brhalf() • brhalf3w() • tcse() • therm107() • therm108() • therm109() • thermistor() differential measurements — details related topics: • differential measurements — overview (p. 68) • differential measurements — details (p. 351) using the figure programmable g...

  • Page 352

    Section 8. Operation 352 • estimating measurement accuracy for ratiometric measurement instructions. The following topics discuss methods of generally improving voltage measurements. Related information for special case voltage measurements (thermocouples (p. 331), current loops (p. 344), resistance...

  • Page 353

    Section 8. Operation 353 require high accuracy or precision, such as thermocouples measuring brush-fire temperatures, which can exceed 2500 °c, a single-ended measurement may be appropriate. If sensors require differential measurement, but adequate input terminals are not available, an analog multip...

  • Page 354

    Section 8. Operation 354 the magnitude of the frequency response of an analog integrator is a sin(x)/x shape, which has notches (transmission zeros) occurring at 1/(integer multiples) of the integration duration. Consequently, noise at 1/(integer multiples) of the integration duration is effectively...

  • Page 355

    Section 8. Operation 355 ac noise rejection on small signals the cr800 rejects ac power line noise on all voltage ranges except mv5000 and mv2500 by integrating the measurement over exactly one full ac cycle before a- to-d (p. 489) conversion as listed in table ac noise rejection on small signals (p...

  • Page 356

    Section 8. Operation 356 ac noise rejection on large signals 1 restated, when the cr800 is programmed to use the half-cycle 50 hz or 60 hz rejection techniques, a sensor does not see a continuous excitation of the length entered as the settling time before the second measurement — if the settling ti...

  • Page 357

    Section 8. Operation 357 figure 82: input voltage rise and transient decay crbasic measurement settling times settlingtime argument integ argument resultant settling time 1 0 250 450 µs 0 _50hz 3 ms 0 _60hz 3 ms integer ≥ 100 integer μs entered in settlingtime argument 1 450 µs is the minimum settli...

  • Page 358

    Section 8. Operation 358 measuring settling time settling time for a particular sensor and cable can be measured with the cr800. Programming a series of measurements with increasing settling times will yield data that indicate at what settling time a further increase results in negligible change in ...

  • Page 359

    Section 8. Operation 359 brfull (pt(7),1,mv7.5,1,vx1,2500,true,true,700, 250,1.0,0) brfull (pt(8),1,mv7.5,1,vx1,2500,true,true,800, 250,1.0,0) brfull (pt(9),1,mv7.5,1,vx1,2500,true,true,900, 250,1.0,0) brfull (pt(10),1,mv7.5,1,vx1,2500,true,true,1000, 250,1.0,0) brfull (pt(11),1,mv7.5,1,vx1,2500,tru...

  • Page 360

    Section 8. Operation 360 open-input detect note the information in this section is highly technical. It is not necessary for the routine operation of the cr800. Summary • an option to detect an open-input, such as a broken sensor or loose connection, is available in the cr800. • the option is select...

  • Page 361

    Section 8. Operation 361 range-code option c over-voltages input range (mv) over-voltage ± 2.5 ± 7.5 ± 25 ± 250 300 mv ± 2500 c option with caveat 1 ±5000 c option not available 1 c results in the h terminal being briefly connected to a voltage greater than 2500 mv, while the l terminal is connected...

  • Page 362

    Section 8. Operation 362 • excitation reversal (revex = true) • longer settling times voltage offset can be the source of significant error. For example, an offset of 3 μv on a 2500 mv signal causes an error of only 0.00012%, but the same offset on a 0.25 mv signal causes an error of 1.2%. The prima...

  • Page 363

    Section 8. Operation 363 can be subtracted and divided by 2 for offset reduction similar to input reversal for differential measurements. Ratiometric differential measurement instructions allow both revdiff and revex to be set true. This results in four measurement sequences: • positive excitation p...

  • Page 364

    Section 8. Operation 364 offset voltage compensation options crbasic measurement instruction input reversal (revdiff =true) excitation reversal (revex = true) measure offset during measurement (measoff = true) measure offset during background calibration (revdiff = false) (revex = false) (measoff = ...

  • Page 365

    Section 8. Operation 365 3. Reverse the excitation, and then settles, and then measure 4. Reverse the excitation, reverse the input terminals, settle, measure 5. Reverse the excitation, settle, measure there are four delays per measure. The cr800 processes the four sub- measurements into the reporte...

  • Page 366

    Section 8. Operation 366 measurement accuracy read more for an in-depth treatment of accuracy estimates, see the technical paper measurement error analysis soon available at www.Campbellsci.Com/app-notes. Accuracy describes the difference between a measurement and the true value. Many factors affect...

  • Page 367

    Section 8. Operation 367 analog voltage measurement resolution input voltage range (mv) differential measurement with input reversal ( µ v) basic resolution ( µ v) ± 5000 667 1333 ± 2500 333 667 ± 250 33.3 66.7 25 3.33 6.7 7.5 1.0 2.0 2.5 0.33 0.67 note — see specifications (p. 91) for a complete ta...

  • Page 368

    Section 8. Operation 368 figure 84: example voltage measurement accuracy band, including the effects of percent of reading and offset, for a differential measurement with input reversal at a temperature between 0 to 40 °c. Measurement accuracy example the following example illustrates the effect per...

  • Page 369

    Section 8. Operation 369 where percent-of-reading = 2500 mv • ±0.06% = ±1.5 mv and offset = (1.5 • 667 µv) + 1 µv = 1.00 mv therefore, accuracy = ±1.5 mv + 1.00 mv = ±2.5 mv electronic noise electronic "noise" can cause significant error in a voltage measurement, especially when measuring voltages l...

  • Page 370

    Section 8. Operation 370 note peripheral devices are available from campbell scientific to expand the number of pulse input channels measured by the cr800. See measurement and control peripherals — list (p. 562). The figure pulse sensor output signal types (p. 71) illustrates pulse signal types meas...

  • Page 371

    Section 8. Operation 371 figure 87: terminals configurable for pulse input pulse measurements: terminals and programming measurement p terminals c terminals crbasic instruction low-level ac, counts pulsecount() low-level ac, hz pulsecount() low-level ac, running average pulsecount() high frequency, ...

  • Page 372

    Section 8. Operation 372 8.1.3.1 pulse measurement terminals p terminals • input voltage range = –20 to 20 v if pulse input voltages exceed ±20 v, third-party external-signal conditioners should be employed. Under no circumstances should voltages greater than 50 v be measured. C terminals • input vo...

  • Page 373

    Section 8. Operation 373 conditioning for measuring signals ranging from 20 mv rms (±28 mv peak-to- peak) to 14 v rms (±20 v peak-to-peak). P terminals • maximum input frequency is dependent on input voltage: o 1.0 to 20 hz at 20 mv rms o 0.5 to 200 hz at 200 mv rms o 0.3 to 10 khz at 2000 mv rms o ...

  • Page 374

    Section 8. Operation 374 c terminals • maximum input frequency = • crbasic instructions: pulsecount(), timerio() 8.1.3.3.1 frequency resolution resolution of a frequency measurement made with the pulsecount() instruction is calculated as where fr = resolution of the frequency measurement (hz) s = sc...

  • Page 375

    Section 8. Operation 375 instructions. Also, pulsecount() has the option of entering a number greater than 1 in the poption parameter. Doing so enters an averaging interval in milliseconds for a direct running-average computation. However, use caution when averaging. Averaging of any measurement red...

  • Page 376

    Section 8. Operation 376 p terminals an internal 100 kΩ pull-up resistor pulls an input to 5 vdc with the switch open, whereas a switch closure to ground pulls the input to 0 v. An internal hardware debounce filter has a 3.3 ms time-constant. Connection configurations are illustrated in table . • ma...

  • Page 377

    Section 8. Operation 377 o falling edge — transition from >3.5 vdc to • edge-timing resolution is approximately 540 ns. 8.1.3.6 edge counting edge counts can be measured on c terminals. O c terminals • maximum input frequency 400 khz • crbasic instruction: timerio() • rising or falling edges of a sq...

  • Page 378

    Section 8. Operation 378 and flow meters, are calibrated in terms of frequency (hz (p. 501) ) so are usually measured using the pulsecount() frequency-output option. • accuracy of pulsecount() is limited by a small scan-interval error of ±(3 ppm of scan interval + 10 µs), plus the measurement resolu...

  • Page 379

    Section 8. Operation 379 switch closure on c terminal: 5 vdc pull-up open collector on c terminal: 5 vdc pull-up switch closure on c terminal: 12 vdc pull-up open collector on c terminal: 12 vdc pull-up internal cr800 circuitry that supports open-collector and switch-closure measurements (fyi) 8.1.3...

  • Page 380

    Section 8. Operation 380 three specifications differing between p and c terminals p terminal c terminal high-frequency maximum 250 khz 400 khz input voltage maximum 20 vdc 16 vdc state transition thresholds count upon transition from 2.2 vdc count upon transition from 3.8 vdc 8.1.3.8.2 input filters...

  • Page 381

    Section 8. Operation 381 time constants (τ) measurement τ p terminal low-level ac mode table: low-level ac amplitude and maximum measured frequency (p. 381) p terminal high-frequency mode 1.2 p terminal switch closure mode 3300 c terminal high-frequency mode 0.025 c terminal switch closure mode 0.02...

  • Page 382

    Section 8. Operation 382 8.1.4 vibrating wire measurements — details related topics: • vibrating wire measurements — specifications • vibrating wire measurements — overview (p. 73) • vibrating wire measurements — details (p. 382) the cr800 can measure vibrating wire or vibrating-strip sensors, inclu...

  • Page 383

    Section 8. Operation 383 for most applications, the advanced techniques of static and dynamic vspect measurements are preferred. 8.1.5 period averaging — details related topics: • period average measurements — specifications • period average measurements — overview (p. 73) • period average measureme...

  • Page 384

    Section 8. Operation 384 figure 90: input conditioning circuit for period averaging 8.1.6 reading smart sensors — details related topics: • reading smart sensors — overview (p. 74) • reading smart sensors — details (p. 384) 8.1.6.1 rs-232 and ttl — details related topics: • rs-232 and ttl — details ...

  • Page 385

    Section 8. Operation 385 when connecting serial sensors to a c terminal configured as rx, the sensor power consumption may increase by a few milliamps due to voltage clamps in the cr800. An external resistor may need to be added in series to the rx line to limit the current drain, although this is n...

  • Page 386

    Section 8. Operation 386 8.1.8 cabling effects — details related topics: • cabling effects — overview (p. 76) • cabling effects — details (p. 386) sensor cabling can have significant effects on sensor response and accuracy. This is usually only a concern with sensors acquired from manufacturers othe...

  • Page 387

    Section 8. Operation 387 8.1.9 synchronizing measurements — details related topics: • synchronizing measurements — overview (p. 76) • synchronizing measurements — details (p. 387) 8.1.9.1 synchronizing measurement in the cr800 — details measurements are sychnronized in the cr800 by the task sequence...

  • Page 388

    Section 8. Operation 388 3. Pakbus (p. 77) commands — the cr800 is a pakbus device, so it is capable of being a node in a pakbus network. Node clocks in a pakbus network are synchronized using the sendgetvariable(), clockreport(), or pakbusclock() commands. The cr800 clock has a resolution of 10 ms,...

  • Page 389

    Section 8. Operation 389 • plc control modules — overview (p. 394) • plc control modules — lists (p. 565) the cr800 wiring panel is a convenient power distribution device for powering sensors and peripherals that require a 5 vdc, or 12 vdc source. It has one continuous 12 vdc terminal ( 12v), one pr...

  • Page 390

    Section 8. Operation 390 specification of terminals configured for exctitation in specifications (p. 91) to understand their limitations. Specifications are applicable only for loads not exceeding ±25 ma. Crbasic instructions that control voltage excitation include the following: • brfull() • brfull...

  • Page 391

    Section 8. Operation 391 8.2.4 switched-unregulated voltage (sw12 terminal) the sw12 terminal is often used to power devices such as sensors that require 12 vdc during measurement. Current sourcing must be limited to 900 ma or less at 20 °c. Voltage on a sw12 terminal will change with cr800 supply v...

  • Page 392

    Section 8. Operation 392 tips for writing a control program: • short cut programming wizard has provisions for simple on/off control. • pid control can be done with the cr800. Control decisions can be based on time, an event, or a measured condition. Example: in the case of a cell modem, control is ...

  • Page 393

    Section 8. Operation 393 v o = 4.9 v – (330 Ω • i o ) where v o is the drive limit, and i o is the current required by the external device. Figure current sourcing from c terminals configured for control (p. 393) plots the relationship. Figure 93: current sourcing from c terminals configured for con...

  • Page 394

    Section 8. Operation 394 8.4.2 analog output modules read more for more information see appendix continuous analog output (cao) modules — list (p. 565). The cr800 can scale measured or processed values and transfer these values in digital form to an analog output device. The analog output device per...

  • Page 395

    Section 8. Operation 395 figure 94: relay driver circuit with relay figure 95: power switching without relay 8.4.4 pulse input modules read more for more information see pulse input modules — list (p. 562). Pulse input expansion modules are available for switch-closure, state, pulse count and freque...

  • Page 396

    Section 8. Operation 396 low-level ac input modules increase the number of low-level ac signals a cr800 can monitor by converting low-level ac to high-frequency pulse. 8.4.5 serial i/o modules — details read more for more information see appendix serial i/o modules list (p. 563). Capturing input fro...

  • Page 397

    Section 8. Operation 397 support field maintenance tasks such as viewing and collecting data, setting the clock, and downloading programs. • pc400 datalogger support software supports a variety of comms options, manual data collection, and data monitoring displays. Short cut and crbasic editor are i...

  • Page 398

    Section 8. Operation 398 a: compressing a file has the potential of significantly reducing its size. Actual reduction depends primarily on the number and proximity of redundant blocks of information in the file. A reduction in file size means fewer bytes are transferred when sending a file to a data...

  • Page 399

    Section 8. Operation 399 c) when prompted, set the archive format to “gzip”. D) select ok. The resultant file names will be of the type “myprogram.Cr8.Gz” and “cr800.Std.25.Obj.Gz”. Note that the file names end with “.Gz”. The ".Gz” extension must be preceded with the original file extension (.Cr8, ...

  • Page 400

    Section 8. Operation 400 typical gzip file compression results file original size bytes compressed size bytes cr800 operating system 1,753,976 671,626 small program 2,600 1,113 large program 32,157 7,085 8.7 security — details related topics: • security — overview (p. 84) • security — details (p. 40...

  • Page 401

    Section 8. Operation 401 note all security features can be subverted through physical access to the cr800. If absolute security is a requirement, the physical cr800 must be kept in a secure location. 8.7.1 vulnerabilities while "security through obscurity" may have provided sufficient protection in ...

  • Page 402

    Section 8. Operation 402 o view the datalogger program, which may contain sensitive intellectual property, security codes, usernames, passwords, connection information, and detailed or revealing code comments. • ftp o send and change datalogger programs. O send data that have been written to a file....

  • Page 403

    Section 8. Operation 403 methods of enabling pass-code lockout security include the following: • settings – security(1) (p. 549), security(2) and security(3) registers are writable variables in the status table wherein the pass codes for security levels 1 through 3 are written, respectively. • cr100...

  • Page 404

    Section 8. Operation 404 keyboard display security bypass does not allow comms access without first correcting the security code. Note these features are not operable in cr1000kds with serial numbers less than 1263. Contact campbell scientific for information on upgrading the cr1000kd operating syst...

  • Page 405

    Section 8. Operation 405 • ftpclient() 8.7.3.4 settings — passwords settings, which are accessible with devconfig (p. 103), enable the entry of the following passwords: • ppp password • pakbus/tcp password • ftp password • tls password (transport layer security (tls) enabled) • tls private key passw...

  • Page 406

    Section 8. Operation 406 being copied, or making it tamper resistant. .Cr files, or files specified by the include() instruction, can be hidden using the filehide() instruction. The cr800 can locate and use hidden files on the fly, but a listing of the file or the file name are not available for vie...

  • Page 407

    Section 8. Operation 407 table cr800 memory allocation (p. 407) and table cr800 sram memory (p. 408, http://www. ) illustrate the structure of cr800 memory around these media. The cr800 uses and maintains most memory features automatically. However, users should periodically review areas of memory w...

  • Page 408

    Section 8. Operation 408 1 see table: cr800 sram memory (p. 408, http://www.) 2 flash is rated for > 1 million overwrites. 3 serial flash is rated for 100,000 overwrites (50,000 overwrites on 128 kb units). Crbasic program functions that overwrite memory should use the crd: or usr: drives to minimiz...

  • Page 409

    Section 8. Operation 409 cr800 memory drives drive recommended file types cpu: 1 cr8, .Cal usr: 1 cr8, .Cal, images usb: .Dat 1 the cpu: and usr: drives use the fat32 file system. There is no limit, beyond practicality and available memory, to the number of files that can be stored. While a fat file...

  • Page 410

    Section 8. Operation 410 8.8.1.1.3 usr: drive sram can be partitioned to create a fat32 usr: drive, analogous to partitioning a second drive on a pc hard disk. Certain types of files are stored to usr: to reserve limited cpu: memory for datalogger programs and calibration files. Partitioning also he...

  • Page 411

    Section 8. Operation 411 caution only remove mass-storage devices when the led is not flashing or lit. Do the following when using campbell scientific mass-storage devices: • format as fat32 • connect to the cr800 cs i/o port • remove only when inactive or data corruption may result 8.8.2 data file ...

  • Page 412

    Section 8. Operation 412 tablefile() instruction data file formats tablefile() format option base file format elements included header information time stamp record number 15 toa5 16 1 csixml 17 csixml 18 csixml 19 csixml 32 1 csijson 33 csijson 34 csijson 35 csijson 64 2 tob3 1 formats compatible w...

  • Page 413

    Section 8. Operation 413 example: "toa5","11467","cr1000","11467","cr1000.Std.20","cpu:file format.Cr1","26243","test" "timestamp","record","battfivoltfimin","ptemp" "ts","rn","","" "","","min","smp" "2010-12-20 11:31:30",7,13.29,20.77 "2010-12-20 11:31:45",8,13.26,20.77 "2010-12-20 11:32:00",9,13.2...

  • Page 414

    Section 8. Operation 414 example: "signature": 38611,"environment": {"stationfiname": "11467","tablefiname": "test","model": "cr1000","serialfino": "11467", "osfiversion": "cr1000.Std.21.03","progfiname": "cpu:file format.Cr1"},"fields": [{"name": "battfivoltfimin","type": "xsd:float", "process": "m...

  • Page 415

    Section 8. Operation 415 record element 1 – timestamp data without timestamps are usually meaningless. Nevertheless, the tablefile() instruction optionally includes timestamps in some formats. Record element 2 – record number record numbers are optionally provided in some formats as a means to ensur...

  • Page 416

    Section 8. Operation 416 operating systems can also be sent using the program send feature in datalogger support software (p. 86). A full reset does not occur in this case. Beginning with cr800 operating system v.16, settings and fields in the status table are preserved when sending a subsequent ope...

  • Page 417

    Section 8. Operation 417 file control functions file control functions accessed through sending programs to the cr800 program send 1 , file control send 2 , devconfig 3 , cr1000kd keyboard/display, or powerup.Ini with a campbell scientific mass storage device 4,5 , web api (p. 435) httpput (sending ...

  • Page 418

    Section 8. Operation 418 file control functions file control functions accessed through 4 manual with campbell scientific mass storage device. See data storage (p. 409) 5 automatic with campbell scientific mass storage device and powerup.Ini. See power-up (p. 421) 6 crbasic instructions (commands). ...

  • Page 419

    Section 8. Operation 419 cr800 file attributes attribute function program send option that sets the attribute run now runs only when file sent to cr800 a) file control 2 with run now checked. B) campbell scientific mass storage device power-up 3 using powerup.Ini commands 6 & 14 (see table powerup.I...

  • Page 420

    Section 8. Operation 420 a second instance of a setting can be configured using the same node pakbus address and same file type, in which case two files will be written according to each of the two settings. For example, (55,usr:photo.Jpg,100) (55:usr:newestphoto.Jpg,0) will store two files each tim...

  • Page 421

    Section 8. Operation 421 8.8.4.4 powerup.Ini file — details uploading a cr800 os (p. 507) file or user-program file in the field can be challenging, particularly during weather extremes. Heat, cold, snow, rain, altitude, blowing sand, and distance to hike influence how easily programming with a lapt...

  • Page 422

    Section 8. Operation 422 3. Optionally deletes data files stored from the overwritten (just previous) program. 4. Formats a specified drive. Execution of powerup.Ini takes precedence during cr800 power-up. Although powerup.Ini sets file attributes for the uploaded programs, its presence on a drive d...

  • Page 423

    Section 8. Operation 423 powerup.Ini script commands and applications powerup.Ini script command description applications 11 run always, preserve data copies a program file to a drive and sets the run attribute to run always. See preserving data at program send (p. 170). 2 run on power-up copies a p...

  • Page 424

    Section 8. Operation 424 'run program on power-up 'copy program file pwrup.Cr1 from the external drive to cpu: 'file will run only when cr800 powered-up later. 2,pwrup.Cr1,cpu: 'format the usr: drive 5,,usr: 'send os on power-up 'load an operating system (.Obj) file into flash as the new os. 9,cr800...

  • Page 425

    Section 8. Operation 425 long filename, memory allocated to the root directory can be exceeded before the actual memory of storing files is exceeded. When this occurs, an "insufficient resources or memory full" error is displayed. 8.8.6 file system errors table file system error codes (p. 425) lists...

  • Page 426

    Section 8. Operation 426 file system error codes error code description 25 access to uninitialized ram drive 26 attempted rename across devices 27 subdirectory is not empty 31 attempted write to write protected disk 32 no response from drive (door possibly open) 33 address mark or sector not found 3...

  • Page 427

    Section 8. Operation 427 8.9.2 conserving bandwidth some comms services, such as satellite networks, can be expensive to send and receive information. Best practices for reducing expense include: • declare public only those variables that need to be public. • be conservative with use of string varia...

  • Page 428

    Section 8. Operation 428 caution when using the comme com port with non-pakbus protocols, incoming characters can be corrupted by concurrent use of the cs i/o for sdc comms. Pakbus comms use a low-level protocol (pause / finish / ready sequence) to stop incoming data while sdc occurs. Non-pakbus com...

  • Page 429

    Section 8. Operation 429 • dhcp • dns • ftp • html • http • • micro-serial server • modbus tcp/ip • ntcip • ntp • pakbus over tcp/ip • ping • pop3 • smtp • snmp • telnet • web api • xml • udp • ipv4 • ipv6 • the most up-to-date information on implementing these protocols is contained in crbasic edit...

  • Page 430

    Section 8. Operation 430 dynamic host configuration protocol (dhcp). Once the address is assigned, use devconfig, pakbusgraph, connect, or the cr1000kd keyboard/display to look in the cr800 status table to see the assigned ip address. This is shown under the field name ipinfo. 8.10.1.3 dns the cr800...

  • Page 431

    Section 8. Operation 431 to copy files to these drives, choose file control from the datalogger support software (p. 494) menu. Figure 96: preconfigured html home page 8.10.1.6.2 custom http web server although the default home page cannot be accessed for editing, it can be replaced with the html co...

  • Page 432

    Section 8. Operation 432 figure 97: home page created using webpagebegin() instruction figure 98: customized numeric-monitor web page.

  • Page 433

    Section 8. Operation 433 custom web page html 'this program example demonstrates the creation of a custom web page that resides in the 'webpagebegin to cr800. In this example program, the default home page is replaced by 'using create a file called default.Html. The graphic in the web page (in this ...

  • Page 434

    Section 8. Operation 434 httpout (" chr (34) + "command=newestrecord&table=status" + chr (34) + _ ">current record from status table chr (34) + "command=newestrecord&table=status" + chr (34) + _ ">current record from status table httpout (" chr (34) +"default.Html"+ chr (34) + ">back to the home pag...

  • Page 435

    Section 8. Operation 435 8.10.1.10 ping (ip) ping can be used to verify that the ip address for the network device connected to the cr800 is reachable. To use the ping tool, open a command prompt on a computer connected to the network and type in: ping xxx.Xxx.Xxx.Xxx where xxx.Xxx.Xxx.Xxx is the ip...

  • Page 436

    Section 8. Operation 436 • control — crbasic program language logic can allow remote access to many control functions by means of changing the value of a variable. — set variables / flags / ports • clock functions — clock functions allow a web client to monitor and set the host cr800 real time clock...

  • Page 437

    Section 8. Operation 437 addresses each node, field instruments are effectively multiplexed to a cr800 without additional hardware. A cr800 goes into sleep mode after 40 seconds of communication inactivity. Once asleep, two packets are required before the cr800 will respond. The first packet awakens...

  • Page 438

    Section 8. Operation 438 term: input registers 30001 to 39999 hold values resulting from an analog measurement. Input registers in the modbus domain are read-only. In the campbell scientific domain, the leading digit in modbus registers is ignored, and so are assigned together to a single dim- or pu...

  • Page 439

    Section 8. Operation 439 8.10.3.2.2 crbasic instructions (modbus) complete descriptions and options of commands are available in crbasic editor help. Modbusmaster() sets up a cr800 as a modbus master to send or retrieve data from a modbus slave. Syntax modbusmaster(resultcode, comport, baudrate, mod...

  • Page 440

    Section 8. Operation 440 8.10.3.2.4 supported modbus function codes modbus protocol has many function codes. Cr800 commands support the following. Supported modbus function codes code name description 01 read coil/port status reads the on/off status of discrete output(s) in the modbusslave 02 read i...

  • Page 441

    Section 8. Operation 441 8.10.3.2.6 timing the timeout is a critical parameter of modbus communication. The response time of devices is usually not specified by the manufacturer and can range from 100 ms to more than 5 seconds. When the cr800 is acting as a slave device, it typically responds very q...

  • Page 442

    Section 8. Operation 442 q: can i make some registers read-only and other registers writable? A: yes. By default all registers mapped to modbusslave() are writable. You may make individual registers read-only with the readonly() instruction in the cr800 crbasic program. The following example demonst...

  • Page 443

    Section 8. Operation 443 concatenating modbus long variables 'this program example demonstrates concatenation (splicing) of long data type variables 'for modbus operations. ' 'note: the cr800 uses big-endian word order. 'declarations public combo as long 'variable to hold the combined 32-bit public ...

  • Page 444

    Section 8. Operation 444 note although the keyboard display is not required to operate the cr800, it is a useful diagnostic and debugging tool. 8.11.1 character set the keyboard display character set is accessed using one of the following three procedures: • the 16 keys default to ▲, ▼, ◄, ►, home, ...

  • Page 445

    Section 8. Operation 445 special keyboard/display key functions key special function [del] • delete • when pressed during power up, del changes the ppp interface to inactive (only if set as rs232). This allows you to get into rs232 for pakbus if ppp is keeping you out. [ins] insert/change graph conf...

  • Page 446

    Section 8. Operation 446 8.11.2 data display figure 100: cr1000kd: displaying data.

  • Page 447

    Section 8. Operation 447 8.11.2.1 real-time tables and graphs figure 101: cr1000kd real-time tables and graphs. 8.11.2.2 real-time custom the cr1000kd keyboard/display can be configured with a customized real-time display. The cr800 will keep the setup as long as the defining program is running. Rea...

  • Page 448

    Section 8. Operation 448 figure 102: cr1000kd real-time custom.

  • Page 449

    Section 8. Operation 449 8.11.2.3 final-storage data figure 103: cr1000kd: final storage data.

  • Page 450

    Section 8. Operation 450 8.11.3 run/stop program figure 104: cr1000kd: run/stop program.

  • Page 451

    Section 8. Operation 451 8.11.4 file management figure 105: cr1000kd: file management 8.11.4.1 file edit the crbasic editor is recommended for writing and editing datalogger programs. When making minor changes with the cr1000kd keyboard/display, restart the program to activate the changes, but be aw...

  • Page 452

    Section 8. Operation 452 figure 106: cr1000kd: file edit.

  • Page 453

    Section 8. Operation 453 8.11.5 port status and status table read more see info tables and settings (p. 527). Figure 107: cr1000kd: port status and status table.

  • Page 454

    Section 8. Operation 454 8.11.6 settings figure 108: cr1000kd: settings 8.11.6.1 cr1000kd: set time / date move the cursor to time element and press enter to change it. Then move the cursor to set and press enter to apply the change. 8.11.6.2 cr1000kd: pakbus settings in the settings menu, move the ...

  • Page 455

    Section 8. Operation 455 8.11.7 configure display figure 109: cr1000kd: configure display 8.12 cpi port and cdm devices — details related topics: • cpi port and cdm devices — overview (p. 63) • cpi port and cdm devices — details (p. 455) see appendix c in cdm-vw300 dynamic vibrating wire analyzers i...

  • Page 457

    457 9. Maintenance — details related topics: • maintenance — overview (p. 85) • maintenance — details (p. 457) • protect the cr800 from humidity and moisture. • replace the internal lithium battery periodically. • send to campbell scientific for factory calibration every three years. 9.1 protection ...

  • Page 458

    Section 9. Maintenance — details 458 supplies approximately 3.6 vdc. Replace the battery when voltage is approximately 2.7 vdc. • when the lithium battery is removed (or is allowed to become depleted below 2.7 vdc and cr800 primary power is removed), the crbasic program and most settings are maintai...

  • Page 459

    Section 9. Maintenance — details 459 figure 110: remove retention nuts fully loosen (only loosen) the two knurled thumbscrews. They will remain attached to the module. Figure 111: pull edge away from panel pull one edge of the canister away from the wiring panel to loosen it from three internal conn...

  • Page 460

    Section 9. Maintenance — details 460 figure 112: remove nuts to disassemble canister remove six nuts, then open the clam shell. Figure 113: remove and replace battery remove the lithium battery by gently prying it out with a small flat point screwdriver. Reverse the disassembly procedure to reassemb...

  • Page 461

    Section 9. Maintenance — details 461 9.3 factory calibration or repair procedure related topics • auto self-calibration — overview (p. 89) • auto self-calibration — details (p. 337) • auto self-calibration — errors (p. 475) • offset voltage compensation (p. 323) • factory calibration (p. 86) • facto...

  • Page 463: 10.  Troubleshooting

    463 10. Troubleshooting if a system is not operating properly, please contact a campbell scientific support engineer for assistance. When using sensors, peripheral devices, or comms hardware, look to the manuals for those products for additional help. Note if a campbell scientific product needs to b...

  • Page 464

    Section 10. Troubleshooting 464 example, if a sensor signal-to-data conversion is faulty, create a program that only measures that sensor and stores the data, absent from all other inputs and data. Write these mini-programs before going to the field, if possible. 10.3 troubleshooting — error sources...

  • Page 465

    Section 10. Troubleshooting 465 o channel assignments, input-range codes, and measurement mode arguments are common sources of error. • hardware o mis-wired sensors or power sources are common. O damaged hardware o water, humidity, lightning, voltage transients, emf o visible symptoms o self-diagnos...

  • Page 466

    Section 10. Troubleshooting 466 doubt. The pc compiler version is shown on the first line of the compile results. • the program has large memory requirements for data tables or variables and the cr800 does not have adequate memory. This normally is flagged at compile time, in the compile results. If...

  • Page 467

    Section 10. Troubleshooting 467 10.5.3.1.1 voltage measurements the cr800 has the following user-selectable voltage ranges: ±5000 mv, ±2500 mv, ±250 mv, and ±25 mv. Input signals that exceed these ranges result in an over-range indicated by a nan for the measured result. With auto range to automatic...

  • Page 468

    Section 10. Troubleshooting 468 math expressions and crbasic results expression crbasic expression result 0 / 0 0 / 0 nan ∞ – ∞ (1 / 0) - (1 / 0) nan (–1) ∞ -1 ^ (1 / 0) nan 0 • –∞ 0 • (-1 • (1 / 0)) nan ±∞ / ±∞ (1 / 0) / (1 / 0) nan 1 ∞ 1 ^ (1 / 0) nan 0 • ∞ 0 • (1 / 0) nan x / 0 1 / 0 inf x / –0 1...

  • Page 469

    Section 10. Troubleshooting 469 variable and final-storage data types with nan and ±inf final-storage data type & associated stored values variable type test expressio n public / dim variables fp2 ieee4 uint2 unit4 string bool bool8 long as string 1 / 0 +inf inf inf 65535 2147483647 +inf true true 2...

  • Page 470

    Section 10. Troubleshooting 470 using nan to filter data 'this program example demonstrates the use of nan to filter what data are used in output processing functions such as 'averages, maxima, and minima. 'declare variables and units public tc_refc public tc_tempc public disvar as boolean 'define d...

  • Page 471

    Section 10. Troubleshooting 471 10.5.4.1 compileresults compileresults reports messages generated by the cr800 at program upload and compile-time. Messages may also added as the program runs. Error messages may not be obvious because the display is limited. Much of this information is more easily ac...

  • Page 472

    Section 10. Troubleshooting 472 warning message examples message meaning warning: com310 word list cannot be a variable. The phrases parameter of the voicephrases() instruction was assigned a variable name instead of the required string of comma-separated words from the voice.Txt file. Warning: endi...

  • Page 473

    Section 10. Troubleshooting 473 skipped scans are regarded by the cr800 as having occurred during a single scan. The measured frequency can be much higher than actual. Be careful that scans that store data are not skipped. If any scan skips repeatedly, optimization of the datalogger program or reduc...

  • Page 474

    Section 10. Troubleshooting 474 is not large enough and write warning:variable exarray out of bounds to the compileerrors field. The cr800 does not catch all out-of-bounds errors, so take care that all arrays are sized as needed. 10.5.4.8 watchdog errors watchdog errors indicate the cr800 has crashe...

  • Page 475

    Section 10. Troubleshooting 475 power or transient problems are ruled out, the cr800 probably needs an operating-system update or repair (p. 5) by campbell scientific. 10.5.4.8.2 watchdoginfo.Txt file a watchdoginfo.Txt file is created on the cpu: drive when the cr800 experiences a software reset (a...

  • Page 476

    Section 10. Troubleshooting 476 • check all analog inputs to make sure they are not greater than ±5 vdc by measuring the voltage between the input and a g terminal. Do this with a multi-meter (p. 505). • check for condensation, which can sometimes cause leakage from a 12 vdc source terminal into oth...

  • Page 477

    Section 10. Troubleshooting 477 distant instance of loggernet. An onsite technician can communicate with the cr800 using pc200w with a serial connection, so long as the pakbus addresses of the host pcs are different. All campbell scientific datalogger support software include an option to change pc ...

  • Page 478

    Section 10. Troubleshooting 478 if power supply components are working properly and the system has peripherals with high current drain, such as a satellite transmitter, verify that the power supply is designed to provide adequate power. Information on power supplies available from campbell scientifi...

  • Page 479

    Section 10. Troubleshooting 479 battery test if using a rechargeable power supply, disconnect the charging source (i.E., solar panel or ac transformer) from the battery pack. Wait 20 minutes before proceeding with this test. Test voltage at charging regulator set a voltmeter to read dc voltage as hi...

  • Page 480

    Section 10. Troubleshooting 480 charging regulator with solar-panel test disconnect any wires attached to the 12v and g (ground) terminals on the ps100 or ch100 charging regulator. Unplug any batteries. Connect the solar panel to the two chg terminals. Polarity of inputs does not matter. Only the so...

  • Page 481

    Section 10. Troubleshooting 481 10.9.3.3 charging regulator with transformer test the procedure outlined in this flow chart tests ps100 and ch100 charging regulators that use ac/ac or ac/dc transformers as power source. If a need for repair is indicated after following the procedure, see assistance ...

  • Page 482

    Section 10. Troubleshooting 482 10.9.3.4 adjusting charging voltage note campbell scientific recommends that a qualified electronic technician perform the following procedure. The procedure outlined in this flow chart tests and adjusts ps100 and ch100 charging regulators. If a need for repair or cal...

  • Page 483

    Section 10. Troubleshooting 483 figure 114: potentiometer r3 on ps100 and ch100 charger / regulator 10.10 troubleshooting — using terminal mode table cr800 terminal commands (p. 484) lists terminal mode options. With exception of perhaps the c command, terminal options are not necessary to routine c...

  • Page 484

    Section 10. Troubleshooting 484 esc or a 40 second timeout will terminate on-going commands. Concurrent terminal sessions are not allowed and will result in dropped communications. Cr800 terminal commands command description use 0 scan processing time; real time in seconds lists technical data conce...

  • Page 485

    Section 10. Troubleshooting 485 cr800 terminal commands command description use p serial talk through issue commands from keyboard that are passed through the logger serial port to the connected device. Similar in concept to sdi12 talk through. No timeout when connected via pakbus. Reboot program re...

  • Page 486

    Section 10. Troubleshooting 486 10.10.1 serial talk through and comms watch the options do not have a timeout when connected in terminal mode via pakbus. Otherwise p: serial talk and w: comms watch ("sniff") modes, the timeout can be changed from the default of 40 seconds to any value ranging from 1...

  • Page 487

    Section 10. Troubleshooting 487 the compile, save and send feature of older versions of crbasic editor. O a new program (even the same program) was inadvertently sent to the cr800 through the connect client or set up client in loggernet. O the program was stopped through datalogger support software ...

  • Page 488

    Section 10. Troubleshooting 488 • check for a loose ground wire on a sensor powered from 12v. • if a volt meter is not available, disconnect any sensor that is powered from a 12v source to see if the measurements come back to normal. If multiple sensors are power by 12v, disconnect one at a time. 10...

  • Page 489: 11.  Glossary

    489 11. Glossary 11.1 terms term: ac see vac (p. 520). Term: accuracy a measure of the correctness of a measurement. See also the appendix accuracy, precision, and resolution (p. 522). Term: a-to-d analog-to-digital conversion. The process that translates analog voltage levels to digital values. Ter...

  • Page 490

    Section 11. Glossary 490 term: ascii / ansi related topics: • term: ascii / ansi (p. 490) • ascii / ansi table abbreviation for american standard code for information interchange / american national standards institute. An encoding scheme in which numbers from 0-127 (ascii) or 0-255 (ansi) are used ...

  • Page 491

    Section 11. Glossary 491 term: binary describes data represented by a series of zeros and ones. Also describes the state of a switch, either being on or off. Term: bool8 a one-byte data type that holds eight bits (0 or 1) of information. Bool8 uses less space than the 32 bit boolean data type. Term:...

  • Page 492

    Section 11. Glossary 492 term: cdm/cpi cpi is a proprietary interface for communications between campbell scientific dataloggers and campbell scientific cdm peripheral devices. It consists of a physical layer definition and a data protocol. Cdm devices are similar to campbell scientific sdm devices ...

  • Page 493

    Section 11. Glossary 493 term: connector a connector is a device that allows one or more electron conduits (wires, traces, leads, etc) to be connected or disconnected as a group. A connector consists of two parts — male and female. For example, a common household ac power receptacle is the female po...

  • Page 494

    Section 11. Glossary 494 term: crbasic editor compile, save and send crbasic editor menu command that compiles, saves, and sends the program to the datalogger. Term: cs i/o campbell scientific proprietary input / output port. Also, the proprietary serial communication protocol that occurs over the c...

  • Page 495

    Section 11. Glossary 495 term: data point a data value which is sent to final-storage memory (p. 499) as the result of a data-output processing instruction (p. 495). Strings of data points output at the same time make up a record in a data table. Term: data table a concept that describes how data ar...

  • Page 496

    Section 11. Glossary 496 term: dce data communication equipment. While the term has much wider meaning, in the limited context of practical use with the cr800, it denotes the pin configuration, gender, and function of an rs-232 port. The rs-232 port on the cr800 is dce. Interfacing a dce device to a...

  • Page 497

    Section 11. Glossary 497 term: dns domain name system. A tcp/ip application protocol. Term: dte data terminal equipment. While the term has much wider meaning, in the limited context of practical use with the cr800, it denotes the pin configuration, gender, and function of an rs-232 port. The rs-232...

  • Page 498

    Section 11. Glossary 498 term: ess environmental sensor station term: excitation application of a precise voltage, usually to a resistive bridge circuit. Term: execution interval see scan interval (p. 513). Term: execution time time required to execute an instruction or group of instructions. If the...

  • Page 499

    Section 11. Glossary 499 retrieve facilitates collection of files viewed in file control. If collecting a data file from a memory card with retrieve, first stop the cr800 program or data corruption may result. Format formats the selected cr800 memory device. All files, including data, on the device ...

  • Page 500

    Section 11. Glossary 500 term: ftp file transfer protocol. A tcp/ip application protocol. Term: full-duplex a serial communication protocol. Simultaneous bi-directional communications. Communications between a cr800 serial port and a pc is typically full duplex. Reading list: simplex (p. 515), duple...

  • Page 501

    Section 11. Glossary 501 term: ground currents pulling power from the cr800 wiring panel, as is done when using some comms devices from other manufacturers, or a sensor that requires a lot of power, can cause voltage potential differences between points in cr800 circuitry that are supposed to be at ...

  • Page 502

    Section 11. Glossary 502 term: include file a file containing crbasic code to be included at the end of the current crbasic program, or it can be run as the default program. See include file name (p. 542) setting. Term: inf a data word indicating the result of a function is infinite or undefined. Te...

  • Page 503

    Section 11. Glossary 503 term: ip trace function associated with ip data transmissions. Ip trace information was originally accessed through the crbasic instruction iptrace() (p. 428) and stored in a string variable. Files manager setting (p. 541) is now modified to allow for creation of a file on a...

  • Page 504

    Section 11. Glossary 504 term: lf line feed. Often associated with carriage return (). . Term: local variable a variable available for use only by the subroutine in which it is declared. The term differentiates local variables, which are declared in the sub() and function() instructions, from global...

  • Page 505

    Section 11. Glossary 505 term: modbus communication protocol published by modicon in 1979 for use in programmable logic controllers (plcs). See section modbus — overview (p. 78). Term: modem/terminal any device that has the following: o ability to raise the cr800 ring line or be used with an optical...

  • Page 506

    Section 11. Glossary 506 term: nan not a number. A data word indicating a measurement or processing error. Voltage over-range, sdi-12 sensor error, and undefined mathematical results can produce nan. See the section nan and ±inf (p. 466). Term: neighbor device device in a pakbus network that communi...

  • Page 507

    Section 11. Glossary 507 term: ohm the unit of resistance. Symbol is the greek letter omega (Ω). 1.0 Ω equals the ratio of 1.0 volt divided by 1.0 ampere. Term: ohm's law describes the relationship of current and resistance to voltage. Voltage equals the product of current and resistance (v = i • r)...

  • Page 508

    Section 11. Glossary 508 term: output processing memory see data output processing memory (p. 495). Term: pakbus a proprietary comms protocol similar to ip (p. 502) protocol developed by campbell scientific to facilitate communications between campbell scientific instrumentation. See pakbus — overvi...

  • Page 509

    Section 11. Glossary 509 term: ping a software utility that attempts to contact another device in a network. See section pakbus — overview (p. 77) and sections ping (pakbus) and ping (ip) (p. 435). Term: pipeline mode a crbasic program execution mode wherein instructions are evaluated in groups of l...

  • Page 510

    Section 11. Glossary 510 term: print peripheral see print device (p. 509). Term: processing instructions crbasic instructions used to further process input-data values and return the result to a variable where it can be accessed for output processing. Arithmetic and transcendental functions are incl...

  • Page 511

    Section 11. Glossary 511 term: ratiometric describes a type of measurement or a type of math. Ratiometric usually refers to an aspect of resistive-bridge measurements — either the measurement or the math used to process it. Measuring ratios and using ratio math eliminates several sources of error fr...

  • Page 512

    Section 11. Glossary 512 term: resistor a device that provides a known quantity of resistance. Term: resolution a measure of the fineness of a measurement. See also accuracy, precision, and resolution (p. 522). Term: ring line ring line is pulled high by an external device to notify the cr800 to com...

  • Page 513

    Section 11. Glossary 513 term: sample rate the rate at which measurements are made by the cr800. The measurement sample rate is of interest when considering the effect of time skew, or how close in time are a series of measurements, or how close a time stamp on a measurement is to the true time the ...

  • Page 514

    Section 11. Glossary 514 principle behind thermocouple temperature measurement. It also causes small, correctable voltage offsets in cr800 measurement circuitry. Term: sequential mode a crbasic program execution mode wherein each statement is evaluated in the order it is listed in the program. More ...

  • Page 515

    Section 11. Glossary 515 term: signature a number which is a function of the data and the sequence of data in memory. It is derived using an algorithm that assures a 99.998% probability that if either the data or the data sequence changes, the signature changes. See sections security — overview (p. ...

  • Page 516

    Section 11. Glossary 516 term: station status command a command available in most datalogger support software (p. 86). The following figure is a sample of station status output. Term: string a datum or variable consisting of alphanumeric characters..

  • Page 517

    Section 11. Glossary 517 term: support software see datalogger support software (p. 494). Term: swept frequency a succession of frequencies from lowest to highest used as the method of wire excitation with vspect (p. 521) measurements. Term: synchronous the transmission of data between a transmittin...

  • Page 518

    Section 11. Glossary 518 term: telnet a software utility that attempts to contact and interrogate another specific device in a network. Telnet is resident in windows oss. Term: terminal point at which a wire (or wires) connects to a wiring panel or connector. Wires are usually secured in terminals b...

  • Page 519

    Section 11. Glossary 519 term: tls transport layer security. An internet communication security protocol. Term: toggle to reverse the current power state. Term: uint2 data type used for efficient storage of totalized pulse counts, port status (status of 16 ports stored in one variable, for example) ...

  • Page 520

    Section 11. Glossary 520 term: variable a packet of sram given an alphanumeric name. Variables reside in variable memory. Term: variable memory that portion of sram reserved for storing variables. Variable memory can be, and regularly is, overwritten with new values or strings as directed by the crb...

  • Page 521

    Section 11. Glossary 521 term: volts si unit for electrical potential. Term: vspect trademark for campbell scientific's proprietary spectral-analysis, frequency domain, vibrating wire measurement technique term: watchdog timer an error-checking system that examines the processor state, software time...

  • Page 522

    Section 11. Glossary 522 term: wild card a character or expression that substitutes for any other character or expression. Term: xml extensible markup language. Term: user program the crbasic program written by you in short cut program wizard or crbasic editor. 11.2 concepts 11.2.1 accuracy, precisi...

  • Page 523

    Section 11. Glossary 523 figure 116: relationships of accuracy, precision, and resolution.

  • Page 525: 12.  Attributions

    525 12. Attributions use of the following trademarks in the cr800 operator's manual does not imply endorsement by their respective owners of campbell scientific: • crydom • newark • mouser • microsoft • wordpad • hyperterminal • li-cor.

  • Page 527

    527 appendix a. Info tables and settings related topics: • info tables and settings (p. 527) • common uses of the status table (p. 529) • status table as debug resource (p. 470) info tables and settings contain fields, settings, and information essential to setup, programming, and debugging of many ...

  • Page 528

    Appendix a. Info tables and settings 528 note communication and processor bandwidth are consumed when generating the status and and other information tables. If the cr800 is very tight on processing time, as may occur in very long or complex operations, retrieving these tables repeatedly may cause s...

  • Page 529

    Appendix a. Info tables and settings 529 • skippedsystemscan • skippedslowscan • maxproctime • maxbuffdepth • maxsystemproctime • maxslowproctime • skippedrecord a.1 info tables and settings directories links in the following tables will help you navigate through the info tables and settings system:...

  • Page 530

    Appendix a. Info tables and settings 530 info tables and settings: frequently used action status/setting/dti table where located programming errors progerrors (p. 547) crbasic program ii (p. 535) progsignature (p. 548) skippedscan (p. 550) startupcode (p. 550) data tables datafilldays() (p. 540) dat...

  • Page 531

    Appendix a. Info tables and settings 531 info tables and settings: keywords centralrouters() (p. 538) h httpenabled (p. 541) httpport (p. 541) n neighbors() (p. 545) r revboard (p. 548) routefilters (p. 548) rs232handshaking (p. 548) rs232power (p. 548) u udpbroadcastfilter (p. 551) usrdrivefree (p....

  • Page 534

    Appendix a. Info tables and settings 534 a.1.1.4 info tables and settings: communications info tables and settings: communications, general baudrate() (p. 537) commsmemalloc (p. 538) commsmemfree(1) (p. 538) commsmemfree(2) (p. 538) commsmemfree(3) (p. 538) rs232handshaking (p. 548) rs232power (p. 5...

  • Page 535

    Appendix a. Info tables and settings 535 a.1.1.5 info tables and settings: programming info tables and settings: crbasic program i buffdepth (p. 537) compileresults (p. 539) includefile (p. 542) lastslowscan() (p. 543) maxbuffdepth (p. 544) maxproctime (p. 544) maxslowproctime() (p. 544) measureops ...

  • Page 536

    Appendix a. Info tables and settings 536 info tables and settings: obsolete iptrace (p. 542) pakbusnodes (p. 546) servicesenabled() (p. 549) tcpclientconnections (p. 551) tcpport (p. 551) tlsenabled info tables and settings: os and hardware versioning osdate (p. 545) ossignature (p. 545) osversion (...

  • Page 537

    Appendix a. Info tables and settings 537 in many cases, the info tables and settings keyword can be used to pull that field into a running crbasic program. See info tables and settings — setup tools (p. 107). Two data types are identified as being associated with info tables and settings. These are ...

  • Page 538

    Appendix a. Info tables and settings 538 calgain() 2 numeric y • status table field: ≈47 array of floating-point values reporting calibration gain (mv) for each integration / range combination. Updated by auto self-calibration. Calseoffset 2 () numeric y • status table field: ≈48 array of integers r...

  • Page 539

    Appendix a. Info tables and settings 539 comms memfree(3) numeric y • status table field: ≈27 an integer specifying four two-digit fields, read from left to right as (1) number of output packets waiting to be sent, (2) number of input packets waiting to be serviced, (3) number of big packets availab...

  • Page 540

    Appendix a. Info tables and settings 540 info tables and settings: d keyword data type r ead o nl y • where to find description datafilldays() numeric y • datatableinfo table reports the time required to fill a data table. Each table has its own entry. Datarecord size() numeric y • datatableinfo tab...

  • Page 544

    Appendix a. Info tables and settings 544 info tables and settings: m keyword data type r ead o nl y • where to find description maxbuffdepth numeric • status table field: ≈36 maximum number of buffers the cr800 will use to process lagged measurements. Maxpacketsize numeric • settings editor: advance...

  • Page 545

    Appendix a. Info tables and settings 545 memorysize numeric y • station status field: memory • status table field: ≈26 total sram (bytes) in the cr800. Updated at startup. Msgerr numeric • cpiinfo table messages string • status table field: ≈46 contains a string of manually entered messages. Info ta...

  • Page 548

    Appendix a. Info tables and settings 548 progerrors numeric y • status table field: ≈20 number of compile or runtime errors for the running program. Updated after compile. Progname string y • station status field: current program • status table field: 10 name of current (running) program; updates at...

  • Page 549

    Appendix a. Info tables and settings 549 runsignature numeric y • station status field: run signature • status table field: 9 signature of the running binary (compiled) program. Value is independent of comments or non-functional changes. Often changes with operating-system changes. Updates after com...

  • Page 550

    Appendix a. Info tables and settings 550 reports how many records have been skipped in a data table. Array elements are in the order that data tables are declared in the crbasic program. Enter 0 to reset. Skippedscan numeric y • station status field: skipped scans • status table field: ≈22 number of...

  • Page 551

    Appendix a. Info tables and settings 551 systemproctime float y • status table field: ≈37 time (μs) required to process auto (background) calibration. Default is a large number until auto self-calibration runs. Info tables and settings: t keyword data type r ead o nl y • where to find description tc...

  • Page 552

    Appendix a. Info tables and settings 552 info tables and settings: v keyword data type r ead o nl y • where to find description varoutofbound numeric y • station status field: variable out of bounds • status table field: ≈21 number of attempts to write to an array outside of the declared size. The w...

  • Page 553

    553 appendix b. Serial port pinouts b.1 cs i/o communication port pin configuration for the cr800 cs i/o port is listed in table pinout of cr800 cs i/o d-type connector port (p. 553). Pinout of cr800 cs i/o d-type connector port pin number function input (i) output (o) description 1 5 vdc o 5 vdc: s...

  • Page 554

    Appendix b. Serial port pinouts 554 b.2 rs-232 communication port b.2.1 pin outs pin configuration for the cr800 rs-232 nine-pin port is listed in table pinout of cr800 rs-232 d-type connector port (p. 554). Information for using a null modem with rs-232 is given in table standard null-modem cable p...

  • Page 555

    Appendix b. Serial port pinouts 555 standard null-modem cable pin out female db9 socket female db9 socket 1 & 6 ————— 4 2 ————— 3 3 ————— 2 4 ————— 1 & 6 5 ————— 5 7 ————— 8 8 ————— 7 9 most null modems have no connection 1 9 1 if the null-modem cable does not connect pin 9 to pin 9, configure the m...

  • Page 557: Appendix C. Fp2 Data Format

    557 appendix c. Fp2 data format fp2 data are two-byte big-endian values. See endianness (p. 559). Representing bits in each byte pair as abcdefgh ijklmnop, bits are described in table fp2 data-format bit descriptions (p. 557). Fp2 data-format bit descriptions bit description a polarity, 0 = +, 1 = –...

  • Page 559: Appendix D. Endianness

    559 appendix d. Endianness synonyms: • "byte order" and "endianness" • "little endian" and "least-significant byte first" • "big endian" and "most-significant byte first" endianness lies at the root of an instrument processor. It is determined by the processor manufacturer. A good discussion of endi...

  • Page 561

    561 appendix e. Supporting products — list supporting products power and expand the measurement and control capability of the cr800. Products listed are manufactured by a campbell scientific group company unless otherwise noted. Consult product literature at www.Campbellsci.Com or a campbell scienti...

  • Page 562

    Appendix e. Supporting products — list 562 dataloggers model description cr3000 micrologger 28 analog input terminals, four pulse input terminals, eight control / i/o terminals. Faster than cr1000. Expandable. Cr9000x-series measurement, control, and i/o modules high speed, configurable, modular, ex...

  • Page 563

    Appendix e. Supporting products — list 563 pulse input modules model description sdm-int8 eight-channel interval timer sdm-sw8a eight-channel, switch closure module llac4 four-channel, low-level ac module e.3.3 serial i/o modules — list serial i/o peripherals expand and enhance input capability and ...

  • Page 564

    Appendix e. Supporting products — list 564 e.3.5.1 resistive-bridge tim modules — list resistive bridge tim 1 modules model description 4wfbs120 120 Ω, four-wire, full-bridge tim module 4wfbs350 350 Ω, four-wire, full-bridge tim module 4wfbs1k 1 kΩ, four-wire, full-bridge tim module 3whb10k 10 kΩ, t...

  • Page 565

    Appendix e. Supporting products — list 565 transient voltage suppressors model description 16981 surge-suppressor kit for goes transmitters 6536 4-wire surge protector for srm-5a 4330 2-wire surge protector for land-line telephone modems svp48 general purpose, multi-line surge protector e.3.6 termin...

  • Page 566

    Appendix e. Supporting products — list 566 continuous-analog output (cao) modules model description sdm-ao4a four-channel, continuous analog voltage output sdm-cvo4 four-channel, continuous voltage and current analog output e.4.3 relay-drivers — list relay drivers enable the cr800 to control large v...

  • Page 567: E.5  Sensors — Lists

    Appendix e. Supporting products — list 567 e.5 sensors — lists related topics: • sensors — quickstart (p. 35) • measurements — overview (p. 64) • measurements — details (p. 311) • sensors — lists (p. 567) most electronic sensors, regardless of manufacturer, will interface with the cr800. Some sensor...

  • Page 568: E.6  Cameras — List

    Appendix e. Supporting products — list 568 e.5.2 wireless-network sensors — list wireless sensors use the campbell wireless sensor (cws) spread-spectrum radio technology. The following wireless sensor devices are available. Wireless sensor modules model description cwb100 series radio-base module fo...

  • Page 569

    Appendix e. Supporting products — list 569 many comms devices are available for use with the cr800 datalogger. E.7.1 keyboard/display — list related topics: • keyboard/display — overview (p. 80) • keyboard/display — details (p. 443) • keyboard/display — list (p. 569) • custom menus — overview (p. 82...

  • Page 570

    Appendix e. Supporting products — list 570 hardwire, single-connection comms devices model description sdm-can datalogger-to-canbus interface fc100 fiber optic modem. Two required in most installations. E.7.3 hardwire, networking devices — list hardwire, networking devices model description md485 rs...

  • Page 571

    Appendix e. Supporting products — list 571 private-network radios model description rf430 series spread-spectrum, 100 mw, usb connection to base pc. Compatible with rf400. Rf450 spread-spectrum, 1 w rf300 series vhf / uhf, 5 w, licensed, single- frequency e.7.7 satellite transceivers — list m satell...

  • Page 572

    Appendix e. Supporting products — list 572 software products are available from campbell scientific to facilitate cr800 programming, maintenance, data retrieval, and data presentation. Starter software (table starter software (p. 572) ) are those products designed for novice integrators. Datalogger ...

  • Page 573

    Appendix e. Supporting products — list 573 datalogger support software software compatibility description supports single dataloggers over most comms options. Loggernet pc, windows top-level datalogger support software. Supports datalogger networks. Loggernet admin pc, windows advanced loggernet for...

  • Page 574

    Appendix e. Supporting products — list 574 loggernet suite — list 1,2 software description lndb loggernet database software loggernetdata generates displays of real-time or historical data, post-processes data files, and generates reports. It includes split, rtmc, view pro, and data filer. Pc-opc ca...

  • Page 575

    Appendix e. Supporting products — list 575 software tools software compatibility description device configuration utility (devconfig) pc, windows bundled with pc400, loggernet, and rtdaq. Also availble at no cost at www.Campbellsci.Com. Used to configure settings and update operating systems for cam...

  • Page 576: E.10

    Appendix e. Supporting products — list 576 software development kits software compatibility description tdrsdk pc, windows software developer kit for pc and windows for communication with the tdr100 time domain reflectometer. E.10 power supplies — list related topics: • power input terminals — speci...

  • Page 577

    Appendix e. Supporting products — list 577 e.10.2 batteries — list batteries model description bpalk d-cell, 12 vdc alkaline battery pack bp7 7 ahr, sealed-rechargeable battery (requires regulator & primary source). Includes mounting bracket for campbell scientific enclosures. Bp12 12 ahr, sealed-re...

  • Page 578: E.11

    Appendix e. Supporting products — list 578 primary power sources model description sp20 20 watt solar panel (requires regulator) sp20r 20 watt solar panel (includes regulator) sp50-l 50 watt solar panel (requires regulator) sp90-l 90 watt solar panel (requires regulator) dcdc18r 12 vdc to 18 vdc boo...

  • Page 579: E.12

    Appendix e. Supporting products — list 579 enclosures — products model description enc24/30s stainless steel 24 inch x 30 inch weather-tight enclosure prewired enclosures model description pwenc12/14 pre-wired 12 inch x 14 inch weather- tight enclosure. Pwenc14/16 pre-wired 14 inch x 16 inch weather...

  • Page 580: E.13

    Appendix e. Supporting products — list 580 cm310 1.42 meter (56 in) mast, stainless steel, free standing, tripod, and guyed options e.13 protection from moisture — list protection from moisture — products model description 6714 desiccant 4 unit bag (qty 20). Usually used in enc enclosures to protect...

  • Page 581: Index

    581 index . .Csipasswd ......................................................404 1 12 volt supply ...............................................390 12v terminal .................................................61, 391 2 24 vdc power supply kits — list ................578 5 5 volt pin .................

  • Page 582

    Index 582 battery backup ............................................. 38, 86 battery connection ....................................... 40, 96 battery test ................................................... 478 baud .............................................................. 41, 103, 476 baud r...

  • Page 583

    Index 583 connect external power supply ....................40 connection .....................................................36, 40, 57 conserving bandwidth ..................................427 conserving program memory .......................124 constant ............................................

  • Page 584

    Index 584 data types, nan, and ±inf ........................ 467 datalogger — overview ............................... 56 datalogger — quickstart .............................. 36 datalogger support software ........................ 86, 494 datalogger support software — details....... 396 datalogger...

  • Page 585

    Index 585 excitation reversal ........................................326 executable code signatures ..........................180 executable cpu: files — setup tools ..........108 executable file run priorities .......................112 execution ......................................................

  • Page 586

    Index 586 ground loop ................................................. 101 ground looping in ionic measurements ...... 101 ground potential differences........................ 100 ground potential error .................................. 100 ground reference offset .............................. 32...

  • Page 587

    Index 587 line, maximum length 512 characters ..........125 linear sensor .................................................75 lithium battery .............................................38, 458, 527 little endian ..................................................282, 283, 559 local variable ..........

  • Page 588

    Index 588 nan and ±inf ............................................. 466 neighbor ....................................................... 527 neighbor device ........................................... 506 network planner ........................................... 104 network planner — setup tools ...

  • Page 589

    Index 589 power .............................................................41, 61, 91, 95, 389, 391 power budget ................................................95, 255, 256 power consumption ......................................95 power in terminals .......................................61 powe...

  • Page 590

    Index 590 programming ................................................ 41, 46, 83, 123 programming — capturing events ............... 171 programming — conditional output ............ 173 programming — groundwater pump test ... 173 programming — multiple scans................... 181 programming — ru...

  • Page 591

    Index 591 rs-232 recording .........................................384 rs-232 sensor ...............................................279, 386 rs-232 sensor cabling .................................386 rtdaq .........................................................572 rtu ...............................

  • Page 592

    Index 592 settling time................................................. 316, 318, 319, 320, 322, 386 setup ............................................................. 102 setup tasks ................................................... 113 short cut ...................................................

  • Page 593

    Index 593 t table ..............................................................41 table — data header ....................................164 table overrun ................................................470 task ...............................................................151, 517 task priority ...

  • Page 594

    Index 594 html ............................................. 501; http .............................................. 501; ieee4 ............................................. 501; include file ...................................... 502; inf .................................................. 502; ini...

  • Page 595

    Index 595 start bit .............................................283; state .................................................515; station status command ..................516; stop bit .............................................283; string ................................................516; suppo...

  • Page 596

    Index 596 true ............................................................... 164 ttl ............................................................... 518 ttl logic ...................................................... 518 ttl recording ............................................. 384 tutorial ......

  • Page 598

    Campbell scientific companies campbell scientific, inc. 815 west 1800 north logan, utah 84321 united states www.Campbellsci.Com • info@campbellsci.Com campbell scientific africa pty. Ltd. Po box 2450 somerset west 7129 south africa www.Campbellsci.Co.Za • cleroux@csafrica.Co.Za campbell scientific s...