Campbell CR1000 Operator's Manual

Other manuals for CR1000: Operator's Manual, Operator's Manual
Manual is about: Measurement and Control System

Summary of CR1000

  • Page 1

    O pe rat o r's m anual cr1000 measurement and control system preliminary for os v.28: 4/13/15 want to get going? Go to the quickstart (p. 41) section. Want to see notes pertaining to this preliminary manual release? Go to release notes (p. 34) . C o p y r i g h t © 2 0 0 0 – 2 0 1 5 c a m p b e l l ...

  • Page 3: Warranty

    Warranty the cr1000 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 d...

  • Page 5: Assistance

    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 www...

  • Page 7: Precautions

    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 mai...

  • Page 8

    • prior to performing site or installation work, inform all utility companies and have all underground utilities marked. • comply with all electrical codes. Electrical equipment and related grounding devices should be installed by a licensed and qualified electrician. Elevated work and weather • exe...

  • Page 9: Table Of Contents

    Table of contents 1. Introduction ................................................................ 33 1.1 hello .................................................................................................. 33 1.2 typography ..........................................................................

  • Page 10

    Table of contents 5.1.2.4 strain measurements — overview ..................................... 68 5.1.3 pulse measurements — overview ................................................ 68 5.1.3.1 pulses measured .................................................................. 69 5.1.3.2 pulse-input ...

  • Page 11

    Table of contents 5.3.12.1 protection from moisture — overview ............................ 93 5.3.12.2 protection from voltage transients .................................. 94 5.3.12.3 factory calibration ........................................................... 94 5.3.12.4 internal battery — det...

  • Page 12

    Table of contents 7.8.2 writing and editing programs .................................................... 125 7.8.2.1 short cut programming wizard ........................................ 125 7.8.2.2 crbasic editor ................................................................. 125 7.8.2.2.1 inser...

  • Page 13

    Table of contents 7.9.1 advanced programming techniques .......................................... 169 7.9.1.1 capturing events ............................................................... 169 7.9.1.2 conditional output ............................................................ 170 7.9.1.3 grou...

  • Page 14

    Table of contents 7.9.14.2.1 measurements from 101 to 600 hz 2 ..................... 232 7.9.14.3 measurement rate: 601 to 2000 hz ................................ 233 7.9.15 measurement: prt ................................................................... 234 7.9.15.1 measuring pt100s (100 Ω prt...

  • Page 15

    Table of contents 7.9.21.4 ftp server ...................................................................... 294 7.9.21.5 ftp client ....................................................................... 294 7.9.21.6 telnet ..............................................................................

  • Page 16

    Table of contents 8.1.6.2 sdi-12 sensor support — details .................................... 363 8.1.7 field calibration — overview ................................................... 363 8.1.8 cabling effects ........................................................................... 364 8.1.8.1 ...

  • Page 17

    Table of contents 8.5.3 linking pakbus nodes: neighbor discovery ............................. 395 8.5.3.1 hello-message .................................................................. 396 8.5.3.2 beacon............................................................................... 396 8.5.3.3 he...

  • Page 18

    Table of contents 8.6.3.12 dns ................................................................................. 423 8.6.3.13 smtp .............................................................................. 423 8.6.3.14 web api ........................................................................

  • Page 19

    Table of contents 9.3 factory calibration or repair procedure .............................................. 476 10. Troubleshooting .................................................... 479 10.1 troubleshooting — essential tools ................................................... 479 10.2 troublesho...

  • Page 20

    Table of contents 11.1 terms ................................................................................................. 507 11.2 concepts ............................................................................................. 533 11.2.1 accuracy, precision, and resolution .................

  • Page 21

    Table of contents a.7.10.1 histograms ..................................................................... 573 a.8 string functions .................................................................................. 574 a.8.1 string operations ...........................................................

  • Page 22

    Table of contents g.3.5 passive signal conditioners lists .............................................. 647 g.3.5.1 resistive-bridge tim modules list ................................. 647 g.3.5.2 voltage-divider modules list .......................................... 647 g.3.5.3 current-shunt modul...

  • Page 23

    Table of contents figure 9. Short cut compile confirmation ................................................... 54 figure 10. Pc200w main window ............................................................... 55 figure 11. Pc200w monitor data tab – public table ................................. 56 fi...

  • Page 24

    Table of contents figure 61. Zero procedure start .................................................................. 227 figure 62. Zero procedure finish ................................................................ 227 figure 63. Pt100 in four-wire half-bridge ......................................

  • Page 25

    Table of contents figure 109. Loggernet network-map setup: com port ............................ 403 figure 110. Loggernet network-map setup: pakbusport .......................... 404 figure 111. Loggernet network-map setup: dataloggers ......................... 404 figure 112. Preconfigured html ho...

  • Page 26

    Table of contents table 25. Crbasic example. Array assigned expression: transpose an array ............................................................................................... 190 table 26. Crbasic example. Array assigned expression: comparison / boolean evaluation ..........................

  • Page 27

    Table of contents table 71. Resistive-bridge circuits with voltage excitation ..................... 339 table 72. Ratiometric-resistance measurement accuracy ......................... 342 table 73. Straincalc() instruction equations .............................................. 343 table 74. Auto c...

  • Page 28

    Table of contents table 122. Listfiles api command parameters ......................................... 446 table 123. Listfiles api command response ............................................ 446 table 124. Newestfile api command parameters ..................................... 450 table 125. Spe...

  • Page 29

    Table of contents table 168. Baudrate() array, keywords, and default settings ................... 611 table 169. Beacon() array, keywords, and default settings ..................... 612 table 170. Status/settings/dti: c .............................................................. 612 table 171. St...

  • Page 30

    Table of contents table 219. Cf-card storage module .......................................................... 653 table 220. Starter software ......................................................................... 654 table 221. Datalogger support software ...........................................

  • Page 31

    Table of contents crbasic example 34. Programming with bool8 and a bit-shift operator ............................................................................................... 200 crbasic example 35. Nsec — one element time array ........................ 203 crbasic example 36. Nsec — two elem...

  • Page 33: 1.  Introduction

    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 spec...

  • Page 34

    Section 1. Introduction • bold — crbasic instructions within the body text, input commands, output responses, gui commands, text on product labels, names of data tables. • page numbers — in the pdf version of the manual, hyperlink to the page represented by the number. • italic — glossary entries an...

  • Page 35

    Section 1. Introduction newfile() instruction operating system management period averaging precision of variables programming route() instruction security skipped records subroutines sw12 and 12v terminals task sequencer terminal mode time and clock troubleshooting watchdog resets 35.

  • Page 37: 2.  Cautionary Statements

    2. Cautionary statements • 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...

  • Page 39: 3.  Initial Inspection

    3. Initial inspection • check the ships with tab at http://www.Campbellsci.Com/cr1000 for a list of items shipped with the cr1000. 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 system quickstart (p. ...

  • Page 41: 4.  System Quickstart

    4. System quickstart reading list • quickstart (p. 41) • specifications (p. 97) • installation (p. 99) • operation (p. 303) this tutorial presents an introduction to cr1000 data acquisition and a practical programming and data retrieval exercise. 4.1 data-acquisition systems — quickstart related top...

  • Page 42

    Section 4. System quickstart figure 1. Data-acquisition system components 4.2 sensors — quickstart related topics: • sensors — quickstart (p. 42) • measurements — overview (p. 62) • measurements — details (p. 303) • sensors — lists (p. 649) sensors transduce phenomena into measurable electrical form...

  • Page 43

    Section 4. System quickstart o modbus o dnp3 o rs-485 refer to the appendix sensors — lists (p. 649) for a list of specific sensors available from campbell scientific. A library of sensor manuals and application notes are available at www.Campbellsci.Com to assist in measuring many sensor types. The...

  • Page 44

    Section 4. System quickstart figure 2. Wiring panel 4.4 power supplies — quickstart related topics: • power supplies — specifications • power supplies — quickstart (p. 44) • power supplies — overview (p. 85) • power supplies — details (p. 100) • power supplies — products (p. 657) • power sources (p....

  • Page 45

    Section 4. System quickstart connects to g. The connection is internally reverse-polarity protected. The cr1000 is internally protected against accidental polarity reversal on the power inputs. 4.4.1 internal battery — quickstart related topics: • internal battery — quickstart (p. 45) • internal bat...

  • Page 46

    Section 4. System quickstart 4.6 datalogger support software — quickstart reading list: • datalogger support software — quickstart (p. 46) • datalogger support software — overview (p. 95) • datalogger support software — details (p. 450) • datalogger support software — lists (p. 654) datalogger suppo...

  • Page 47

    Section 4. System quickstart • cr1000 datalogger • power supply with an output between 10 to 16 vdc • thermocouple, 4 to 5 inches long, which is shipped with the cr1000 • personal computer (pc) with an available nine-pin rs-232 serial port, or with a usb port and a usb-to-rs-232 adapter • nine-pin f...

  • Page 48

    Section 4. System quickstart figure 3. Power and serial communication connections 4.7.3 pc200w software setup 1. Install pc200w software onto the pc. Follow on-screen prompts during the installation process. Use the default folders. 2. Open pc200w. Your pc should display a window similar to figure p...

  • Page 49

    Section 4. System quickstart figure 4. Pc200w main window table 1. Pc200w ezsetup wizard example selections start the wizard to follow table entries. Screen name information needed introduction provides an introduction to the ezsetup wizard along with instructions on how to navigate through the wiza...

  • Page 50

    Section 4. System quickstart 4.7.4 write crbasic program with short cut short cut objectives: • create a program to measure the voltage of the cr1000 power supply, temperature of the cr1000 wiring-panel, and ambient air temperature using a thermocouple. • when program is downloaded to the cr1000, it...

  • Page 51

    Section 4. System quickstart figure 5. Short cut temperature sensor folder 4.7.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 ...

  • Page 52

    Section 4. System quickstart figure 6. Short cut thermocouple wiring 4.7.4.3 procedure: (short cut step 8) historical note in the space-race era, measuring thermocouples in the field was a complicated and cumbersome process incorporating a three-junction thermocouple, a micro-voltmeter, a vacuum fla...

  • Page 53

    Section 4. System quickstart 8. Click next to advance to the outputs tab, which displays the list selected sensors to the left and data storage tables to the right under selected outputs. Figure 7. Short cut outputs tab 4.7.4.4 procedure: (short cut steps 9 to 12) 9. Two output tables ( 1 table1 and...

  • Page 54

    Section 4. System quickstart figure 8. Short cut outputs tab 4.7.4.5 procedure: (short cut steps 13 to 14) 13. Click finish to compile the program. Give the program the name mytemperature. A summary screen will appear showing the compiler results. Any errors during compiling will be displayed. Figur...

  • Page 55

    Section 4. System quickstart 14. Close this window by clicking on x in the upper right corner. 4.7.5 send program and collect data pc200w datalogger support software objectives: • send the crbasic program created by short cut in the previous procedure to the cr1000. • collect data from the cr1000. •...

  • Page 56

    Section 4. System quickstart figure 11. Pc200w monitor data tab – public table 4.7.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 window tables field, click on onemin, then click paste. The onemin table is now dis...

  • Page 57

    Section 4. System quickstart figure 12. Pc200w monitor data tab — public and onemin tables 4.7.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 13. Pc200w collect data tab 57.

  • Page 58

    Section 4. System quickstart 4.7.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. This selects the data to be collected. 8. Click on a table in the list to highlight it, then click change table's...

  • Page 59

    Section 4. System quickstart 4.7.5.6 procedure: (pc200w steps 11 to 12) 11. Click on to open a file for viewing. In the dialog box, select the cr1000_onemin.Dat file and click open. 12. The collected data are now shown. Figure 15. Pc200w view data table 4.7.5.7 procedure: (pc200w steps 13 to 14) 13....

  • Page 60

    Section 4. System quickstart figure 16. Pc200w view line graph 60

  • Page 61: 5.  System Overview

    5. System overview reading list • quickstart (p. 41) • specifications (p. 97) • installation (p. 99) • operation (p. 303) a campbell scientific data-acquisition system is made up of the following basic components: • sensors • datalogger, which includes: o clock o measurement and control circuitry o ...

  • Page 62

    Section 5. System overview figure 17. Data-acquisition system — overview 5.1 measurements — overview related topics: • sensors — quickstart (p. 42) • measurements — overview (p. 62) • measurements — details (p. 303) • sensors — lists (p. 649) 62.

  • Page 63

    Section 5. System overview most electronic sensors, whether or not they are supplied by campbell scientific, can be connected directly to the cr1000. Manuals that discuss alternative input routes, such as external multiplexers, peripheral measurement devices, or a wireless sensor network, can be fou...

  • Page 64

    Section 5. System overview ground. A differential measurement measures the high signal with reference to the low signal. Each configuration has a purpose, but the differential configuration is usually preferred. A differential configuration may significantly improve the voltage measurement. Followin...

  • Page 65

    Section 5. System overview table 2. Differential and single-ended input terminals diff terminals se terminals 1h 1 1l 2 2h 3 2l 4 3h 5 3l 6 4h 7 4l 8 5h 9 5l 10 6h 11 6l 12 7h 13 7l 14 8h 15 8l 16 5.1.2.1.1 single-ended measurements — overview related topics: • single-ended measurements — overview (...

  • Page 66

    Section 5. System overview however, be aware that because a single-ended measurement is referenced to cr1000 ground, any difference in ground potential between the sensor and the cr1000 will result in error, as emphasized in the following examples: • if the measuring junction of a thermocouple used ...

  • Page 67

    Section 5. System overview a measurement of current is accomplished through the use of external resistors to convert current to voltage, then measure the voltage as explained in the section differential measurements — overview (p. 66). The voltage is measured with the cr1000 voltage measurement circ...

  • Page 68

    Section 5. System overview figure 22. Full-bridge wiring example — pressure transducer 5.1.2.4 strain measurements — overview related topics: • strain measurements — overview (p. 68) • strain measurements — details (p. 342) • fieldcalstrain() examples (p. 223) strain gage measurements are usually as...

  • Page 69

    Section 5. System overview • edge timing o resolution — 540 ns 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() instruction (see section period averaging — overview (p. 70) ). 5.1.3.1...

  • Page 70

    Section 5. System overview 5.1.3.3 pulse sensor wiring read more see the section pulse measurement tips (p. 356) an example of a pulse sensor connection is illustrated in figure pulse-input wiring example — anemometer switch (p. 70). Pulse sensors have two active wires, one of which is ground. Conne...

  • Page 71

    Section 5. System overview always "listening", whereas period averaging may filter the noise by reason of being "asleep" most of the time. Pulse-count measurements are not appropriate for sensors that are powered off between scans, whereas period-average measurements work well since they can be plac...

  • Page 72

    Section 5. System overview • sdi-12 devices: c • synchronous devices for measurement (sdm): c • smart sensors: c terminals, rs-232 port, and cs i/o port with the appropriate interface. • modbus or dnp3 network: rs-232 port and cs i/o port with the appropriate interface • other serial i/o devices: c ...

  • Page 73

    Section 5. System overview figure 25. Terminals configurable for rs-232 input figure 26. Use of rs-232 and digital i/o when reading rs-232 devices 5.1.7 field calibration — overview related topics: • field calibration — overview (p. 73) • field calibration — details (p. 210) calibration increases ac...

  • Page 74

    Section 5. System overview 5.1.8 cabling effects — overview related topics: • cabling effects — overview (p. 74) • cabling effects — details (p. 364) sensor cabling can have significant effects on sensor response and accuracy. This is usually only a concern with sensors acquired from manufacturers o...

  • Page 75

    Section 5. System overview instructions between these instructions are given the same high priority as measurement instructions and do not slip into the scan buffer if processing time is increased. Prochipri and endprochipri may not be selectable in crbasic editor. You can type them in anyway, and t...

  • Page 76

    Section 5. System overview 5.3.2 wiring panel — overview related topics • wiring panel — quickstart (p. 43) • wiring panel — overview (p. 76) • measurement and control peripherals (p. 366) the wiring panel of the cr1000 is the interface to most functions. These functions are introduced in the follow...

  • Page 77

    Section 5. System overview table 4. Cr1000 wiring panel terminal definitions lab els se 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 com1 com2 com3 com4 diff ┌ 1 ┐ ┌ 2 ┐ ┌ 3 ┐ ┌ 4 ┐ ┌ 5 ┐ ┌ 6 ┐ ┌ 7 ┐ ┌ 8 ┐ t x r x t x r x t x r x t x r x h l h l h l h l h l h l h l h l vx1 vx2 vx3 p1 p2 c1 c2 c3 c4 c5 c6 ...

  • Page 78

    Section 5. System overview 1 terminal expansion modules are available. 2 static, frequency-domain measurement 3 check the table current source and sink limits (p. 103) 4 requires an interfacing device for sensor input. See the table cs i/o to rs-232 interfaces (p. 651). 5.3.2.1 switched voltage outp...

  • Page 79

    Section 5. System overview figure 28. Control and monitoring with c terminals 5.3.2.2 voltage excitation — overview related topics: • voltage and current excitation — specifications • voltage excitation — overview (p. 79) the cr1000 has several terminals designed to supply switched voltage to periph...

  • Page 80

    Section 5. System overview 5.3.2.3 grounding terminals read more see grounding (p. 105). Proper grounding lends stability and protection to a data acquisition system. It is the easiest and least expensive insurance against data loss — and often the most neglected. The following terminals are provide...

  • Page 81

    Section 5. System overview conditions, and to minimize the error associated with the measurement of underpowered sensors. See section power supplies — overview (p. 85). • 5v terminals: regulated 5 vdc at 300 ma. The 5 vdc supply is regulated to within a few millivolts of 5 vdc so long as the main po...

  • Page 82

    Section 5. System overview 5.3.2.5.2 rs-232 ports note rs-232 communications normally operate well up to a transmission cable capacitance of 2500 picofarads, or approximately 50 feet of commonly available serial cable. • one nine-pin dce port, labeled rs-232, normally used to communicate with a pc r...

  • Page 83

    Section 5. System overview 5.3.2.5.7 ethernet port read more see the section tcp/ip (p. 289). • ethernet capability requires a peripheral ethernet interface device, as listed in the appendix network links list (p. 652). 5.3.3 keyboard display — overview related topics: • keyboard display — overview ...

  • Page 84

    Section 5. System overview • to insert a space ( spc) or change case (cap), press shift one to two times for the position, then press bkspc. • to insert a character not printed on the keyboard, enter ins , scroll down to character, press enter, then scroll up, down, left, or right to the desired cha...

  • Page 85

    Section 5. System overview 5.3.4 measurement and control peripherals — overview related topics: • measurement and control peripherals — overview (p. 85) • measurement and control peripherals — details (p. 366) • measurement and control peripherals — lists (p. 645) modules are available from campbell...

  • Page 86

    Section 5. System overview regulator, and a rechargeable battery can be used to construct a ups (un- interruptible power supply). 5.3.6 cr1000 configuration — overview related topics: • cr1000 configuration — overview (p. 86) • cr1000 configuration — details (p. 111) • status, settings, and data tab...

  • Page 87

    Section 5. System overview note once a short cut generated program has been edited with crbasic editor (p. 125), it can no longer be modified with short cut. 5.3.8 memory — overview related topics: • memory — overview (p. 87) • memory — details (p. 370) • data storage devices — list (p. 653) data co...

  • Page 88

    Section 5. System overview memory for data can be increased with the addition of a cf (p. 510) card and cf storage module (connects to the peripheral port) or a mass storage device (thumb drive) that connects to cs i/o or both. See the appendix data-storage devices — list (p. 653) for information on...

  • Page 89

    Section 5. System overview • short distance networks — with no extra hardware, a cr1000 can talk to another cr1000 over distances up to 30 feet by connecting transmit, receive and ground wires between the dataloggers. In a pakbus network, each datalogger is set to a unique address. The default pakbu...

  • Page 90

    Section 5. System overview telecommunications the cr1000 accesses data on the card as needed to fill data-collection requests initiated with the datalogger support software collect (p. 509) command. An alternative, if care is taken, is to collect data in binary form. Binary data are collected using ...

  • Page 91

    Section 5. System overview 5.3.10.1 modbus related topics: • modbus — overview (p. 91) • modbus — details (p. 411) the cr1000 supports modbus master and modbus slave communications for inclusion in modbus scada networks. Modbus is a widely used scada communication protocol that facilitates exchange ...

  • Page 92

    Section 5. System overview • pakbus over tcp/ip • ping • pop3 • smtp • snmp • telnet • web api • xml 5.3.11 security — overview related topics: • security — overview (p. 92) • security — details (p. 467) the cr1000 is supplied void of active security measures. By default, rs-232, telnet, ftp and htt...

  • Page 93

    Section 5. System overview operating temperatures and aging. With auto-calibration disabled, measurement accuracy over the operational temperature range is specified as less accurate by a factor of 10. That is, over the extended temperature range of –40 °c to 85 °c, the accuracy specification of ±0....

  • Page 94

    Section 5. System overview 5.3.12.2 protection from voltage transients read more see grounding (p. 105). The cr1000 must be grounded to minimize the risk of damage by voltage transients associated with power surges and lightning-induced transients. Earth grounding is required to form a complete circ...

  • Page 95

    Section 5. System overview the battery is rated from -55 °c up to 85 °c. 5.4 datalogger support software — overview reading list: • datalogger support software — quickstart (p. 46) • datalogger support software — overview (p. 95) • datalogger support software — details (p. 450) • datalogger support ...

  • Page 97: 6.  Specifications

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

  • Page 98

    98.

  • Page 99: 7.  Installation

    7. Installation reading list • quickstart (p. 41) • specifications (p. 97) • installation (p. 99) • operation (p. 303) 7.1 protection from moisture — details protection from moisture — overview (p. 93) protection from moisture — details (p. 99) protection from moisture — products (p. 660) when humid...

  • Page 100

    Section 7. Installation figure 31. Enclosure 7.4 power supplies — details related topics: • power supplies — specifications • power supplies — quickstart (p. 44) • power supplies — overview (p. 85) • power supplies — details (p. 100) • power supplies — products (p. 657) • power sources (p. 101) • tr...

  • Page 101

    Section 7. Installation interruptible power supply). Contact a campbell scientific application engineer if assistance in selecting a power supply is needed, particularly with applications in extreme environments. 7.4.1 cr1000 power requirement the cr1000 is operable with power from 9.6 to 16 vdc app...

  • Page 102

    Section 7. Installation noise, and so increase measurement error. Noise from grid or mains power also may be transmitted through the transformer, or induced electro-magnetically from nearby motors, heaters, or power lines. High-quality power regulators typically reduce noise due to power regulation....

  • Page 103

    Section 7. Installation 7.4.5 external power supply installation when connecting external power to the cr1000, remove the green power in connector from the cr1000 face. Insert the positive lead into the green connector, then insert the negative lead. Re-seat the green connector into the cr1000. The ...

  • Page 104

    Section 7. Installation table 5. Current source and sink limits terminal limit 1 1 "source" is positive amperage; "sink" is negative amperage (–). 2 exceeding current limits will cause voltage output to become unstable. Voltage should stabilize once current is again reduced to within stated limits. ...

  • Page 105

    Section 7. Installation on the 12v terminals will change with cr1000 supply voltage. Caution voltage levels at the 12v and switched sw12 terminals, and pin 8 on the cs i/o port, are tied closely to the voltage levels of the main power supply. For example, if the power received at the power in 12v an...

  • Page 106

    Section 7. Installation the primary devices for protection against esd are gas-discharge tubes (gdt). All critical inputs and outputs on the cr1000 are protected with gdts or transient voltage suppression diodes. Gdts fire at 150 v to allow current to be diverted to the earth ground lug. To be effec...

  • Page 107

    Section 7. Installation figure 33. Schematic of grounds 7.6.1.1 lightning protection reading list: • esd protection (p. 105) • lightening protection (p. 107) the most common and destructive esds are primary and secondary lightning strikes. Primary lightning strikes hit instrumentation directly. Seco...

  • Page 108

    Section 7. Installation note lightning strikes may damage or destroy the cr1000 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 34. Light...

  • Page 109

    Section 7. Installation 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 – c8 terminals to g terminals. • connect excitation grounds to the nearest terminal on...

  • Page 110

    Section 7. Installation and water provide an alternate path for the excitation to return to cr1000 ground. This example is modeled in the diagram model of a ground loop with a resistive sensor (p. 110). With r g in the resistor network, the signal measured from the sensor is described by the followi...

  • Page 111

    Section 7. Installation 7.7 cr1000 configuration — details related topics: • cr1000 configuration — overview (p. 86) • cr1000 configuration — details (p. 111) • status, settings, and data table information (status/settings/dti) (p. 603) your new cr1000 is already configured to communicate with campb...

  • Page 112

    Section 7. Installation figure 36. Device configuration utility (devconfig) 7.7.1.2 network planner 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 datalogger nodes. L...

  • Page 113

    Section 7. Installation figure 37. Network planner setup 7.7.1.2.1 overview network planner allows you to • create a graphical representation of a network, as shown in figure network planner setup (p. 113), • determine settings for devices and loggernet, and • program devices and loggernet with new ...

  • Page 114

    Section 7. Installation 7.7.1.2.2 basics pakbus settings • device addresses are automatically allocated but can be changed. • device connections are used to determine whether neighbor lists should be specified. • verification intervals will depend on the activities between devices. • beacon interval...

  • Page 115

    Section 7. Installation used to access them. • no single interface accesses all status/settings/dti. Interfaces used for access include the following: table 6. Status/setting/dti: access points access point locate in... Settings editor device configuration utility, loggernet connect screen, pakbus g...

  • Page 116

    Section 7. Installation wireless-ethernet (cell) modems are often controlled by a switched 12 vdc ( sw12) terminal. Sw12 is normally off, so, if the program controlling sw12 is disabled, such as by replacing it with a program that neglects sw12 control, the cell modem is switched off and the remote ...

  • Page 117

    Section 7. Installation will be the current program. Otherwise, any file marked as run now will be used. 3. If there is a file specified in the include file name setting, it is compiled at the end of the program selected in step. 4. If there is no file selected in step 1, or if the selected file can...

  • Page 118

    Section 7. Installation update the os on the cr1000 as directed in devconfig help. The current version of the os is found at www.Campbellsci.Com/downloads. Os updates are free of charge. Note an os file has a .Obj extension. It can be compressed using the gzip compression algorithm. The datalogger w...

  • Page 119

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

  • Page 120

    Section 7. Installation program send command locations datalogger support software name of button location of button devconfig send program logger control tab lower left loggernet send new... Connect window, lower right pc400 send program main window, lower right pc200w send program main window, low...

  • Page 121

    Section 7. Installation loading an operating system through this method will do the following: 1. Preserve all cr1000 settings 2. Delete all data in final storage 3. Stop current program (stop and deletes data) and clears run options 4. Deletes data generated using the cardout() instruction 7.7.2.1....

  • Page 122

    Section 7. Installation 7.7.2.2 restoring factory defaults in devconfig, clicking the factory defaults button at the base of the settings editor tab sends a command to the cr1000 to revert to its factory default settings. The reverted values will not take effect until the changes have been applied. ...

  • Page 123

    Section 7. Installation 7.8.1 program structure essential elements of a crbasic program are listed in the table crbasic program structure (p. 123) and demonstrated in crbasic example program structure (p. 123). Table 8. Crbasic program structure declarations define cr1000 memory usage. Declare const...

  • Page 124

    Section 7. Installation 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 decla...

  • Page 125

    Section 7. Installation 7.8.2 writing and editing programs 7.8.2.1 short cut programming wizard short cut is easy-to-use, menu-driven software that presents lists of predefined measurement, processing, and control algorithms from which to choose. You make choices, and short cut writes the crbasic co...

  • Page 126

    Section 7. Installation 7.8.2.2.1 inserting comments into program comments are non-executable text placed within the body of a program to document or clarify program algorithms. As shown in crbasic example inserting comments (p. 126), comments are inserted into a program by preceding the comment wit...

  • Page 127

    Section 7. Installation a good practice is to always retrieve data from the cr1000 before sending a program; otherwise, data may be lost. Read more see file management (p. 382) and the campbell scientific mass storage device or memory card documentation available at www.Campbellsci.Com. 7.8.3.1 pres...

  • Page 128

    Section 7. Installation table 10. Data table structures –data table name(s) –data-output interval or offset –number of fields per record –number of bytes per field –field type, size, name, or position –number of records in table 7.8.4 programming syntax 7.8.4.1 program statements crbasic programs ar...

  • Page 129

    Section 7. Installation note crbasic statements are limited to 512 characters, whether or not a line continuation is used. Examples: public a, b, _ c,d, e, f if (a and b) _ or (c and d) _ or (e and f) then exitscan 7.8.4.2 single-statement declarations single-statements are used to declare variables...

  • Page 130

    Section 7. Installation several variables can be declared on a single line, separated by commas: public reftemp, airtemp2, batt_volt variables can also be assigned initial values in the declaration. Following is an example of declaring a variable and assigning it an initial value. Public settemp = {...

  • Page 131

    Section 7. Installation table 11. Data types in variable memory name command description word size (bytes) notes resolution / range string as string ascii string minimum: 3 (4 with null terminator) default: 24 maximum: limited only to the size of available cr1000 memory. See caution. 1 string size i...

  • Page 132

    Section 7. Installation table 12. Data types in final-data memory name argument description word size (bytes) notes resolution / range uint2 uint2 unsigned integer 2 use to store positive count data ≤ +65535. Use to store port or flag status. See crbasic example load binary information into a variab...

  • Page 133

    Section 7. Installation crbasic example 3. Data type declarations 'this program example demonstrates various data type declarations. 'data type declarations associated with any one variable occur twice: first in a public 'or dim statement, then in a datatable/endtable segment. If not otherwise speci...

  • Page 134

    Section 7. Installation 7.8.4.3.2 dimensioning numeric variables some applications require multi-dimension arrays. Array dimensions are analogous to spatial dimensions (distance, area, and volume). A single-dimension array, declared as, public variablename(x) with (x) being the index, denotes x numb...

  • Page 135

    Section 7. Installation five variables are declared, each 36 characters long: stringvar(1) stringvar(2) stringvar(3) stringvar(4) stringvar(5) 7.8.4.3.4 declaring flag variables a flag is a variable, usually declared as boolean (p. 508), that indicates true or false, on or off, go or not go, etc. Pr...

  • Page 136

    Section 7. Installation (x) on the variable name. X number of variables are created that differ in name only by the incrementing number in the suffix. For example, the four statements public tempc1 public tempc2 public tempc3 public tempc4 can simply be condensed to public tempc(4). This statement c...

  • Page 137

    Section 7. Installation are called local variables. Names of local variable can be identical to names of global variables (p. 517) and to names of local variables declared in other subroutines and functions. This feature allows creation of a crbasic library of reusable subroutines and functions that...

  • Page 138

    Section 7. Installation crbasic example 8. Using the const declaration 'this program example demonstrates the use of the const declaration. 'declare variables public ptempc public ptempf 'declare constants const ctof_mult = 1.8 const ctof_offset = 32 beginprog scan (1,sec,0,0) paneltemp (ptempc,250)...

  • Page 139

    Section 7. Installation 7.8.4.9 numerical formats four numerical formats are supported by crbasic. Most common is the use of base-10 numbers. Scientific notation, binary, and hexadecimal formats can also be used, as shown in the table formats for entering numbers in crbasic (p. 139). Only standard, ...

  • Page 140

    Section 7. Installation 7.8.4.10 multi-statement declarations multi-statement declarations are used to declare data tables, subroutines, functions, and incidentals. Related instructions include the following: • datatable() / endtable • sub() / endsub • function() / endfunction • shutdown / shutdowne...

  • Page 141

    Section 7. Installation table 14. Typical data table toa5 cr1000 cr1000 1048 cr1000.Std.13.06 cpu:data.Cr1 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...

  • Page 142

    Section 7. Installation each scalar value defined by the table. Default field names are a combination of the variable names (or alias) from which data are derived and a three-letter suffix. The suffix is an abbreviation of the data process that outputs the data to storage. For example, avg is the abb...

  • Page 143

    Section 7. Installation 'main program beginprog scan (5,sec,1,0) 'default datalogger battery voltage measurement batt_volt: battery (batt_volt) 'wiring panel temperature measurement ptemp_c: paneltemp (ptemp_c,_60hz) 'type t (copper-constantan) thermocouple measurements temp_c: tcdiff (temp_c(),2,mv...

  • Page 144

    Section 7. Installation rules on table size change if a cardout() instruction or tablefile() instruction with option 64 are included in the table declaration. These instructions support writing of data to a memory card. Writing data to a card requires additional memory be allocated as a data copy bu...

  • Page 145

    Section 7. Installation ensure the cr1000 allocates adequate memory for each data table. Table 16. Datainterval() lapse parameter options datainterval() lapse argument effect lapse > 0 if table record number is fixed, x data frames (1 kb per data frame) are added to data table if memory is available...

  • Page 146

    Section 7. Installation • reps — number of sequential elements in the variable array for which averages are calculated. Reps is set to 1 to average ptemp, and set to 2 to average two thermocouple temperatures, both of which reside in the variable array temp_c. • source — variable array to average. V...

  • Page 147

    Section 7. Installation 'main program beginprog scan (1,sec,1,0) 'reset and increment counter if oscillator = 2 then oscillator = 0 oscillator = oscillator + 1 'process and control if oscillator = 1 if flag(1) = true then disablevar = true endif else disablevar = false endif 'call data tables and st...

  • Page 148

    Section 7. Installation 2. Send the file to the cr1000 using tools in the file control menu of datalogger support software (p. 95). 3. Enter the path and name of the file in the include file setting using devconfig or pakbusgraph. Figures "include file" settings with devconfig (p. 149) and "include ...

  • Page 149

    Section 7. Installation figure 40. "include file" settings via devconfig figure 41. "include file" settings via pakbusgraph crbasic example 12. 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 cp...

  • Page 150

    Section 7. Installation ' crbasic editor, name it 'includefile.Cr1, and save it to the same pc folder on which ' resides the main program file (this make pre-compiling possible. Including the ' slowsequence instruction as the first statement is required, followed by any other code. '2. Send the 'inc...

  • Page 151

    Section 7. Installation features of nearly all programs. Although used less frequently, subroutine and function sequences also have a general purpose nature. In contrast, the following sequences are used only in specific applications. Shut-down sequences the shutdownbegin / shutdownend instructions ...

  • Page 152

    Section 7. Installation note a program can be forced to run in sequential or pipeline mode by placing the sequentialmode or pipelinemode instruction in the declarations section of the program. Some tasks in a program may have higher priorities than others. Measurement tasks generally take precedence...

  • Page 153

    Section 7. Installation all tasks are given equal processing time by the cr1000. All tasks are given the same general priority. However, when a conflict arises between tasks, program execution adheres to the priority schedule in table pipeline mode task priorities (p. 153). Table 18. Pipeline mode t...

  • Page 154

    Section 7. Installation a similar concern is the reuse of the same variable in multiple tasks. Without some sort of messaging between the two tasks placed into the crbasic program, unpredictable results are likely to occur. The semaphoreget() and semaphorerelease() instruction pair provide a tool to...

  • Page 155

    Section 7. Installation of the period in 10 ms increments up to 24 hours. As shown in crbasic example beginprog / scan() / nextscan / endprog syntax (p. 155), the crbasic program may be relatively short. Crbasic example 14. Beginprog / scan() / nextscan / endprog syntax 'this program example demonst...

  • Page 156

    Section 7. Installation 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-scan interval (still in 10 ms increments) without skipping scans. When meas...

  • Page 157

    Section 7. Installation semaphore (p. 527). 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 beginning if there are measurements included in the scan. The semaphore is releas...

  • Page 158

    Section 7. Installation figure 42. Sequential-mode scan priority flow diagrams 7.8.4.13 programming instructions in addition to basic syntax, additional instructions are included in crbasic to facilitate measurements and store data. The section crbasic programming instructions (p. 537) contains a co...

  • Page 159

    Section 7. Installation paneltemp is the keyword. Two parameters follow: dest, a destination variable name in which the temperature value is stored; and integ, a length of time to integrate the measurement. To place the panel temperature measurement in the variable reftemp, using a 250 µs integratio...

  • Page 160

    Section 7. Installation table 20. Rules for names name category 1 maximum length (number of characters) allowed characters units 38 or underscore. Crbasic is not case sensitive. Units are excepted from the above rules. Since units are strings that ride along with the data, they are not subjected to ...

  • Page 161

    Section 7. Installation consider the expressions: x = (z * 1.8) + 32 '(mathematical expression) if x = 23 then y = 5 '(programming expression) the variable x can be omitted and the expressions combined and written as: if (z * 1.8 + 32 = 23) then y = 5 replacing the result with the expression should ...

  • Page 162

    Section 7. Installation crbasic example 16. Use of move() to conserve code space move (counter(1),6,0,1) 'reset six counters to zero. Keep array 'filled with the ten most current readings move (tempc(2),9,tempc(1),9) 'shift previous nine readings to make room 'for new measurement 'new measurement: t...

  • Page 163

    Section 7. Installation converted to a long, it is truncated. This conversion is the same as the int function (arithmetic functions (p. 568) ). The conversion is to an integer equal to or less than the value of the float; for example, 4.6 becomes 4 and –4.6 becomes –5). If a float is greater than th...

  • Page 164

    Section 7. Installation 7.8.4.15.4 logical expressions measurements can indicate absence or presence of an event. For example, an rh measurement of 100% indicates a condensation event such as fog, rain, or dew. The cr1000 can render the state of the event into binary form for further processing, so ...

  • Page 165

    Section 7. Installation table 21. Binary conditions of true and false condition crbasic instruction(s) used memory location of binary result time timeintointerval() variable, system iftime() variable, system timeisbetween() variable, system control port trigger waitdigtrig() system communications vo...

  • Page 166

    Section 7. Installation table 22. 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) ...

  • Page 167

    Section 7. Installation '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) = "," wo...

  • Page 168

    Section 7. Installation • fieldname index is the array element number in fields that are arrays (optional). • records back is how far back into the table to go to get the value (optional). If left blank, the most recent record is acquired. Table 23. Data process abbreviations abbreviation process na...

  • Page 169

    Section 7. Installation consult crbasic editor help index topic datatable access for complete information. The datatableinformation table also include this information. See status, settings, and data table information (status/settings/dti) (p. 603). 7.8.4.17 programming to use signatures signatures ...

  • Page 170

    Section 7. Installation 'declare event driven data table datatable (event,true,1000) dataevent (0,deltat_c>=3,deltat_c sample (1,ptemp_c, fp2) sample (1,airtemp_c, fp2) sample (1,deltat_c, fp2) endtable 'declare time driven data table datatable (onemin,true,-1) datainterval (0,1,min,10) sample (1,ev...

  • Page 171

    Section 7. Installation 'declare units units ptemp_c = deg c units airtemp_c = deg c units deltat_c = deg c 'declare output table -- output conditional on delta t >=3 'table stores data at the scan rate (once per second) when condition met 'because datainterval instruction is not included in table d...

  • Page 172

    Section 7. Installation crbasic example 24. 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 msec for 'this demonstration to allow the program to run its course...

  • Page 173

    Section 7. Installation '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 tab...

  • Page 174

    Section 7. Installation 7.9.1.4 miscellaneous features crbasic example miscellaneous features (p. 174) demonstrates use of several crbasic features: data type, units, names, event counters, flags, data-output intervals, and control. Crbasic example 25. Miscellaneous program features 'this program ex...

  • Page 175

    Section 7. Installation '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 unit...

  • Page 176

    Section 7. Installation scan (1,sec,1,0) 'measurements 'battery voltage battery (batt_volt) 'wiring panel temperature paneltemp (ptemp_c,_60hz) '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.8,...

  • Page 177

    Section 7. Installation 7.9.1.5 pulsecountreset instruction pulsecountreset is used in rare instances to force the reset or zeroing of cr1000 pulse accumulators (see measurements — overview (p. 62)) . Pulsecountreset is needed in applications wherein two separate pulsecount() instructions in separat...

  • Page 178

    Section 7. Installation scan (5,sec,1,0) 'measure reference temperature paneltemp (ptemp_c,_60hz) '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() instr...

  • Page 179

    Section 7. Installation 'define data table datatable (signatures,1,1000) datainterval (0,1,day,10) sample (1,progsig,fp2) sample (1,runsig,fp2) sample (2,exesig(),fp2) endtable 'program beginprog exesig() = signature 'initialize executable code signature 'function scan (1,sec,0,0) progsig = status.P...

  • Page 180

    Section 7. Installation slowsequence 'begin slow sequence 'declare public variables for secondary scan (can be declared at head of program) public batt_volt public counter2 'declare data table datatable (datatable2,1,-1) 'datatable2 is event driven. 'the event is the scan. Sample (1,batt_volt,fp2) s...

  • Page 181

    Section 7. Installation by using -p . This feature allows the smallest size program file possible to be sent to the cr1000, which may help keep costs down over very expensive telecommunication links. Crbasic example conditional code (p. 181) shows a sample program that demonstrates use of conditiona...

  • Page 182

    Section 7. Installation #if loggertype = 3000 'this instruction is used if the datalogger is a cr3000 voltse (valueread,1,mv1000,22,0,0,_50hz,0.1,-30) #elseif loggertype = 1000 'this instruction is used if the datalogger is a cr1000 voltse (valueread,1,mv2500,12,0,0,_50hz,0.1,-30) #elseif loggertype...

  • Page 183

    Section 7. Installation immediately after menuitem(). If variable is declared as boolean, menupick() allows only true or false or declared equivalents. Otherwise, many items are allowed in the pick list. Order of items in list is determined by order of instruction; however, item displayed initially ...

  • Page 184

    Section 7. Installation figure 45. Custom menu example — make notes sub menu figure 46. Custom menu example — predefined notes pick list figure 47. Custom menu example — free entry notes window figure 48. Custom menu example — accept / clear notes window 184.

  • Page 185

    Section 7. Installation figure 49. Custom menu example — control sub menu figure 50. Custom menu example — control led pick list figure 51. Custom menu example — control led boolean pick list note see figures custom menu example — home screen (p. 183) through custom menu example — control led boolea...

  • Page 186

    Section 7. Installation const cal_done = "cal done" 'word stored when cal_don selected const offst_chgd = "offset changed" 'word stored when offst_chgd selected const blank = "" 'word stored when blank selected public enternote as string * 30 'variable to hold free entry note public cyclenotes as st...

  • Page 187

    Section 7. Installation submenu ("control ") 'create submenu named paneltemps menuitem ("count to led",countdown) 'create menu item countdown menupick (15,30,45,60) 'create a pick list for countdown menuitem ("manual led",toggleled) 'manual led control menu item menupick (on,off) endsubmenu endmenu ...

  • Page 188

    Section 7. Installation 7.9.4 data input: loading large data sets large data sets, such as look up tables or tag numbers, can be loaded in the cr1000 for use by the crbasic program. This is efficiently accomplished by using the data, datalong, and read instructions, as demonstrated in crbasic exampl...

  • Page 189

    Section 7. Installation • initialize • transpose • copy • 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...

  • Page 190

    Section 7. Installation table 24. Crbasic example. Array assigned expression: sum columns and rows 'this example sums three rows and two columns of a 3x2 array. 'source array image: '1.23,2.34 '3.45,4.56 '5.67,6.78 public array(3,2) = {1.23,2.34,3.45,4.56,5.67,6.78} 'load values into source array pu...

  • Page 191

    Section 7. Installation table 26. Crbasic example. Array assigned expression: comparison / boolean evaluation 'example: comparison / boolean evaluation 'element-wise comparisons is performed through scalar expansion or by comparing each 'element in one array to a similarly located element in another...

  • Page 192

    Section 7. Installation table 27. Crbasic example. 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 (...

  • Page 193

    Section 7. Installation elements of the array, instead of performing an independent running average on each element of the array. The results will be a running average of a spatial average of the various source array elements. A running average is a digital low-pass filter; its output is attenuated ...

  • Page 194

    Section 7. Installation 36 hz / 50 hz = 0.72 sin(0.72π) / (0.72π) = 0.34. So, the recorded amplitude was about 1/3 of the input-signal amplitude. A crbasic program was written with variables accel2 and accel2ra. The raw measurement was stored in accel2. Accel2ra held the result of performing a runni...

  • Page 195

    Section 7. Installation figure 53. Running-average signal attenuation 7.9.7 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 conditional i...

  • Page 196

    Section 7. Installation figure 54. Data from trigvar program crbasic example 32. 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...

  • Page 197

    Section 7. Installation 7.9.8 data output: two intervals in one data table crbasic example 33. 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 t...

  • Page 198

    Section 7. Installation 'call output tables calltable twoint nextscan endprog 7.9.9 data output: using data type bool8 variables used exclusively to store either true or false are usually declared as boolean. When recorded in final-data memory, the state of boolean variables is typically stored in b...

  • Page 199

    Section 7. Installation figure 55. Alarms toggled in bit-shift example figure 56. Bool8 data from bit-shift example (numeric monitor) 199.

  • Page 200

    Section 7. Installation figure 57. Bool8 data from bit-shift example (pc data file) crbasic example 34. Programming with 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 fla...

  • Page 201

    Section 7. Installation '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 &h4 ...

  • Page 202

    Section 7. Installation 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 bits...

  • Page 203

    Section 7. Installation crbasic example 35. 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 variab...

  • Page 204

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

  • Page 205

    Section 7. Installation crbasic example 38. 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 cr1000 needs to display universal time (ut) in human readable 'string forms. The cr1...

  • Page 206

    Section 7. Installation • data-file format examples (p. 379) • data storage drives table (p. 373) the best method for writing high-frequency time-series data to memory cards, especially in high-speed measurement applications, is usually to use the tablefile() instruction with option 64. It supports ...

  • Page 207

    Section 7. Installation • easy retrieval of closed files with file control (p. 515) utility, ftp, or e-mail. 7.9.11.3 tablefile() with option 64 programming as shown in the following crbasic code snip, the tablefile() instruction must be placed inside a datatable() / endtable declaration. The tablef...

  • Page 208

    Section 7. Installation 7.9.11.5 tablefile() with option 64 q & a q: how does option 64 differ from other tablefile() options? A: pre-allocation of memory combines with tob3 data format to give option 64 two principal advantages over other tablefile() options. These are: • increased runtime write pe...

  • Page 209

    Section 7. Installation pc to update the info sector. The pc is much faster than the datalogger at updating the info sector. Fat32 uses an “info sector” to store the free cluster information. This info sector prevents the need to repeatedly traverse the fat for the bytes free information. After a ca...

  • Page 210

    Section 7. Installation q: what happens when a card is filled? A: if the memory card fills, new data are written over oldest data. A card must be exchanged before it fills, or the oldest data will be overwritten by incoming new records and lost. During the card exchange, once the old card is removed...

  • Page 211

    Section 7. Installation cal files are created if a program using fieldcal() or fieldcalstrain() does not find an existing, compatible cal file. Files are updated with each successful calibration with new calibration factors factors. A calibration history is recorded only if the crbasic program creat...

  • Page 212

    Section 7. Installation comprehensive treatment of field-calibration topics. The most comprehensive resource to date covering use of fieldcal() and fieldcalstrain() is rtdaq software documentation available at www.Campbellsci.Com http://www.Campbellsci.Com. Be aware of the following precautions: • t...

  • Page 213

    Section 7. Installation 7.9.12.4.2 two-point calibrations (gain and offset) use this two-point calibration procedure to adjust multipliers (slopes) and offsets (y intercepts). See fieldcal() slope and offset (opt 2) example (p. 218) and fieldcal() slope (opt 3) example (p. 220) for demonstration pro...

  • Page 214

    Section 7. Installation 7.9.12.5.1 fieldcal() zero or tare (opt 0) example most crbasic measurement instructions have a multiplier and offset parameter. Fieldcal() option 0 adjusts the offset argument such that the output of the sensor being calibrated is set to the value of the fieldcal() knownvar ...

  • Page 215

    Section 7. Installation crbasic example 40. Fieldcal() zero 'this program example demonstrates the use of fieldcal() in calculating and applying a zero 'calibration. A zero calibration measures the signal magnitude of a sensor in a known zero 'condition and calculates the negative magnitude to use a...

  • Page 216

    Section 7. Installation scan (100,msec,0,0) 'simulate signal then make the measurement 'zero calibration is applied when variable calmode = 6 excitev (vx1,simulatedrhsignal,0) voltse (rh,1,mv2500,1,1,0,250,0.05,rhoffset) 'perform a zero calibration. 'start by setting variable calmode = 1. Finished w...

  • Page 217

    Section 7. Installation 5. To simulate seven-day-service calibration conditions (30 mg/l standard solution), the variable knownsalinity remains at 30.0. Change the value in variable calmode to 1 to start the calibration. When calmode increments to 6, the seven-day-service offset calibration is compl...

  • Page 218

    Section 7. Installation beginprog 'load calibration constants from file cpu:calhist.Cal 'effective after the zero calibration procedure (when variable calmode = 6) loadfieldcal (true) scan (100,msec,0,0) 'simulate signal then make the measurement 'zero calibration is applied when variable calmode = ...

  • Page 219

    Section 7. Installation jumper wire between terminals vx1 and se1. 3. Perform the simulated deployment calibration as follows: 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 incr...

  • Page 220

    Section 7. Installation '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: thi...

  • Page 221

    Section 7. Installation intersects two known points sequentially entered in the fieldcal() knownvar 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 anal...

  • Page 222

    Section 7. Installation 'this program demonstrates the multiplier calibration with the following procedure: ' -- simulate a signal from a water content sensor. ' -- measure the 'sensor' signal. ' -- calculate and apply an offset. ' 'you can set up the simulation by loading this program into the cr10...

  • Page 223

    Section 7. Installation '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 calibrati...

  • Page 224

    Section 7. Installation 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 compensated for by selecting a shunt resistor with a value that best simulat...

  • Page 225

    Section 7. Installation figure 58. Quarter-bridge strain-gage with rc resistor shunt crbasic example 44. Fieldcalstrain() calibration 'this program example demonstrates the use of the fieldcalstrain() instruction by measuring 'quarter-bridge strain-gage measurements. Public raw_mvperv public microst...

  • Page 226

    Section 7. Installation 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 bridge...

  • Page 227

    Section 7. Installation figure 60. Strain-gage shunt calibration finish 7.9.12.6.4 fieldcalstrain() quarter-bridge zero continuing from fieldcalstrain() quarter-bridge shunt example (p. 226), keep the 249 kΩ resistor in place to simulate a strain. Using the cr1000kd keyboard display or software nume...

  • Page 228

    Section 7. Installation 7.9.13 measurement: excite, delay, measure this example demonstrates how to make voltage measurements that require excitation of controllable length prior to measurement. Overcoming the delay caused by a very long cable length on a sensor is a common application for this tech...

  • Page 229

    Section 7. Installation 7.9.14 measurement: faster analog rates certain data acquisition applications require the cr1000 to make analog measurements at rates faster than once per second (> 1 hz (p. 517) ). The cr1000 can make continuous measurements at rates up to 100 hz, and bursts (p. 509) of meas...

  • Page 230

    Section 7. Installation table 33. Summary of analog voltage measurement rates maximum rate 100 hz 600 hz 2000 hz number of simultaneous inputs multiple inputs fewer inputs one input maximum duty cycle 100% maximum measaurements per burst n/a variable 65535 description near simultaneous measurements ...

  • Page 231

    Section 7. Installation beginprog scan (1,sec,0,0) ' voltse (fastse(),1,mv2_5,1,false,100, 250,1.0,0) calltable fastsetable nextscan endprog by modifying the interval, units, and buffers arguments, voltse() can be executed at 100 hz at 100% duty cycle. The following program measures 16 analog-input ...

  • Page 232

    Section 7. Installation beginprog scan (1,sec,10,0) ' subscan (5,msec,190) ' voltse (burstse(),8,mv2_5,1,false,100,250,1.0,0) calltable burstsetable nextsubscan nextscan endprog many variations of this basic code can be programmed to achieve other burst rates and duty cycles. The subscan() / nextsub...

  • Page 233

    Section 7. Installation follows: since all sub-scans have to complete before the task sequencer can set the delay for the main scan, processing is delayed until this point (20 ms in the above example). So more memory is required for the raw buffer space for the sub-scan mode to run at the same speed...

  • Page 234

    Section 7. Installation 200 table 34. Parameters for analog burst mode (601 to 2000 hz) crbasic analog voltage input parameters description when in burst mode destination a variable array dimensioned to store all measurements from one input. For example, the command, dim fasttemp(500) dimensions arr...

  • Page 235

    Section 7. Installation 7.9.15.1 measuring pt100s (100 Ω prts) pt100s (100 Ω prts) are readily available. The cr1000 can measure pt100s in several configurations, each with its own advantages. 7.9.15.1.1 self-heating and resolution prt measurements present a dichotomy. Excitation voltage should be m...

  • Page 236

    Section 7. Installation refer to crbasic editor help for specific prtcalc() parameter entries. The following information is presented as detail beyond what is available in crbasic editor help. The general form of the callendar-van dusen (cvd) equation is shown in the following equations. When r/r 0 ...

  • Page 237

    Section 7. Installation table 36. Prtcalc() type-code-2 sensor us industrial standard, alpha = 0.00392 (reference: logan enterprises) 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 table 37. Prtc...

  • Page 238

    Section 7. Installation table 39. Prtcalc() type-code-5 sensor honeywell industrial sensors, alpha = 0.00375 (reference: honeywell) constant coefficient a 3.8100000e-03 d -2.4080000e-06 e 1.6924100e-05 f -1.2040000e-06 g 2.1790930e+00 h -5.4315860e+00 i 9.9196550e+00 j 2.6238290e+02 table 40. Prtcal...

  • Page 239

    Section 7. Installation length having more than a few thousandths of an ohm resistance. In this example, the measurement range is –10° to 40 °c. The length of the cable from the cr1000 and the bridge resistors to the prt is 500 feet. Figure pt100 in four-wire half-bridge (p. 240) shows the circuit u...

  • Page 240

    Section 7. Installation 7.9.15.2.3 choosing rf the fixed 100 Ω resistor must be thermally stable. Its precision is not important because the exact resistance is incorporated, along with that of the prt, into the calibrated multiplier. The 10 ppm/°c temperature coefficient of the fixed resistor will ...

  • Page 241

    Section 7. Installation 7.9.15.3 pt100 in three-wire half bridge example shows: • how to measure a prt in a three-wire half-bridge configuration. Advantages: • uses half as many terminals configured for analog input as four-wire half- bridge. Disadvantages: • may not be as accurate as four-wire half...

  • Page 242

    Section 7. Installation a terminal input module can be used to complete the circuit in figure pt100 in three-wire half-bridge (p. 242). Refer to the appendix signal conditioners (p. 647) for information concerning available tim modules. Figure 64. Pt100 in three-wire half-bridge crbasic example 51. ...

  • Page 243

    Section 7. Installation brfull(). In this example, the prt is in a constant-temperature bath and the measurement is to be used as the input for a control algorithm. As described in table resistive-bridge circuits with voltage excitation (p. 338), the result of brfull() is x, x = 1000 v s /v x where,...

  • Page 244

    Section 7. Installation the ±5 ppm per °c temperature coefficient of the fixed resistors was chosen because the ±0.01% accuracy tolerance would hold over the desired temperature range. Figure 65. Pt100 in four-wire full-bridge crbasic example 52. Pt100 in four-wire full-bridge 'this program example ...

  • Page 245

    Section 7. Installation this section is slated for expansion. Below are a few tips. • short cut programming wizard has provisions for simple on/off control. • pid control can be done with the cr1000. Ask a campbell scientific application engineer for more information. • when controlling a pid algori...

  • Page 246

    Section 7. Installation table 41. Ascii / ansi equivalents byte received ascii character displayed decimal ascii code hex ascii code 00001101 cr 13 d 00000001 ☺ 1 1 read more see the appendix ascii / ansi table (p. 637) for a complete list of ascii / ansi codes and their binary and hex equivalents. ...

  • Page 247

    Section 7. Installation table 42. Cr1000 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...

  • Page 248

    Section 7. Installation each character surrounded by one or more start and stop bits which designate the beginning and ending points of the information (see synchronous (p. 530) ). Indicates the sending and receiving devices are not synchronized using a clock signal. Term. Baud rate the rate at whic...

  • Page 249

    Section 7. Installation term. Msb most significant bit (the leading bit). See the appendix endianness (p. 643). Term. Rs-232c refers to the standard used to define the hardware signals and voltage levels. The cr1000 supports several options of serial logic and voltage levels including rs-232 logic a...

  • Page 250

    Section 7. Installation from the buffer to variables. Once data are in variables, string manipulation instructions are used to format and parse the data. Serialclose() must be executed before serialopen() can be used again to reconfigure the same serial port, or before the port can be used to commun...

  • Page 251

    Section 7. Installation 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, com2, com3, or com4, and the number of bytes is also entered as a constant. • simplifies synchr...

  • Page 252

    Section 7. Installation 3. Receive serial data as a string with serialin() or serialinrecord(). ̶ example: serialinrecord (com2,serialinstring,42,0,35,"",01) o declare the string variable large enough to accept the string. ̶ example: public serialinstring as string * 25 o observe the input string in...

  • Page 253

    Section 7. Installation 3. Output string via the serial port ( serialout() or serialoutblock() command). O example: serialout (com1,serialoutstring,"",0,100) o declare the output string variable large enough to hold the entire concatenation. O example: public serialoutstring as string * 100 • serial...

  • Page 254

    Section 7. Installation • serial buffer: the serial port buffer, which is declared in serialopen(), must be large enough to hold all data a device will send. The buffer holds the data for subsequent transfer to variables. Allocate extra memory to the buffer when needed, but recognize that memory add...

  • Page 255

    Section 7. Installation crbasic example 53. Receiving an rs-232 string 'this program example demonstrates cr1000 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 temperatur...

  • Page 256

    Section 7. Installation '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.9.17.6 serial i/o application testing a common proble...

  • Page 258

    Section 7. Installation figure 69. Hyperterminal ascii setup 7.9.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. 258) will send the string [2008:028:10:36:22]c to the cr1000. Use notepad ® (microsoft...

  • Page 260

    Section 7. Installation crbasic example 54. Measure sensors / send rs-232 data 'this program example demonstrates the import and export serial data via the cr1000 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 'ex...

  • Page 261

    Section 7. Installation 'subroutine to convert date formats (day-of-year to month and date) sub doy2moday 'store year, doy, hour, minute and second to input locations. Year = instringsplit(1) doy = instringsplit(2) hour = instringsplit(3) minute = instringsplit(4) second = instringsplit(5) usecond =...

  • Page 262

    Section 7. Installation case is month = 7 date = doy + -182 case is month = 8 date = doy + -213 case is month = 9 date = doy + -244 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. El...

  • Page 263

    Section 7. Installation case is month = 10 date = doy + -273 case is month = 11 date = doy + -304 case is month = 12 date = doy + -334 endselect endif endsub '//////////////////////////// program //////////////////////////// beginprog stationid = 4771 scan (1,sec, 3, 0) '/////////////////measurement...

  • Page 264

    Section 7. Installation '/////////////////serial output section///////////////////// 'construct old campbell scientific printable ascii data format and output to com1 'read datalogger clock realtime (rtime) if timeintointerval (0,5,sec) then 'load onemindata table data for processing into printable ...

  • Page 265

    Section 7. Installation serialopen() instruction cause other power cycles? A: the rs-232 port is left on under the following conditions: • when the setting rs-232power (p. 627) is set • when a serialopen() with argument comrs232 is used in the program both conditions power-up the interface and leave...

  • Page 266

    Section 7. Installation 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 cr1000 somewhere for 30 ms or so. Characters at the start of a r...

  • Page 267

    Section 7. Installation a different sequence, or task, within the same machine. If the process is relatively fast, like the move() instruction, and an asynchronous process is reading the data, this can be even worse because the “reading old data” will happen less often but is more insidious because ...

  • Page 268

    Section 7. Installation transparent mode is active and ready to transmit sdi-12 commands and display responses. Figure 72. Entering sdi-12 transparent mode 7.9.18.1.1 sdi-12 transparent mode commands commands have three components: • sensor address ( a) — a single character, and is the first charact...

  • Page 269

    Section 7. Installation table 43. Sdi-12 commands for transparent mode command name command syntax 1 response 2 notes break continuous spacing for at least 12 milliseconds none address query ?! A acknowledge active a! A change address aab! B (support for this command is required only if the sensor s...

  • Page 270

    Section 7. Installation aab! Changes the sensor address. A is the current address and b is the new address. Response is the new address. Syntax: aab! Ai! Requests the sensor identification. Response is defined by the sensor manufacturer, but usually includes the sensor address, sdi-12 version, manuf...

  • Page 271

    Section 7. Installation where: 5 reports the sensor sdi-12 address. 004 indicates the data will be available in 4 seconds. 10 indicates that 10 values will be available. The command 5m7! Elicites a similar response, but the appendage 7 instructs the sensor to return the voltage of the internal batte...

  • Page 272

    Section 7. Installation m command. The maximum number of characters returned in the part of the response is 75. Each r command is an independent measurement. For example, ar5! Need not be preceded by ar0! Through ar4!. If a sensor is unable to take a continuous measurement, then it must return its a...

  • Page 273

    Section 7. Installation command name sdirecorder() sdicommand argument sdi-12 command sent sensor response 1 cr1000 response notes address query ?! Cr1000: issues a?! Command. Only one sensor can be attached to the c terminal configured for sdi-12 for this command to elicit a response. Sensor must s...

  • Page 274

    Section 7. Installation the sdirecorder() acv command facilitates using the sdi-12 standard start concurrent command ( acv!) without the back-to-back measurement sequence normal to the cr1000 implementation of acv!. Consider an application wherein four sdi-12 temperature sensors need to be near- sim...

  • Page 275

    Section 7. Installation sdi12recorder (temp(4),1,3,"m!",1.0,0) nextscan endsequence endprog however, problems 2 and 3 still are not resolved. These can be resolved by using the concurrent measurement command, c!. All measurements will be made at about the same time and execution time will be about 9...

  • Page 276

    Section 7. Installation crbasic example 55. Using sdi12sensor() to test cv command 'this program example demonstrates how to use crbasic to simulate four sdi-12 sensors. This program can be used to 'produce measurements to test the crbasic example using alternate concurrent command (ac) (p. 277). Pu...

  • Page 277

    Section 7. Installation slowsequence do sdi12sensorsetup (1,7,3,95) delay (1,95,sec) sdi12sensorresponse (temp(4)) loop endsequence endprog crbasic example 56. Using alternate concurrent command (ac) 'this program example demonstrates the use of the special sdi-12 concurrent measurement 'command (ac...

  • Page 278

    Section 7. Installation '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,2,cmd(3),1.0,0) sdi12recorder (temp_tmp(4),1,3,cmd(4),1.0,0) 'control measurement event for x = 1 to 4 if cmd(x) = "c!" then retry(x)...

  • Page 279

    Section 7. Installation information on parsing strings, see input programming basics (p. 251). Crbasic example 57. Using an sdi-12 extended command 'this program example demonstrates the use of sdi-12 extended commands. In this example, 'a temperature measurement, tt.Tt, is sent to a ch200 charging ...

  • Page 280

    Section 7. Installation when programmed as an sdi-12 sensor, the cr1000 will respond to sdi-12 commands m, mc, c, cc, r, rc, v, ?, and i. See table sdi-12 commands for transparent mode (p. 269) for full command syntax. The following rules apply: 1. A cr1000 can be assigned only one sdi-12 address pe...

  • Page 281

    Section 7. Installation table 44. Sdi-12 sensor setup crbasic example — results measurement command from sdi-12 recorder source variables accessed from the cr1000 acting as a sdi-12 sensor contents of source variables 0m! Source(1), source(2) temperature °c, battery voltage 0m0! Same as 0m! 0m1! Sou...

  • Page 282

    Section 7. Installation table 45. Example power usage profile for a network of sdi-12 probes time (s) command all probes awake time out expires 1 ma 2 ma 3 ma 4 ma total ma 1 1m! Yes 120 66 66 66 318 2 120 66 66 66 318 • • • • • • • • • • • • • • • • • • 14 120 66 66 66 318 15 yes 120 66 66 66 318 1...

  • Page 283

    Section 7. Installation table 46. String operators operator description & concatenates strings. Forces numeric values to strings before concatenation. Example 1 & 2 & 3 & "a" & 5 & 6 & 7 = "123a567" + adds numeric values until a string is encountered. When a string is encountered, it is appended to ...

  • Page 284

    Section 7. Installation + operation is performed. When working with strings, exclusive use of the & operator ensures that no string value will be converted to an integer. Table 47. String concatenation examples expression comments result str(1) = 5.4 + 3 + " volts" add floats, concatenate strings "8...

  • Page 285

    Section 7. Installation i += 1 num(i) = 1 + 2 + "3" + 4 + 5 + "6" '= 33456 i += 1 num(i) = 1 + 2 + "3" + (4 + 5) + "6" '= 3396 i += 1 num(i) = 1 + 2 + "3" + 4 * 5 + "6" '= 33206 i += 1 num(i) = 1 & 2 + 3 + 4 '= 1234 i += 1 num(i) = 1 + 2 + 3 & 4 '= 64 'if a non-numeric string is attempted to be proc...

  • Page 286

    Section 7. Installation but, stringvar(3) still = "12356789", so, stringvar(5) = stringvar(3,1,4+1) '"56789" stringvar(6) = stringvar(3) + 4 + stringvar(3,1,4+1) '"123456789" some smart sensors send strings containing null characters. To manipulate a string that has null characters within it (in add...

  • Page 287

    Section 7. Installation 7.9.19.6 string use of ascii / ansii codes table 50. Use of ascii / ansii codes examples expression comments result longvar (7) = ascii("#") 35 longvar (8) = ascii("*") 42 longvar (9) = "#" cannot be converted to long with null nan longvar (1) = "#"-"" can be converted to lon...

  • Page 288

    Section 7. Installation 7.9.19.8 formatting string hexadecimal variables table 52. Formatting hexadecimal variables — examples expression comment result crlfnumeric(1) = &h0d0a add leading zero to hex step 1 3338 stringvar(20) = "0" & hex(crlfnumeric) add leading zero to hex step 2 0d0a crlfnumeric(...

  • Page 289

    Section 7. Installation crbasic example 61. Subroutine with global and local variables 'this program example demonstrates the use of global and local variables with subroutines. ' 'global variables are those declared anywhere in the program as public or dim. 'local variables are those declared in th...

  • Page 290

    Section 7. Installation the following tcp/ip protocols are supported by the cr1000 when using network-links (p. 652) that use the resident ip stack or when using a cell modem with the ppp/ip key enabled. More information on some of these protocols is in the following sections. • dhcp • dns • ftp • h...

  • Page 291

    Section 7. Installation 7.9.21.2 default http web server the cr1000 has a default home page built into the operating system. The home page can be accessed using the following url: http:\\ipaddress:80 note port 80 is implied if the port is not otherwise specified. As shown in the figure, preconfigure...

  • Page 292

    Section 7. Installation beginning and end of alphanumeric strings inside the parentheses of the httpout() instruction. For additional information, see the crbasic editor help. In this example program, the default home page is replaced by using webpagebegin to create a file called default.Html. The n...

  • Page 293

    Section 7. Installation figure 75. Customized numeric-monitor web page crbasic example 62. Custom web page html 'this program example demonstrates the creation of a custom web page that resides in the 'cr1000. In this example program, the default home page is replaced by using webpagebegin to 'creat...

  • Page 294

    Section 7. Installation httpout (" temperature: " + temperature + " httpout (" httpout (" chr (34) +"monitor.Html"+ chr (34)+">monitor chr (34) +"monitor.Html"+ chr (34)+">monitor httpout (" ") httpout (" ") webpageend 'monitor web page webpagebegin ("monitor.Html",commands) httpout ("") httpout ("b...

  • Page 295

    Section 7. Installation 7.9.21.6 telnet telnet is used to access the same commands that are available through the support software terminal emulator (p. 530). Start a telnet session by opening a dos command prompt and type in: telnet xxx.Xxx.Xxx.Xxx where xxx.Xxx.Xxx.Xxx is the ip address of the net...

  • Page 296

    Section 7. Installation 7.9.21.12 dns the cr1000 provides a domain name server (dns) client that can query a dns server to determine if an ip address has been mapped to a hostname. If it has, then the hostname can be used interchangeably with the ip address in some datalogger instructions. 7.9.21.13...

  • Page 297

    Section 7. Installation table 53. Windvector() outputopt options option description (wvc() is the output array) 4 wvc(1): unit vector mean wind direction (Θ1) wvc(2): standard deviation of wind direction σ(Θu). This standard deviation is calculated using campbell scientific's wind speed weighted alg...

  • Page 298

    Section 7. Installation the epa recommends hourly standard deviation of horizontal wind direction (sigma theta) be computed from four fifteen-minute sub-intervals. 7.9.22.2.1 measured raw data • s i : horizontal wind speed • Θ i : horizontal wind direction • ue i : east-west component of wind • un i...

  • Page 299

    Section 7. Installation where 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 77. Mean wind-vector graph where for polar sensors: 299.

  • Page 300

    Section 7. Installation 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. 300), that ...

  • Page 301

    Section 7. Installation 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 in speed are not correlated with the deviation in direction. This assumption has been verified in tests on wind data by campb...

  • Page 303: 8.  Operation

    8. Operation reading list • quickstart (p. 41) • specifications (p. 97) • installation (p. 99) • operation (p. 303) 8.1 measurements — details related topics: • sensors — quickstart (p. 42) • measurements — overview (p. 62) • measurements — details (p. 303) • sensors — lists (p. 649) several feature...

  • Page 304

    Section 8. Operation • data processed into averages, maxima, minima, and so forth are composites of several measurements. Associated time stamps only reflect the time the last measurement was made and processing calculations were completed, so the significance of the exact time a specific sample was...

  • Page 305

    Section 8. Operation other time-processing crbasic instructions are governed by these same rules. Consult crbasic editor help for more information on specific instructions. 8.1.2 analog measurements — details related topics: • analog measurements — overview (p. 63) • analog measurements — details (p...

  • Page 306

    Section 8. Operation figure. Simplified voltage measurement sequence -- 8 10 30 figure 79. Simplified voltage measurement sequence voltage measurements are made using a successive approximation a-to-d (p. 507) converter to achieve a resolution of 14 bits. Prior to the a-to-d, a high impedance progra...

  • Page 307

    Section 8. Operation the cr1000 measures analog voltage by integrating the input signal for a fixed duration and then holding the integrated value during the successive approximation analog-to-digital (a-to-d) conversion. The cr1000 can make and store measurements from up to eight differential or 16...

  • Page 308

    Section 8. Operation numbered se terminals on the cr1000 wiring panel. The single-ended configuration is used with the following crbasic instructions: • voltse() • brhalf() • brhalf3w() • tcse() • therm107() • therm108() • therm109() • thermistor() related topics: • differential measurements — overv...

  • Page 309

    Section 8. Operation an approximate 9% range overhead exists on fixed input voltage ranges. In other words, over-range on the ±2500 mv input range occurs at approximately 2725 mv and –2725 mv. The cr1000 indicates a measurement over-range by returning a nan (not a number) for the measurement. Automa...

  • Page 310

    Section 8. Operation input limits / common-mode range related topicss: • voltage measurements — specifications • voltage measurements — overview (p. 63) • voltage measurements — details (p. 305) note this section contains advanced information not required for normal operation of the cr1000. Summary ...

  • Page 311

    Section 8. Operation figure 81. Pgia with input-signal decomposition – 8.1.2.1.3 voltage measurement quality read more consult the following technical papers at www.Campbellsci.Com/app- notes (http://www.Campbellsci.Com/app-notes) for in-depth treatments of several topics addressing voltage measurem...

  • Page 312

    Section 8. Operation reasons for using single-ended measurements, however, include: • not enough differential terminals available. Differential measurements use twice as many h/l] terminals as do single-ended measurements. • rapid sampling is required. Single-ended measurement time is about half tha...

  • Page 313

    Section 8. Operation (v+ + v–)/2 or the voltage remaining on the inputs when v dm = 0. The total voltage on the v+ and v– inputs is given as v+ = v cm + v dm /2, and v l = v cm – v dm /2, respectively. Measurement accuracy read more for an in-depth treatment of accuracy estimates, see the technical ...

  • Page 314

    Section 8. Operation 7.5 1.0 2.0 2.5 0.33 0.67 note — see specifications (p. 97) for a complete tabulation of measurement resolution as an example, figure voltage measurement accuracy band example (p. 314) shows changes in accuracy as input voltage changes on the ±2500 input range. Percent-of-readin...

  • Page 315

    Section 8. Operation 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: • sensor-signal voltage: ≈2500 mv • crbasic measurement instruction: voltdi...

  • Page 316

    Section 8. Operation 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 rej...

  • Page 317

    Section 8. Operation to-d (p. 507) conversion as listed in table ac noise rejection on small signals (p. 317). Table 60. Ac noise rejection on small signals 1 ac power line frequency measurement integration duration crbasic integration code 60 hz 16.667 ms _60hz 50 hz 20 ms _50hz 1 applies to all an...

  • Page 318

    Section 8. Operation • a relatively large transient induced by an adjacent excitation conductor on the signal conductor, if present,because of capacitive coupling during a bridge measurement • dielectric absorption. 50 hz or 60 hz integrations require a relatively long reset time of the internal int...

  • Page 319

    Section 8. Operation table 62. Crbasic measurement settling times settlingtime argument integ argument resultant settling time 1 1 450 µs is the minimum settling time required to meet cr1000 resolution specifications. Settling errors when sensors require long lead lengths, use the following general ...

  • Page 320

    Section 8. Operation crbasic example 64. Measuring settling time 'this program example demonstrates the measurement of settling time using a single 'measurement instruction multiple times in succession. In this case, the program measures 'the temperature of the cr1000 wiring panel. Public reftemp 'd...

  • Page 321

    Section 8. Operation figure 85. Settling time for pressure transducer table 63. 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.03658...

  • Page 322

    Section 8. Operation appending the range code with a c results in a 50 µs internal connection of the v+ input of the pgia to a large over-voltage. The v– input is connected to ground. Upon disconnecting the inputs, the true input signal is allowed to settle and the measurement is made normally. If t...

  • Page 323

    Section 8. Operation offset voltage compensation related topics • auto calibration — overview (p. 92) • auto calibration — details (p. 344) • auto-calibration — errors (p. 490) • offset voltage compensation (p. 323) • factory calibration (p. 94) • factory calibration or repair procedure (p. 476) sum...

  • Page 324

    Section 8. Operation voltages, especially those below 200 mv, such as are output from pyranometers and thermocouples. Differential measurements also have the advantage of an input reversal option, revdiff. When revdiff is true, two differential measurements are made, the first with a positive polari...

  • Page 325

    Section 8. Operation a measurement sequence if a single measurement instruction must be used. The table offset-voltage compensation options (p. 325) lists some of the tools available to minimize the effects of offset voltages. Table 65. Offset voltage compensation options crbasic measurement instruc...

  • Page 326

    Section 8. Operation 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 there are four delays per measure. The cr100...

  • Page 327

    Section 8. Operation 8.1.2.2 thermocouple measurements —- details related topics: • thermocouple measurements — details • thermocouple measurements — instructions thermocouple measurements are special case voltage measurements. Note thermocouples are inexpensive and easy to use. However, they pose s...

  • Page 328

    Section 8. Operation voltage polynomial fit error, the non-ideal nature of the thermocouple (deviation from standards published in nist monograph 175), the thermocouple-voltage measurement accuracy, and the voltage-to-temperature polynomial fit error (difference between nist standard and cr1000 poly...

  • Page 329

    Section 8. Operation figure 86. Panel-temperature error summary figure 87. Panel-temperature gradients (low temperature to high) 329.

  • Page 330

    Section 8. Operation figure 88. Panel-temperature gradients (high temperature to low) thermocouple limits of error the standard reference that lists thermocouple output voltage as a function of temperature (reference junction at 0°c) is the nist (national institute of standards and technology) monog...

  • Page 331

    Section 8. Operation thermocouple. Table 66. Limits of error for thermocouple wire (reference junction at 0°c) thermocouple temperature limits of error (whichever is greater) type range °c standard special t –200 to 0 ± 1.0 °c or 1.5% 0 to 350 ± 1.0 °c or 0.75% ± 0.5 °c or 0.4% j 0 to 750 ± 2.2 °c o...

  • Page 332

    Section 8. Operation table 67. Voltage range for maximum thermocouple resolution reference temperature at 20°c tc type and temperature range (°c) temperature range (°c) for ±2.5 mv input range temperature range (°c) for ±7.5 mv input range temperature range (°c) for ±25 mv input range temperature ra...

  • Page 333

    Section 8. Operation reference temperature = 25 °c delta t (temperature difference) = 20 °c thermocouple output multiplier at 45 °c = 42.4 µv °c -1 thermocouple output = 20°c • 42.4 µv °c -1 = 830.7 µv input range = ±2.5 mv error calculations with input reversal = true µv error = gain term + offset ...

  • Page 334

    Section 8. Operation error calculations with input reversal = false µv error = gain term + offset term = (44500 µv * 0.12%) + (3 * 66.7 µv + 2.0 µv) = 53.4 µv + 200 µv = 7.25 µv (= 7.25 °c) ground looping error when the thermocouple measurement junction is in electrical contact with the object being...

  • Page 335

    Section 8. Operation table 68. Limits of error on cr1000 thermocouple polynomials tc type range °c limits of error °c relative to nist standards 200 to 1000 ±0.02 k – 50 to 1372 –50 to 950 ±0.01 950 to 1372 ±0.04 reference-junction error thermocouple instructions tcdiff() and tcse() include the para...

  • Page 336

    Section 8. Operation • the typical (and industry accepted) manufacturing error of thermocouple wire • the reference temperature the table thermocouple error examples (p. 336) tabulates the relative magnitude of these errors. It shows a worst case example where, • a temperature of 45 °c is measured w...

  • Page 337

    Section 8. Operation junction box wherein the reference junction is the cr1000. Terminal strips are a different metal than the thermocouple wire. Thus, if a temperature gradient exists between a and a' or b and b', the junction box will act as another thermocouple in series, creating an error in the...

  • Page 338

    Section 8. Operation by supplying a precise and known voltage to a resistive-bridge circuit and measuring the returning voltage, resistance can be calculated. Crbasic instructions for measuring resistance include: brhalf() — half-bridge brhalf3w() — three-wire half-bridge brhalf4w() — four-wire half...

  • Page 339

    Section 8. Operation table 71. Resistive-bridge circuits with voltage excitation resistive-bridge type and circuit diagram crbasic instruction and fundamental relationship other relationships half-bridge 1 crbasic instruction: brhalf() fundamental relationship 2 : three-wire half-bridge 1,3 crbasic ...

  • Page 340

    Section 8. Operation table 71. Resistive-bridge circuits with voltage excitation resistive-bridge type and circuit diagram crbasic instruction and fundamental relationship other relationships full-bridge 1,3 crbasic instruction: brfull() fundamental relationship 2 : these relationships apply to brfu...

  • Page 341

    Section 8. Operation crbasic example 65. 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 resistan...

  • Page 342

    Section 8. Operation note error discussed in this section and error-related specifications of the cr1000 do not include error introduced by the sensor or by the transmission of the sensor signal to the cr1000. The accuracy specifications for ratiometric-resistance measurements are summarized in the ...

  • Page 343

    Section 8. Operation sets the polarity of v r to negative. Table 73. Straincalc() instruction equations straincalc() brconfig code configuration 1 quarter-bridge strain gage: 2 half-bridge strain gage. One gage parallel to strain, the other at 90° to strain. 3 half-bridge strain gage. One gage paral...

  • Page 344

    Section 8. Operation straincalc example: see fieldcalstrain() examples (p. 223) 8.1.2.6 auto-calibration — details related topics • auto calibration — overview (p. 92) • auto calibration — details (p. 344) • auto-calibration — errors (p. 490) • offset voltage compensation (p. 323) • factory calibrat...

  • Page 345

    Section 8. Operation worst-case is (91 segments) • (4 s / segment) = 364 s per complete self-calibration. During instrument power-up, the cr1000 computes calibration coefficients by averaging ten complete sets of self-calibration measurements. After power up, newly determined g and b values are low-...

  • Page 346

    Section 8. Operation table 74. Auto calibration gains and offsets status table element descriptions of status table elements differential (diff) single-ended (se) offset or gain ±mv input range integration calgain(1) gain 5000 250 ms calgain(2) gain 2500 250 ms calgain(3) gain 250 250 ms calgain(4) ...

  • Page 347

    Section 8. Operation table 74. Auto calibration gains and offsets status table element descriptions of status table elements differential (diff) single-ended (se) offset or gain ±mv input range integration calseoffset(16) se offset 25 50 hz rejection calseoffset(17) se offset 7.5 50 hz rejection cal...

  • Page 348

    Section 8. Operation table 75. Calibrate() instruction results array cal() element descriptions of array elements typical value differential (diff) single-ended (se) offset or gain ±mv input range integration 10 se offset 25 250 ms ±5 lsb 11 diff offset 25 250 ms ±5 lsb 12 gain 25 250 ms –0.0067 mv/...

  • Page 349

    Section 8. Operation table 75. Calibrate() instruction results array cal() element descriptions of array elements typical value differential (diff) single-ended (se) offset or gain ±mv input range integration 44 diff offset 250 50 hz rejection ±5 lsb 45 gain 250 50 hz rejection –0.067 mv/lsb 46 se o...

  • Page 350

    Section 8. Operation figure 91. Pulse-sensor output-signal types figure 92. Switch-closure pulse sensor 350

  • Page 351

    Section 8. Operation figure 93. Terminals configurable for pulse input table 76. Pulse measurements:, terminals and programming measurement p terminals c terminals crbasic instruction low-level ac, counts puls eco unt () low-level ac, hz low-level ac, running average high frequency, counts high freq...

  • Page 352

    Section 8. Operation 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. Contact a campbell scientific application engineer if assistance is needed. Under no circumstanc...

  • Page 353

    Section 8. Operation 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 0.3 to 20 khz at 5000 mv rms • crbasic instruction: pulsecount() internal ac coupling is used to eliminate dc-offset vo...

  • Page 354

    Section 8. Operation where fr = resolution of the frequency measurement (hz) s = scan interval of crbasic program resolution of a frequency measurement made with the timerio() instruction is where fr = frequency resolution of the measurement (hz) r = timing resolution of the timerio() measurement = ...

  • Page 355

    Section 8. Operation a: in the background, a 32-bit-timer counter is saved each time the signal transitions as programmed (rising or falling). This counter is running at a fixed high frequency. A count is also incremented for each transition. When the timerio() instruction executes, it uses the diff...

  • Page 356

    Section 8. Operation c terminals • maximum input frequency • crbasic instruction: timerio() • rising or falling edges of a square-wave signal are detected: o rising edge — transition from 3.5 vdc. O falling edge — transition from >3.5 vdc to • edge-timing resolution is approximately 540 ns. 8.1.3.6 ...

  • Page 357

    Section 8. Operation table 79. Switch closures and open collectors on p terminals switch closure on p terminal open collector on on p terminal table 80. Switch closures and open collectors on c terminals switch closure on c terminal: no pull-up switch closure on c terminal: 5 vdc pull-up open collec...

  • Page 358

    Section 8. Operation switch closure on c terminal: 12 vdc pull-up open collector on c terminal: 12 vdc pull-up internal cr1000 circuitry that supports open-collector and switch-closure measurements (fyi) • pay attention to specifications. Take time to understand the signal to be measured and compati...

  • Page 359

    Section 8. Operation 8.1.3.7.1 timerio() nan conditions • nan will be the result of a timerio() measurement if one of two conditions occurs: o timeout expires o the signal frequency is too fast (> 3 khz). When a c terminal experiences a too fast frequency, the cr1000 operating system disables the in...

  • Page 360

    Section 8. Operation table 83. Low-level ac amplitude and maximum measured frequency ac mv (rms) maximum frequency 20 200 2000 5000 20 200 10,000 20,000 figure 94. Amplitude reduction of pulse-count waveform (before and after 1 µs time-constant filter) 8.1.4 period averaging — details related topics...

  • Page 361

    Section 8. Operation signals, but it is not recommended for small amplitude sensor signals. For sensor amplitudes less than 20 mv peak-to-peak, a dc blocking capacitor is recommended to center the signal at cr1000 ground (threshold = 0) because of offset voltage drift along with limited accuracy (±1...

  • Page 362

    Section 8. Operation the figure vibrating-wire sensor (p. 362) illustrates basic construction of a sensor. To make a measurement, plucking and pickup coils are excited with a swept frequency (p. 530). The ideal behavior then is that all non-resonant frequencies quickly decay, and the resonant freque...

  • Page 363

    Section 8. Operation 76) for those terminals and serial ports configurable for either ttl or true rs-232 communications. Use of the cs i/o port for true rs-232 communications requires use of an interface device. See the appendix cs i/o serial interfaces (p. 652). If additional serial inputs are requ...

  • Page 364

    Section 8. Operation by adding fieldcal() or fieldcalstrain() instructions to the cr1000 crbasic program, measurements of a linear sensor can be adjusted by modifying the programmed multiplier and offset applied to the measurement. 8.1.8 cabling effects related topics: • cabling effects — overview (...

  • Page 365

    Section 8. Operation 8.1.9 synchronizing measurements related topics: • synchronizing measurements — overview (p. 74) • synchronizing measurements — details (p. 365) timing of a measurement is usually controlled relative to the cr1000 clock. When sensors in a sensor network are measured by a single ...

  • Page 366

    Section 8. Operation 4. Radios — a pakbus enabled radio network has an advantage over ethernet in that clockreport() can be broadcast to all dataloggers in the network simultaneously. Each will set its clock with a single pakbus broadcast from the master. Each datalogger in the network must be progr...

  • Page 367

    Section 8. Operation 8.2.2 pulse-input modules read more for more information see appendix pulse-input modules list (p. 646). Pulse-input expansion modules are available for switch-closure, state, pulse-count and frequency measurements, and interval timing. 8.2.2.1 low-level ac input modules — overv...

  • Page 368

    Section 8. Operation digital-to-analog conversion to output an analog voltage or current. The output level is maintained until updated by the cr1000. 8.2.7 plc control modules — overview related topics: • plc control — overview (p. 74) • plc control — details (p. 244) • plc control modules — overvie...

  • Page 369

    Section 8. Operation figure 99. Current sourcing from c terminals configured for control 8.2.7.2 relays and relay drivers read more for more information see appendix relay drivers modules list (p. 649). Several relay drivers are manufactured by campbell scientific. Compatible, inexpensive, and relia...

  • Page 370

    Section 8. Operation figure 100. Relay driver circuit with relay figure 101. Power switching without relay 8.3 memory related topics: • memory — overview (p. 87) • memory — details (p. 370) • data storage devices — list (p. 653) 8.3.1 storage media cr1000 memory consists of four non-volatile storage...

  • Page 371

    Section 8. Operation table cr1000 memory allocation (p. 371) and table cr1000 sram memory (p. 372) illustrate the structure of cr1000 memory around these media. The cr1000 uses and maintains most memory features automatically. However, users should periodically review areas of memory wherein data fi...

  • Page 372

    Section 8. Operation table 84. Cr1000 memory allocation internal serial flash 3 512 kb • device settings (12 kb) — pakbus address and settings, station name. Rebuilt when a setting changes. • cpu:drive (500 kb) — program files, field calibration files, other files not frequently overwritten. When a ...

  • Page 373

    Section 8. Operation table 85. Cr1000 main memory use comments static memory operational memory used by the operating system. Rebuilt at power-up, program re-compile, and watchdog events. ———————————— operating settings and properties "keep" (p. 519) memory. Stores settings such as pakbus address, s...

  • Page 374

    Section 8. Operation table 86. Memory drives drive recommended file types cpu: 1 cr1, .Cal usr: 2 cr1, .Cal usb: .Dat crd: principal use is to expand final-data memory (p. 515), but it is also used to store .Jpg, cr1, and .Dat files. 1 the cpu: drive uses a fat16 file system, so it is limited to 128...

  • Page 375

    Section 8. Operation 8.3.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 helps ...

  • Page 376

    Section 8. Operation caution when removing mass-storage devices, do so when the led is not flashing or lit. Consider the following when using campbell scientific mass-storage devices: • format as fat32 • connect to the cr1000 cs i/o port • remove only when inactive or data corruption may result 8.3....

  • Page 377

    Section 8. Operation to sram. When a card is inserted later, data accumulated in the sram table are copied to the card. Formatting memory cards the cr1000 accepts memory cards formatted as fat or fat32; however, fat32 is recommended. Otherwise, some functionality, such as the ability to manage large...

  • Page 378

    Section 8. Operation header, time stamps, and record numbers are usually required. Fully compatible formats are indicated with an asterisk. A more detailed discussion of data-file formats is available in the campbell scientific publication loggernet instruction manual, which is available at www.Camp...

  • Page 379

    Section 8. Operation data-file format examples tob1 tob1 files may contain an ascii header and binary data. The last line in the example contains cryptic text which represents binary data. Example: "tob1","11467","cr1000","11467","cr1000.Std.20","cpu:file format.Cr1","61449","test" "seconds","nanose...

  • Page 380

    Section 8. Operation csijson csijson files contain header information and data in a json (p. 519) format. Example: "signature": 38611,"environment": {"stationfiname": "11467","tablefiname": "test","model": "cr1000","serialfino": "11467", "osfiversion": "cr1000.Std.21.03","progfiname": "cpu:file form...

  • Page 381

    Section 8. Operation 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 ensure data integrity and provide an up-count data field for graphing operations. The maximum record numb...

  • Page 382

    Section 8. Operation editor compile, save and send (p. 511). See preserving data at program send (p. 127) for a more-detailed discussion of preserve / erase data at program send. 8.3.3.3 manual data-table reset data-table memory is selectively reset from • support software station status (p. 529) co...

  • Page 383

    Section 8. Operation table 89. File-control functions file-control functions accessed through deleting files from memory drives file control 2 , power-up with campbell scientific mass storage device or memory card 5 , web api filecontrol stopping program execution file control 2 , web api filecontro...

  • Page 384

    Section 8. Operation table 90. Cr1000 file attributes attribute function attribute for programs sent to cr1000 with: (see table powerup.Ini commands (p. 388) ). Run on power-up runs only on power-up a) file control 2 with run on power-up checked. B) campbell scientific mass storage device or memory ...

  • Page 385

    Section 8. Operation serial number inserted. 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 stor...

  • Page 386

    Section 8. Operation table 91. Data-preserve options if "preserve data if no table changed" keep cf data from overwritten program if current program = overwritten program keep cpu data keep cache data else erase cpu data erase cache data end if end if if "erase cf data" erase cf data from overwritte...

  • Page 387

    Section 8. Operation • formatting memory drives. • deleting data files associated with the previously running program. When power is connected to the cr1000, it searches for powerup.Ini and executes the command(s) prior to compiling a program. Powerup.Ini performs three operations: 1. Copies the pro...

  • Page 388

    Section 8. Operation table 92. Powerup.Ini commands and applications command description applications 1 1 run always, preserve data copies the specified program to the designated drive and sets the run attribute of the program to run always. Data on a cf card from the previously running program will...

  • Page 389

    Section 8. Operation table 95. Powerup.Ini example. Format the usr: drive 'format the usr: drive 5,,usr: table 96. Powerup.Ini example. Send os on power-up 'load an operating system (.Obj) file into flash as the new os. 9,cr1000.Std.28.Obj table 97. Powerup.Ini example. Run program from usb: drive '...

  • Page 390

    Section 8. Operation available drives. All occurrences are rare, but they are most likely to occur when using the crd: drive. Table 100. File system error codes error code description 1 invalid format 2 device capabilities error 3 unable to allocate memory for file operation 4 max number of availabl...

  • Page 391

    Section 8. Operation table 100. File system error codes error code description 36 miscellaneous i/o error 37 pipe size of 0 requested 38 memory-release error (relmem) 39 fat sectors unreadable (all copies) 40 bad bpb sector 41 time-out waiting for filesystem available 42 controller failure error 43 ...

  • Page 392

    Section 8. Operation 8.4.1 protocols the cr1000 communicates with datalogger support software (p. 95) and other campbell scientific dataloggers (p. 645) using the pakbus (p. 522) protocol. See the section alternate telecommunications — details (p. 407) for information on other supported protocols, s...

  • Page 393

    Section 8. Operation applications. Caution when using the comme communication port with non-pakbus protocols, incoming characters can be corrupted by concurrent use of the cs i/o for sdc communications. Pakbus communications use a low-level protocol (pause / finish / ready sequence) to stop incoming...

  • Page 394

    Section 8. Operation pc and allows backup of settings on the pc hard drive. Pakbusgraph is used over a telecommunication link to change settings, but has no provision for backup. Caution care should be taken when changing pakbus ® addresses with pakbusgraph or in the status table. If an address is c...

  • Page 395

    Section 8. Operation table 101. Pakbus leaf-node and router device configuration network device description pakbus leaf node pakbus router pakbus aware transparent cr200x datalogger • cr6 cs i/o port datalogger • • cr800 datalogger • • cr1000 datalogger • • cr3000 datalogger • • cr5000 datalogger • ...

  • Page 396

    Section 8. Operation • neighbor • neighbor-filters • hello • hello-exchange • hello-message • hello-request • cvi • beacon to form a network, nodes must establish links with neighbors (neighbors are adjacent nodes). Links are established through a process called discovery. Discovery occurs when node...

  • Page 397

    Section 8. Operation event the primary path fails. Redundant and unreliable paths can be eliminated by activating neighbor-filters in the various nodes and by disabling some beacons. 8.5.3.6 maintaining links links are maintained by means of the cvi (p. 511). The cvi can be specified in each node wi...

  • Page 398

    Section 8. Operation hence, the size of the responses to the file-receive commands that the cr1000 sends is governed by the max packet size setting for the datalogger as well as that of any of its parents in the loggernet network map. Note that this calculation also takes into account the error rate...

  • Page 399

    Section 8. Operation figure 103. Flat map figure 104. Tree map the difference between the two configurations is that the flat map configures the router with static routes that report that all of the dataloggers are neighbours to the server. The tree map configures static routes wherein "cr1000" is c...

  • Page 400

    Section 8. Operation 8.5.6 pakbus lan example to demonstrate pakbus networking, a small lan (local area network) of cr1000s can be configured as shown in figure configuration and wiring of pakbus lan (p. 400). A pc running loggernet uses the rs-232 port of the first cr1000 to communicate with all cr...

  • Page 401

    Section 8. Operation 8.5.6.2 lan setup configure cr1000s before connecting them to the lan: 1. Start device configuration utility (devconfig). Click on device type: select cr1000. Follow on-screen instructions to power cr1000s and connect them to the pc. Close other programs that may be using the pc...

  • Page 403

    Section 8. Operation table 103. Pakbus-lan example datalogger-communication settings software→ device configuration utility (devconfig) tab→ deployment sub-tab→ datalogger comport settings advanced setting→ pakbus adr com1 com2 is router sub-setting→ baud rate neighbors 1 baud rate neighbors 1 datal...

  • Page 404

    Section 8. Operation figure 110. Loggernet network-map setup: pakbusport as shown in figure loggernet device map setup: pakbusport (p. 404), set the pakbusport maximum baud rate to 115200. Leave other settings at the defaults. Figure 111. Loggernet network-map setup: dataloggers as shown in figure l...

  • Page 405

    Section 8. Operation 8.5.7 route filters the route filters setting restricts routing or processing of some pakbus message types so that a "state changing" message can only be processed or forwarded by this cr1000 if the source address of that message is in one of the source ranges and the destinatio...

  • Page 406

    Section 8. Operation com4 (c7,c8) 12 ip 1 101,102,… 1 if the value of the port number is ≥ 101, the connection is made through pakbus/tcp, either by the cr1000 executing a tcpopen() instruction or by having a connection made to the pakbus/tcp cr1000 service. Via neighbor adr specifies address of nei...

  • Page 407

    Section 8. Operation receive only encrypted commands and data. Header level information needed for routing is not encrypted. An encrypted cr1000 can also communicate with an unencrypted datalogger. Use an encryptexempt() instruction in the crbasic program to define one or more pakbus addresses to wh...

  • Page 408

    Section 8. Operation the cr1000 communicates with datalogger support software (p. 95) and other campbell scientific dataloggers (p. 645) using the pakbus (p. 522) protocol. Modbus, dnp3, tcp/ip, and several industry-specific protocols are also supported. Can bus is supported when using the campbell ...

  • Page 409

    Section 8. Operation table 105. Dnp3 implementation — data types required to store data in public tables for object groups data type group description boolean 1 binary input 2 binary input change 10 binary output 12 control block long 30 analog input 32 analog change event 40 analog output status 41...

  • Page 410

    Section 8. Operation syntax dnpupdate (dnpslaveaddr,dnpmasteraddr) 8.6.1.2.3 programming for dnp3 data acquisition as shown in crbasic example implementation of dnp3 (p. 410), program the cr1000 to return data when polled by the dnp3 master using the following three actions: 1. Place dnp() at the be...

  • Page 411

    Section 8. Operation public iarray(4) as long public barray(2) as boolean public windspd public winddir public batt_volt public ptemp_c units windspd=meter/sec units winddir=degrees units batt_volt=volts units ptemp_c=deg c 'main program beginprog 'dnp communication over ip at 115.2kbps. Cr1000 dnp ...

  • Page 412

    Section 8. Operation the cr1000 supports modbus master and modbus slave communications for inclusion in modbus scada networks. Modbus is a widely used scada communication protocol that facilitates exchange of information and data between computers / hmi software, instruments (rtus) and modbus-compat...

  • Page 413

    Section 8. Operation terminal configured for control are inferred if parameter 5 of the modbusslave() instruction is set to 0. Coils are assigned to modbus registers 00001 to 09999. Term. Digital registers 10001 to 19999 hold values resulting from a digital measurement. Digital registers in the modb...

  • Page 414

    Section 8. Operation table 107. Crbasic ports, flags, variables, and, modbus registers cr1000 feature example crbasic declaration equivalent example modbus register terminal configured for control public port(8) 00001 to 00009 flag public flag(17) 00001 to 00018 boolean variable public arrayb(56) as...

  • Page 415

    Section 8. Operation 8.6.2.2.4 supported modbus function codes modbus protocol has many function codes. Cr1000 commands support the following. Table 108. 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...

  • Page 416

    Section 8. Operation 8.6.2.4 modbus over ip modbus over ip functionality is an option with the cr1000. Contact campbell scientific for details. 8.6.2.5 modbus q and a q: can modbus be used over an rs-232 link, 7 data bits, even parity, one stop bit? A: yes. Precede modbusmaster() / modbusslave() wit...

  • Page 417

    Section 8. Operation scan (1,sec,0,0) 'in the case of the cr1000 being the modbus master then the 'modbusmaster instruction would be used (instead of fixing 'the variables as shown between the beginprog and scan instructions). Modbusmaster (result,comrs232,-115200,5,3,register(),-1,2,3,100) 'movebyt...

  • Page 418

    Section 8. Operation 8.6.3.1 pakbus over tcp/ip and callback once the hardware has been configured, basic pakbus ® communication over tcp/ip is possible. These functions include the following: • sending programs • retrieving programs • setting the cr1000 clock • collecting data • displaying the curr...

  • Page 419

    Section 8. Operation figure 112. Preconfigured html home page 8.6.3.3 custom http web server although the default home page cannot be accessed for editing, it can be replaced with the html code of a customized web page. To replace the default home page, save the new home page under the name default....

  • Page 420

    Section 8. Operation figure 113. Home page created using webpagebegin() instruction figure 114. Customized numeric-monitor web page 420

  • Page 421

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

  • Page 422

    Section 8. Operation 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 page _ ...

  • Page 423

    Section 8. Operation 8.6.3.8 ping (ip) ping can be used to verify that the ip address for the network device connected to the cr1000 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 addr...

  • Page 424

    Section 8. Operation • data management ̶ collect data • 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 t...

  • Page 425

    Section 8. Operation if access to the cr1000 web server is attempted without correct security credentials, the cr1000 returns the error 401 authorization required. This error prompts the web browser or client to display a user name and password request dialog box. If .Csipasswd is blank or does not ...

  • Page 426

    Section 8. Operation table 109. Api commands, parameters, and arguments parameter commands in which the parameter is used function of parameter argument(s) format • browsesymbols • dataquery • clockset • clockcheck • filecontrol • listfiles specifies response format. • html, xml, json: apply to all ...

  • Page 427

    Section 8. Operation table 109. Api commands, parameters, and arguments parameter commands in which the parameter is used function of parameter argument(s) expr newestfile specifies path and wildcard expression for the desired set of files to collect. Path and wildcard expression 8.6.3.14.3 time syn...

  • Page 428

    Section 8. Operation examples: command for a response wherein symbols for all tables are returned as html http://192.168.24.106/?Command=browsesymbols&uri=dl:public&fo rmat=html command for a response wherein symbols for all fields in a single table (maindata) are returned as html http://192.168.24....

  • Page 429

    Section 8. Operation html tabular response: html page source: html public "-//ietf//dtd html//en"> read_only e false /td> /td> /td> /td> d> e xml response when xml is entered in the browsesymbols format parameter, the response will be formated as csixml (p. 90) with a browsesymbolsresponse root elem...

  • Page 430

    Section 8. Operation example page source output: .. Name="status" uri="dl:status" type="6" is_enabled="true" is_read_only="false" can_expand="true"/> name="maindata" uri="dl:maindata" type="6" is_enabled="true" is_read_only="false" can_expand="true"/> name="ballasttank1" uri="dl:ballasttank1" type="...

  • Page 431

    Section 8. Operation { "symbols": [ {"name": "status","uri": "dl:status","type": 6,"is_enabled": true,"is_read_only": false,"can_expand": true}, {"name": "maindata","uri": "dl:maindata","type": 6,"is_enabled": true,"is_read_only": false,"can_expand": true}, {"name": "ballasttank1","uri": "dl:ballast...

  • Page 432

    Section 8. Operation p1 optional. Specifies: • maximum number of records (most-recent) • beginning date and/or time (since-time, date-range). See time syntax (p. 427) for format. • beginning record number (since-record) • interval in seconds (backfill) p2 optional. Specifies: • ending date and/or ti...

  • Page 433

    Section 8. Operation command: http://192.168.24.106/?Command=dataquery&uri=dl:maindata.Cond41& format=html&mode=backfill&p1=7200 response: backfill all records since 3600 seconds ago dataquery response the dataquery format parameter determines the format of theresponse. For more detail concerning da...

  • Page 434

    Section 8. Operation xml response when xml is entered in the dataquery format parameter, the response will be formatted as csixml. Following is an example response. Q2 ballastline cr1000 18583 cr1000.Std.25 cpu:indianaharbor_081712.Cr1 33322 66 66 66 66 66 json response when json is entered in the d...

  • Page 435

    Section 8. Operation ....}, ...."fields": [{ ......"name": "induced_water", ......"type": "xsd:float", ......"process": "smp", ......"settable": false}] }, ......"data": [{ ......"time": "2012-08-21t22:41:50", ......"no": 104, ......"vals": [66] },{ ......"time": "2012-08-21t22:42:00", ......"no": 1...

  • Page 436

    Section 8. Operation "2012-05-04 03:00:00",10,0,-0.8754569,-0.9275675,-0.8910902,- 0.8546127,72.53336,0 "2012-05-04 04:00:00",11,0,-0.8949984,-0.9575311,-0.9106316,- 0.8793653,72.47779,0 "2012-05-04 05:00:00",12,0,-0.9236593,-0.9705587,-0.908026,- 0.8715487,72.4006,0 "2012-05-04 06:00:00",13,0,-0.91...

  • Page 437

    Section 8. Operation setvalueex requires a minimum .Csipasswd access level of 2 (set variables allowed). Table 113. Setvalueex api command parameters uri specifies the variable that should be set in the following format: dl:tablename.Fieldname value specifies the value to set format the following ta...

  • Page 438

    Section 8. Operation html response when html is entered in the setvalueex format parameter, the response will be html following are example responses. Html tabular response: html page source: html public "-//ietf//dtd html//en"> xml response when xml is entered in the setvalueex format parameter, th...

  • Page 439

    Section 8. Operation 8.6.3.14.7 clock functions — clockset command clockset allows a web client to set the cr1000 real time clock. Clockset takes the form: http://ip_address/?Command=clockset&format=html&time=yyyy-mm- ddthh:mm:ss.Ms clockset requires a minimum .Csipasswd access level of 1 (all acces...

  • Page 440

    Section 8. Operation html tabular response: html page source: html public "-//w3c//dtd html 4.01 transitional//en" "http://www.W3.Org/tr/html4/loose.Dtd"> html public "-//ietf//dtd html//en"> xml response when xml is entered in the clockset format parameter, the response will be formated as csixml (...

  • Page 441

    Section 8. Operation example: http://192.168.24.106/?Command=clockcheck&format=html response: checks the host cr1000 real time clock and requests the response be an html table. Clockcheck response the clockcheck format parameter determines the format of the response. If a format is not specified, th...

  • Page 442

    Section 8. Operation html page source: html public "-//w3c//dtd html 4.01 transitional//en" "http://www.W3.Org/tr/html4/loose.Dtd"> html public "-//ietf//dtd html//en"> xml response when xml is entered in the clockcheck format parameter, the response will be formated as csixml (p. 90) with a clockch...

  • Page 443

    Section 8. Operation password password in the .Csipasswrd file ipadr ip address of the cr1000 drive memory drive of the cr1000 examples: to load an operating system to the cr1000, open a command prompt window ("dos window") and execute the following command, as a continuous line: curl -xput -v -s -t...

  • Page 444

    Section 8. Operation curl -v -s --user username:password "http://192.168.24.106/?Command=filecontrol&file=cpu:program.Cr1 &action=1" both operations can be combined in a batch file. 8.6.3.14.10 file management — filecontrol command filecontrol allows a web client to perform file system operations on...

  • Page 445

    Section 8. Operation example: http://192.168.24.106/?Command=filecontrol&file=usr:apitest.Dat& action=4 response: apitest.Dat is deleted from the cr1000 usr: drive. Http://192.168.24.106/?Command=filecontrol&file=cpu:indianajones _090712_2.Cr1&action=1 response: set program file to run now. Http://1...

  • Page 446

    Section 8. Operation listfiles requires a minimum .Csipasswd access level of 3 (read only). Table 122. Listfiles api command parameters format specifies the format of the response. The values html, json, and xml are valid. If this parameter is omitted, or if the value is html, empty, or invalid, the...

  • Page 447

    Section 8. Operation html tabular response: html page source: html public "-//w3c//dtd html 4.01 transitional//en" "http://www.W3.Org/tr/html4/loose.Dtd"> html public "-//ietf//dtd html//en"> 447.

  • Page 448

    Section 8. Operation page source template: html public "-//ietf//dtd html//en"> xml response when xml is entered in the listfiles format parameter, the response will be formated as csixml (p. 90) with a listfilesresponse root element name. Following is an example response. Is_dir="true" 448 is_dir="...

  • Page 449

    Section 8. Operation path="cpu:" size="50000" last_write="yyyy-mm-ddthh:mm:ss.Xxx" run_now="false" run_on_power_up="false" read_only="false" paused="false" /> is_dir="false" path="cpu:lights-web.Cr1" last_write="yyyy-mm-ddthh:mm:ss.Xxx" size="16994" run_now="true" run_on_power_up="true" read_only="f...

  • Page 450

    Section 8. Operation newestfile requires a minimum .Csipasswd access level of 3 (read only) for all files except program files. Program files require access level 1 (all access allowed). Table 124. Newestfile api command parameters expr specifies the complete path and wildcard expression for the des...

  • Page 451

    Section 8. Operation routing, or scheduled data collection. • loggernet datalogger support software supports combined telecommunication options, customized data-monitoring displays, and scheduled data collection. It includes short cut and crbasic editor for creating cr1000 programs. It also includes...

  • Page 452

    Section 8. Operation table 125. Special keyboard-display key functions key special function [end] move cursor to bottom of the list [pg up] move cursor up one screen [pg dn] move cursor down one screen [bkspc] delete character to the left [shift] change alpha character selected [num lock] change to ...

  • Page 453

    Section 8. Operation figure 115. Using the keyboard / display 453.

  • Page 454

    Section 8. Operation 8.8.1 data display figure 116. Displaying data with the keyboard / display 454.

  • Page 455

    Section 8. Operation 8.8.1.1 real-time tables and graphs figure 117. Real-time tables and graphs 8.8.1.2 real-time custom the cr1000kd keyboard display can be configured with a customized real-time display. The cr1000 will keep the setup as long as the defining program is running. Read more custom m...

  • Page 456

    Section 8. Operation figure 118. Real-time custom 456.

  • Page 457

    Section 8. Operation 8.8.1.3 final-memory tables figure 119. Final-memory tables 457.

  • Page 458

    Section 8. Operation 8.8.2 run/stop program figure 120. Run/stop program 458.

  • Page 459

    Section 8. Operation 8.8.3 file display figure 121. File display 8.8.3.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 aware that, unless prog...

  • Page 460

    Section 8. Operation figure 122. File: edit 460

  • Page 461

    Section 8. Operation 8.8.4 pccard (memory card) display figure 123. Pccard (cf card) display 461.

  • Page 462

    Section 8. Operation 8.8.5 ports and status read more see the appendix registers. Figure 124. C terminals (ports) status 8.8.6 settings figure 125. Settings 462.

  • Page 463

    Section 8. Operation 8.8.6.1 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.8.6.2 pakbus settings in the settings menu, move the cursor to the pakbus® element and press enter to change it. After modifyi...

  • Page 464

    Section 8. Operation 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 datalogg...

  • Page 465

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

  • Page 466

    Section 8. Operation 8.10 memory cards and record numbers related topics: • memory card (crd: drive) — overview (p. 89) • memory card (crd: drive) — details (p. 376) • memory cards and record numbers (p. 466) • data output: writing high-frequency data to memory cards (p. 205) • file-system errors (p...

  • Page 467

    Section 8. Operation not stop earlier, or is ring and not fill-and-stop, then more records will be stored on the card than originally allocated, i.E., about 2 kb worth of records, assuming no lapses. At the point the writing of final-data stops, the cr1000 recalculates the number of records, display...

  • Page 468

    Section 8. Operation 8.11.1 vulnerabilities while "security through obscurity" may have provided sufficient protection in the past, campbell scientific dataloggers increasingly are deployed in sensitive applications. Devising measures to counter malicious attacks, or innocent tinkering, requires an ...

  • Page 469

    Section 8. Operation 8.11.2 pass-code lockout pass-code lockouts (historically known in campbell scientific dataloggers simply as "security codes") are the oldest method of securing a datalogger. Pass-code lockouts can effectively lock out innocent tinkering and discourage wannabe hackers on non-ip ...

  • Page 470

    Section 8. Operation • level 2 — data collection is unrestricted, requiring no security code. If the user enters the security2 code, the datalogger clock can be changed and variables in the public table can be changed. • level 3 — when this level is set, all communication with the datalogger is proh...

  • Page 471

    Section 8. Operation 8.11.3.3 tcp/ip instructions the following crbasic instructions that service cr1000 ip capabilities have provisions for password protection: • emailrecv() • emailsend() • ftpclient() 8.11.3.4 settings — passwords settings, which are accessible with devconfig (p. 111), enable the...

  • Page 472

    Section 8. Operation file name are not available for viewing. See file management (p. 382) for more information. 8.11.7 signatures recording and monitoring system and program signatures are important components of a security scheme. Read more about use of signatures in programming to use signatures ...

  • Page 473

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

  • Page 474

    Section 9. Maintenance — details o run-now and run-on power-up settings. O routing and communication logs (relearned without user intervention). O time. Clock will need resetting when the battery is replaced. O final-memory data tables. A replacement lithium battery can be purchased from campbell sc...

  • Page 475

    Section 9. Maintenance — details figure 128. Pull edge away from panel pull one edge of the canister away from the wiring panel to loosen it from three internal connector seatings. Figure 129. Remove nuts to disassemble canister 475.

  • Page 476

    Section 9. Maintenance — details remove six nuts, then open the clam shell. Figure 130. Remove and replace battery remove the lithium battery by gently prying it out with a small flat point screwdriver. Reverse the disassembly procedure to reassemble the cr1000. Take particular care to ensure the ca...

  • Page 477

    Section 9. Maintenance — details scientific's shipping address is: campbell scientific, inc. Rma#_____ 815 west 1800 north logan, utah 84321-1784 for all returns, the customer must fill out a "statement of product cleanliness and decontamination" form and comply with the requirements specified in it...

  • Page 479: 10.  Troubleshooting

    10. Troubleshooting if a system is not operating properly, please contact a campbell scientific application engineer for assistance. When using sensors, peripheral devices, or telecommunication hardware, look to the manuals for those products for additional help. Note if a campbell scientific produc...

  • Page 480

    Section 10. Troubleshooting the principle of independent verification, the root cause of most errors can be determined and remedies put into effect. Errors are indicated by multiple means, a few of which actually communicate using the word error. Things that indicate that a closer look should be tak...

  • Page 481

    Section 10. Troubleshooting 10.4 troubleshooting — status table information in the status table lends insight into many problems. The appendix status table and settings (p. 603) documents status table registers and provides some insights as to how to use the information in troubleshooting. Review th...

  • Page 482

    Section 10. Troubleshooting 10.5.3 nan and ±inf nan (not-a-number) and ±inf (infinite) are data words indicating an exceptional occurrence in datalogger function or processing. Nan is a constant that can be used in expressions as shown in the following code snip that sets a crbasic control feature (...

  • Page 483

    Section 10. Troubleshooting 10.5.3.3 data types, nan, and ±inf nan and ±inf are presented differently depending on the declared-variable data type. Further, they are recorded differently depending on the final-memory data type chosen compounded with the declared-variable data type used as the source...

  • Page 484

    Section 10. Troubleshooting table 129. Variable and final-memory data types with nan and ±inf final-memory data type & associated stored values variable type test expression public / dim variables fp2 ieee4 uint2 unit4 string bool bool8 long as float 1 / 0 inf inf 1 inf 1 65535 2 4294967295 +inf tru...

  • Page 485

    Section 10. Troubleshooting crbasic example 69. 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 b...

  • Page 486

    Section 10. Troubleshooting messages may not be obvious because the display is limited. Much of this information is more easily accessed through the datalogger support software (p. 95) station status report. The message reports the following: • program compiled ok • warnings about possible problems ...

  • Page 487

    Section 10. Troubleshooting table 130. Warning message examples message meaning warning: internal data storage memory was re-initialized. Sending a new program has caused final- memory to be re-allocated. Previous data are no longer accessible. Warning: machine self-calibration failed. Indicates a p...

  • Page 488

    Section 10. Troubleshooting 10.5.4.4 skippedrecord skippedrecord is normally incremented when a write-to-data-table event is skipped, which usually occurs because a scan is skipped. Skippedrecord is not incremented by all events that leave gaps in data, including cycling power to the cr1000. 10.5.4....

  • Page 489

    Section 10. Troubleshooting if any of the previous are not the apparent cause, contact a campbell scientific application engineer for assistance. Causes that require assistance include the following: • memory corruption. Check for memory failures with m command in terminal mode (p. 501). • operating...

  • Page 490

    Section 10. Troubleshooting 10.6 troubleshooting — operating systems updating the cr1000 operating system will sometimes fix a problem. Operating systems are available, free of charge, at www.Campbellsci.Com/downloads (http://www.Campbellsci.Com/downloads). Operating systems undergo extensive testin...

  • Page 491

    Section 10. Troubleshooting 10.8.2 communicating with multiple pcs the cr1000 can communicate with multiple pcs simultaneously. For example, the cr1000 may be a node of an internet pakbus network communicating with a distant instance of loggernet. An onsite technician can communicate with the cr1000...

  • Page 492

    Section 10. Troubleshooting the following expressions are used to pick the individual values from commsmemfree(1): tiny = commsmemfree(1) % 100 lil = (commsmemfree(1) / 100) % 100 mid = (commsmemfree(1) / 10000) % 100 med = (commsmemfree(1) / 1000000) % 100 lrg = (commsmemfree(1) / 100000000) % 100 ...

  • Page 493

    Section 10. Troubleshooting commsmemfree(2). Doubling pakbusnodes to 100 doubles commsmemfree(2) from ≈300 to ≈600 (assuming a large pakbus network has not been just discovered). The larger the discovered pakbus network, and the larger the number of simultaneous tcp connections, the smaller commsmem...

  • Page 494

    Section 10. Troubleshooting 10.9 troubleshooting — power supplies related topics: • power supplies — specifications • power supplies — quickstart (p. 44) • power supplies — overview (p. 85) • power supplies — details (p. 100) • power supplies — products (p. 657) • power sources (p. 101) • troublesho...

  • Page 495

    Section 10. Troubleshooting 10.9.3 troubleshooting power supplies — procedures required equipment: o voltmeter o 5 kΩ resistor o 50 Ω, 1 watt resistor for the charging circuit tests and to adjust the charging circuit voltage. 10.9.3.1 battery test the procedure outlined in this flow chart tests seal...

  • Page 496

    Section 10. Troubleshooting 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 high a...

  • Page 497

    Section 10. Troubleshooting 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 solar ...

  • Page 498

    Section 10. Troubleshooting 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 warranty and as...

  • Page 499

    Section 10. Troubleshooting charging regulator with ac or dc transformer test disconnect any wires attached to the 12v and g (ground) terminals on the ps100 or ch100 charging regulator. Unplug any batteries. Connect the power input ac or dc transformer to the two chg terminals. Polarity of the input...

  • Page 500

    Section 10. Troubleshooting adjusting charging circuit 1) place a 5 kΩ resistor between a 12v terminal and a g (ground) ground terminal on the charging regulator. Use a voltmeter to measure the voltage across the 5 kΩ resistor. 2) connect a power source that supplies a voltage >17 v to the input chg...

  • Page 501

    Section 10. Troubleshooting figure 131. Potentiometer r3 on ps100 and ch100 charger / regulator 10.10 terminal mode table cr1000 terminal commands (p. 502) lists terminal mode options. With exception of perhaps the c command, terminal options are not necessary to routine cr1000 operations. To enter ...

  • Page 502

    Section 10. Troubleshooting table 133. Cr1000 terminal commands option description use 0 scan processing time; real time in seconds lists technical data concerning program scans. 1 serial flash data dump campbell scientific engineering tool 2 read clock chip lists binary data concerning the cr1000 c...

  • Page 503

    Section 10. Troubleshooting table 133. Cr1000 terminal commands option description use sdi12 sdi12 talk through issue commands from keyboard that are passed through the cr1000 sdi-12 port to the connected device. Similar in concept to serial talk through. T unused u data recovery provides the means ...

  • Page 504

    Section 10. Troubleshooting frequently open and close a serial port, the probability is higher that a non-pakbus character will arrive at the closed serial port, thus closing an existing talk-through or comms watch session. If this occurs, the filemanager() setting to send comms watch or sniffer to ...

  • Page 505

    Section 10. Troubleshooting or usb: drive back in place and re-run the datalogger data recovery wizard before restarting the crbasic program. In any case, even when the recovery runs properly, the result will be that good data is recovered mixed with sections of empty or old junk. With the entire da...

  • Page 507: 11.  Glossary

    11. Glossary 11.1 terms term. Ac see vac (p. 532). Term. Accuracy a measure of the correctness of a measurement. See also the appendix accuracy, precision, and resolution (p. 533). Term. A-to-d analog-to-digital conversion. The process that translates analog voltage levels to digital values. Term. A...

  • Page 508

    Section 11. Glossary term. Asynchronous the transmission of data between a transmitting and a receiving device occurs as a series of zeros and ones. For the data to be "read" correctly, the receiving device must begin reading at the proper point in the series. In asynchronous communication, this coo...

  • Page 509

    Section 11. Glossary term. Burst refers to a burst of measurements. Analogous to a burst of light, a burst of measurements is intense, such that it features a series of measurements in rapid succession, and is not continuous. Term. Calibration wizard the calibration wizard facilitates the use of the...

  • Page 510

    Section 11. Glossary term. Compactflash compactflash ® (cf) is a memory-card technology used in some campbell scientific card-storage modules. Compactflash ® is a registered trademark of the compactflash ® association. Term. Input/output instructions usually refers to a crbasic command. Term. Comman...

  • Page 511

    Section 11. Glossary term. Cpu central processing unit. The brains of the cr1000. Also refers to two the following two memory areas: o cpu: memory drive o memory used by the cpu to store table data. Term. Cr1000kd an optional hand-held keyboard display for use with the cr1000 datalogger. See the app...

  • Page 512

    Section 11. Glossary term. Datalogger support software campbell scientific software that includes at least the following functions: o datalogger telecommunications o downloading programs o clock setting o retrieval of measurement data see datalogger support software — overview (p. 95) and the append...

  • Page 513

    Section 11. Glossary processing memory. Term. Dc see vdc (p. 532). Term. Dce data communication equipment. While the term has much wider meaning, in the limited context of practical use with the cr1000, it denotes the pin configuration, gender, and function of an rs-232 port. The rs-232 port on the ...

  • Page 514

    Section 11. Glossary term. Dte data terminal equipment. While the term has much wider meaning, in the limited context of practical use with the cr1000, it denotes the pin configuration, gender, and function of an rs-232 port. The rs-232 port on the cr1000 is dce. Attachment of a null-modem cable to ...

  • Page 515

    Section 11. Glossary term. Execution time time required to execute an instruction or group of instructions. If the execution time of a program exceeds the scan() interval, the program is executed less frequently than programmed and the status table skippedscan (p. 487) register will increment. Term....

  • Page 516

    Section 11. Glossary term. Flash a type of memory media that does not require battery backup. Flash memory, however, has a lifetime based on the number of writes to it. The more frequently data are written, the shorter the life expectancy. Term. Float four-byte floating-point data type. Default cr10...

  • Page 517

    Section 11. Glossary term. Garbage the refuse of the data communication world. When data are sent or received incorrectly (there are numerous reasons why this happens), a string of invalid, meaningless characters (garbage) often results. Two common causes are: 1) a baud-rate mismatch and 2) synchron...

  • Page 518

    Section 11. Glossary 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 setting (p. 603). Term. Inf a data word indicating the result of a function is infinite or undefined. Term. ...

  • Page 519

    Section 11. Glossary signals to pass, but breaks alternate ground paths and may filter some electromagnetic noise. Campbell scientific offers optically isolated rs-232 to cs i/o interfaces as a cr1000 accessory for use on the cs i/o port. See the appendix serial i/o modules list (p. 646). Term. Json...

  • Page 520

    Section 11. Glossary term. Mains power the national power grid term. Manually initiated initiated by the user, usually with a cr1000kd keyboard display (p. 651), as opposed to occurring under program control. Term. Mass storage device usb: "thumb" drive. See appendix data storage devices (p. 653). T...

  • Page 521

    Section 11. Glossary term. Mv the si abbreviation for millivolts. 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. 482). Term. Neighbor devic...

  • Page 522

    Section 11. Glossary term. Ohm's law describes the relationship of current and resistance to voltage. Voltage equals the product of current and resistance (v = i • r). Term. On-line data transfer routine transfer of data to a peripheral left on-site. Transfer is controlled by the program entered in ...

  • Page 523

    Section 11. Glossary node is typically a campbell scientific datalogger, a pc, or a telecommunication device. See section datalogger support software (p. 450). Term. Parameter parameter (p. 523): part of a procedure (or command) definition. Argument (p. 507): part of a procedure call (or command exe...

  • Page 524

    Section 11. Glossary term. Preservevariables crbasic instruction that protects public variables from being erased when a program is recompiled. Term. Print device any device capable of receiving output over pin 6 (the pe line) in a receive- only mode. Printers, "dumb" terminals, and computers in a t...

  • Page 525

    Section 11. Glossary term. Pulse an electrical signal characterized by a rapid increase in voltage follow by a short plateau and a rapid voltage decrease. Term. Record a record is a complete line of data in a data table or data file. All data in a record share a common time stamp. Term. Regulator a ...

  • Page 526

    Section 11. Glossary term. Ring memory a memory configuration that allows the oldest data to be overwritten with the newest data. This is the default setting for final-memory data tables. Term. Ringing oscillation of sensor output (voltage or current) that occurs when sensor excitation causes parasi...

  • Page 527

    Section 11. Glossary interval after compilation. If the scan() interval does not divide evenly into 24 hours, execution will start on the first even second after compilation. Term. Scan time when time functions are run inside the scan() / nextscan construct, time stamps are based on when the scan wa...

  • Page 528

    Section 11. Glossary term. Short cut software a crbasic program wizard suitable for many cr1000 applications. Knowledge of crbasic is not required to use short cut. It is available at no charge at www.Campbellsci.Com. Term. Si (système internationale) the uniform international system of metric units...

  • Page 529

    Section 11. Glossary term. Station status command a command available in most datalogger support software (p. 95). The following figure is a sample of station status output. Term. String a datum or variable consisting of alphanumeric characters. Term. Support software see term. Datalogger support so...

  • Page 530

    Section 11. Glossary term. Swept frequency a succession of frequencies from lowest to highest used as the method of wire excitation with vspect (p. 532) measurements. Term. Synchronous the transmission of data between a transmitting and a receiving device occurs as a series of zeros and ones. For th...

  • Page 531

    Section 11. Glossary measurement requires linearization by means of a steinhart-hart or polynomial equation. Crbasic instructions therm107(), therm108(), and therm109() use steinhart-hart equations. Term. Time domain time domain describes data graphed on an x-y plot with time on the x axis. Time-ser...

  • Page 532

    Section 11. Glossary term. Uri uniform resource identifier term. Url uniform resource locater 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 regula...

  • Page 533

    Section 11. Glossary term. Watchdog timer an error-checking system that examines the processor state, software timers, and program-related counters when the crbasic program is running. See section watchdog errors (p. 488). The following will cause watchdog timer resets, which reset the processor and...

  • Page 534

    Section 11. Glossary practice" as an analogy. Table accuracy, precision, and resolution (p. 533) shows four targets. The bull's eye on each target represents the absolute correct measurement. Each shot represents an attempt to make the measurement. The diameter of the projectile represents resolutio...

  • Page 535: 12.  Attributions

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

  • Page 537: Instructions

    Appendix a. Crbasic programming instructions related topics: • crbasic programming — overview (p. 86) • crbasic programming — details (p. 122) • crbasic programming — instructions (p. 537) • programming resource library (p. 169) • crbasic editor help all cr1000 crbasic instructions (p. 518) are list...

  • Page 538

    Appendix a. Crbasic programming instructions setsecurity sets numeric password for datalogger security levels 1, 2, and 3. Executes at compile time. Syntax setsecurity(security[1], security[2], security[3]) stationname sets the station name internal to the cr1000. Does not affect data files created ...

  • Page 539

    Appendix a. Crbasic programming instructions syntax dim [variable name (x,y,z)] essvariables automatically declares variables required by an environmental sensor station application. Used in conjunction with essinitialize. Syntax essvariables newfieldnames assigns a new name to a generic variable or...

  • Page 540

    Appendix a. Crbasic programming instructions syntax const [constant name] = [value or expression] consttable / endconsttable declares constants, the value of which can be changed using the cr1000kd keyboard display or terminal c option. The program is recompiled with the new values when values chang...

  • Page 541

    Appendix a. Crbasic programming instructions fillstop sets a data table to fill and stop. By default, data tables are ring memory (p. 526). Syntax fillstop note to reset a table after it fills and stops, use resettable() instruction in the crbasic program or the datalogger support software reset tab...

  • Page 542

    Appendix a. Crbasic programming instructions tablefile writes a file from a data table to a cr1000 memory drive. Syntax tablefile("filename", options, maxfiles, numrecs / timeintointerval, interval, units, outstat, lastfilename) a.2.3 processing for output to final-data memory read more see data out...

  • Page 543

    Appendix a. Crbasic programming instructions syntax median(reps, source, maxn, datatype, disablevar) minimum stores the minimum value over the data-output interval. Syntax minimum(reps, source, datatype, disablevar, time) moment stores the mathematical moment of a value over the data-output interval...

  • Page 544

    Appendix a. Crbasic programming instructions a.2.3.2 multiple-source etsz stores evapotranspiration (etsz) and solar radiation (rso). Syntax etsz(temp, rh, uz, rs, longitude, latitude, altitude, zw, sz, datatype, disablevar) rainflowsample stores a sample of the cdm_vw300rainflow into a data table. ...

  • Page 545

    Appendix a. Crbasic programming instructions syntax pulsecountreset a.4 program control instructions a.4.1 common program controls beginprog / endprog marks the beginning and end of a program. Syntax beginprog [program code] endprog call transfers program control from the main program to a subroutin...

  • Page 547

    Appendix a. Crbasic programming instructions syntax scan (interval, units, option, count) [statement block] exitscan [statement block] continuescan [statement block] nextscan select case / case / case is / case else / endselect executes one of several statement blocks depending on the value of an ex...

  • Page 548

    Appendix a. Crbasic programming instructions waittriggersequence used with triggersequence to control the execution of code within a slow sequence. Syntax waittriggersequence waitdigtrig triggers a measurement scan from an external digital trigger. Syntax waitdigtrig(controlport, option) while / wen...

  • Page 549

    Appendix a. Crbasic programming instructions variable = iftime(tintoint, interval, units) read reads constants from the list defined by data or datalong into a variable array. Syntax read [variable expression] restore resets the location of the read pointer back to the first value in the list define...

  • Page 550

    Appendix a. Crbasic programming instructions if timeintointerval(tintoint, interval, units) timeisbetween determines if the cr1000 real-time clock falls within a range of time. Syntax timeisbetween(begintime, endtime, interval, units) a.5 measurement instructions read more for information on recordi...

  • Page 551

    Appendix a. Crbasic programming instructions a.5.2 voltage voltdiff measures the voltage difference between high and low inputs of a differential analog-input channel. Syntax voltdiff(dest, reps, range, diffchan, revdiff, settlingtime, integ, mult, offset) voltse measures the voltage at a single-end...

  • Page 552

    Appendix a. Crbasic programming instructions syntax brfull(dest, reps, range, diffchan, vx/exchan, measpex, exmv, revex, revdiff, settlingtime, integ, mult, offset) brfull6w measures ratio of v diff2 / v diff1 of a six-wire full-bridge. Reports 1000 • (v diff2 / v diff1 ). Syntax brfull6w(dest, reps...

  • Page 553

    Appendix a. Crbasic programming instructions sw12 sets a sw12 switched 12 vdc terminal high or low. Syntax sw12(port) a.5.6 pulse and frequency related topics: • pulse measurements — specifications • pulse measurements — overview (p. 68) • pulse measurements — details (p. 349) • pulse measurements —...

  • Page 554

    Appendix a. Crbasic programming instructions a.5.7 digital i/o checkport returns the status of a c terminal configured for control. Syntax x = checkport(port) portget reads the status of a c terminal configured for control. Syntax portget(dest, port) portsconfig configures c terminals for input or o...

  • Page 555

    Appendix a. Crbasic programming instructions writeio set the status of c terminals. Syntax writeio(mask, source) a.5.7.2 measurement pwm performs pulse-width modulation on a c terminal. Syntax pwm(source, terminal, period, units) timerio measures interval or frequency on a c terminal. Syntax timerio...

  • Page 556

    Appendix a. Crbasic programming instructions a.5.9 specific sensors acpower measures ac mains power and power-quality parameters for single-, split-, and three-phase 'y' configurations. Do not connect ac mains power directly to the cr1000. Syntax acpower(destac, configac, linefrq, chanv, vmult, maxv...

  • Page 557

    Appendix a. Crbasic programming instructions analyzers via sdm. Syntax ec100(dest, sdmaddress, ec100cmd) ec100configure configures the ec150 open path and ec155 closed path ir gas analyzers. Syntax ec100configure(result, sdmaddress, configcmd, destsource) gps used with a gps device to keep the cr100...

  • Page 558

    Appendix a. Crbasic programming instructions syntax therm107(dest, reps, sechan, vx/exchan, settlingtime, integ, mult, offset) therm108 measures a campbell scientific model 108 thermistor. Syntax therm108(dest, reps, sechan, vx/exchan, settlingtime, integ, mult, offset) therm109 measures a campbell ...

  • Page 559

    Appendix a. Crbasic programming instructions syntax cwb100rssi(cwbport) a.5.10 peripheral device support multiple sdm instructions can be used within a program. Am25t controls the am25t analog-voltage input multiplexer. Syntax am25t(dest, reps, range, am25tchan, diffchan, tctype, tref, clkport, resp...

  • Page 560

    Appendix a. Crbasic programming instructions syntax cdm_vw300static(cpiaddress, destfreq, desttherm, deststddev) cpispeed controls the speed of the cpi bus. Syntax cpispeed(bitrate)) muxselect selects the specified channel on a multiplexer. Syntax muxselect(clkport, resport, clkpulsewidth, muxchan, ...

  • Page 561

    Appendix a. Crbasic programming instructions sdmcvo4 control the sdm-cvo4 four-channel, current/voltage output device. Syntax sdmcvo4(cvo4source, cvo4reps, sdmaddress, cvo4mode) sdmgeneric sends commands to an sdm device that is otherwise unsupported in the operating system. See the appendix endiann...

  • Page 562

    Appendix a. Crbasic programming instructions syntax sdmtrigger sdmx50 controls the sdm-x50 coaxial multiplexer independent of the tdr100() instruction. Syntax sdmx50(sdmaddress, channel) tdr100 measures tdr probes connected to the tdr100 time-domain reflectometer directly or through a sdmx50 coaxial...

  • Page 563

    Appendix a. Crbasic programming instructions sdmcv04() sdmio16() timedcontrol() prochipri/endprochipri dnp() dnpupdate() dnpvariable() modbusmaster() modbusslave() a.7 processing and math instructions a.7.1 mathematical operators note program declaration angledegrees() (see program declarations (p. ...

  • Page 564

    Appendix a. Crbasic programming instructions less than or equal to a.7.3 bitwise operations bitwise shift operators ( and >>) allow crbasic to manipulate the position of bits within a variable declared as long (integer). Following are example expressions and expected results: • &b00000001 produces &...

  • Page 565

    Appendix a. Crbasic programming instructions crbasic example 70. Using bit-shift operators 'this program example demonstrates the unpacking of a packed integer. The binary value in 'variable input_val is unpacked resulting in three integers individually stored in variables 'value(1), value(2), and v...

  • Page 566

    Appendix a. Crbasic programming instructions eqv performs a logical equivalence on two expressions. Syntax result = expr1 eqv expr2 not performs a logical negation on an expression. Syntax result = not expression or performs a logical disjunction on two expressions. Syntax result = expr1 or expr2 xo...

  • Page 567

    Appendix a. Crbasic programming instructions asin returns the arcsin of a number. Syntax x = asin(source) atn returns the arctangent of a number. Syntax x = atn(source) atn2 returns the arctangent of y / x. Syntax x = atn(y , x) cos returns the cosine of an angle specified in radians. Syntax x = cos...

  • Page 568

    Appendix a. Crbasic programming instructions tanh returns the hyperbolic tangent of an expression or value. Syntax x = tanh(source) a.7.6.2 derived trigonometric functions table derived trigonometric functions (p. 568) lists trigonometric functions that can be derived from intrinsic trigonometric fu...

  • Page 569

    Appendix a. Crbasic programming instructions exp returns e (the base of natural logarithms) raised to a power. Syntax x = exp(source) floor rounds a value to a lower integer. Syntax variable = floor(number) frac returns the fractional part of a number. Syntax x = frac(source) int or fix return the i...

  • Page 570

    Appendix a. Crbasic programming instructions syntax result = operand1 mod operand2 pwr performs an exponentiation on a variable. Same functionality as ^ operator. See section arithmetic operators (p. 563). Syntax pwr(x, y) rectpolar converts from rectangular to polar coordinates. Syntax rectpolar(de...

  • Page 571

    Appendix a. Crbasic programming instructions syntax prt(dest, reps, source, mult) prtcalc calculates temperature from the resistance of an rtd according to a range of alternative standards, including iec. Supercedes prt() in most applications. Syntax prtcalc(dest, reps, source, prttype, mult, offset...

  • Page 572

    Appendix a. Crbasic programming instructions covspa computes the spatial covariance of sets of data. Syntax covspa(dest, numofcov, sizeofsets, corearray, datarray) fftspa performs a fast fourier transform on a time series of measurements. Syntax fftspa(dest, n, source, tau, units, option) maxspa fin...

  • Page 573

    Appendix a. Crbasic programming instructions syntax addprecise(precisionvariable, x) avgrun stores a running average of a measurement. Syntax avgrun(dest, reps, source, number) note avgrun() should not be inserted within a for / next construct with the source and dest parameters indexed and reps set...

  • Page 574: A.8  String Functions

    Appendix a. Crbasic programming instructions syntax histogram4d(binselect, source, datatype, disablevar, bins1, bins2, bins3, bins4, form, wtval, lolim1, uplim1, lolim2, uplim2, lolim3, uplim3, lolim4, uplim4) levelcrossing processes data into a one- or two-dimensional histogram using a level-crossi...

  • Page 575

    Appendix a. Crbasic programming instructions table 139. String operations string comparison operators the comparison operators =, >,,, >= and operate on strings. String final-data output processing the sample() instruction will convert data types if the source data type is different than the sample(...

  • Page 576

    Appendix a. Crbasic programming instructions syntax string = formatlong(long, formatstring) formatlonglong converts a 64-bit long integer into a decimal value in the format of a string variable. Syntax formatlonglong(longlongvar(1)) hex returns a hexadecimal string representation of an expression. S...

  • Page 577

    Appendix a. Crbasic programming instructions lowercase converts a string to all lowercase characters. Syntax string = lowercase(sourcestring) mid returns a substring that is within a string. Syntax string = mid(searchstring, start, length) replace searches a string for a substring and replaces that ...

  • Page 578

    Appendix a. Crbasic programming instructions syntax length = sprintf(destination, format,...) trim returns a copy of a string with no leading or trailing spaces. Syntax variable = trim(trimstring) uppercase converts a string to all uppercase characters syntax string = uppercase(sourcestring) a.9 tim...

  • Page 579

    Appendix a. Crbasic programming instructions syntax variable = daylightsaving(dstset, dstnstart, dstdaystart, dstmonthstart, dstnend, dstdayend, dstmonthend, dsthour) daylightsavingus determine if us daylight saving time has begun or ended. Optionally advance or turn back the cr1000 clock one hour. ...

  • Page 580: A.10

    Appendix a. Crbasic programming instructions if timeintointerval(tintoint, interval, units) timeisbetween determines if the cr1000 real-time clock falls within a range of time. Syntax timeisbetween(begintime, endtime, interval, units) timer returns the value of a timer. Syntax variable = timer(timno...

  • Page 581: A.11

    Appendix a. Crbasic programming instructions voicenumber returns one or more numbers (1 to 9) terminated by the # or * key. Syntax voicenumber(timeout*idh_popup_voicekey_timeout) voicephrases provides a list of phrases for voicespeak(). Syntax voicephrases(phrasearray, phrases) voicesetup controls t...

  • Page 582

    Appendix a. Crbasic programming instructions syntax: displayline(value) displaymenu / endmenu marks the beginning and ending of a custom menu. Syntax: displaymenu("menuname", addtosystem) [menu definition] endmenu displayvalue defines the name and associated data-table value or variable for an item ...

  • Page 583: A.12

    Appendix a. Crbasic programming instructions a.12 serial input / output read more see serial i/o (p. 245). Movebytes moves binary bytes of data into a different memory location when translating big- endian to little-endian data. See the appendix endianness (p. 643). Syntax movebytes(destination, des...

  • Page 584: A.13

    Appendix a. Crbasic programming instructions serialinrecord reads incoming serial data on a com port and stores the data in a destination variable. Syntax serialinrecord(comport, dest, beginword, nbytes, endword, nbytesreturned, loadnan) serialopen sets up a datalogger port for communication with a ...

  • Page 585

    Appendix a. Crbasic programming instructions • comsdc11 • com1 (c1,c2) • com2 (c3,c4) • com3 (c5,c6) • com4 (c7,c8) • com32 – com46 (available when using a one-channel i/o expansion module. See the appendix serial i/o modules list (p. 646) ) baud rate on asynchronous ports (comrs232, comme, com1, co...

  • Page 586

    Appendix a. Crbasic programming instructions datagram initializes a serialserver / datagram / pakbus application in the datalogger when a program is compiled. Syntax datagram(comport, baudrate, pakbusaddr, destappid, srcappid) dialsequence / enddialsequence defines the code necessary to route packet...

  • Page 587

    Appendix a. Crbasic programming instructions network in conjunction with sendgetvariables, configures destination dataloggers in a pakbus network to send and receive data from the host. Syntax network(resultcode, reps, beginaddr, timeintointerval, interval, gap, getswath, getvariable, sendswath, sen...

  • Page 588

    Appendix a. Crbasic programming instructions syntax sendgetvariables(resultcode, comport, routeraddr, pakbusaddr, security, timeout, sendvariable, sendswath, getvariable, getswath) sendtabledef sends the table definitions from a data table to a remote pakbus device. Syntax sendtabledef(comport, rout...

  • Page 589: A.14

    Appendix a. Crbasic programming instructions table 140. Asynchronous-port baud rates 1 autobaud: measurements are made on the communication signal and the baud rate is determined by the cr1000. A.14 variable management arrayindex returns the index of a named element in an array. Syntax variable = ar...

  • Page 590

    Appendix a. Crbasic programming instructions syntax calfile(source/dest, numvals, "device:filename", option) filecopy copies a file from one drive to another. Syntax filecopy(fromfilename, tofilename) fileclose closes a file handle created by fileopen(). Syntax fileclose(filehandle) fileencrypt perf...

  • Page 591

    Appendix a. Crbasic programming instructions filereadline reads a line in a file referenced by filehandle and stores the result in a variable or variable array. Syntax filereadline(filehandle, destination, length) filerename changes the name of file on a cr1000 drive. Syntax filerename(drive:oldfile...

  • Page 592: A.16

    Appendix a. Crbasic programming instructions a.16 data-table access and management commands to access and manage data stored in data tables, including public and status tables. Filemark inserts a filemark into a data table. Syntax filemark(tablename) getrecord retrieves one record from a data table ...

  • Page 593: A.17

    Appendix a. Crbasic programming instructions tablename.Output determine if data was written to a specific data table the last time the data table was called. Syntax tablename.Output(1,1) tablename.Record determines the record number of a specific data table record. Syntax tablename.Record(1,n) table...

  • Page 594

    Appendix a. Crbasic programming instructions device that has the ppp/ip key enabled, such as when the cr1000 ip stack is used. Dhcprenew restarts dhcp on the ethernet interface. Syntax dhcprenew emailrecv polls an smtp server for email messages and stores the message portion of the email in a string...

  • Page 595

    Appendix a. Crbasic programming instructions string to output httpout (" html string to output " + variable + " additional string to output webpageend httppost sends files or text strings to a url. Syntax httppost( uri, contents, response, header) httpput sends a request to the http server to store ...

  • Page 596

    Appendix a. Crbasic programming instructions pingip pings ip address. Syntax variable = pingip(ipaddress, timeout) pppopen establishes a ppp connection with a server. Syntax variable = pppopen pppclose closes an opened ppp connection with a server. Syntax variable = pppclose snmpvariable defines a c...

  • Page 597: A.18

    Appendix a. Crbasic programming instructions webpagebegin / webpageend declares a web page that is displayed when a request for the defined html page comes from an external source. Syntax webpagebegin ("webpagename", webpagecmd) httpout (" html string to output " + variable + " additional string to ...

  • Page 598: A.20

    Appendix a. Crbasic programming instructions dnp sets up a cr1000 as a dnp slave (outstation/server) device. Third parameter is optional. Syntax dnp(comport, baudrate, disablelinkverify) dnpupdate determines when the dnp slave will update arrays of dnp elements. Specifies the address of the dnp mast...

  • Page 599: A.21

    Appendix a. Crbasic programming instructions syntax fieldcal(function, measurevar, reps, multvar, offsetvar, mode, knownvar, index, avg) fieldcalstrain sets up the datalogger to perform a zero or shunt calibration for a strain measurement. Syntax fieldcalstrain(function, measurevar, reps, gfadj, zer...

  • Page 600

    Appendix a. Crbasic programming instructions argosdatarepeat sets the repeat rate for the argosdata() instruction. Syntax argosdatarepeat(resultcode, repeatrate, repeatcount, bufferarray) argoserror sends a get and clear error message command to the argos transmitter. Syntax argoserror(resultcode, e...

  • Page 601

    Appendix a. Crbasic programming instructions goesstatus requests status and diagnostic information from a campbell scientific goes satellite transmitter. Syntax goesstatus(dest, statuscommand) a.21.3 omnisat omnisatdata sends a table of data to the omnisat transmitter for transmission via the goes o...

  • Page 602: A.22

    Appendix a. Crbasic programming instructions insatsetup configures the omnisat-i transmitter for sending data over the insat-1 satellite. Syntax insatsetup(resultcode, platformid, rfpower) insatstatus queries the transmitter for status information. Syntax insatstatus(resultcode) a.22 user-defined fu...

  • Page 603

    Appendix b. Status, settings, and data table information (status/settings/dti) related topics: • status, settings, and data table information (status/settings/dti) (p. 603) • common uses of the status table (p. 604) • status table as debug resource (p. 485) the status table, cr1000 settings, and the...

  • Page 604

    Appendix b. Status, settings, and data table information (status/settings/dti) b.1 status/settings/dti directories links in the following tables will help you navigate through the status/settings/dti system: table 142. Status/settings/dti: directories frequently used (p. 604) alphabetical listing of...

  • Page 605

    Appendix b. Status, settings, and data table information (status/settings/dti) table 144. Status/settings/dti: alphabetical listing of keywords b battery (p. 611) baudrate() (p. 611) beacon() (p. 612) buffdepth (p. 612) e errorcalib (p. 616) ethernetenable (p. 616) ethernetpower (p. 616) m maxbuffde...

  • Page 606

    Appendix b. Status, settings, and data table information (status/settings/dti) table 145. Status/settings/dti: status table entries on cr1000kd keyboard display recnum (p. 626) timestamp (p. 630) osversion (p. 622) osdate (p. 622) ossignature (p. 622) varoutofbound (p. 631) skippedscan (p. 628) skip...

  • Page 607

    Appendix b. Status, settings, and data table information (status/settings/dti) table 147. Status/settings/dti: settings (comport) on cr1000kd keyboard display baudrate() (p. 611) beacon() (p. 612) neighbors() (p. 622) verify() (p. 632) table 148. Status/settings/dti: settings (tcp/ip) on cr1000kd ke...

  • Page 608

    Appendix b. Status, settings, and data table information (status/settings/dti) table 151. Status/settings/dti: auto-calibration caldiffoffset() (p. 612) calgain() (p. 613) calseoffset() (p. 613) errorcalib (p. 616) lastsystemscan (p. 619) maxsystemproctime (p. 621) skippedsystemscan (p. 628) systemp...

  • Page 609

    Appendix b. Status, settings, and data table information (status/settings/dti) table 156. Status/settings/dti: communications, tcp_ip iii pppdial (p. 624) pppdialresponse (p. 625) pppinterface (p. 625) pppipaddr (p. 625) pppipmask (p. 625) ppppassword (p. 625) pppusername (p. 625) table 157. Status/...

  • Page 610

    Appendix b. Status, settings, and data table information (status/settings/dti) table 163. Status/settings/dti: os and hardware versioning osdate (p. 622) ossignature (p. 622) osversion (p. 622) revboard (p. 626) serialnumber (p. 628) table 164. Status/settings/dti: power monitors battery (p. 611) li...

  • Page 611: (Alphabetical)

    Appendix b. Status, settings, and data table information (status/settings/dti) b.2 status/settings/dti descriptions (alphabetical) table 167. Status/settings/dti: b keyword alias, access, description read/write, datatype, units default value normal range battery station status: battery voltage keybo...

  • Page 612

    Appendix b. Status, settings, and data table information (status/settings/dti) beacon() settings editor: beacon interval alias: communication ports beacon intervals keyboard: settings (comports) crbasic: variable = settings.Keyword; setsettings() governs the rate at which the cr1000 broadcasts pakbu...

  • Page 613

    Appendix b. Status, settings, and data table information (status/settings/dti) calgain() 2 keyboard: status table ≈ line 61 crbasic: variable = status.Keyword array of 18 floating-point values reporting calibration gain for each integration / range combination. Updated by background calibration. Rea...

  • Page 614

    Appendix b. Status, settings, and data table information (status/settings/dti) (disabled) commsmemalloc settings editor: communication allocation aka: pakbusnodes, pakbus nodes allocation, pakbus network node number keyboard: settings (general) ≈ line 7 crbasic: variable = settings.Keyword; setsetti...

  • Page 615

    Appendix b. Status, settings, and data table information (status/settings/dti) cpudrivefree keyboard: settings (general) ≈ line 16 crbasic: variable = settings.Keyword; setsettings() bytes remaining on the cpu: drive. This drive resides in the serial flash and is always present. Crbasic programs are...

  • Page 616

    Appendix b. Status, settings, and data table information (status/settings/dti) specifies the addresses of up to two domain name servers that the cr1000 can use to resolve domain names to ip addresses. Note that if dhcp is used to resolve ip information, the addresses obtained via dhcp are appended t...

  • Page 617

    Appendix b. Status, settings, and data table information (status/settings/dti) ftpport settings editor: ftp service port keyboard: settings (tcp/ip) ≈ line 17 crbasic: variable = settings.Keyword; setsettings() configures the tcp port on which the ftp service is offered. Generally, the default value...

  • Page 618

    Appendix b. Status, settings, and data table information (status/settings/dti) name of a file to be included at the end of the current crbasic program, or that can be run as the default program. See section 'include file' (p. 147). Specify {drive}:{filename}, where drive: = cpu:, usr:, usb: or crd: ...

  • Page 619

    Appendix b. Status, settings, and data table information (status/settings/dti) iptracecode settings editor: ip trace code keyboard: settings (tcp/ip) ≈ line 31 crbasic: variable = settings.Keyword; setsettings() this setting controls what type of information is sent on the port specified by iptracep...

  • Page 620

    Appendix b. Status, settings, and data table information (status/settings/dti) battery (p. 473). Low12vcount station status: number of times voltage has dropped below 12v keyboard: status table ≈ line 21 crbasic: variable = status.Keyword increments by 1 each time the primary cr1000 supply voltage d...

  • Page 621

    Appendix b. Status, settings, and data table information (status/settings/dti) maxsystemproctime keyboard: status table ≈ line 48 crbasic: variable = status.Keyword maximum time required to process the auto (background) calibration, which runs in a hidden slow-sequence type scan. Displays 0 until an...

  • Page 622

    Appendix b. Status, settings, and data table information (status/settings/dti) table 178. Status/settings/dti: n keyword alias, access, description read/write, datatype, units default value normal range neighbors() settings editor: neighbors allowed keyboard: settings (comports) crbasic: variable = ...

  • Page 623

    Appendix b. Status, settings, and data table information (status/settings/dti) table 180. Status/settings/dti: p keyword alias, access, description read/write, datatype, units default value normal range pakbusaddress settings editor: pakbus address keyboard: settings (general) ≈ line 5 crbasic: vari...

  • Page 624

    Appendix b. Status, settings, and data table information (status/settings/dti) pakbustcpenabled settings editor: ??? Keyboard: settings (tcp/ip) ≈ line 39 aliased from: servicesenabled() crbasic: variable = settings.Keyword; setsettings() enables ( true) or disables (false) the pakbus tcp service. R...

  • Page 625

    Appendix b. Status, settings, and data table information (status/settings/dti) pppdialresponse settings editor: ppp dial response keyboard: settings (tcp/ip) ≈ line 29 crbasic: variable = settings.Keyword; setsettings() specifies the response expected after dialing a modem before a ppp connection ca...

  • Page 626

    Appendix b. Status, settings, and data table information (status/settings/dti) 620), skippedscan (p. 628), maxproctime (p. 620). Progerrors keyboard: status table ≈ line 25 crbasic: variable = status.Keyword number of compile or runtime errors for the running program. Read-only long counts 0 ≥ 0 pro...

  • Page 627

    Appendix b. Status, settings, and data table information (status/settings/dti) rs232power settings editor: rs232 always on keyboard: settings (general) ≈ line 20 crbasic: variable = settings.Keyword; setsettings() controls whether the rs-232 port will remain active even when communication is not tak...

  • Page 628

    Appendix b. Status, settings, and data table information (status/settings/dti) security(3) settings editor: security level 3 aka: security code 3 keyboard: settings (general) ≈ line 4 crbasic: variable = settings.Keyword; setsettings() third level in an array of three security codes. Not shown if se...

  • Page 629

    Appendix b. Status, settings, and data table information (status/settings/dti) slowproctime() keyboard: status table ≈ line 47 crbasic: variable = status.Keyword integer for each slowsequence scan in the crbasic program. Indicates time required to process the scan. See lastslowscan (p. 619), maxslow...

  • Page 630

    Appendix b. Status, settings, and data table information (status/settings/dti) telnetenabled settings editor: telnet enabled aliased from: servicesenabled() keyboard: settings (tcp/ip) ≈ line 37 crbasic: variable = settings.Keyword; setsettings() enables ( true) or disables (false) the telnet servic...

  • Page 631

    Appendix b. Status, settings, and data table information (status/settings/dti) table 184. Status/settings/dti: u keyword alias, access, description read/write, datatype, units default value normal range udpbroadcastfilter settings editor: ip broadcast filtered keyboard: settings (tcp/ip) ≈ line 34 r...

  • Page 632

    Appendix b. Status, settings, and data table information (status/settings/dti) verify() settings editor: verify interval aka: communication ports verification intervals keyboard: settings (comports) crbasic: variable = settings.Keyword; setsettings() array of integers indicating the interval that is...

  • Page 633

    Appendix c. Serial port pinouts c.1 cs i/o communication port pin configuration for the cr1000 cs i/o port is listed in table cs i/o pin description (p. 633). Table 187. Cs i/o pin description abr: abbreviation for the function name. Pin: pin number. O: signal out of the cr1000 to a peripheral. I: s...

  • Page 634

    Appendix c. Serial port pinouts connect the computer dte device to the cr1000 dce device. The following table describes rs-232 pin function with standard dce-naming notation. Note pins 1, 4, 6, and 9 function differently than a standard dce device. This is to accommodate a connection to a modem or o...

  • Page 635

    Appendix c. Serial port pinouts send the data, and return to sleep mode with no 40 second timeout. Table 189. Standard null-modem cable or adapter-pin connections db9 socket # db9 socket # 1 & 6 ——————————— 4 2 ——————————— 3 3 ——————————— 2 4 ——————————— 1 & 6 5 ——————————— 5 7 ——————————— 8 8 —————...

  • Page 637

    Appendix d. Ascii / ansi table reading list: • term. Ascii / ansi (p. 507) • ascii / ansi table (p. 637) american standard code for information interchange (ascii) / american national standards institute (ansi) table 190. Decimal and hexadecimal codes and characters used with cr1000 tools dec hex ke...

  • Page 638

    Appendix d. Ascii / ansi table table 190. Decimal and hexadecimal codes and characters used with cr1000 tools dec hex keyboard display loggernet hyper terminal dec hex keyboard display loggernet hyper terminal 28 1c ∟ 156 9c œ £ 29 1d ↔ 157 9d ¥ 30 1e ▲ 158 9e ž pt 31 1f ▼ 159 9f Ÿ ƒ 32 20 sp sp sp ...

  • Page 639

    Appendix d. Ascii / ansi table table 190. Decimal and hexadecimal codes and characters used with cr1000 tools dec hex keyboard display loggernet hyper terminal dec hex keyboard display loggernet hyper terminal 63 3f ? ? ? 191 bf ¿ ┐ 64 40 @ @ @ 192 c0 À └ 65 41 a a a 193 c1 Á ┴ 66 42 b b b 194 c2 ┬ ...

  • Page 640

    Appendix d. Ascii / ansi table table 190. Decimal and hexadecimal codes and characters used with cr1000 tools dec hex keyboard display loggernet hyper terminal dec hex keyboard display loggernet hyper terminal 99 63 c c c 227 e3 ã π 100 64 d d d 228 e4 ä Σ 101 65 e e e 229 e5 å σ 102 66 f f f 230 e6...

  • Page 641: Appendix E. Fp2 Data Format

    Appendix e. Fp2 data format fp2 data are two-byte big-endian values. See the appendix endianness (p. 643). Representing bits in each byte pair as abcdefgh ijklmnop, bits are described in table fp2 data-format bit descriptions (p. 641). Table 191. Fp2 data-format bit descriptions bit description a po...

  • Page 643: Appendix F. Endianness

    Appendix f. 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 endianne...

  • Page 645: G.1 Dataloggers — List

    Appendix g. Supporting products lists supporting products power and expand the measurement and control capability of the cr1000. Products listed are manufactured by a campbell scientific group company unless otherwise noted. Consult product literature at www.Campbellsci.Com or a campbell scientific ...

  • Page 646

    Appendix g. Supporting products lists • measurement and control peripherals — details (p. 366) • measurement and control peripherals — lists (p. 645) g.3 sensor-input modules lists input peripherals expand sensor input capacity of the cr1000, condition sensor signals, or distribute the measurement l...

  • Page 647

    Appendix g. Supporting products lists g.3.4 vibrating-wire input modules list vibrating-wire input modules improve the measurement of vibrating wire sensors. Table 198. Vibrating-wire input modules model description cdm-vw300 two-channel dynamic vspect vibrating-wire measurement device cdm-vw305 eig...

  • Page 648

    Appendix g. Supporting products lists g.3.5.4 transient-voltage suppressors list table 202. Transient voltage suppressors model description 16980 surge-suppressor kit for uhf/vhf radios 14462 surge-suppressor kit for rf401 radio & cr206 datalogger 16982 surge-suppressor kit for rf416 radio & cr216 d...

  • Page 649: G.5 Sensors — Lists

    Appendix g. Supporting products lists g.4.2 continuous-analog-output (cao) modules list cao modules enable the cr1000 to output continuous, adjustable voltages that may be required for strip charts and variable-control applications. Table 205. Continuous-analog-output (cao) modules model description...

  • Page 650

    Appendix g. Supporting products lists most electronic sensors, regardless of manufacturer, will interface with the cr1000. Some sensors require external signal conditioning. The performance of some sensors is enhanced with specialized input modules. G.5.1 wired-sensor types list the following wired-...

  • Page 651: Peripherals — Lists

    Appendix g. Supporting products lists table 210. Sensors types available for connection to cws900 air temperature relative humidity dissolved oxygen soil heat flux infrared surface temperature soil temperature leaf wetness solar radiation pressure surface temperature quantum sensor wind speed / wind...

  • Page 652

    Appendix g. Supporting products lists g.6.2 hardwire, single-connection comms devices list table 212. Hardwire, single-connection comms devices model description sc32b optically isolated cs i/o to pc rs-232 interface (requires pc rs-232 cable) sc929 cs i/o to pc rs-232 interface cable sc-usb optical...

  • Page 653

    Appendix g. Supporting products lists g.6.6 private-network radios list m table 216. Private-network radios model description rf401 series spread-spectrum, 100 mw, cs i/o connection to remote cr1000 datalogger. Compatible with rf430. Rf430 series spread-spectrum, 100 mw, usb connection to base pc. C...

  • Page 654

    Appendix g. Supporting products lists g.8 datalogger support software — lists reading list: • datalogger support software — quickstart (p. 46) • datalogger support software — overview (p. 95) • datalogger support software — details (p. 450) • datalogger support software — lists (p. 654) software pro...

  • Page 655

    Appendix g. Supporting products lists table 221. Datalogger support software software compatibility description pc200w starter software pc, windows basic datalogger support software for direct connect. Pc400 pc, windows mid-level datalogger support software. Supports single dataloggers over most tel...

  • Page 656

    Appendix g. Supporting products lists table 222. Loggernet suite 1,2 software description rtmcpro an enhanced version of rtmc. Rtmc pro provides additional capabilities and more flexibility, including multi-state alarms, email- on-alarm conditions, hyperlinks, and ftp file transfer. Rtmcrt allows vi...

  • Page 657

    Appendix g. Supporting products lists table 224. Software development kits software compatibility description loggernets-sdk pc, windows loggernet server sdk. Allows software developers to create custom client applications that communicate through a loggernet server with any datalogger supported by ...

  • Page 658

    Appendix g. Supporting products lists ps84 84 ahr, rechargeable battery, sunsaver regulator, and enclosure (requires primary source). G.9.2 batteries list table 226. Batteries model description bpalk d-cell, 12 vdc alkaline battery pack bp7 7 ahr, sealed-rechargeable battery (requires regulator & pr...

  • Page 659: G.10

    Appendix g. Supporting products lists sp90-l 90 watt solar panel (requires regulator) dcdc18r 12 vdc to 18 vdc boost regulator (allows automotive supply voltages to recharge sealed, rechargeable batteries) g.9.5 24 vdc power supply kits list table 229. 24 vdc power supply kits model description 2837...

  • Page 660: G.12

    Appendix g. Supporting products lists ut10 3 meter (10 ft) free-standing tower, aluminum ut20 6 meter (20 ft) free-standing tower, aluminum, guying is an option ut30 10 meter (30 ft) free-standing tower, aluminum, guying is an option cm375 10 meter (30 ft) mast, galvanized and stainless steel, requi...

  • Page 661: Index

    Index 1 12 volt supply ......................................... 104 12v terminal ........................................... 80, 105 5 5 volt pin ................................................. 633 5 volt supply ........................................... 104 50 hz rejection ........................

  • Page 662

    Index bridge ...................................................... 67, 337, 339 bridge — quarter-bridge shunt .............. 226 bridge measurement ............................... 104, 341, 551 buffer depth ............................................ 603 buffer size ..................................

  • Page 663

    Index current .................................................... 103 current loop sensor ............................... 66, 80, 337 current sourcing limit ............................ 105, 368 custom display ....................................... 455 custom menu ....................................

  • Page 664

    Index 337, 482, 483, 491 error — analog measurement ................ 108, 109, 482 error — programming ............................. 481 error — soil temperature thermocouple ............ 109 error — thermocouple ............................ 327, 331, 334, 336 esd ......................................

  • Page 665

    Index i i/o port .................................................... 78 ieee4 ...................................................... 130, 517 include file .............................................. 147, 603 inf ........................................................... 482, 517 infinite .........

  • Page 666

    Index instructions — dialmodem ...................... 597 instructions — dialsequence / enddialsequence ............ 585 instructions — dialvoice ......................... 580 instructions — dim .................................. 513, 538 instructions — displayline ...................... 581 instruc...

  • Page 667

    Index instructions — long .............................. 130, 162, 163, 483, 519 instructions — lowercase ...................... 575 instructions — ltrim ............................... 575 instructions — maximum ......................... 542 instructions — maxspa ........................... 571 ins...

  • Page 668

    Index endselect ............ 545 instructions — semaphoreget ................ 153, 548 instructions — semaphorerelease ........ 548 instructions — senddata ........................ 585 instructions — sendfile .......................... 585 instructions — sendgetvariables ........... 585 instructions...

  • Page 669

    Index instructions — xor ................................ 565 instrumentation amplifier ........................ 305 integer ..................................................... 163, 518 integrated processing ............................. 570 integration ...............................................

  • Page 670

    Index moisture ................................................... 93, 99 monitoring data ....................................... 48, 55 mounting .................................................. 43, 99 msb ......................................................... 248, 249, 643 multi-meter ...........

  • Page 671

    Index polarity .................................................... 47 polarity reversal ..................................... 325 polarized sensor ..................................... 341 polynomial — thermocouple ................... 334 port ..........................................................

  • Page 672

    Index q quarter-bridge ........................................ 223, 337 quarter-bridge shunt .............................. 226 quarter-bridge zero ................................ 227 quickstart tutorial ................................... 41 r rain gage ..............................................

  • Page 673

    Index sequence — modem hangup ................. 151 sequence — shut down ......................... 151 sequence — web page .......................... 151 sequential mode ..................................... 105, 153 serial ....................................................... 62, 527 serial — com...

  • Page 674

    Index tcp/ip ..................................................... 290, 530 tcp/ip information .................................. 603 telecommunication ................................. 48, 55, 89, 90, 391, 408 telnet ...................................................... 295, 530 telnet settings .....

  • Page 675

    Index web page................................................ 593 web page sequence .............................. 151 web server ............................................. 291 wheatstone bridge .................................. 337 wind vector ............................................. 296,...

  • Page 678

    Campbell scientific companies campbell scientific, inc. (csi) 815 west 1800 north logan, utah 84321 united states www.Campbellsci.Com • info@campbellsci.Com campbell scientific africa pty. Ltd. (csaf) po box 2450 somerset west 7129 south africa www.Csafrica.Co.Za • cleroux@csafrica.Co.Za campbell sc...