Page 3
Warranty The CR800 Measurement and Control Datalogger is warranted for three (3) years subject to this limited warranty: Limited Warranty: Products manufactured by CSI are warranted by CSI to be free from defects in materials and workmanship under normal use and service for twelve months from the date of shipment unless otherwise specified in the corresponding product manual.
Page 5
A completed form must be either emailed to repair@campbellsci.com or faxed to 435-227- 9106. Campbell Scientific is unable to process any returns until we receive this form. If the form is not received within three days of product receipt or is incomplete, the product will be returned to the customer at the customer's expense.
Page 7
Precautions DANGER — MANY HAZARDS ARE ASSOCIATED WITH INSTALLING, USING, MAINTAINING, AND WORKING ON OR AROUND TRIPODS, TOWERS, AND ANY ATTACHMENTS TO TRIPODS AND TOWERS SUCH AS SENSORS, CROSSARMS, ENCLOSURES, ANTENNAS, ETC. FAILURE TO PROPERLY AND COMPLETELY ASSEMBLE, INSTALL, OPERATE, USE, AND MAINTAIN TRIPODS, TOWERS, AND ATTACHMENTS, AND FAILURE TO HEED WARNINGS, INCREASES THE RISK OF DEATH, ACCIDENT, SERIOUS INJURY, PROPERTY DAMAGE, AND PRODUCT...
Page 8
Periodically (at least yearly) check electrical ground connections. WHILE EVERY ATTEMPT IS MADE TO EMBODY THE HIGHEST DEGREE OF SAFETY IN ALL CAMPBELL SCIENTIFIC PRODUCTS, THE CUSTOMER ASSUMES ALL RISK FROM ANY INJURY RESULTING FROM IMPROPER INSTALLATION, USE, OR MAINTENANCE OF TRIPODS, TOWERS, OR ATTACHMENTS TO TRIPODS AND TOWERS SUCH AS SENSORS, CROSSARMS, ENCLOSURES, ANTENNAS, ETC.
Page 10
Table of Contents 5.1.1.4 Communication Ports — Overview ......... 61 5.1.1.4.1 RS-232 Ports ............62 5.1.1.4.2 SDI-12 Ports ............63 5.1.1.4.3 SDM Port .............. 63 5.1.1.4.4 CPI Port and CDM Devices — Overview .... 63 5.1.1.4.5 Ethernet Port ............64 5.1.1.5 Grounding —...
Page 11
Table of Contents 5.9.2 Protection from Voltage Transients — Overview ...... 85 5.9.3 Factory Calibration — Overview ..........86 5.9.4 Internal Battery — Overview ............. 86 5.10 Datalogger Support Software — Overview ........86 5.11 PLC Control — Overview ..............87 5.12 Auto Self-Calibration —...
Page 12
Table of Contents 7.6.2.1 Short Cut Programming Wizard ........122 7.6.2.2 CRBasic Editor .............. 122 7.6.2.2.1 Inserting Comments into Program ...... 123 7.6.2.2.2 Conserving Program Memory ......124 7.6.3 Programming Syntax ..............124 7.6.3.1 Program Statements ............124 7.6.3.1.1 Multiple Statements on One Line ....... 125 7.6.3.1.2 One Statement on Multiple Lines .......
Page 13
Table of Contents 7.7.1.2 Conditional Output ............173 7.7.1.3 Groundwater Pump Test ..........173 7.7.1.4 Miscellaneous Features ..........176 7.7.1.5 PulseCountReset Instruction .......... 178 7.7.1.6 Scaling Array ..............179 7.7.1.7 Signatures: Example Programs ........180 7.7.1.7.1 Text Signature ............. 180 7.7.1.7.2 Binary Runtime Signature........
Page 14
Table of Contents 7.7.14.4 SDI-12 Power Considerations........255 7.7.15 Compiling: Conditional Code........... 256 7.7.16 Measurement: RTD, PRT, PT100, PT1000 ......258 7.7.16.1 Measurement Theory (PRT) .......... 259 7.7.16.2 General Procedure (PRT) ..........260 7.7.16.3 Example: 100 Ω PRT in Four-Wire Half Bridge with Voltage Excitation (PT100 / BrHalf4W() ) ....
Page 15
Table of Contents 8.1.2.7.2 Voltage Measurement Mechanics ....... 348 8.1.2.7.3 Voltage Measurement Quality ......351 8.1.3 Pulse Measurements — Details ..........369 8.1.3.1 Pulse Measurement Terminals ........372 8.1.3.2 Low-Level Ac Measurements — Details ...... 372 8.1.3.3 High-Frequency Measurements ........373 8.1.3.3.1 Frequency Resolution .........
Page 19
Table of Contents B. Serial Port Pinouts ..........553 CS I/O Communication Port ............553 RS-232 Communication Port ............554 B.2.1 Pin Outs ..................554 B.2.2 Power States ................555 C. FP2 Data Format ............557 D. Endianness .............. 559 E.
Page 20
Table of Contents E.10.4 Primary Power Sources — List ..........577 E.10.5 24 Vdc Power Supply Kits — List ........... 578 E.11 Enclosures — List ................578 E.12 Tripods, Towers, and Mounts — List ..........579 E.13 Protection from Moisture — List ............ 580 Index ................
Page 21
Table of Contents FIGURE 44: Bool8 Data from Bit Shift Example (Numeric Monitor) ..195 FIGURE 45: Bool8 Data from Bit Shift Example (PC Data File) ....196 FIGURE 46: Input Sample Vectors ............204 FIGURE 47: Mean Wind-Vector Graph ............. 205 FIGURE 48: Standard Deviation of Direction ..........
Page 22
Table of Contents FIGURE 89: Vibrating Wire Sensor ............382 FIGURE 90: Input Conditioning Circuit for Period Averaging ....384 FIGURE 91: Circuit to Limit C Terminal Input to 5 Vdc ......385 FIGURE 92: Current-Limiting Resistor in a Rain Gage Circuit ....386 FIGURE 93: Current sourcing from C terminals configured for control ..
Page 23
Table of Contents Calibration Report for Relative Humidity Sensor ....218 Calibration Report for Salinity Sensor ........221 Calibration Report for Flow Meter .......... 223 Calibration Report for Water Content Sensor ......226 Maximum Measurement Speeds Using VoltSE() ....233 Voltage Measurement Instruction Parameters for Dwell Burst .....................
Page 24
CR800 File Attributes ............. 418 Powerup.ini Script Commands and Applications ....423 File System Error Codes ............425 Modbus to Campbell Scientific Equivalents ......437 Modbus Registers: CRBasic Port, Flag, and Variable Equivalents ................... 438 Supported Modbus Function Codes ........440 Special Keyboard/Display Key Functions ......
Page 25
Pin Out of CR800 RS-232 D-Type Connector Port ....554 Standard Null-Modem Cable Pin Out ........555 FP2 Data-Format Bit Descriptions ........557 FP2 Decimal Locater Bits ............. 557 Endianness in Campbell Scientific Instruments ....559 Dataloggers ................561 Analog Input Modules ............562 Pulse Input Modules .............. 563 Serial I/O Modules List ............
Page 27
Table of Contents String and Variable Concatenation ..... 166 BeginProg / Scan / NextScan / EndProg Syntax ....................172 Conditional Output ..........173 Groundwater Pump Test ........174 Miscellaneous Program Features......176 Scaling Array ............. 179 Program Signatures ..........181 Use of Multiple Scans ........
Page 28
Table of Contents PT100 BrFull() Four-Wire Full-Bridge Measurement ..................273 Receiving an RS-232 String ....... 291 Measure Sensors / Send RS-232 Data ....296 Concatenation of Numbers and Strings ....305 Subroutine with Global and Local Variables ..308 Time Stamping with System Time ..... 312 Measuring Settling Time ........
For more demanding applications, the remainder of the manual (p. 55). and other Campbell Scientific publications are available. If you are programming with CRBasic, you will need the extensive help available with the CRBasic Editor software. Formal CR800 training is also available from Campbell Scientific.
Section 1. Introduction In earlier days, Campbell Scientific dataloggers greeted our customers with a cheery HELLO at the flip of the ON switch. While the user interface of the CR800 datalogger has advanced beyond those simpler days, you can still hear the cheery HELLO echoed in voices you hear at Campbell Scientific.
When primary power is NOT connected to the CR800, the battery will last about three years. See section Internal Battery — Details for more information. (p. 457) IMPORTANT: Maintain a level of calibration appropriate to the • application. Campbell Scientific recommends factory recalibration of the CR800 every three years.
Model or part numbers are found on each product. On cabled items, the number is often found at the end of the cable that connects to the measurement device. The Campbell Scientific number may differ from the part or model number printed on the sensor by the sensor vendor.
4. Quickstart The following tutorial introduces the CR800 by walking you through a programming and data retrieval exercise. Sensors — Quickstart Related Topics: • Sensors — Quickstart (p. 35) • Measurements — Overview (p. 64) • Measurements — Details (p. 311) •...
Refer to the Sensors — Lists for a list of specific sensors available from (p. 567) Campbell Scientific. This list may not be comprehensive. A library of sensor manuals and application notes are available at www.campbellsci.com to assist in measuring many sensor types.
CR800 over long distances. It also allows you to discover system problems early. A Campbell Scientific sales engineer can help you make a shopping list for any of these comms options: •...
• Datalogger Support Software — Lists (p. 571) Campbell Scientific datalogger support software is PC or Linux software that facilitates comms between the computer and the CR800. A wide array of software are available. This section focuses on the following: Short Cut Program Generator for Windows (SCWin) •...
DVD or thumb drive, or at www.campbellsci.com. Note If the CR800 datalogger is to be connected to the PC during normal operations, use the Campbell Scientific SC32B interface to provide optical isolation through the CS I/O port. Doing so protects low-level analog measurements from grounding disturbances.
Section 4. Quickstart 3. Connect the positive lead of the power supply to the 12V terminal of the green power connector. Connect the negative (ground) lead of the power supply to the G terminal of the green connector. 4. Confirm the power supply connections have the correct polarity then insert the green power connector into its receptacle on the CR800 wiring panel.
Section 4. Quickstart Note A video tutorial is available at https://www.campbellsci.com/videos?video=80 (https://www.campbellsci.com/videos?video=80). Other video tutorials are available at www.campbellsci.com/videos. After exiting the wizard, the main PC200W window becomes visible. This window has several tabs. The Clock/Program tab displays clock and program information.
Section 4. Quickstart PC200W EZSetup Wizard Prompts Screen Name Information Needed Provides an introduction to the EZSetup Wizard Introduction along with instructions on how to navigate through the wizard. Select the CR800 from the list box. Datalogger Type and Name Accept the default name of CR800.
60 Hz ac voltage. Select 50 Hz for most of Europe and other areas that operate at 50 Hz. A second prompt lists sensor support options. Campbell Scientific, Inc. (US) is probably the best fit if you are outside Europe.
Section 4. Quickstart 4.6.4.2 Procedure: (Short Cut Steps 6 to 7) 6. Double-click Type T (copper-constantan) Thermocouple to add it into the Selected column. A dialog window is presented with several fields. By immediately clicking OK, you accept default options that include selection of 1 sensor and PTemp_C as the reference temperature measurement.
Section 4. Quickstart 10. Only one table is needed for this tutorial, so remove Table 2. Click 2 Table2 tab, then click Delete Table. 11. Change the name of the remaining table from Table1 to OneMin, and then change the Store Every interval to 1 Minutes. 12.
Section 4. Quickstart • Collect data from the CR800. Store the data on the PC. • 4.6.5.1 Procedure: (PC200W Step 1) 1. From the PC200W Clock/Program tab, click on Connect (upper left) to connect the CR800 to the PC. As shown in the following figure, when connected, the Connect button changes to Disconnect.
Section 4. Quickstart shown in the following figure, PC200W now displays data found in the CR800 Public table. FIGURE 8: PC200W Monitor Data Tab – Public Table 4.6.5.3 Procedure: (PC200W Step 5) 5. To view the OneMin table, select an empty cell in the display area. Click Add.
Section 4. Quickstart FIGURE 9: PC200W Monitor Data Tab — Public and OneMin Tables 4.6.5.4 Procedure: (PC200W Step 6) 6. Click on the Collect Data tab and select data to be collected and the storage location on the PC. FIGURE 10: PC200W Collect Data Tab...
Section 4. Quickstart 4.6.5.5 Procedure: (PC200W Steps 7 to 10) 7. Click the OneMin box so a check mark appears in the box. Under What to Collect, select New data from datalogger. 8. Click on a table in the list to highlight it, then click Change Table's Output File...
Section 4. Quickstart 4.6.5.6 Procedure: (PC200W Steps 11 to 12) 11. Click on to open a file for viewing. In the dialog box, select the CR800_OneMin.dat file and click Open. 12. The collected data are now shown. FIGURE 12: PC200W View Data Table 4.6.5.7 Procedure: (PC200W Steps 13 to 14) 13.
Section 4. Quickstart FIGURE 13: PC200W View Line Graph Data Acquisition Systems — Quickstart Related Topics: • Data Acquisition Systems — Quickstart (p. 52) • Data Acquisition Systems — Overview (p. 56) Acquiring data with a CR800 datalogger requires integration of the following into a data acquisition system: Electronic sensor technology •...
Section 4. Quickstart • Data Retrieval and Comms — Data are copied (not moved) from (p. 38) the CR800, usually to a PC, by one or more methods using datalogger support software. Most of these comms options are bi-directional, which allows programs and settings to be sent to the CR800.
5. Overview You have just received a big box (or several big boxes) from Campbell Scientific, opened it, spread its contents across the floor, and now you sit wondering what to Well, that depends. Probably, the first thing you should understand is the basic architecture of a data acquisition system.
Section 5. Overview FIGURE 15: Data Acquisition System — Overview Datalogger — Overview The CR800 datalogger is the main part of the system. It is a precision instrument designed to withstand demanding environments and to use the smallest amount of power possible.
Section 5. Overview The application program is written in CRBasic, which is a programming language that includes measurement, data processing, and analysis routines and the standard BASIC instruction set. For simpler applications, Short Cut a user- (p. 514), friendly program generator, can be used to write the progam. For more demanding programs, use CRBasic Editor (p.
Section 5. Overview communications and SDI-12 communications. Table CR800 Terminal summarizes available options. Definitions (p. 58) Figure Control and Monitoring with C Terminals illustrates a simple (p. 60) application wherein a C terminal configured for digital input and another configured for control output are used to control a device (turn it on or off) and monitor the state of the device (whether the device is on or off).
See the table Current Source and Sink Limits (p. 389). Continuous Analog Output (CAO) — available by adding a peripheral • analog output device available from Campbell Scientific. Refer to Analog-Output Modules — List for information on available (p. 394) expansion modules.
(p. 553). One nine-pin port, labeled CS I/O, for communicating with a PC or • modem through Campbell Scientific communication interfaces, modems, or peripherals. CS I/O comms interfaces are listed in the appendix Serial I/O Modules — List (p. 563).
• CPI Port and CDM Devices — Details (p. 455) CPI is a new proprietary protocol that supports an expanding line of Campbell Scientific CDM modules. CDM modules are higher-speed input- and output- expansion peripherals. CPI ports also enable networking between compatible Campbell Scientific dataloggers.
(p. 311) • Sensors — Lists (p. 567) Most electronic sensors, whether or not they are supplied by Campbell Scientific, can be connected directly to the CR800. Manuals that discuss alternative input routes, such as external multiplexers, peripheral measurement devices, or a wireless sensor network, can be found at...
Section 5. Overview This section discusses direct sensor-to-datalogger connections and applicable CRBasic programming to instruct the CR800 how to make, process, and store the measurements. The CR800 wiring panel has terminals for the following measurement inputs: 5.2.1 Time Keeping — Overview Related Topics: •...
Section 5. Overview low signal is simply sensor ground (0 mV). A single-ended measurement measures the high signal with reference to ground, with the low signal tied to ground. A differential measurement measures the high signal with reference to the low signal. Each configuration has a purpose, but the differential configuration is usually preferred.
Section 5. Overview • Sensor is not designed for differential measurements. Many Campbell Scientific sensors are not designed for differential measurement, but the draw backs of a single-ended measurement are usually mitigated by large programmed excitation and/or sensor output voltages.
Section 5. Overview • Low-level ac C terminals configurable for input for the following: • State Edge counting • Edge timing • Note A period-averaging sensor has a frequency output, but it is connected to a SE terminal configured for period-average input and measured with the PeriodAverage() instruction.
Section 5. Overview Pulse Input Terminals and Measurements Pulse Input CRBasic Terminal Input Type Data Option Instruction Counts • Low-level ac • • Frequency • High- P Terminal PulseCount() • frequency average of Switch-closure • frequency • Counts Frequency • Low-level ac •...
Section 5. Overview 5.2.4 Period Averaging — Overview Related Topics: • Period Average Measurements — Specifications • Period Average Measurements — Overview (p. 73) • Period Average Measurements — Details (p. 383) CR800 SE terminals can be configured to measure period average. Note Both pulse count and period average measurements are used to measure frequency output sensors.
Section 5. Overview Measuring the resonant frequency by means of period averaging is the classic technique, but Campbell Scientific has developed static and dynamic spectral- analysis techniques (VSPECT that produce superior noise rejection, higher (p. 521)) resolution, diagnostic data, and, in the case of dynamic VSPECT, measurements up to 333.3 Hz.
Section 5. Overview 5.2.6.2 RS-232 — Overview The CR800 has 4 ports available for RS-232 input as shown in figure Terminals Configurable for RS-232 Input (p. 75). As indicated in figure Use of RS-232 and Digital I/O when Reading RS-232 Devices RS-232 sensors can often be connected to C terminal pairs (p.
The CR800 communicates with external devices to receive programs, send data, or join a network. Data are usually moved through a comms link consisting of hardware and a protocol using Campbell Scientific datalogger support software Data can also be shuttled with external memory such as a or a Campbell 572).
Removing the device while it is active can cause data corruption. Data stored on a SC115 Campbell Scientific mass storage device can be retrieved via a comms link to the CR800 if the device remains on the CS I/O port. Data can also be retrieved by removing the device, connecting it to a PC, and copying off files using Windows File Explorer.
Data consolidation — other PakBus dataloggers can be used as sensors • to consolidate all data into one Campbell Scientific datalogger. • Routing — the CR800 can act as a router, passing on messages intended for another Campbell Scientific datalogger.
Section 5. Overview computers / HMI software, instruments (RTUs) and Modbus-compatible sensors. The CR800 communicates with Modbus over RS-232, (with a RS-232 to RS- 485 such as an MD485 adapter), and TCP. Modbus systems consist of a master (PC), RTU / PLC slaves, field instruments (sensors), and the communication-network hardware.
5.3.6 Comms Hardware — Overview The CR800 can accommodate, in one way or another, nearly all comms options. Campbell Scientific specializes in RS-232, USB, RS-485, short haul (twisted pairs), Wi-Fi, radio (single frequency and spread spectrum), land-line telephone, cell phone / IP modem, satellite, ethernet/internet, and sneaker net (external memory).
5.3.7.1 Integrated/Keyboard Display The integrated keyboard display, illustrated in figure Wiring Panel is a (p. 37), purchased option when buying a CR800 series datalogger. 5.3.7.2 Character Set The keyboard display character set is accessed using one of the following three procedures: The 16 keys default to ▲, ▼, ◄, ►, Home, PgUp, End, PgDn, Del,...
FIGURE 27: Custom Menu Example Measurement and Control Peripherals — Overview Modules are available from Campbell Scientific to expand the number of terminals on the CR800. These include: Multiplexers Multiplexers increase the input capacity of terminals configured for analog- input, and the output capacity of Vx excitation terminals.
Operating systems can also be transferred to the CR800 with a Campbell Scientific mass storage device. OS and settings remain intact when power is cycled. OS updates are occasionally made available at www.campbellsci.com.
A program is created on a PC and sent to the CR800. The CR800 can store a number of programs in memory, but only one program is active at a given time. Two Campbell Scientific software applications, Short Cut and CRBasic Editor, are used to create CR800 programs.
Section 5. Overview • Set AES-128 PakBus encryption key Set .csipasswd file for securing HTTP and web API • • Track signatures • Encrypt program files if they contain sensitive information Hide program files for extra protection • • Secure the physical CR800 and power supply under lock and key Note All security features can be subverted through physical access to the CR800.
(p. 86) • Factory Calibration or Repair Procedure (p. 461) The CR800 uses an internal voltage reference to routinely calibrate itself. Campbell Scientific recommends factory recalibration as specified in Specifications If calibration services are required, see Assistance (p. 91). (p. 5).
PC200W Datalogger Starter Software for Windows — Supports only • direct serial connection to the CR800 with hardwire or select Campbell Scientific radios. It supports sending a CRBasic program, data collection, and setting the CR800 clock; available at no charge at www.campbellsci.com/downloads...
Page 88
Section 5. Overview • Move a head gate to regulate water flows in a canal system. Control pH dosing and aeration for water quality purposes. • • Control a gas analyzer to stop operation when temperature is too low. • Control irrigation scheduling.
Section 5. Overview evaluate as TRUE on its first scan. The TimeIntoInterval() instruction will evaluate as TRUE at the top of the next hour (59 minutes later). Note START is inclusive and STOP is exclusive in the range of time that will return a TRUE result.
Page 90
Section 5. Overview CPU: drive — Automatically allocated — FAT32 file system — Limited write cycles (100,000) — Slow (serial access) Main Memory • Battery backed OS variables CRBasic compiled program binary structure (490 KB maximum) CRBasic variables Data memory Communication memory USR: drive —...
CR800 specifications are valid from ─25° to 50°C in non-condensing environments unless otherwise specified. Recalibration is recommended every three years. Critical specifications and system -- 8 10 30 configurations should be confirmed with a Campbell Scientific sales engineer before purchase. PROGRAM EXECUTION RATE PERIOD AVERAGE DIGITAL I/O PORTS (C 1–4)
(p. 93) Campbell Scientific designed for housing the CR800. This style of enclosure is classified as NEMA 4X (watertight, dust-tight, corrosion-resistant, indoor and outdoor use). Enclosures have back plates to which are mounted the CR800 datalogger and associated peripherals.
Section 7. Installation terminals provides protection from intermittent high voltages by clamping these transients to within the range of 19 to 21 V. Sustained input voltages in excess of 19 V, can damage the TVS diode. 7.2.2 Calculating Power Consumption System operating time for batteries can be determined by dividing the battery capacity (ampere-hours) by the average system current drain (amperes).
Section 7. Installation FIGURE 29: Connecting to Vehicle Power Supply 7.2.4 Uninterruptable Power Supply (UPS) A UPS (un-interruptible power supply) is often the best power source for long- term installations. An external UPS consists of a primary-power source, a charging regulator external to the CR800, and an external battery. The primary power source, which is often a transformer, power converter, or solar panel, connects to the charging regulator, as does a nominal 12 Vdc sealed rechargeable battery.
A good earth (chassis) ground will minimize damage to the datalogger and sensors by providing a low-resistance path around the system to a point of low potential. Campbell Scientific recommends that all dataloggers be earth (chassis) grounded. All components of the system (dataloggers, sensors, external power supplies, mounts, housings, etc.) should be referenced to one common earth...
While elaborate, expensive, and nearly infallible lightning protection systems are on the market, Campbell Scientific, for many years, has employed a simple and inexpensive design that protects most systems in most circumstances. The system employs a lightening rod, metal mast, heavy-gage ground wire, and ground rod to direct damaging current away from the CR800.
Section 7. Installation Note Lightning strikes may damage or destroy the CR800 and associated sensors and power supplies. In addition to protections discussed in use of a simple lightning rod and low- resistance path to earth ground is adequate protection in many installations. . FIGURE 31: Lightning Protection Scheme 7.3.2 Single-Ended Measurement Reference Low-level, single-ended voltage measurements (<200 mV) are sensitive to ground...
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 – C4 terminals to G terminals. Connect excitation grounds to the nearest terminal on the same •...
Note that the geometry of the electrodes has a great effect on the magnitude of this error. The Delmhorst gypsum block used in the Campbell Scientific 227 probe has two concentric cylindrical electrodes. The center electrode is used for excitation;...
The CR800 module is protected by a packet of silica gel desiccant, which is installed at the factory. This packet is replaced whenever the CR800 is repaired at Campbell Scientific. The module should not normally be opened except to replace the internal lithium battery.
Section 7. Installation FIGURE 33: Device Configuration Utility (DevConfig) 7.5.1.2 Network Planner — Setup Tools Network Planner is a drag-and-drop application used in designing PakBus datalogger networks. You interact with Network Planner through a drawing canvas upon which are placed PC and datalogger nodes. Links representing various comms options are drawn between nodes.
Section 7. Installation FIGURE 34: Network Planner Setup 7.5.1.2.1 Overview — Network Planner Network Planner allows you to • Create a graphical representation of a network, as shown in figure Network Planner Setup (p. 105), Determine settings for devices and LoggerNet, and •...
Section 7. Installation • It does not generate datalogger programs. It does not understand distances or topography; that is, it does not warn • when broadcast distances are exceeded, nor does it identify obstacles to radio transmission. For more detailed information on Network Planner, please consult the LoggerNet manual, which is available at www.campbellsci.com.
Section 7. Installation 7.5.1.3 Info Tables and Settings — Setup Tools Related Topics: • Info Tables and Settings (p. 527) • Common Uses of the Status Table (p. 529) • Status Table as Debug Resource (p. 470) Info tables and settings contain fields, settings, and information essential to setup, programming, and debugging of many advanced CR800 systems.
Section 7. Installation operations, retrieving these tables repeatedly may cause skipped scans 472). 7.5.1.4 CRBasic Program — Setup Tools Info tables and settings can be set or accessed using CRBasic instructions SetStatus() or SetSetting(). For example, to set the setting StationName to BlackIceCouloir, the following syntax is used: SetSetting("StationName","BlackIceCouloir") where StationName is the keyword for the setting, and BlackIceCouloir is the set...
Section 7. Installation 7.5.1.5.1 Default.cr8 File A file named default.cr8 can be stored on the CR800 CPU: drive. At power up, the CR800 loads default.cr8 if no other program takes priority (see Executable . Default.cr8 can be edited to preserve critical File Run Priorities (p.
Section 7. Installation or with comms. There is no restriction on the length of the file. CRBasic example Using an "Include File" shows a program that expects a file to (p. 111) control power to a modem. Consider the the example "include file", CPU:pakbus_broker.dld. The rules used by the CR800 when it starts are as follows: 1.
Section 7. Installation FIGURE 36: "Include" File Settings With PakBusGraph Using an "Include" File 'This program example demonstrates the use of an 'include' file. An 'include' file is a CRBasic file that usually 'resides on the CPU: drive of the CR800. It is essentially a subroutine that is 'stored in a file separate from the main program, but it compiles as an insert to the main 'program.
7.5.1.5.3 Executable File Run Priorities 1. When the CR800 powers up, it executes commands in the powerup.ini file (on Campbell Scientific mass storage device including commands to set the CRBasic program file attributes to Run Now or Run On Power-up.
Section 7. Installation 6. If there is no default.cr8 file or it cannot be compiled, the CR800 will not automatically run any program. 7.5.2 Setup Tasks Following are a few common configuration actions: • Updating the operating system (p. 113). •...
If the OS must be sent, and the site is difficult or expensive to access, try the OS download procedure on an identically programmed, more conveniently located CR800. Campbell Scientific recommends upgrading operating systems only with • a direct-hardwire link. However, the Send Program button in the (p.
Section 7. Installation 4. Follow the on-screen OS Download Instructions Pros/Cons This is a good way to recover a CR800 that has gone into an unresponsive state. Often, an operating system can be loaded even if you are unable to communicate with the CR800 through other means.
Section 7. Installation 3. Delete USR: drive 4. Stop current program deletes data and clears run options 5. Deletes data generated using the CardOut() or TableFile() instructions 7.5.2.1.3 OS Update with Send Program Command A send program command is a feature of DevConfig and other datalogger support software Location of this command in the software is listed in the following (p.
Section 7. Installation 3. Click the Send New… 4. Select the OS file to send 5. Restart the existing program through File Control, or send a new program with CRBasic Editor and specify new run options. Pros/Cons This is the best way to load a new operating system on the CR800 and have its settings retained (most of the time).
Section 7. Installation Loading an operating system through this method will do the following: 1. Preserve all datalogger settings 2. Delete all data in final storage 3. Preserve USR drive and data stored there 4. Maintains program run options 5. Deletes data generated using the CardOut() or TableFile() instructions DevConfig Send OS tab: If you are having trouble communicating with the CR800 •...
Section 7. Installation FIGURE 37: Summary of CR800 Configuration CRBasic Programming — Details Related Topics: • CRBasic Programming — Overview (p. 84) • CRBasic Programming — Details (p. 119) • Programming Resource Library (p. 171) • CRBasic Editor Help Programs are created with either Short Cut or CRBasic Editor Read (p.
Page 120
Triggers may be a fixed interval, a condition, Maximum() or both. Minimum() • Set the size of a data table. Send data to a Campbell Scientific mass storage device • if available. BeginProg Begin the action part of the program. Scan() Set the interval for a series of measurements.
Page 121
Section 7. Installation CRBasic Program Structure 'Declarations 'Define Constants Const RevDiff = 1 Const Del = 0 'default Const Integ = 250 Declare constants Const Mult = 1 Const Offset = 0 'Define public variables Public RefTemp Public TC(6) 'Define Units Declare public variables, Declarations Units...
The program can then be edited further using CRBasic Program Editor. 7.6.2.2 CRBasic Editor CR800 application programs are written in a variation of BASIC (Beginner's All- purpose Symbolic Instruction Code) computer language, CRBasic (Campbell Recorder BASIC). CRBasic Editor is a text editor that facilitates creation and...
Section 7. Installation modification of the ASCII text file that constitutes the CR800 application program. CRBasic Editor is a component of LoggerNet and PC400 RTDAQ datalogger support software (p. 86). Fundamental elements of CRBasic include the following: Variables — named packets of CR800 memory into which are stored •...
Section 7. Installation Inserting Comments 'This program example demonstrates the insertion of comments into a program. Comments are 'placed in two places: to occupy single lines, such as this explanation does, or to be 'placed after a statement. 'Declaration of variables starts here. Public Start(6) 'Declare the start time array...
Section 7. Installation 7.6.3.1.1 Multiple Statements on One Line Multiple short statements can be placed on a single text line if they are separated by a colon (:). This is a convenient feature in some programs. However, in general, programs that confine text lines to single statements are easier for humans to read.
Section 7. Installation Alias • StationName • The table Rules for Names lists declaration names and allowed lengths. (p. 159) See Predefined Constants for other naming limitations. (p. 138) 7.6.3.3 Declaring Variables A variable is a packet of memory that is given an alphanumeric name. Measurements and processing results pass through variables during program execution.
Section 7. Installation 7.6.3.3.1 Declaring Data Types Variables and data values stored in final memory can be configured with various data types to optimize program execution and memory usage. The declaration of variables with the Dim or Public instructions allows an optional type descriptor As that specifies the data type.
Page 128
Absolute Value Location 0 – 7.999 X.XXX Default final-memory data type. 8 – 79.99 XX.XX Campbell Use FP2 for stored data requiring 80 – 799.9 XXX.X Scientific 3 or 4 significant digits. If more floating point significant digits are needed, use 800 –...
Page 129
Section 7. Installation Data Types in Final-Storage Memory Word Name Argument Description Size Notes Resolution / Range (Bytes) Use to store count data in the range of ±2,147,483,648 Speed: integer math is faster than floating point math. Resolution: 32 bits. Compare to 24 bits in IEEE4.
Section 7. Installation Data Types in Final-Storage Memory Word Name Argument Description Size Notes Resolution / Range (Bytes) Divided up as four bytes of seconds since 1990 and four bytes NSEC NSEC Time stamp of nanoseconds into the second. 1 nanosecond Used to record and process time data.
Section 7. Installation 'Boolean Variable Examples Public Switches(8) As Boolean Public FLAGS(16) As Boolean 'String Variable Example Public FirstName As String * 16 'allows a string up to 16 characters long DataTable(TableName,True,-1) 'FP2 Data Storage Example Sample(1,Z,FP2) 'IEEE4 / Float Data Storage Example Sample(1,X,IEEE4) 'UINT2 Data Storage Example Sample(1,PosCounter,UINT2)
Section 7. Installation with (x,y,z) being the indices, have (x • y • z) number of variables in a cubic x-by- y-by-z matrix. Dimensions greater than three are not permitted by CRBasic. When using variables in place of integers as dimension indices (see CRBasic example Using Variable Array Dimension Indices , declaring the indices As (p.
Section 7. Installation works best in practice. CRBasic example Flag Declaration and Use (p. 133) demonstrates changing words in a string based on a flag. Flag Declaration and Use 'This program example demonstrates the declaration and use of flags as Boolean variables, 'and the use of strings to report flag status.
Section 7. Installation When a Function() function returns a pointer, apply the ! operator to the function call, as shown in the following example: Function ConstrainFunc(Value As Long,Low As Long,High As Long) As Long !Value < !Low Then Return ElseIf !Value >...
Section 7. Installation Using a Variable Array in Calculations 'This program example demonstrates the use of a variable array to reduce code. In this 'example, two variable arrays are used to convert four temperature measurements from 'degree C to degrees F. Public TempC(4) Public...
Section 7. Installation • perform a mathematical or logical operation for each element in a dimension using scalar or similarly located elements in different arrays and dimensions Here are some syntax rules and behaviors. Given the array, Array(A,B,C): • The () pair must always be present, i.e., reference the array as Array() or Array(A,B,C)().
Section 7. Installation Initializing Variables 'This program example demonstrates how variables can be declared as specific data types. 'Variables not declared as a specific data type default to data type Float. Also 'demonstrated is the loading of values into variables that are being declared. Public As Long 'Declaring a single variable As Long and loading the value of 1.
Section 7. Installation size of the mantissa, which is ±16,777,216. If the attempt is made to express a floating-point constant outside of this range, precision may be lost. Constants in a constant table can also be changed using the SetSetting() instruction and the constant table using the CR1000KD.
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, base-10 notation is supported by Campbell Scientific hardware and software displays. Formats for Entering Numbers in CRBasic...
Section 7. Installation Load binary information into a variable 'This program example demonstrates how binary data are loaded into a variable. The binary 'format (1 = high, 0 = low) is useful when loading the status of multiple flags 'or ports into a single variable. For example, storing the binary number &B11100000 'preserves the status of flags 8 through 1: flags 1 to 5 are low, 6 to 8 are high.
Section 7. Installation After EndSequence or an infinite Scan() / NextScan and before • EndProg or SlowSequence Immediately following SlowSequence. SlowSequence code starts • executing after any declaration sequence. Only declaration sequences can occur after EndSequence and before SlowSequence or EndProg. 7.6.3.11.1 Declaring Data Tables Data are stored in tables as directed by the CRBasic program.
Section 7. Installation identifies the array index. For example, a variable named Values, which is declared as a two-by-two array in the datalogger program, will be represented by four field names: Values(1,1), Values(1,2), Values(2,1), and Values(2,2). Scalar variables will not have array subscripts. There will be one value on this line for each scalar value defined by the table.
Page 144
Section 7. Installation DataTable(Table1,True,-1) DataInterval(0,1440,Min,0) 'Optional instruction to trigger table at 24-hour interval Minimum(1,Batt_Volt,FP2,False,False) 'Optional instruction to determine minimum Batt_Volt EndTable 'Main Program BeginProg Scan(5,Sec,1,0) 'Default 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,mV2_5C,1,TypeT,PTemp_C,True,0,_60Hz,1,0) 'Call Data Tables and Store Data CallTable(OneMin)
Page 145
Section 7. Installation overwriting the oldest data) at about the same time. Approximately 2 kB of extra data-table space are allocated to minimize the possibility of new data overwriting the oldest data in ring memory when datalogger support software collects the oldest data at the same time new data (p.
Section 7. Installation If a program is planned to experience multiple lapses, and if comms bandwidth is not a consideration, the Lapses parameter should be set to 0 to ensure the CR800 allocates adequate memory for each data table. DataInterval() Lapse Parameter Options DataInterval() Lapse Argument Effect...
Page 147
Section 7. Installation current inputs or calculations. If trigger conditions are true, for example if the data-output interval has expired, processed values are stored into the data table. In CRBasic example Declaration and Use of a Data Table three averages are (p.
Section 7. Installation Use of the Disable Variable 'This program example demonstrates the use of the 'disable' variable, or DisableVar, which 'is a parameter in many output processing instructions. Use of the 'disable' variable 'allows source data to be selectively included in averages, maxima, minima, etc. If the ''disable' variable equals -1, or true, data are not included;...
Section 7. Installation Note A particular subroutine can be called by multiple program sequences simultaneously. To preserve measurement and processing integrity, the CR800 queues calls on the subroutine, allowing only one call to be processed at a time in the order calls are received. This may cause unexpected pauses in the conflicting program sequences.
Section 7. Installation 7.6.3.12 Execution and Task Priority Execution of program instructions is divided among the following three tasks: Measurement task — rigidly timed measurement of sensors connected • directly to the CR800 • CDM task — rigidly timed measurement and control of CDM/CPI (p.
Campbell Scientific mass storage device , occur. When running in sequential mode, the datalogger uses a queuing system for processing tasks similar to the one used in pipeline mode.
Section 7. Installation 7.6.3.13 Execution Timing Timing of program execution is regulated by timing instructions listed in the following table. Program Timing Instructions Instructions General Guidelines Syntax Form BeginProg Scan() Use in most programs. Scan() / NextScan Begins / ends the main scan.
Section 7. Installation BeginProg / Scan() / NextScan / EndProg Syntax 'This program example demonstrates the use of BeginProg/EndProg and Scan()/NextScan syntax. Public PanelTemp_ DataTable(PanelTempData,True,-1) DataInterval(0,1,Min,10) Sample(1,PanelTemp_,FP2) EndTable BeginProg <<<<<<<BeginProg Scan(1,Sec,3,0) <<<<<<< Scan PanelTemp(PanelTemp_,250) CallTable PanelTempData NextScan <<<<<<< NextScan EndProg <<<<<<<EndProg Scan() determines how frequently instructions in the program are executed, as shown in the following CRBasic code snip:...
Section 7. Installation splicing, measurements in a slow sequence may span across multiple-scan intervals in the main program. When no measurements need to be spliced, the slow-sequence scan will run independent of the main scan, so slow sequences with no measurements can run at intervals ≤ main-scan interval (still in 10 ms increments) without skipping scans.
Page 156
Section 7. Installation Permission to proceed with a measurement is granted by the measurement Main scans with measurements have priority to acquire the semaphore (p. 514). 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.
Section 7. Installation FIGURE 38: Sequential-Mode Scan Priority Flow Diagrams 7.6.3.14 Programming Instructions In addition to BASIC syntax, additional instructions are included in CRBasic to facilitate measurements and store data. See CRBasic Editor Help for a (p. 122) comprehensive list of these instructions. 7.6.3.14.1 Measurement and Data Storage Processing CRBasic instructions have been created for making measurements and storing...
Section 7. Installation PanelTemp(Dest,Integ) PanelTemp is the keyword. Two parameters follow: Dest, a destination variable name in which the temperature value is stored; and Integ, of a length of time to integrate the measurement. To place the panel temperature measurement in the variable RefTemp, using a 250 µs integration time, the syntax is as shown in CRBasic example Measurement Instruction Syntax (p.
Section 7. Installation Caution Concerning characters allowed in names, characters not listed in in the table, Rules for Names, may appear to be supported in a specific operating system. However, they may not be supported in future operating systems. Rules for Names Maximum Length Name...
Section 7. Installation 'DataTable(Name, TrigVar, Size) DataTable(Temp, TC > 100, 5000) When the trigger is TC > 100, a thermocouple temperature greater than 100 sets the trigger to True and data are stored. 7.6.3.16 Programming Expression Types An expression is a series of words, operators, or numbers that produce a value or result.
Section 7. Installation discuss floating-point arithmetic thoroughly. One readily available source is the topic Floating Point at www.wikipedia.org. In summary, CR800 programmers should consider at least the following: • Floating-point numbers do not perfectly mimic real numbers. • Floating-point arithmetic does not perfectly mimic true arithmetic. Avoid use of equality in conditional statements.
Section 7. Installation Boolean from FLOAT or LONG When a FLOAT or LONG is converted to a Boolean as shown in CRBasic example Conversion of FLOAT / LONG to Boolean zero becomes false (0) (p. 162), and non-zero becomes true (-1). Conversion of FLOAT / LONG to Boolean 'This program example demonstrates conversion of Float and Long data types to Boolean 'data type.
Section 7. Installation Evaluation of Integers 'This program example demonstrates the evaluation of integers. Public As Long Public As Float BeginProg I = 126 X = (I+3) * 3.4 'I+3 is evaluated as an integer, then converted to Float data type before it is 'multiplied by 3.4.
Section 7. Installation argument TRUE is predefined in the CR800 operating system to only equal -1, so only the argument -1 is always translated as TRUE. Consider the expression Condition(1) = TRUE Then... This condition is true only when Condition(1) = -1. If Condition(1) is any other non-zero, the condition will not be found true because the constant TRUE is predefined as -1 in the CR800 system memory.
Section 7. Installation Using TRUE or FALSE conditions with logic operators such as AND and OR, logical expressions can be encoded to perform one of the following three general logic functions. Doing so facilitates conditional processing and control applications: 1. Evaluate an expression, take one path or action if the expression is true (= –1), and / or another path or action if the expression is false (= 0).
Section 7. Installation Logical Expression Examples The NOT operator complements every bit in the word. A Boolean can be FALSE (0 or all bits set to 0) or TRUE (- 1 or all bits set to 1). Complementing a Boolean turns TRUE to FALSE (all bits complemented to 0). Example Program '(a AND b) = (26 AND 26) = (&b11010 AND &b11010) = '&b11010.
Section 7. Installation Prc is the abbreviation of the name of the data process used. See table • Data Process Abbreviations for a complete list of these (p. 168) abbreviations. This is not needed for values from Status or Public tables. Fieldname Index is the array element number in fields that are arrays •...
Section 7. Installation where wderr is a declared variable, status is the table name, and watchdogerrors is the keyword for the watchdog error field. Seven special variable names are used to access information about a table. • EventCount EventEnd • Output •...
(p. 86) Program send command in Device Configuration Utility (DevConfig • 103)) Campbell Scientific mass storage device • (p. 571) A good practice is to always retrieve data from the CR800 before sending a program; otherwise, data may be lost.
To keep data, select Run Now, Run On Power-up, and Preserve data if no table changed, then press Send Program. Note To retain data, Preserve data if no table changed must be selected whether or not a Campbell Scientific mass storage device is connected. Program Send Options That Reset Memory...
Page 172
Section 7. Installation BeginProg / Scan / NextScan / EndProg Syntax 'This program example demonstrates detection and recording of an event. An event has a 'beginning and an end. This program records an event as occurring at the end of the event. 'The event recorded is the transition of a delta temperature above 3 degrees.
Section 7. Installation 7.7.1.2 Conditional Output CRBasic example Conditional Output demonstrates conditionally sending (p. 173) data to a data table based on a trigger other than time. Conditional Output 'This program example demonstrates the conditional writing of data to a data table. 'also demonstrates use of StationName() and Units instructions.
Section 7. Installation • Execute conditional code Use multiple sequential scans, each with a scan count • Groundwater Pump Test 'This program example demonstrates the use of multiple scans in a program by running a 'groundwater pump test. Note that Scan() time units of Sec have been changed to mSec for 'this demonstration to allow the program to run its course in a short time.
Page 175
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 Tables CallTable LogTable NextScan 'Minute 30 to 100 of test: 60-second data-output interval...
Section 7. Installation 7.7.1.4 Miscellaneous Features CRBasic example Miscellaneous Program Features shows how to use (p. 176) several CRBasic features: data type, units, names, event counters, flags, data- output intervals, and control statements. Miscellaneous Program Features 'This program example demonstrates the use of a single measurement instruction. In this 'case, the program measures the temperature of the CR800 wiring panel.
Page 177
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...
Section 7. Installation Scan(1,Sec,1,0) 'Measurements 'Battery Voltage Battery(Batt_Volt) 'Wiring Panel Temperature PanelTemp(PTemp_C,250) 'Type T Thermocouple measurements: TCDiff(AirTemp_C,1,mV2_5C,1,TypeT,PTemp_C,True,0,_60Hz,1,0) TCDiff(AirTemp_F,1,mV2_5C,1,TypeT,PTemp_C,True,0,_60Hz,1.8,32) 'Convert from degree C to degree F AirTemp2_F = AirTemp_C * 1.8 + 32 'Count the number of times through the program. This demonstrates the use of a 'Long integer variable in counters.
Section 7. Installation PulseCountReset is needed in applications wherein two separate PulseCount() instructions in separate scans measure the same pulse input terminal. While the compiler does not allow multiple PulseCount() instructions in the same scan to measure the same terminal, multiple scans using the same terminal are allowed. PulseCount() information is not maintained globally, but for each individual instruction occurrence.
Section 7. Installation Scan(5,Sec,1,0) 'Measure reference temperature PanelTemp(PTemp_C,250) 'Measure three thermocouples and scale each. Scaling factors from the scaling array 'are applied to each measurement because the syntax uses an argument of 3 in the Reps 'parameter of the TCDiff() instruction and scaling variable arrays as arguments in the 'Multiplier and Offset parameters.
Section 7. Installation Program Signatures 'This program example demonstrates how to request the program text signature (ProgSig = Status.ProgSignature), and the 'binary run-time signature (RunSig = Status.RunSignature). It also calculates two 'executable code segment signatures (ExeSig(1), ExeSig(2)) 'Define Public Variables Public RunSig, ProgSig, ExeSig(2),x,y 'Define Data Table...
Section 7. Installation Use of Multiple Scans 'This program example demonstrates the use of multiple scans. Some applications require 'measurements or processing to occur at an interval different from that of the main 'program scan. Secondary scans are preceded with the SlowSequence instruction. 'Declare Public Variables Public PTemp...
Section 7. Installation Loading Large Data Sets 'This program example demonstrates how to load a set of data into variables. Twenty values 'are loaded into two arrays: one declared As Float, one declared As Long. Individual Data 'lines can be many more values long than shown (limited only by maximum statement length), 'and many more lines can be written.
Page 184
Section 7. Installation • Mathematical Logical • Examples include: Process a variable array without use of For/Next • Create boolean arrays based on comparisons with another array or a • scalar variable Copy a dimension to a new location • Perform logical operations for each element in a dimension using scalar •...
Section 7. Installation • If indices are not specified, or none have been preceded with a minus sign, the least significant dimension of the array is assumed. The offset into the dimension being accessed is given by (a,b,c). • • If the array is referenced as array(), the starting point is array(1,1,1) and the least significant dimension is accessed.
Section 7. Installation BeginProg Scan (1,Sec,0,0) i = 1 To 2 'For each column of the source array A(), copy the column into a row of the 'destination array At() At(i,-1)() = A(-1,i)() Next NextScan EndProg 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 array to generate a...
Section 7. Installation Array Assigned Expression: Fill Array Dimension 'Example: Fill Array Dimension Public A(3) Public B(3,2) Public C(4,3,2) Public Da(3,2) = {1,1,1,1,1,1} Public Db(3,2) Public DMultiplier(3) = {10,100,1000} Public DOffset(3) = {1,2,3} BeginProg Scan(1,Sec,0,0) A() = 1 'set all elements of 1D array or first dimension to 1 B(1,1)() = 100 'set B(1,1) and B(1,2) to 100 B(-2,1)() = 200...
Page 188
Section 7. Installation Note This instruction should not normally be inserted within a For/Next construct with the Source and Destination parameters indexed and Reps set to 1. Doing so will perform a single running average, using the values of the different elements of the array, instead of performing an independent running average on each element of the array.
Page 189
Section 7. Installation For the example above, the delay is: Delay in time = (1 ms) • (4 – 1) / 2 = 1.5 ms Example: An accelerometer was tested while mounted on a beam. The test had the following characteristics: Accelerometer resonant frequency ≈...
Section 7. Installation 7.7.5 Data Output: Two Intervals in One Data Table Two Data-Output Intervals in One Data Table 'This program example demonstrates the use of two time intervals in a data table. One time 'interval in a data table is the norm, but some applications require two. 'Allocate memory to a data table with two time intervals as is done with a conditional table, 'that is, rather than auto-allocate, set a fixed number of records.
Section 7. Installation 'Call output tables CallTable TwoInt NextScan EndProg 7.7.6 Data Output: Triggers and Omitting Samples TrigVar is the third parameter in the DataTable() instruction. It controls whether or not a data record is written to final memory. TrigVar control is subject to other conditional instructions such as the DataInterval() and DataEvent() instructions.
Section 7. Installation FIGURE 42: Data from TrigVar Program Using TrigVar to Trigger Data Storage 'This program example demonstrates the use of the TrigVar parameter in the DataTable() 'instruction to trigger data storage. In this example, the variable Counter is 'incremented by 1 at each scan.
Page 194
Section 7. Installation of information (eight states with one bit per state). To store the same information using a 32 bit BOOLEAN data type, 256 bits are required (8 states * 32 bits per state). When programming with BOOL8 data type, repetitions in the output processing DataTable() instruction must be divisible by two, since an odd number of bytes cannot be stored.
Section 7. Installation FIGURE 45: Bool8 Data from Bit Shift Example (PC Data File) Bool8 and a Bit Shift Operator 'This program example demonstrates the use of the Bool8 data type and the ">>" bit-shift 'operator. Public Alarm(32) Public Flags As Long Public FlagsBool8(4)
Page 197
Section 7. Installation 'If bit in OR bit in The result 'Flags Is Bin/Hex Is '---------- ---------- ---------- 'Binary equivalent of Hex: Alarm(1) Then Flags = Flags &h1 &b1 Alarm(2) Then Flags = Flags &h2 &b10 Alarm(3) Then Flags = Flags &h4 &b100 Alarm(4)
Section 7. Installation NSEC — One Element Time Array 'This program example demonstrates the use of NSEC data type to determine seconds since '00:00:00 1 January 1990. A time stamp is retrieved into variable TimeVar(1) as seconds 'since 00:00:00 1 January 1990. Because the variable is dimensioned to 1, NSEC assumes 'the value = seconds since 00:00:00 1 January 1990.
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 NSEC — Seven and Nine Element Time Arrays 'This program example demonstrates the use of NSEC data type to sample a time stamp into 'final-data memory using an array dimensioned to 7 or 9.
Section 7. Installation NSEC —Convert Timestamp to Universal Time 'This program example demonstrates the use of NSEC data type to convert a data time stamp 'to universal time. 'Application: the CR800 needs to display Universal Time (UT) in human readable 'string forms.
WVc(2): Resultant mean horizontal wind speed (U) WVc(3): Resultant mean wind direction (Θu) WVc(4): Standard deviation of wind direction σ(Θu). This standard deviation is calculated using Campbell Scientific's wind speed weighted algorithm. Use of the resultant mean horizontal wind direction is not recommended for straight-line Gaussian dispersion models, but may be used to model transport direction in a variable-trajectory model.
Section 7. Installation Note Cup anemometers typically have a mechanical offset which is added to each measurement. A numeric offset is usually encoded in the CRBasic program to compensate for the mechanical offset. When this is done, a measurement will equal the offset only when wind speed is zero; consequently, additional code is often included to zero the measurement when it equals the offset so that WindVector() can reject measurements when wind speed is zero.
Section 7. Installation 7.7.9.2.2 Calculations Input Sample Vectors FIGURE 46: Input Sample Vectors In figure Input Sample Vectors the short, head-to-tail vectors are the input (p. 204), sample vectors described by s and Θ , the sample speed and direction, or by Ue and Un , the east and north components of the sample vector.
Section 7. Installation or, in the case of orthogonal sensors where Standard deviation of wind direction (Yamartino algorithm) where, and Ux and Uy are as defined above. Mean Wind Vector Resultant mean horizontal wind speed, Ū: FIGURE 47: Mean Wind-Vector Graph where for polar sensors:...
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...
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 Campbell Scientific; the Air Resources Laboratory, NOAA, Idaho Falls, ID; and MERDI, Butte, MT.
Page 208
Section 7. Installation Use the following CRBasic instructions. Refer to CRBasic Editor Help for complete information. DisplayMenu() Marks the beginning and end of a custom menu. Only one allowed per program. Note Label must be at least six characters long to mask default display clock.
Section 7. Installation Custom Menu Example — Control LED Pick List (p. 211) Custom Menu Example — Control LED Boolean Pick List (p. 211) FIGURE 50: Custom Menu Example — Home Screen FIGURE 51: Custom Menu Example — View Data Window FIGURE 52: Custom Menu Example —...
Section 7. Installation FIGURE 53: Custom Menu Example — Predefined Notes Pick List FIGURE 54: Custom Menu Example — Free Entry Notes Window FIGURE 55: Custom Menu Example — Accept / Clear Notes Window...
Section 7. Installation FIGURE 56: Custom Menu Example — Control Sub Menu FIGURE 57: Custom Menu Example — Control LED Pick List FIGURE 58: Custom Menu Example — Control LED Boolean Pick List Note See figures Custom Menu Example — Home Screen through (p.
Section 7. Installation Custom Menus 'This program example demonstrates the building of a custom CR1000KD Keyboard/Display menu. 'Declarations supporting View Data menu item Public RefTemp 'Reference Temp Variable Public TCTemp(2) 'Thermocouple Temp Array 'Delarations supporting blank line menu item Const Escape = "Hit Esc"...
Page 213
Section 7. Installation SubMenu("Make Notes ") 'Create Submenu named PanelTemps MenuItem("Predefined",SelectNote) 'Choose predefined notes Menu Item MenuPick(Cal_Done,Offset_Changed) 'Create pick list of predefined notes MenuItem("Free Entry",EnterNote) 'User entered notes Menu Item MenuItem("Accept/Clear",CycleNotes) MenuPick(Accept,Clear) EndSubMenu 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...
Section 7. Installation PortSet(4,ToggleLED) 'Set control port according 'to result of processing NextScan EndProg 7.7.11 Field Calibration — Details Related Topics: • Field Calibration — Overview (p. 75) • Field Calibration — Details (p. 214) Calibration increases accuracy of a sensor by adjusting or correcting its output to match independently verified quantities.
Section 7. Installation 7.7.11.2 Field Calibration Programming Field-calibration functionality is included in a CRBasic program through either of the following instructions: FieldCal() — the principal instruction used for non-strain gage type • sensors. For introductory purposes, use one FieldCal() instruction and a unique set of FieldCal() variables for each sensor.
Section 7. Installation software documentation available at www.campbellsci.com. Be aware of the following precautions: The CR800 does not check for out-of-bounds values in mode variables. • Valid mode variable entries are 1 or 4. • Before, during, and after calibration, one of the following codes will be stored in the CalMode variable: FieldCal() Codes Value Returned...
Section 7. Installation 4. Set KnownVar variable to the offset or zero value. 5. Set mode variable = 1 to start calibration. 7.7.11.4.2 Two-Point Calibrations (gain and offset) Use this two-point calibration procedure to adjust multipliers (slopes) and offsets (y intercepts). See FieldCal() Slope and Offset (Opt 2) Example (p.
Section 7. Installation • Offset Two-point slope and offset • • Two-point slope only • Zero basis (designed for use with static vibrating wire measurements) These demonstration programs are provided as an aid in becoming familiar with the FieldCal() features at a test bench without actual sensors. For the purpose of the demonstration, sensor signals are simulated by CR800 terminals configured menu for excitation.
Section 7. Installation terminals VX1 and SE1. The following variables are preset by the program: SimulatedRHSignal = 100, KnownRH = 0. 3. To start the 'calibration', set variable CalMode = 1. When CalMode increments to 6, zero calibration is complete. Calibrated RHOffset will equal - 5% at this stage of this example.
Section 7. Installation 'DECLARE VARIABLE FOR FieldCal() CONTROL Public CalMode 'DECLARE DATA TABLE FOR RETRIEVABLE CALIBRATION RESULTS DataTable(CalHist,NewFieldCal,200) SampleFieldCal EndTable BeginProg 'LOAD CALIBRATION CONSTANTS FROM FILE CPU:CALHIST.CAL 'Effective after the zero 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 = 6 ExciteV(Vx1,SimulatedRHSignal,0)
Section 7. Installation FieldCal() Offset 'This program example demonstrates the use of FieldCal() in calculating and applying an 'offset calibration. An offset calibration compares the signal magnitude of a sensor to a 'known standard and calculates an offset to adjust the sensor output to the known value. 'The offset is then used to adjust subsequent measurements.
Section 7. Installation 'SIMULATE SIGNAL THEN MAKE THE MEASUREMENT 'Zero calibration is applied when variable CalMode = 6 ExciteV(Vx1,SimulatedSalinitySignal,0) VoltSE(Salinity,1,mV2500,1,1,0,250,0.05,SalinityOffset) 'PERFORM AN OFFSET CALIBRATION. 'Start by setting variable CalMode = 1. Finished when variable CalMode = 6. 'FieldCal(Function, MeasureVar, Reps, MultVar, OffsetVar, Mode, KnownVar, Index, Avg) FieldCal(1,Salinity,1,0,SalinityOffset,CalMode,KnownSalinity,1,30) 'If there was a calibration, store calibration values into data table CalHist CallTable(CalHist)
Section 7. Installation a. For the first point, set variable SimulatedFlowSignal = 300. Set variable KnownFlow = 30.0. b. Start the calibration by setting variable CalMode = 1. c. When CalMode increments to 3, for the second point, set variable SimulatedFlowSignal = 550.
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: This program places a .cal file on the CPU: drive of the CR800.
Section 7. Installation parameter. Subsequent measurements are scaled with the same multiplier. FieldCal() Option 3 does not affect offset. Some measurement applications do not require determination of offset. Frequency analysis, for example, may only require relative data to characterize change. Example Case: A soil-water sensor is to be used to detect a pulse of water moving through soil.
Section 7. Installation FieldCal() Multiplier 'This program example demonstrates the use of FieldCal() in calculating and applying a 'multiplier only calibration. A multiplier calibration compares the signal magnitude of a 'sensor to known standards. The calculated multiplier scales the reported magnitude of the 'sensor to a value consistent with the linear relationship that intersects known points 'sequentially entered in to the FieldCal() KnownVar parameter.
This section is not intended to be a primer on shunt-calibration theory, but only to introduce use of the technique with the CR800 datalogger. Campbell Scientific strongly urges users to study shunt-calibration theory from other sources. A...
Section 7. Installation FieldCalStrain() with the manufacturer's gage factor (GF), becoming the adjusted gage factor (GF ), 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.
Section 7. Installation FIGURE 59: Quarter-Bridge Strain Gage with RC Resistor Shunt FieldCalStrain() Calibration 'This program example demonstrates the use of the FieldCalStrain() instruction by measuring 'quarter-bridge strain-gage measurements. Public Raw_mVperV Public MicroStrain 'Variables that are arguments in the Zero Function Public Zero_Mode Public...
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 and set Zero_Mode = 1 in numeric monitor. Repeat after 'shunt calibration. FieldCalStrain(10,Raw_mVperV,1,0,Zero_mVperV,Zero_Mode,0,1,10,0 ,microStrain) 'Step (2) Shunt Calibration 'After zero calibration, and with bridge balanced (zeroed), set 'KnownRes = to gage resistance (resistance of gage at rest), then set...
Section 7. Installation FIGURE 61: Strain Gage Shunt Calibration Finish 7.7.11.6.4 FieldCalStrain() Quarter-Bridge Zero Continuing from FieldCalStrain() Quarter-Bridge Shunt Example keep the (p. 231), 249 kΩ resistor in place to simulate a strain. Using the CR1000KD Keyboard/Display or software numeric monitor, change the value in variable Zero_Mode to 1 to start the zero calibration as shown in figure Zero Procedure Start When Zero_Mode increments to 6, zero calibration is complete as...
Section 7. Installation 7.7.12 Measurement: Fast Analog Voltage Measurement speed requirements vary widely. The following are examples: • An agricultural weather station measures weather and soil sensors once every 10 seconds. A station that warns of rising water in a stream bed measures at 10 Hz. •...
Section 7. Installation BrHalf3W() BrHalf4W() Therm107() Therm108() Therm109() Differential Instructions: • VoltDiff() TCDiff() BrFull() BrFull6W() To do this, use the same programming techniques demonstrated in the following example programs. Actual measurements speeds will vary. Fast Analog Voltage Measurement: Fast Scan() 'This program makes 100 Hz measurements of one single-ended channel.
Section 7. Installation Analog Voltage Measurement: Cluster Burst 'This program makes 500 measurements of two single-ended channels at 500 Hz. 'Sample pattern is 1,2,1,2. Measurement cycle is repeated every 1 Sec. The following 'programming features are key to making this application work: '--PipelingMode enabled.
Section 7. Installation Dwell Burst Measurement 'This program makes 1735 measurements of two single-ended channels at '2000 Hz. Sample pattern is 1,1,1..., pause, 2,2,2..., pause. 'Measurement cycle is repeated every 2 Sec. The following programming features are 'key to making this application work: '--PipelineMode.enabled.
Section 7. Installation Voltage Measurement Instruction Parameters for Dwell Burst Parameters Description A variable array dimensioned to store all measurements from one input. For example, the declaration, FastTemp(500) Destination dimensions array FastTemp() to store 500 measurements, which is one second of data at 500 Hz or one-half second of data at 1000 Hz.
Page 238
Section 7. Installation • When testing and troubleshooting fast measurements, the following Status table registers may provide useful information: SkippedScan (p. 550) MeasureTime (p. 544) ProcessTime (p. 547) MaxProcTime (p. 544) BuffDepth (p. 537) MaxBuffDepth (p. 544) When the number of Scan()/NextScan BufferOptions is exceeded, a •...
Section 7. Installation SubScan()/NextSubScan introduces potential problems. These are discussed in SubScan() / Next Sub (p. 155). SubScan()/NextSubScan Counts cannot be larger than 65535. For SubScan()/NextSubScan to work, set Scan()/NextScan Interval large enough for Counts to finish before the next Scan()/NextScan Interval.
SDI-12 standard v 1.3 sensors accept addresses 0 through 9, a through z, and A through Z. For a CRBasic programming example demonstrating the changing of an SDI-12 address on the fly, see Campbell Scientific publication PS200/CH200 12 V Charging Regulators, which is available at www.campbellsci.com.
Section 7. Installation To enter the SDI-12 transparent mode, enter the datalogger support software terminal emulator as shown in the figure Entering SDI-12 Transparent Mode Press Enter until the CR800 responds with the prompt CR800>. Type 241). SDI12 at the prompt and press Enter. In response, the query Enter Cx Port is presented with a list of available ports.
013CampbellCS1234003STD.03.01 means address = 0, SDI-12 protocol version number = 1.3, Send Identification manufacturer is Campbell Scientific, CS1234 is the sensor model number (fictitious in this example), 003 is the sensor version number, STD.03.01 indicates the sensor revision number is .01.
Page 243
Section 7. Installation SDI-12 Commands for Transparent Mode Response Command Name Command Syntax Notes If the terminator ' ! ' is not present, the command will not be issued. The CRBasic SDI12Recorder() instruction, however, will still pick up data resulting from a previously issued C! command. Complete response string can be obtained when using the SDI12Recorder() instruction by declaring the Destination variable as String .
Page 244
Section 7. Installation SDI-12 Start Measurement Commands Measurement commands elicite responses in the form: atttnn where: a is the sensor address ttt is the time (s) until measurement data are available nn is the number of values to be returned when one or more subsequent D! commands are issued.
Page 245
Section 7. Installation Aborting an SDI-12 Measurement Command A measurement command (M! or C!) is aborted when any other valid command is sent to the sensor. SDI-12 Send Data Command Send data commands are normally issued automatically by the CR800 after the aMv! or aCv! measurement commands.
Section 7. Installation 7.7.14.2 SDI-12 Recorder Mode The CR800 can be programmed to act as an SDI-12 recording device or as an SDI-12 sensor. For troubleshooting purposes, responses to SDI-12 commands can be captured in programmed mode by placing a variable declared As String in the variable parameter.
Page 247
Section 7. Installation SDI-12 Commands for Programmed (SDIRecorder()) Mode SDI-12 Command Sent SDIRecorder() SDICommand Sensor Response Command Name Argument CR800 Response Notes CR800: else, if ttt > 0 then moves to next CRBasic program instruction CR800: at next time SDIRecorder() is executed, if elapsed time <...
Section 7. Installation 7.7.14.2.1 Alternate Start Concurrent Measurement Command Note aCv and aCv! are different commands — aCv does not end with !. The SDIRecorder() aCv command facilitates using the SDI-12 standard Start Concurrent command (aCv!) without the back-to-back measurement sequence normal to the CR800 implementation of aCv!.
Page 249
Section 7. Installation Public BatteryVolt Public Temp(4) BeginProg Scan(5,Sec,0,0) 'Non-SDI-12 measurements here NextScan SlowSequence Scan(5,Min,0,0) SDI12Recorder(Temp(1),1,0,"M!",1.0,0) SDI12Recorder(Temp(2),1,1,"M!",1.0,0) SDI12Recorder(Temp(3),1,2,"M!",1.0,0) SDI12Recorder(Temp(4),1,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 95 seconds, well within the 5 minute scan rate requirement, as follows: Public...
Section 7. Installation Note When only one SDI-12 sensor is attached, that is, multiple sensor measurements do not need to start concurrently, another reliable method for making SDI-12 measurements without affecting the main scan is to use the CRBasic SlowSequence instruction and the SDI-12 M! command. The main scan will continue to run during the ttt time returned by the SDI- 12 sensor.
Section 7. Installation SlowSequence SDI12SensorSetup(1,3,1,95) Delay(1,95,Sec) SDI12SensorResponse(Temp(2)) Loop EndSequence SlowSequence SDI12SensorSetup(1,5,2,95) Delay(1,95,Sec) SDI12SensorResponse(Temp(3)) Loop EndSequence SlowSequence SDI12SensorSetup(1,7,3,95) Delay(1,95,Sec) SDI12SensorResponse(Temp(4)) Loop EndSequence EndProg Using Alternate Concurrent Command (aC) 'This program example demonstrates the use of the special SDI-12 concurrent measurement 'command (aC) when back-to-back measurements are not desired, as can occur in an application 'that has a tight power budget.
Page 252
Section 7. Installation 'Begin measurement sequence RunSDI12 = True Then X = 1 Temp_Tmp(X) = 2e9 'when 2e9 changes, indicates a change Next '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 X = 1 cmd(X) = "C!" Then Retry(X) = Retry(X) + 1 Retry(X) >...
The SDI12SensorSetup() / SDI12SensorResponse() instruction pair programs the CR800 to behave as an SDI-12 sensor. A common use of this feature is the transfer of data from the CR800 to other Campbell Scientific dataloggers over a single-wire interface (terminal configured for SDI-12 to terminal configured for...
A common use of this 'feature is the transfer of data from the CR800 to SDI-12 compatible instruments, including 'other Campbell Scientific dataloggers, over a single-wire interface (SDI-12 port to 'SDI-12 port). The recording datalogger simply requests the data using the aD0! command.
Section 7. Installation SlowSequence SDI12SensorSetup(10,1,0,1) Delay(1,500,mSec) SDI12SensorResponse(SDI_Source) Loop EndSequence EndProg SDI-12 Sensor Configuration CRBasic Example — Results Source Variables Measurement Accessed from the Contents of Command from CR800 acting as a Source Variables SDI-12 Recorder SDI-12 Sensor Temperature °C, battery Source(1), Source(2) voltage 0M0!
This is the program version that runs the CR800. (p. 408, CRBasic allows definition of conditional code, preceded by a hash character (#), in the CRBasic program that is compiled into the operating program depending on the conditional settings. In addition, all Campbell Scientific dataloggers (except...
CR200X) accept program files, or Include() instruction files, with .DLD extensions. Note Do not confuse CRBasic files with .DLD extensions with files of .DLD type used by legacy Campbell Scientific dataloggers. As an example, pseudo code using this feature might be written as: Const Destination = LoggerType #If Destination = 3000 Then <code specific to the CR3000>...
'This instruction is used if the datalogger is a CR1000 VoltSe(ValueRead,1,mV2500,12,0,0,_50Hz,0.1,-30) #ElseIf LoggerType = 800 'This instruction is used if the datalogger is a CR800 Series VoltSe(ValueRead,1,mV2500,3,0,0,_50Hz,0.1,-30) #ElseIf LoggerType = 6 'This instruction is used if the datalogger is a CR6 Series VoltSe(ValueRead,1,mV1000,U3,0,0,50,0.1,-30)
Section 7. Installation This manual includes this discussion of PRTs because of the following: Many applications need the accuracy of a PRT. • • PRT procedures confuse many users. PRTs are not usually manufactured ready to use for most CR800 PRT •...
Section 7. Installation PRT Measurement Circuit Overview Configuration Features Note High accuracy over long leads • • More input terminals: four per sensor • Voltage Excitation Best configuration Four-wire half-bridge (p. 262) • Slower: four differential sub measurements per measurement •...
Section 7. Installation Excitation Ranges CR800/CR1000 CR3000 ±2500 mV ±2500 mV ±5000 mV ±2.000 mA ±2.500 mA 7.7.16.3 Example: 100 Ω PRT in Four-Wire Half Bridge with Voltage Excitation (PT100 / BrHalf4W() ) FIGURE 65: PT100 BrHalf4W() Four-Wire Half-Bridge Schematic Procedure Data BrHalf4W() Four-Wire Half-Bridge Equations X = RS / Rf...
Page 263
Section 7. Installation b. Rf should approximately equal the resistance of the PT100 at 0 °C. Use a 1%, 10 ppm/°C resistor. 2. Wire circuit to datalogger: Use FIGURE: PT100 BrHalf4W() Four-Wire Half-Bridge Schematic (p. 262) the wiring diagram. 3. Calculate excitation voltage Use the following equation to calculate the best excitation voltage (VX) for the measurement range –40 to 60 °C.
T = (SQRT(d * (RS ) + e) - a) / f = 9.99 °C A Campbell Scientific terminal-input module (TIM) can be used to complete the resistive bridge circuit. Refer to the appendix Passive-Signal Conditioners — List (p. 563).
Section 7. Installation PT100 BrHalf4W() Four-Wire Half-Bridge Measurement 'This program example demonstrates the measurement of a 100-ohm PRT in a four-wire 'half bridge using current excitation. See previous procedure and schematic. 'Declare constants and variables: Const Rf = 100000 'Value of bridge resistor Const RS0 = 100000 'Resistance of PT100 at 0 °C from calibration program...
Section 7. Installation arise from variances in the 0.01% range translation resistors internal to the CR800. 7.7.16.4 Example: 100 Ω PRT in Three-Wire Half Bridge with Voltage Excitation (PT100 / BrHalf3W() ) FIGURE 66: PT100 BrHalf3W() Three-Wire Half-Bridge Schematic Procedure Information BrHalf3W() Three-Wire Half-Bridge Equations X = RS / Rf RS = Rf •...
Page 267
Section 7. Installation 3. Calculate excitation voltage: Use the following equation to calculate the best excitation voltage (VX) for the measurement range of –40 to 60 °C. The equation reduces the absolute result by 1% to allow for resistor inaccuracy: = VS / (RS / (Rf + RS...
T = (SQRT(d * (RS ) + e) - a) / f = 9.99 °C A Campbell Scientific terminal-input module (TIM) can be used to complete the resistive bridge circuit. Refer to the appendix Passive-Signal Conditioners — List (p. 563).
Section 7. Installation PT100 BrHalf3W() Three-Wire Half-Bridge Measurement 'This program example demonstrates the measurement of a 100-ohm PRT (PT100) in a three-wire 'half bridge with voltage excitation. See adjacent procedure and schematic. 'Declare constants and variables: Const Rf = 10000000 'Value of bridge resistor Const RS0 = 100000...
Page 272
T = (SQRT(d * (RS ) + e) - a) / f = 9.99 °C A Campbell Scientific terminal-input module (TIM) can be used to complete the resistive bridge circuit. Refer to the appendix Passive-Signal Conditioners — List (p. 563).
Section 7. Installation CRBasic Programs and Notes PT100 BrFull() Four-Wire Full-Bridge Calibration 'This program example demonstrates the calibration of a 100-ohm PRT (PT100) in a four-wire 'full bridge with voltage excitation. See previous procedure and schematic. 'Declare constants and variables: Const R1 = 5000000 'Value of R1 bridge resistor...
Page 274
Section 7. Installation 'Calculate X2 X2 = (X1/1000) + (R2/(R1+R2) 'Calculate RS and RS_RS0 RS = (R4*X2) / (1-X2) RS_RS0 = RS/RS0 ..'Calculate temperature from RS_RS0: 'PRTCalc(Dest,Reps,Source,PRTType,Mult,Offset) PRTCalc(DegC,1,RS_RS0,1,1.0,0) NextScan EndProg Notes The following relationships are used in, or are related to, the previous procedure. Maximum Excitation Voltage Used: = maximum voltage in the CR800 analog voltage input range...
Section 7. Installation Rs/R0, K, and temperature Rs/R0 = –(R4/((R4*X3 )/(1–X3 )))*(Xp/(Xp – 1)) K = (Rs/R0)–1 T = (SQRT(d * (R/R0) + e) – a) / f (see PRT Calculation Standards for coefficients) T = g * K^4 + h * K^3 + I * K^2 + j * K (see PRT Calculation Standards for coefficients) Resistance of the PRT (R3): R3 = (R4 •...
Section 7. Installation Eq. 1 and Eq. 2 yield approximations of the true linearity of a PRT. The approximation error can be as high as several hundredths of a degree Celsius at different points in the temperature range, and it varies from sensor to sensor. Individual sensors also have errors relative to the ASTM E1137-04 standard.
Section 7. Installation 7.7.16.7 Self-Heating and Resolution Programming the CR800 to make a PRT measurement requires a judgment call. To maximize measurement resolution, the excitation voltage must be maximized. However, to minimize self-heating of the PRT element, excitation voltage must be minimized.
Section 7. Installation Read More See ASCII / ANSI Table for a complete list of ASCII / ANSI codes and their binary and hex equivalents. The face value of the byte, however, is not what is usually of interest. The manufacturer of the instrument must specify what information in the byte is of interest.
7.7.17.3 Protocols PakBus is the protocol native to the CR800 and transparently handles routine point-to-point and network communications among PCs and Campbell Scientific dataloggers. Modbus and DNP3 are industry-standard networking SCADA protocols that optionally operate in the CR800 with minimal user configuration.
Page 282
Section 7. Installation asynchronous communication, this coordination is accomplished by having each character surrounded by one or more start and stop bits which designate the beginning and ending points of the information (see synchronous (p. 517) Indicates the sending and receiving devices are not synchronized using a clock signal.
Page 283
Section 7. Installation Term: LSB Least significant bit (the trailing bit). See the Endianness (p. 559). Term: marks and spaces RS-232 signal levels are inverted logic compared to TTL. The different levels are called marks and spaces. When referenced to signal ground, the valid RS- 232 voltage level for a mark is –3 to –25, and for a space is +3 to +25 with –3 to + 3 defined as the transition range that contains no information.
Section 7. Installation 7.7.17.5 Serial I/O CRBasic Programming To transmit or receive RS-232 or TTL signals, a serial port (see table CR800 must be opened and configured through CRBasic with the Serial Ports (p. 280)) SerialOpen() instruction. The SerialClose() instruction can be used to close the serial port.
Page 285
Section 7. Installation SerialClose() Examples of when to close • Reopen PPP Finished setting new settings in a Hayes modem Finished dialing a modem Returns TRUE or FALSE when set equal to a Boolean variable • SerialFlush() Puts the read and write pointers back to the beginning •...
Section 7. Installation SerialInRecord() Can run in pipeline mode inside the digital measurement task (along with • SDM instructions) if the COMPort parameter is set to a constant argument such as COM1 or COM2, and the number of bytes is also entered as a constant.
Page 287
Section 7. Installation Is power consumption critical? Does the sensor compute a checksum? Which type? A checksum is useful to test for data corruption. 2. Open a serial port with SerialOpen(). Example: SerialOpen(Com1,9600,0,0,10000) Designate the correct port in CRBasic. Correctly wire the device to the CR800. Match the port baud rate to the baud rate of the device in CRBasic (use a fixed baud rate —...
Section 7. Installation 7.7.17.5.3 Serial I/O Output Programming Basics Applications with the purpose of transmitting data to another device usually include the following procedures. Other procedures may be required depending on the application. 1. Open a serial port with SerialOpen() to configure it for communications. Parameters are set according to the requirements of the communication link and the serial device.
Section 7. Installation 7.7.17.5.4 Serial I/O Translating Bytes One or more of three principle data formats may end up in the SerialInString() variable (see examples in Serial Input Programming Basics ). Data may be (p. 286) combinations or variations of these. The instrument manufacturer must provide the rules for decoding the data •...
Section 7. Installation Note Concerning SerialInRecord() running in pipeline mode with NBytes (number of bytes) parameter = 0: For the digital measurement sequence to know how much room to allocate in Scan() buffers (default of 3), SerialInRecord() allocates the buffer size specified by SerialOpen() (default 10,000, an overkill), or default 3 •...
Section 7. Installation Receiving an RS-232 String 'This program example demonstrates CR800 serial I/O features by: 1. Simulating a serial sensor 2. Transmitting a serial string via COM1 TX. 'The serial string is received at COM2 RX via jumper wire. Simulated 'air temperature = 27.435 F, relative humidity = 56.789 %.
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.7.17.6 Serial I/O Application Testing A common problem when developing a serial I/O application is the lack of an immediately available serial device with which to develop and test programs.
Section 7. Installation FIGURE 71: HyperTerminal ASCII Setup 7.7.17.6.2 Create Send-Text File Create a file from which to send a serial string. The file shown in the figure HyperTerminal Send-Text File Example will send the string (p. 294) [2008:028:10:36:22]C to the CR800. Use Notepad (Microsoft Windows utility) or some other text editor that will not place hidden characters in the file.
(p. 296) and exports serial data with the CR800 RS-232 port. Imported data are expected to have the form of the legacy Campbell Scientific time set C command. Exported data has the form of the legacy Campbell Scientific Printable ASCII format.
Section 7. Installation Measure Sensors / Send RS-232 Data 'This program example demonstrates the import and export serial data via the CR800 RS-232 'port. Imported data are expected to have the form of the legacy Campbell Scientific 'time set C command: [YR:DAY:HR:MM:SS]C 'Exported data has the form of the legacy Campbell Scientific Printable ASCII format: 01+0115.
Page 297
Section 7. Installation 'Check if it is a leap year: 'If Year Mod 4 = 0 and Year Mod 100 <> 0, then it is a leap year OR 'If Year Mod 4 = 0, Year Mod 100 = 0, and Year Mod 400 = 0, then it 'is a leap year LeapYear = 0 'Reset leap year status location...
Page 298
Section 7. Installation Case Is < 306 Month = 10 Date = DOY + -274 Case Is < 336 Month = 11 Date = DOY + -305 Case Is < 367 Month = 12 Date = DOY + -335 EndSelect 'If it is not a leap year, use this section.
Page 299
'Note: ClkSet array requires year, month, date, hour, min, sec, msec ClockSet(ClkSet()) CallTable(ClockSetRecord) EndIf '/////////////////Serial Output Section///////////////////// 'Construct old Campbell Scientific Printable ASCII data format and output to COM1 'Read datalogger clock RealTime(rTime) TimeIntoInterval(0,5,Sec) Then 'Load OneMinData table data for processing into printable ASCII...
Section 7. Installation 'Assign +/- Sign OneMinData(i) < 0 Then 'Note: chr45 is - sign OutFrag(i)=CHR(45) & FormatFloat(ABS(OneMinData(i)),"%05g") Else 'Note: chr43 is + sign OutFrag(i)=CHR(43) & FormatFloat(ABS(OneMinData(i)),"%05g") EndIf Next 'Concatenate Printable ASCII string, then push string out RS-232 '(first 2 fields are ID, hhmm): OutString = "01+0115."...
Page 301
Section 7. Installation Both conditions power-up the interface and leave it on with no timeout. If SerialClose() is used after SerialOpen(), the port is powered down and in a state waiting for characters to come in. Under normal operation, the port is powered down waiting for input. After receiving input, there is a 40 second software timeout that must expire before shutting down.
Page 302
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 CR800 somewhere for 30 ms or so.
Section 7. Installation into an array of values (characters, floats, or longs), such as Move(), MoveBytes(), GetVariables(), SerialInRecord(), SerialInBlock(). In all cases, when writing to an array of values, it is important to understand what you are reading, if you are reading it asynchronously, in other words reading it from some other task that is polling for the data at the same time as it is being written, whether that other task is some other machine reading the data, like LoggerNet, or a different sequence, or task, within the same machine.
Section 7. Installation String Operators Operator Description "abc" - "abc" = 0 Difference between e and c "abe" - "abc" = 2 Difference between c and b "ace" - "abe" = 1 Difference between d and NULL "abcd" - "abc" = 100 ASCII codes of the first characters in each string are compared.
Section 7. Installation Concatenation of Numbers and Strings 'This program example demonstrates the concatenation of numbers and strings to variables 'declared As Float and As String. 'Declare Variables Public Num(12) As Float Public Str(2) As String BeginProg Scan(1,Sec,0,0) I = 0 'Set I to zero 'Data type of the following destination variables is Float 'because Num() array is declared As Float.
Section 7. Installation Some smart sensors send strings containing NULL characters. To manipulate a string that has NULL characters within it (in addition to being terminated with another NULL), use MoveBytes() instruction. 7.7.18.4 Inserting String Characters Example: Objective: Use MoveBytes() to change "123456789" to "123A56789" Given: StringVar(7) = "123456789"...
Section 7. Installation CRBasic example Subroutine with Global and Local Variables shows the (p. 308) use of global and local variables. Variables counter() and pi_product are global. Variable i_sub is global but used exclusively by subroutine process. Variables j() and OutVar are local since they are declared as parameters in the Sub() instruction, Sub process(j(4) AS Long,OutVar).
Section 8. Operation Time-stamp skew is not a problem with most applications because, program execution times are usually short, so time stamp skew is only a • few milliseconds. Most measurement requirements allow for a few milliseconds of skew. • data processed into averages, maxima, minima, and so forth are composites of several measurements.
Section 8. Operation Scan(1,Sec,10,0) 'Delay -- in an operational program, delay may be caused by other code Delay(1,500,mSec) 'Measure Value -- can be any analog measurement PanelTemp(Value,0) 'Immediately call SlowSequence to execute CallTable() TriggerSequence(1,0) NextScan 'Allow data to be stored 510 ms into the Scan with a s.51 time stamp SlowSequence WaitTriggerSequence CallTable(Test)
Section 8. Operation 8.1.2.1 Voltage Measurement Quality Read More Consult the following technical papers at www.campbellsci.com/app-notes for in-depth treatments of several topics addressing voltage measurement quality: • Preventing and Attacking Measurement Noise Problems • Benefits of Input Reversal and Excitation Reversal for Voltage Measurements •...
Page 315
Section 8. Operation • Sensor is not designed for differential measurements. Many Campbell Scientific sensors are not designed for differential measurement, but the draw backs of a single-ended measurement are usually mitigated by large programmed excitation and/or sensor output voltages.
Section 8. Operation • Minimize polarization of polar sensors such as those for measuring conductivity, soil moisture, or leaf wetness. Polarization may cause measurement errors or sensor degradation. Improve accuracy of an LVDT measurement. The induced voltage in an • LVDT decays with time as current in the primary coil shifts from the inductor to the series resistance;...
Section 8. Operation FIGURE 74: Ac Power Noise Rejection Techniques Ac Noise Rejection on Small Signals The CR800 rejects ac power line noise on all voltage ranges except mV5000 and mV2500 by integrating the measurement over exactly one full ac cycle before A- conversion as listed in table Ac Noise Rejection on Small Signals to-D (p.
Page 318
Section 8. Operation Ac Noise Rejection on Large Signals Maximum Measurement CRBasic Default Recommended Ac-Power Line Integration Integration Settling Settling Time Frequency Time Code Time 60 Hz 250 μs • 2 _60Hz 3000 μs 8330 μs 50 Hz 250 μs • 2 _50Hz 3000 μs 10000 μs...
Section 8. Operation Programmed settling time is a function of arguments placed in the SettlingTime and Integ parameters of a measurement instruction. Argument combinations and resulting settling times are listed in table CRBasic Measurement Settling Times Default settling times (those resulting when SettlingTime = 0) provide 319).
Section 8. Operation • Where possible, run excitation leads and signal leads in separate shields to minimize transients. When measurement speed is not a prime consideration, additional time • can be used to ensure ample settling time. The settling time required can be measured with the CR800.
Section 8. Operation • If the open circuit is at the end of a very long cable, the test pulse (300 mV) may not charge the cable (with its high capacitance) up to a voltage that generates NAN or a distinct error voltage. The cable may even act as an aerial and inject noise which also might not read as an error voltage.
Page 324
Section 8. Operation Summary Measurement offset voltages are unavoidable, but can be minimized. Offset voltages originate with: • Ground currents • Seebeck effect • Residual voltage from a previous measurement Remedies include: • Connect power grounds to power ground terminals (G) •...
Page 325
Section 8. Operation performed as part of the routine auto-calibration of the CR800. Single-ended measurement instructions VoltSE() and TCSe() MeasOff parameter determines whether the offset voltage measured is done at the beginning of measurement instruction, or as part of self-calibration. This option provides you with the opportunity to weigh measurement speed against measurement accuracy.
Section 8. Operation TABLE: Offset Voltage Compensation Options lists some of the tools (p. 326) available to minimize the effects of offset voltages. Offset Voltage Compensation Options Measure Offset During Background Measure Calibration (RevDiff = False) CRBasic Excitation Offset During (RevEx = False) Measurement Input Reversal...
Page 327
Section 8. Operation 1. Switches to the measurement terminals 2. Sets the excitation, and then settle, and then measure 3. Reverse the excitation, and then settles, and then measure 4. Reverse the excitation, reverse the input terminals, settle, measure 5. Reverse the excitation, settle, measure There are four delays per measure.
Section 8. Operation where A-to-D conversion time equals µs. If reps (repetitions) > 1 (multiple measurements by a single instruction), no additional time is required. If reps = 1 in consecutive voltage instructions, add 15 µs per instruction. Measurement Accuracy Read More For an in-depth treatment of accuracy estimates, see the technical paper Measurement Error Analysis soon available at www.campbellsci.com/app-notes.
Section 8. Operation Analog Voltage Measurement Resolution Differential Measurement Input With Input Reversal Basic Resolution Voltage Range µ µ (mV) 1333 ±5000 ±2500 ±250 33.3 66.7 3.33 0.33 0.67 Note — see Specifications for a complete tabulation of measurement (p. 91) resolution As an example, figure Voltage Measurement Accuracy Band Example (p.
Page 330
Section 8. Operation measurement with input reversal at a temperature between 0 to 40 °C. Measurement Accuracy Example The following example illustrates the effect percent-of-reading and offset have on measurement accuracy. The effect of offset is usually negligible on large signals: Example: Sensor-signal voltage: ≈2500 mV •...
Section 8. Operation • position of the on-board reference thermistor in the wiring panel is not optimal. The absence of these design features causes significant error in the reference junction temperature measurement. If the CR800 must be used for thermocouple measurements, and those measurements must be better than roughly 5 degrees in accuracy, an external reference junction, such as a multiplexer should be used.
Section 8. Operation equations. In the diagrams, resistors labeled R are normally the sensors and those labeled R are normally precision fixed (static) resistors. CRBasic example Four-Wire Full-Bridge Measurement lists CRBasic code that measures and (p. 334) processes four-wire full-bridge circuits. Offset voltages compensation applies to bridge measurements.
Page 334
Section 8. Operation Resistive-Bridge Circuits with Voltage Excitation Resistive-Bridge Type and CRBasic Instruction and Relational Formulas Circuit Diagram Fundamental Relationship Four-Wire Half-Bridge CRBasic Instruction: BrHalf4W() Fundamental Relationship Full-Bridge These relationships apply to BrFull() CRBasic Instruction: BrFull() and BrFull6W(). Fundamental Relationship Six-Wire Full-Bridge CRBasic Instruction: BrFull6W() Fundamental Relationship...
Section 8. Operation Four-Wire Full-Bridge Measurement and Processing 'This program example demonstrates the measurement and processing of a four-wire resistive 'full bridge. In this example, the default measurement stored in variable X is 'deconstructed to determine the resistance of the R1 resistor, which is the variable 'resistor in most sensors that have a four-wire full-bridge as the active element.
Section 8. Operation Measurements • Voltage Measurement Accuracy, Self- Calibration, and Ratiometric Measurements • Estimating Measurement Accuracy for Ratiometric Measurement Instructions. Note Error discussed in this section and error-related specifications of the CR800 do not include error introduced by the sensor or by the transmission of the sensor signal to the CR800.
Note The CR800 is equipped with an internal voltage reference used for calibration. The voltage reference should be periodically checked and re- calibrated by Campbell Scientific for applications with critical analog voltage measurement requirements. A minimum two-year recalibration cycle is recommended.
Page 338
Section 8. Operation 21 segments. So, (21 segments) • (4 s / segment) = 84 s per complete auto self- calibration. The worst-case is (91 segments) • (4 s / segment) = 364 s per complete auto self-calibration. During instrument power-up, the CR800 computes calibration coefficients by averaging ten complete sets of auto self-calibration measurements.
Section 8. Operation An example use of the Calibrate() instruction programmed to calibrate all input ranges is given in the following CRBasic code snip: 'Calibrate(Dest,Range) Calibrate(cal(1),true) where Dest is an array of 54 variables, and Range ≠ 0 to calibrate all input ranges. Results of this command are listed in the table Calibrate() Instruction Results 341).
Section 8. Operation StrainCalc() Instruction Equations StrainCalc() BrConfig Code Configuration Half-bridge strain gage. One gage parallel to + , the other parallel to - Full-bridge strain gage. Two gages parallel to + , the other two parallel to - Full-bridge strain gage. Half the bridge has two gages parallel to + and - , and the other half to + and - Full-bridge strain gage.
For a complete treatment of current-loop sensors (4 to 20 mA, for example), please consult the following publications available at www.campbellsci.com/app- notes: • Current Output Transducers Measured with Campbell Scientific Dataloggers (2MI-B) • CURS100 100 Ohm Current Shunt Terminal Input Module 8.1.2.7 Voltage Measurements —...
Section 8. Operation measurements. The first measurement determines the range to use. It is made with a 250 µs integration on the ±5000 mV range. The second measurement is made using the range determined from the first. Both measurements use the settling time entered in the SettlingTime parameter.
Page 347
Section 8. Operation Note This section contains advanced information not required for normal operation of the CR800. Summary • Voltage input limits for measurement are ±5 Vdc. Input Limits is the specification listed in Specifications (p. 91). • Common-mode range is not a fixed number. It varies with respect to the magnitude of the input voltage.
Section 8. Operation FIGURE 78: PGIA with Input Signal Decomposition 8.1.2.7.2 Voltage Measurement Mechanics Measurement Sequence An analog voltage measurement as illustrated in the figure Simplified Voltage proceeds as follows: Measurement Sequence (p. 348), 1. Switch 2. Settle 3. Amplify 4.
Section 8. Operation input or differential input. Internal multiplexers route individual terminals to the PGIA. Timing of measurement tasks is precisely controlled. The measurement (p. 150) schedule is determined at compile time and loaded into memory. Using two different voltage-measurement instructions with the same voltage range takes about twice as long as using one instruction with two repetitions.
Section 8. Operation Parameters that Control Measurement Sequence and Timing CRBasic Instruction Parameter Action Correct ground offset on single-ended MeasOfs measurements. SettlingTime Sensor input settling time. Integ Duration of input signal integration. Reverse high and low differential RevDiff inputs. RevEx Reverse polarity of excitation voltage.
Section 8. Operation VoltSE() • BrHalf() • BrHalf3W() • • TCSE() Therm107() • Therm108() • Therm109() • Thermistor() • Differential Measurements — Details Related Topics: • Differential Measurements — Overview (p. 68) • Differential Measurements — Details (p. 351) Using the figure Programmable Gain Input Amplifier (PGIA) for reference, (p.
Page 352
• that of differential measurement time. • Sensor is not designed for differential measurements. Many Campbell Scientific sensors are not designed for differential measurement, but the draw backs of a single-ended measurement are usually mitigated by large programmed excitation and/or sensor output voltages.
Page 353
Section 8. Operation require high accuracy or precision, such as thermocouples measuring brush-fire temperatures, which can exceed 2500 °C, a single-ended measurement may be appropriate. If sensors require differential measurement, but adequate input terminals are not available, an analog multiplexer should be acquired to expand differential input capacity.
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 rejected by an analog integrator. If reversing the differential inputs or reversing the excitation is specified, there are two separate integrations per measurement;...
Section 8. Operation Ac Noise Rejection on Small Signals The CR800 rejects ac power line noise on all voltage ranges except mV5000 and mV2500 by integrating the measurement over exactly one full ac cycle before A- to-D conversion as listed in table Ac Noise Rejection on Small Signals (p.
Page 356
Section 8. Operation Ac Noise Rejection on Large Signals Restated, when the CR800 is programmed to use the half-cycle 50 Hz or 60 Hz rejection techniques, a sensor does not see a continuous excitation of the length entered as the settling time before the second measurement — if the settling time entered is greater than one-half cycle.
Section 8. Operation FIGURE 82: Input voltage rise and transient decay CRBasic Measurement Settling Times SettlingTime Integ Resultant Argument Argument Settling Time 450 µs _50Hz 3 ms _60Hz 3 ms μs entered in integer ≥ 100 integer SettlingTime argument 450 µs is the minimum settling time required to meet CR800 resolution specifications.
Section 8. Operation Measuring Settling Time Settling time for a particular sensor and cable can be measured with the CR800. Programming a series of measurements with increasing settling times will yield data that indicate at what settling time a further increase results in negligible change in the measured voltage.
Section 8. Operation BrFull(PT(7),1,mV7.5,1,Vx1,2500,True,True,700, 250,1.0,0) BrFull(PT(8),1,mV7.5,1,Vx1,2500,True,True,800, 250,1.0,0) BrFull(PT(9),1,mV7.5,1,Vx1,2500,True,True,900, 250,1.0,0) BrFull(PT(10),1,mV7.5,1,Vx1,2500,True,True,1000, 250,1.0,0) BrFull(PT(11),1,mV7.5,1,Vx1,2500,True,True,1100, 250,1.0,0) BrFull(PT(12),1,mV7.5,1,Vx1,2500,True,True,1200, 250,1.0,0) BrFull(PT(13),1,mV7.5,1,Vx1,2500,True,True,1300, 250,1.0,0) BrFull(PT(14),1,mV7.5,1,Vx1,2500,True,True,1400, 250,1.0,0) BrFull(PT(15),1,mV7.5,1,Vx1,2500,True,True,1500, 250,1.0,0) BrFull(PT(16),1,mV7.5,1,Vx1,2500,True,True,1600, 250,1.0,0) BrFull(PT(17),1,mV7.5,1,Vx1,2500,True,True,1700, 250,1.0,0) BrFull(PT(18),1,mV7.5,1,Vx1,2500,True,True,1800, 250,1.0,0) BrFull(PT(19),1,mV7.5,1,Vx1,2500,True,True,1900, 250,1.0,0) BrFull(PT(20),1,mV7.5,1,Vx1,2500,True,True,2000, 250,1.0,0) CallTable Settle NextScan EndProg FIGURE 83: Settling Time for Pressure Transducer First Six Values of Settling Time Data TIMESTAMP PT(1)
Page 360
Section 8. Operation Open-Input Detect Note The information in this section is highly technical. It is not necessary for the routine operation of the CR800. Summary • An option to detect an open-input, such as a broken sensor or loose connection, is available in the CR800.
Section 8. Operation Range-Code Option C Over-Voltages Input Range (mV) Over-Voltage ±2.5 ±7.5 300 mV ±25 ±250 ±2500 C option with caveat C option not available ±5000 C results in the H terminal being briefly connected to a voltage greater than 2500 mV, while the L terminal is connected to ground.
Page 362
Section 8. Operation • Excitation reversal (RevEx = True) • Longer settling times Voltage offset can be the source of significant error. For example, an offset of 3 μV on a 2500 mV signal causes an error of only 0.00012%, but the same offset on a 0.25 mV signal causes an error of 1.2%.
Page 363
Section 8. Operation can be subtracted and divided by 2 for offset reduction similar to input reversal for differential measurements. Ratiometric differential measurement instructions allow both RevDiff and RevEx to be set True. This results in four measurement sequences: • positive excitation polarity with positive differential input polarity negative excitation polarity with positive differential input polarity •...
Page 365
Section 8. Operation 3. Reverse the excitation, and then settles, and then measure 4. Reverse the excitation, reverse the input terminals, settle, measure 5. Reverse the excitation, settle, measure There are four delays per measure. The CR800 processes the four sub- measurements into the reported measurement.
Section 8. Operation Measurement Accuracy Read More For an in-depth treatment of accuracy estimates, see the technical paper Measurement Error Analysis soon available at www.campbellsci.com/app-notes. Accuracy describes the difference between a measurement and the true value. Many factors affect accuracy. This section discusses the affect percent-or- reading, offset, and resolution have on the accuracy of the measurement of an analog voltage sensor signal.
Section 8. Operation Analog Voltage Measurement Resolution Differential Measurement Input With Input Reversal Basic Resolution Voltage Range µ µ (mV) 1333 ±5000 ±2500 ±250 33.3 66.7 3.33 0.33 0.67 Note — see Specifications for a complete tabulation of measurement (p. 91) resolution As an example, figure Voltage Measurement Accuracy Band Example (p.
Section 8. Operation FIGURE 84: Example voltage measurement accuracy band, including the effects of percent of reading and offset, for a differential measurement with input reversal at a temperature between 0 to 40 °C. Measurement Accuracy Example The following example illustrates the effect percent-of-reading and offset have on measurement accuracy.
Section 8. Operation Note Peripheral devices are available from Campbell Scientific to expand the number of pulse input channels measured by the CR800. See Measurement and Control Peripherals — List (p. 562). The figure Pulse Sensor Output Signal Types illustrates pulse signal types (p.
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. Under no circumstances should voltages greater than 50 V be measured.
Section 8. Operation conditioning for measuring signals ranging from 20 mV RMS (±28 mV peak-to- peak) to 14 V RMS (±20 V peak-to-peak). P Terminals Maximum input frequency is dependent on input voltage: • 1.0 to 20 Hz at 20 mV RMS 0.5 to 200 Hz at 200 mV RMS 0.3 to 10 kHz at 2000 mV RMS 0.3 to 20 kHz at 5000 mV RMS...
Section 8. Operation C Terminals Maximum input frequency = <1 kHz • CRBasic instructions: PulseCount(), TimerIO() • 8.1.3.3.1 Frequency Resolution Resolution of a frequency measurement made with the PulseCount() instruction is calculated as where FR = resolution of the frequency measurement (Hz) S = scan interval of CRBasic program Resolution of a frequency measurement made with theTimerIO() instruction is where...
Section 8. Operation instructions. Also, PulseCount() has the option of entering a number greater than 1 in the POption parameter. Doing so enters an averaging interval in milliseconds for a direct running-average computation. However, use caution when averaging. Averaging of any measurement reduces the certainty that the result truly represents a real aspect of the phenomenon being measured.
Section 8. Operation P Terminals An internal 100 kΩ pull-up resistor pulls an input to 5 Vdc with the switch open, whereas a switch closure to ground pulls the input to 0 V. An internal hardware debounce filter has a 3.3 ms time-constant. Connection configurations are illustrated in table Maximum input frequency = 90 Hz •...
Section 8. Operation Falling edge — transition from >3.5 Vdc to <1.5 Vdc. Edge-timing resolution is approximately 540 ns. • 8.1.3.6 Edge Counting Edge counts can be measured on C terminals. C Terminals • Maximum input frequency 400 kHz CRBasic instruction: TimerIO() •...
Section 8. Operation and flow meters, are calibrated in terms of frequency (Hz ) so are (p. 501) usually measured using the PulseCount() frequency-output option. Accuracy of PulseCount() is limited by a small scan-interval error of • ±(3 ppm of scan interval + 10 µs), plus the measurement resolution error of ±1 / (scan interval).
Section 8. Operation Switch Closure on C Terminal: Open Collector on C Terminal: 5 Vdc Pull-Up 5 Vdc Pull-Up Switch Closure on C Terminal: Open Collector on C Terminal: 12 Vdc Pull-Up 12 Vdc pull-up Internal CR800 circuitry that supports open-collector and switch-closure measurements (FYI) 8.1.3.8.1 Pay Attention to Specifications Pay attention to specifications.
Section 8. Operation Three Specifications Differing Between P and C Terminals P Terminal C Terminal High-Frequency 250 kHz 400 kHz Maximum Input Voltage 20 Vdc 16 Vdc Maximum Count upon transition Count upon transition State Transition from from Thresholds <0.9 Vdc to >2.2 Vdc <1.2 Vdc to >3.8 Vdc 8.1.3.8.2 Input Filters and Signal Attenuation P and C terminals configured for pulse input have internal filters that reduce...
Section 8. Operation Time Constants (τ) Measurement τ TABLE: Low-Level Ac Amplitude and Maximum P terminal low-level ac mode Measured Frequency (p. 381) P terminal high-frequency mode P terminal switch closure mode 3300 C terminal high-frequency mode 0.025 C terminal switch closure mode 0.025 Low-Level Ac Pules Input Ranges Sine Wave Input...
CR800 or interface. Measuring the resonant frequency by means of period averaging is the classic technique, but Campbell Scientific has developed static and dynamic spectral- analysis techniques (VSPECT that produce superior noise rejection, higher (p.
Section 8. Operation For most applications, the advanced techniques of static and dynamic VSPECT measurements are preferred. 8.1.5 Period Averaging — Details Related Topics: • Period Average Measurements — Specifications • Period Average Measurements — Overview (p. 73) • Period Average Measurements — Details (p.
Section 8. Operation When connecting serial sensors to a C terminal configured as Rx, the sensor power consumption may increase by a few milliamps due to voltage clamps in the CR800. An external resistor may need to be added in series to the Rx line to limit the current drain, although this is not advisable at very high baud rates.
RS-232 sensor cable lengths should be limited to 50 feet. 8.1.8.4 SDI-12 Sensor Cabling The SDI-12 standard allows cable lengths of up to 200 feet. Campbell Scientific does not recommend SDI-12 sensor lead lengths greater than 200 feet; however, longer lead lengths can sometimes be accommodated by increasing the wire gage or powering the sensor with a second 12 Vdc power supply placed near the sensor.
Section 8. Operation 8.1.9 Synchronizing Measurements — Details Related Topics: • Synchronizing Measurements — Overview (p. 76) • Synchronizing Measurements — Details (p. 387) 8.1.9.1 Synchronizing Measurement in the CR800 — Details Measurements are sychnronized in the CR800 by the task sequencer. See Execution and Task Priority (p.
Section 8. Operation 3. PakBus commands — the CR800 is a PakBus device, so it is capable of (p. 77) being a node in a PakBus network. Node clocks in a PakBus network are synchronized using the SendGetVariable(), ClockReport(), or PakBusClock() commands.
Section 8. Operation • PLC Control Modules — Overview (p. 394) • PLC Control Modules — Lists (p. 565) The CR800 wiring panel is a convenient power distribution device for powering sensors and peripherals that require a 5 Vdc, or 12 Vdc source. It has one continuous 12 Vdc terminal (12V), one program-controlled, switched, 12 Vdc terminal (SW12), and one continuous 5 Vdc terminal (5V).
Section 8. Operation specification of terminals configured for exctitation in Specifications (p. 91) understand their limitations. Specifications are applicable only for loads not exceeding ±25 mA. CRBasic instructions that control voltage excitation include the following: BrFull() • BrFull6W() • BrHalf() •...
SW12() instruction. See Execution and Task Priority (p. 150). A 12 Vdc switching circuit designed to be driven by a C terminal is available from Campbell Scientific. It is listed in Relay Drivers — List (p. 566). PLC Control — Details Related Topics: •...
Section 8. Operation Tips for writing a control program: Short Cut programming wizard has provisions for simple on/off control. • • PID control can be done with the CR800. Control decisions can be based on time, an event, or a measured condition. Example: In the case of a cell modem, control is based on time.
Section 8. Operation = 4.9 V – (330 Ω • I Where V is the drive limit, and I is the current required by the external device. Figure Current Sourcing from C Terminals Configured for Control plots the (p. 393) relationship.
Read More See Relay Drivers Modules — List (p. 566). Several relay drivers are manufactured by Campbell Scientific. Compatible, inexpensive, and reliable single-channel relay drivers for a wide range of loads are also available from electronic vendors such as Crydom, Newark, and Mouser 525).
Section 8. Operation FIGURE 94: Relay Driver Circuit with Relay FIGURE 95: Power Switching without Relay 8.4.4 Pulse Input Modules Read More For more information see Pulse Input Modules — List (p. 562). Pulse input expansion modules are available for switch-closure, state, pulse count and frequency measurements, and interval timing.
Read More For more information see appendix Serial I/O Modules List 563). Capturing input from intelligent serial-output devices can be challenging. Several Campbell Scientific serial I/O modules are designed to facilitate reading and parsing serial data. 8.4.6 Terminal-Input Modules Read More See Passive Signal Conditioners — List (p.
The software allows you to initialize the setup, interrogate the station, display data, and generate reports from one or more weather stations. Note More information about software available from Campbell Scientific can be found at www.campbellsci.com. Program and OS File Compression Q and A Q: What is Gzip? A: Gzip is the GNU zip archive file format.
Page 398
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 datalogger.
Page 399
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.cr8.gz” and “CR800.Std.25.obj.gz”. Note that the file names end with “.gz”. The ".gz” extension must be preceded with the original file extension (.cr8, .obj) as shown. Q: How do I send a compressed file to the CR800? A: A Gzip compressed file can be sent to a CR800 datalogger by clicking the Send Program command in the datalogger support software...
8.7.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 understanding of where systems can be compromised and how to counter the potential threat.
8.7.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 based comms links.
Section 8. Operation Methods of enabling pass-code lockout security include the following: Settings – Security(1) Security(2) and Security(3) registers are • (p. 549), writable variables in the Status table wherein the pass codes for security levels 1 through 3 are written, respectively. •...
Keyboard display security bypass does not allow comms access without first correcting the security code. Note These features are not operable in CR1000KDs with serial numbers less than 1263. Contact Campbell Scientific for information on upgrading the CR1000KD operating system. 8.7.3 Passwords Passwords are used to secure IP based communications.
Section 8. Operation being copied, or making it tamper resistant. .CR<X> files, or files specified by the Include() instruction, can be hidden using the FileHide() instruction. The CR800 can locate and use hidden files on the fly, but a listing of the file or the file name are not available for viewing.
Section 8. Operation Table CR800 Memory Allocation and table CR800 SRAM Memory (p. 407) (p. 408, illustrate the structure of CR800 memory around these media. The http://www. CR800 uses and maintains most memory features automatically. However, users should periodically review areas of memory wherein data files, CRBasic program files, and image files reside.
Section 8. Operation See TABLE: CR800 SRAM Memory http://www.) (p. 408, Flash is rated for > 1 million overwrites. Serial flash is rated for 100,000 overwrites (50,000 overwrites on 128 kB units). CRBasic program functions that overwrite memory should use the CRD: or USR: drives to minimize wear of the CPU: drive. CR800 SRAM Memory Comments Static Memory...
(p. 409). SRAM and the CPU: drive are automatically partitioned for use in the CR800. The USR: drive can be partitioned as needed. The USB: drive is automatically partitioned when a Campbell Scientific mass-storage device is connected. (p. 571) 8.8.1.1.1 Data Table SRAM...
File Control window. (p. 498) 8.8.1.1.4 USB: Drive USB: drive uses Flash memory on a Campbell Scientific mass storage (p. 499) device. See Mass Storage Devices — List Its primary purpose is the (p. 571).
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.campbellsci.com. TableFile() Instruction Data File Formats...
Page 412
Section 8. Operation TableFile() Instruction Data File Formats Elements Included TableFile() Base Format File Header Time Record Option Format Information Stamp Number TOA5 CSIXML CSIXML CSIXML CSIXML CSIJSON CSIJSON ...
Page 413
Section 8. Operation Example: "TOA5","11467","CR1000","11467","CR1000.Std.20","CPU:file format.CR1","26243","Test" "TIMESTAMP","RECORD","battfivoltfiMin","PTemp" "TS","RN","","" "","","Min","Smp" "2010-12-20 11:31:30",7,13.29,20.77 "2010-12-20 11:31:45",8,13.26,20.77 "2010-12-20 11:32:00",9,13.29,20.8 CSIXML CSIXML files contain header information and data in an XML format. (p. 522) Example: <?xml version="1.0" standalone="yes"?> <csixml version="1.0"> <head> <environment> <station-name>11467</station-name> <table-name>Test</table-name> <model>CR1000</model> <serial-no>11467</serial-no>...
Page 414
Section 8. Operation Example: "signature": 38611,"environment": {"stationfiname": "11467","tablefiname": "Test","model": "CR1000","serialfino": "11467", "osfiversion": "CR1000.Std.21.03","progfiname": "CPU:file format.CR1"},"fields": [{"name": "battfivoltfiMin","type": "xsd:float", "process": "Min"},{"name": "PTemp","type": "xsd:float","process": "Smp"}]}, "data": [{"time": "2011-01-06T15:04:15","no": 0,"vals": [13.28,21.29]}, {"time": "2011-01-06T15:04:30","no": 1,"vals": [13.28,21.29]}, {"time": "2011-01-06T15:04:45","no": 2,"vals": [13.28,21.29]}, {"time": "2011-01-06T15:05:00","no": 3,"vals": [13.28,21.29]}]} Data File Format Elements Header File headers provide metadata that describe the data in the file.
Section 8. Operation Record Element 1 – Timestamp Data without timestamps are usually meaningless. Nevertheless, the TableFile() instruction optionally includes timestamps in some formats. Record Element 2 – Record Number Record numbers are optionally provided in some formats as a means to ensure data integrity and provide an up-count data field for graphing operations.
Section 8. Operation Operating systems can also be sent using the program Send feature in datalogger A full reset does not occur in this case. Beginning with support software (p. 86). CR800 operating system v.16, settings and fields in the Status table are preserved when sending a subsequent operating system by this method;...
Scientific mass storage device , web API NewestFile File Control , power-up with Campbell Scientific mass Prescribes the disposition (preserve or delete) of old data files on Campbell Scientific mass storage device storage device , web API FileControl (p. 435)
File Control Functions Accessed Through Manual with Campbell Scientific mass storage device. See Data Storage (p. 409) Automatic with Campbell Scientific mass storage device and Powerup.ini. See Power-up (p. 421) CRBasic instructions (commands). See data table declarations, File Management and CRBasic Editor (p.
See software Help & Preserving Data at (p. 498). Program Send (p. 170). Automatic on power-up of CR800 with Campbell Scientific mass storage device and Powerup.ini. See Power-up (p. 421). 8.8.4.2 Files Manager FilesManager := { "(" pakbus-address "," name-prefix "," number-files ")" }.
Section 8. Operation A second instance of a setting can be configured using the same node PakBus address and same file type, in which case two files will be written according to each of the two settings. For example, (55,USR:photo.JPG,100) (55:USR:NewestPhoto.JPG,0) will store two files each time a JPG file is received from node 55.
Section 8. Operation 8.8.4.4 Powerup.ini File — Details Uploading a CR800 OS file or user-program file in the field can be (p. 507) challenging, particularly during weather extremes. Heat, cold, snow, rain, altitude, blowing sand, and distance to hike influence how easily programming with a laptop or palm PC may be.
Section 8. Operation 3. Optionally deletes data files stored from the overwritten (just previous) program. 4. Formats a specified drive. Execution of powerup.ini takes precedence during CR800 power-up. Although powerup.ini sets file attributes for the uploaded programs, its presence on a drive does not allow those file attributes to control the power-up process.
Section 8. Operation Powerup.ini Script Commands and Applications Powerup.ini Description Applications Script Command Copies a program file to a drive and sets the run attribute to Run Always. Run always, preserve data See Preserving Data at Program Send (p. 170). Copies a program file to a drive and sets the run attribute to Run Always unless command 6 or 14 is used to...
Section 8. Operation 'Run Program on Power-up 'Copy program file pwrup.cr1 from the external drive to CPU: 'File will run only when CR800 powered-up later. 2,pwrup.cr1,cpu: 'Format the USR: drive 5,,usr: 'Send OS on Power-up 'Load an operating system (.obj) file into FLASH as the new OS. 9,CR800.Std.28.obj 'Run Program from USB: Drive 'A program file is carried on an external USB: drive.
Section 8. Operation long filename, memory allocated to the root directory can be exceeded before the actual memory of storing files is exceeded. When this occurs, an "insufficient resources or memory full" error is displayed. 8.8.6 File System Errors Table File System Error Codes lists error codes associated with the CR800 (p.
CR800 and another computing device, usually a PC. The information can be data, program, files, or control commands. 8.9.1 Protocols The CR800 communicates with datalogger support software and other (p. 86) Campbell Scientific dataloggers using the PakBus protocol. See (p. 561) (p. 508) for information on other supported protocols, Alternate Comms Protocols (p.
Section 8. Operation 8.9.2 Conserving Bandwidth Some comms services, such as satellite networks, can be expensive to send and receive information. Best practices for reducing expense include: Declare Public only those variables that need to be public. • Be conservative with use of string variables and string variable sizes. •...
PakBus protocol. (p. 561) (p. 508) Modbus, DNP3, TCP/IP, and several industry-specific protocols are also supported. CAN bus is supported when using the Campbell Scientific SDM-CAN communication module. (p. 568) 8.10.1 TCP/IP — Details Related Topics: • TCP/IP — Overview •...
The most up-to-date information on implementing these protocols is contained in CRBasic Editor Help. Note Specific information concerning the use of digital-cellular modems for TCP/IP can be found in Campbell Scientific manuals for those modems. For information on available TCP/IP/PPP devices, refer to the appendix Network Links for model numbers.
The CR800 can act as an FTP client to send a file or get a file from an FTP server, such as another datalogger or web camera. This is done using the CRBasic FTPClient() instruction. Refer to a manual for a Campbell Scientific network link (see TCP/IP Links — List , available at www.campbellsci.com, or...
Home Page Created using WebPageBegin() Instruction (p. 432). The Campbell Scientific logo in the web page comes from a file called SHIELDWEB2.JPG that must be transferred from the PC to the CR800 CPU: drive using File Control in the datalogger support software.
Page 432
Section 8. Operation FIGURE 97: Home Page Created Using WebPageBegin() Instruction FIGURE 98: Customized Numeric-Monitor Web Page...
'using create a file called default.html. The graphic in the web page (in this case, the 'Campbell Scientific logo) comes from a file called SHIELDWEB2.JPG. The graphic file 'must be copied to the CR800 CPU: drive using File Control in the datalogger 'support software.
Section 8. Operation 8.10.1.10 Ping (IP) Ping can be used to verify that the IP address for the network device connected to the CR800 is reachable. To use the Ping tool, open a command prompt on a computer connected to the network and type in: ping xxx.xxx.xxx.xxx <Enter>...
— Send programs — Send files — Collect files API commands are also used with Campbell Scientific’s RTMC web server datalogger support software Look for the API commands in CRBasic (p. 86). Editor Help.
Term: digital registers 10001 to 19999 Hold values resulting from a digital measurement. Digital registers in the Modbus domain are read-only. In the Campbell Scientific domain, the leading digit in Modbus registers is ignored, and so are assigned together to a...
Term: holding registers 40001 to 49999 Hold values resulting from a programming action. Holding registers in the Modbus domain are read / write. In the Campbell Scientific domain, the leading digit in Modbus registers is ignored, and so are assigned together to a single Dim or Public variable array (read / write).
Section 8. Operation 8.10.3.2.2 CRBasic Instructions (Modbus) Complete descriptions and options of commands are available in CRBasic Editor Help. ModbusMaster() Sets up a CR800 as a Modbus master to send or retrieve data from a Modbus slave. Syntax ModbusMaster(ResultCode, ComPort, BaudRate, ModbusAddr, Function, Variable, Start, Length, Tries, TimeOut) ModbusSlave() Sets up a CR800 as a Modbus slave device.
Section 8. Operation 8.10.3.2.4 Supported Modbus Function Codes Modbus protocol has many function codes. CR800 commands support the following. Supported Modbus Function Codes Code Name Description Read coil/port status Reads the on/off status of discrete output(s) in the ModBusSlave Read input status Reads the on/off status of discrete input(s) in the ModBusSlave Read holding registers...
Section 8. Operation 8.10.3.2.6 Timing The timeout is a critical parameter of Modbus communication. The response time of devices is usually not specified by the manufacturer and can range from 100 ms to more than 5 seconds. When the CR800 is acting as a slave device, it typically responds very quickly.
Section 8. Operation Q: Can I make some registers read-only and other registers writable? A: Yes. By default all registers mapped to ModbusSlave() are writable. You may make individual registers read-only with the ReadOnly() instruction in the CR800 CRBasic program. The following example demonstrates how to report data by Modbus but not allow a Modbus client to change register or coil values in the Modbus host: Var can be viewed and changed...
Section 8. Operation Concatenating Modbus Long Variables 'This program example demonstrates concatenation (splicing) of Long data type variables 'for Modbus operations. 'NOTE: The CR800 uses big-endian word order. 'Declarations Public Combo As Long 'Variable to hold the combined 32-bit Public Register(2) As Long 'Array holds two 16-bit ModBus long...
Section 8. Operation Note Although the keyboard display is not required to operate the CR800, it is a useful diagnostic and debugging tool. 8.11.1 Character Set The keyboard display character set is accessed using one of the following three procedures: The 16 keys default to ▲, ▼, ◄, ►, Home, PgUp, End, PgDn, Del, •...
Page 445
Section 8. Operation Special Keyboard/Display Key Functions Special Function Delete • • When pressed during power up, Del changes the [Del] PPP interface to inactive (only if set as RS232). This allows you to get into RS232 for PakBus if PPP is keeping you out.
Section 8. Operation 8.11.2.1 Real-Time Tables and Graphs FIGURE 101: CR1000KD Real-Time Tables and Graphs. 8.11.2.2 Real-Time Custom The CR1000KD Keyboard/Display can be configured with a customized real-time display. The CR800 will keep the setup as long as the defining program is running.
Section 8. Operation 8.11.4 File Management FIGURE 105: CR1000KD: File Management 8.11.4.1 File Edit The CRBasic Editor is recommended for writing and editing datalogger programs. When making minor changes with the CR1000KD Keyboard/Display, restart the program to activate the changes, but be aware that, unless programmed for otherwise, all variables, etc.
Section 8. Operation 8.11.5 Port Status and Status Table Read More See Info Tables and Settings (p. 527). FIGURE 107: CR1000KD: Port Status and Status Table...
Section 8. Operation 8.11.6 Settings FIGURE 108: CR1000KD: Settings 8.11.6.1 CR1000KD: Set Time / Date Move the cursor to time element and press Enter to change it. Then move the cursor to Set and press Enter to apply the change. 8.11.6.2 CR1000KD: PakBus Settings In the Settings menu, move the cursor to the PakBus®...
Section 8. Operation 8.11.7 Configure Display FIGURE 109: CR1000KD: Configure Display 8.12 CPI Port and CDM Devices — Details Related Topics: • CPI Port and CDM Devices — Overview (p. 63) • CPI Port and CDM Devices — Details (p. 455) See Appendix C in CDM-VW300 Dynamic Vibrating Wire Analyzers instruction manual, which is available at www.campbellsci.com/manuals.
The CR800 module is protected by a packet of silica gel desiccant, which is installed at the factory. This packet is replaced whenever the CR800 is repaired at Campbell Scientific. The module should not normally be opened except to replace the internal lithium battery.
Routing and communication logs (relearned without user intervention). Time. Clock will need resetting when the battery is replaced. Final-memory data tables. A replacement lithium battery can be purchased from Campbell Scientific or another supplier. Table Internal Lithium Battery Specifications lists battery (p. 458) part numbers and key specifications.
Page 459
Section 9. Maintenance — Details FIGURE 110: Remove Retention Nuts Fully loosen (only loosen) the two knurled thumbscrews. They will remain attached to the module. FIGURE 111: Pull Edge Away from Panel Pull one edge of the canister away from the wiring panel to loosen it from three internal connector seatings.
Page 460
Section 9. Maintenance — Details FIGURE 112: Remove Nuts to Disassemble Canister Remove six nuts, then open the clam shell. FIGURE 113: Remove and Replace Battery Remove the lithium battery by gently prying it out with a small flat point screwdriver.
• Factory Calibration or Repair Procedure (p. 461) If sending the CR800 to Campbell Scientific for calibration or repair, consult first with a Campbell Scientific support engineer. If the CR800 is malfunctioning, be prepared to perform some troubleshooting procedures while on the phone with the support engineer.
10. Troubleshooting If a system is not operating properly, please contact a Campbell Scientific support engineer for assistance. When using sensors, peripheral devices, or comms hardware, look to the manuals for those products for additional help. Note If a Campbell Scientific product needs to be returned for repair or recalibration, a Return Materials Authorization number is first required.
Section 10. Troubleshooting example, if a sensor signal-to-data conversion is faulty, create a program that only measures that sensor and stores the data, absent from all other inputs and data. Write these mini-programs before going to the field, if possible. 10.3 Troubleshooting —...
Section 10. Troubleshooting Channel assignments, input-range codes, and measurement mode arguments are common sources of error. Hardware • Mis-wired sensors or power sources are common. Damaged hardware Water, humidity, lightning, voltage transients, EMF Visible symptoms Self-diagnostics Watchdog errors Firmware • Operating system bugs are rare, but possible.
Section 10. Troubleshooting doubt. The PC compiler version is shown on the first line of the compile results. The program has large memory requirements for data tables or variables • and the CR800 does not have adequate memory. This normally is flagged at compile time, in the compile results.
Section 10. Troubleshooting 10.5.3.1.1 Voltage Measurements The CR800 has the following user-selectable voltage ranges: ±5000 mV, ±2500 mV, ±250 mV, and ±25 mV. Input signals that exceed these ranges result in an over-range indicated by a NAN for the measured result. With auto range to automatically select the best input range, a NAN indicates that either one or both of the two measurements in the auto-range sequence over ranged.
Section 10. Troubleshooting Variable and Final-Storage Data Types with NAN and ±INF Final-Storage Data Type & Associated Stored Values Test Public / Variable Expressio Type Variables IEEE4 UINT2 UNIT4 STRING BOOL BOOL8 LONG 1 / 0 +INF 65535 2147483647 +INF TRUE TRUE 2147483647...
Section 10. Troubleshooting Using NAN to Filter Data 'This program example demonstrates the use of NAN to filter what data are used in output processing functions such as 'averages, maxima, and minima. 'Declare Variables and Units Public TC_RefC Public TC_TempC Public DisVar As Boolean...
Mem3 fail messages are not caused by user error, and only rarely by a hardware fault. Report any occurrence of this error to a Campbell Scientific support engineer, especially if the problem is reproducible. Any program generating these errors is unlikely to be running correctly.
Section 10. Troubleshooting Warning Message Examples Message Meaning The Phrases parameter of the VoicePhrases() instruction was assigned a Warning: COM310 word list variable name instead of the required string of comma-separated words cannot be a variable. from the Voice.TXT file. Program will never execute the EndIf instruction.
Section 10. Troubleshooting skipped scans are regarded by the CR800 as having occurred during a single scan. The measured frequency can be much higher than actual. Be careful that scans that store data are not skipped. If any scan skips repeatedly, optimization of the datalogger program or reduction of on-line processing may be necessary.
High-speed serial data on multiple ports with very large data packets or bursts of data If any of the previous are not the apparent cause, contact a Campbell Scientific support engineer for assistance. Causes that require assistance include the following: Memory corruption.
(as opposed to a hardware reset that increment the WatchdogError field in the Status table). Postings of WatchdogInfo.txt files are rare. Please consult with a Campbell Scientific support engineer at any occurrence. Debugging beyond identifying the source of the watchdog is quite involved.
Section 10. Troubleshooting • Check all analog inputs to make sure they are not greater than ±5 Vdc by measuring the voltage between the input and a G terminal. Do this with a multi-meter (p. 505). Check for condensation, which can sometimes cause leakage from a 12 •...
The status array CommsMemFree() p. 538, p. 538) may indicate when a (p. 538, communication memory error occurs. If any of the three CommsMemFree() array fields are at or near zero, assistance may be required from Campbell Scientific. 10.9 Troubleshooting — Power Supplies Related Topics: •...
Information on power supplies available from Campbell Scientific can be obtained at www.campbellsci.com. Basic information is available in Power Supplies — List (p.
Is the battery voltage > 12 Vdc? Battery voltage is adequate for CR800 operation. However, if the CR800 is to function for a long period, Campbell Scientific recommends replacing, or, if using a sealed, rechargeable battery, recharging the battery so the voltage is > 12 Vdc.
Page 480
See Adjusting Charging Voltage (p. 482) to calibrate the charging regulator, or 1) Switch the power switch to return the charging regulator to Campbell 2) Disconnect the power source (transformer / solar panel). Scientific for calibration. 3) Remove the 5 kΩ resistor 4) Place a 50 Ω, 1 W resistor between a...
Assistance (p. 5) information on sending items to Campbell Scientific. 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.
Section 10. Troubleshooting 10.9.3.4 Adjusting Charging Voltage Note Campbell Scientific recommends that a qualified electronic technician perform the following procedure. The procedure outlined in this flow chart tests and adjusts PS100 and CH100 charging regulators. If a need for repair or calibration is indicated after following...
Description Scan processing time; real time in Lists technical data concerning program scans. seconds Serial FLASH data dump Campbell Scientific engineering tool Read clock chip Lists binary data concerning the CR800 clock chip. Status Lists the CR800 Status table. Lists technical data concerning an installed memory Card status and compile errors card.
Page 485
See section Troubleshooting — Data Recovery for details. (p. 486) Low level memory dump Campbell Scientific engineering tool Enables monitoring of CR800 communication traffic. Comms Watch (Sniff) No timeout when connected via PakBus. Peripheral bus module identify...
Section 10. Troubleshooting 10.10.1 Serial Talk Through and Comms Watch The options do not have a timeout when connected in terminal mode via PakBus. Otherwise P: Serial Talk and W: Comms Watch ("sniff") modes, the timeout can be changed from the default of 40 seconds to any value ranging from 1 to 86400 seconds (86400 seconds = 1 day).
Once you have run through the recovery procedure, consider the following: If a CRD: drive (memory card) or a USB: drive (Campbell Scientific mass storage device) has been removed since the data was originally stored, then the Datalogger Data Recovery is run, the memory pointer will likely be in the wrong location, so the recovered data will be corrupted.
Section 10. Troubleshooting • Check for a loose ground wire on a sensor powered from 12V. If a volt meter is not available, disconnect any sensor that is powered • from a 12V source to see if the measurements come back to normal. If multiple sensors are power by 12V, disconnect one at a time.
11. Glossary 11.1 Terms Term: ac See Vac (p. 520). Term: accuracy A measure of the correctness of a measurement. See also the appendix Accuracy, Precision, and Resolution (p. 522). Term: A-to-D Analog-to-digital conversion. The process that translates analog voltage levels to digital values.
Page 490
Section 11. Glossary Term: ASCII / ANSI Related Topics: • Term: ASCII / ANSI (p. 490) • ASCII / ANSI table Abbreviation for American Standard Code for Information Interchange / American National Standards Institute. An encoding scheme in which numbers from 0-127 (ASCII) or 0-255 (ANSI) are used to represent pre- defined alphanumeric characters.
Page 491
FieldCal() and FieldCalStrain(). It is found in LoggerNet (4.0 or higher) or RTDAQ. Term: Callback A name given to the process by which the CR800 initiates comms with a PC running appropriate Campbell Scientific datalogger support software (p. 572). Also known as "Initiate Comms." Term: CD100 An optional enclosure mounted keyboard/display for use with CR800 dataloggers.
Page 492
Scientific dataloggers and Campbell Scientific CDM peripheral devices. It consists of a physical layer definition and a data protocol. CDM devices are similar to Campbell Scientific SDM devices in concept, but the use of the CPI bus enables higher data-throughput rates and use of longer cables. CDM devices require more power to operate in general than do SDM devices.
Page 493
Section 11. Glossary Term: connector A connector is a device that allows one or more electron conduits (wires, traces, leads, etc) to be connected or disconnected as a group. A connector consists of two parts — male and female. For example, a common household ac power receptacle is the female portion of a connector.
Page 494
CRBasic Editor menu command that compiles, saves, and sends the program to the datalogger. Term: CS I/O Campbell Scientific proprietary input / output port. Also, the proprietary serial communication protocol that occurs over the CS I/O port. Term: CVI Communication verification interval. The interval at which a PakBus®...
Page 495
Section 11. Glossary Term: data point A data value which is sent to final-storage memory as the result of a (p. 499) data-output processing instruction Strings of data points output at the (p. 495). same time make up a record in a data table. Term: data table A concept that describes how data are organized in CR800 memory, or in files that result from collecting data in CR800 memory.
Page 496
Section 11. Glossary Term: DCE Data Communication Equipment. While the term has much wider meaning, in the limited context of practical use with the CR800, it denotes the pin configuration, gender, and function of an RS-232 port. The RS-232 port on the CR800 is DCE.
Page 497
Section 11. Glossary Term: DNS Domain name system. A TCP/IP application protocol. Term: DTE Data Terminal Equipment. While the term has much wider meaning, in the limited context of practical use with the CR800, it denotes the pin configuration, gender, and function of an RS-232 port. The RS-232 port on the CR800 is DCE.
Page 498
Section 11. Glossary Term: ESS Environmental Sensor Station Term: excitation Application of a precise voltage, usually to a resistive bridge circuit. Term: execution interval See scan interval (p. 513). Term: execution time Time required to execute an instruction or group of instructions. If the execution time of a program exceeds the Scan() Interval, the program is executed less frequently than programmed and the Status table SkippedScan field will increment.
Page 499
Section 11. Glossary Retrieve facilitates collection of files viewed in File Control. If collecting a data file from a memory card with Retrieve, first stop the CR800 program or data corruption may result. Format formats the selected CR800 memory device. All files, including data, on the device will be erased.
Page 500
Section 11. Glossary Term: FTP File Transfer Protocol. A TCP/IP application protocol. Term: full-duplex A serial communication protocol. Simultaneous bi-directional communications. Communications between a CR800 serial port and a PC is typically full duplex. Reading list: simplex duplex half duplex and full duplex (p.
Page 501
Section 11. Glossary Term: ground currents Pulling power from the CR800 wiring panel, as is done when using some comms devices from other manufacturers, or a sensor that requires a lot of power, can cause voltage potential differences between points in CR800 circuitry that are supposed to be at ground or 0 Volts.
Page 502
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. 542) Term: INF A data word indicating the result of a function is infinite or undefined.
Page 503
Using opto-couplers in a connecting device allows comms 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 CR800 accessory for use on the CS I/O port. See the appendix Serial I/O Modules —...
Page 504
Section 11. Glossary Term: lf Line feed. Often associated with carriage return (<cr>). <cr><lf>. Term: local variable A variable available for use only by the subroutine in which it is declared. The term differentiates local variables, which are declared in the Sub() and Function() instructions, from global variables, which are declared using Public or Dim.
Page 505
Section 11. Glossary Term: Modbus Communication protocol published by Modicon in 1979 for use in programmable logic controllers (PLCs). See section Modbus — Overview 78). Term: modem/terminal Any device that has the following: Ability to raise the CR800 ring line or be used with an optically isolated interface (see the appendix CHardwire, Single-Connection Comms Devices —...
Page 506
Section 11. Glossary Term: NAN Not a number. A data word indicating a measurement or processing error. Voltage over-range, SDI-12 sensor error, and undefined mathematical results can produce NAN. See the section NAN and ±INF (p. 466). Term: neighbor device Device in a PakBus network that communicate directly with a device without being routed through an intermediate device.
Page 507
Section 11. Glossary Term: ohm The unit of resistance. Symbol is the Greek letter Omega (Ω). 1.0 Ω equals the ratio of 1.0 volt divided by 1.0 ampere. Term: Ohm's Law Describes the relationship of current and resistance to voltage. Voltage equals the product of current and resistance (V = I •...
Page 508
Shows the relationship of various nodes in a PakBus network and allows for monitoring and adjustment of some registers in each node. A PakBus (p. 511) node is typically a Campbell Scientific datalogger, a PC, or a comms device. See section Datalogger Support Software — Overview (p. 86). Term: parameter Parameter part of a procedure (or command) definition.
Page 509
Section 11. Glossary Term: ping A software utility that attempts to contact another device in a network. See section PakBus — Overview and sections Ping (PakBus) and Ping (IP) (p. 77) (p. 435). Term: pipeline mode A CRBasic program execution mode wherein instructions are evaluated in groups of like instructions, with a set group prioritization.
Section 11. Glossary Term: print peripheral See print device (p. 509). Term: processing instructions CRBasic instructions used to further process input-data values and return the result to a variable where it can be accessed for output processing. Arithmetic and transcendental functions are included. Term: program control instructions Modify the execution sequence of CRBasic instructions.
Page 511
Term: regulator A setting, a Status table element, or a DataTableInformation table element. Term: regulator A device for conditioning an electrical power source. Campbell Scientific regulators typically condition ac or dc voltages greater than 16 Vdc to about 14 Vdc.
Page 512
Recommended Standard 232. A loose standard defining how two computing devices can communicate with each other. The implementation of RS-232 in Campbell Scientific dataloggers to PC communications is quite rigid, but transparent to most users. Features in the CR800 that implement RS-232...
Page 513
Synchronous Device for Measurement. A processor-based peripheral device or sensor that communicates with the CR800 via hardwire over a short distance using a protocol proprietary to Campbell Scientific. Term: Seebeck effect Induces microvolt level thermal electromotive forces (EMF) across junctions...
Page 514
Section 11. Glossary principle behind thermocouple temperature measurement. It also causes small, correctable voltage offsets in CR800 measurement circuitry. Term: sequential mode A CRBasic program execution mode wherein each statement is evaluated in the order it is listed in the program. More information is available in section See pipeline mode Sequential Mode (p.
Page 515
Section 11. Glossary Term: signature A number which is a function of the data and the sequence of data in memory. It is derived using an algorithm that assures a 99.998% probability that if either the data or the data sequence changes, the signature changes. See sections Security —...
Page 516
Section 11. Glossary Term: Station Status command A command available in most datalogger support software (p. 86). following figure is a sample of station status output. Term: string A datum or variable consisting of alphanumeric characters.
Page 517
Section 11. Glossary Term: support software See datalogger support software (p. 494). Term: swept frequency A succession of frequencies from lowest to highest used as the method of wire excitation with VSPECT measurements. (p. 521) Term: synchronous The transmission of data between a transmitting and a receiving device occurs as a series of zeros and ones.
Page 518
Term: terminal emulator A command-line shell that facilitates the issuance of low-level commands to a datalogger or some other compatible device. A terminal emulator is available in most datalogger support software available from Campbell (p. 86) Scientific. Term: thermistor A thermistor is a temperature measurement device with a resistive element that changes in resistance with temperature.
Page 519
Section 11. Glossary Term: TLS Transport Layer Security. An Internet communication security protocol. Term: toggle To reverse the current power state. Term: UINT2 Data type used for efficient storage of totalized pulse counts, port status (status of 16 ports stored in one variable, for example) or integer values that store binary flags.
Page 520
Mains or grid power is high-level Vac, usually 110 Vac or 220 Vac at a fixed frequency of 50 Hz or 60 Hz. High-level Vac can be the primary power source for Campbell Scientific power supplies. Do not connect high-level Vac directly to the CR800.
Page 521
A large number of errors (>10) accumulating over a short period indicates a hardware or software problem. Consult with a Campbell Scientific support engineer. Term: weather-tight Describes an instrumentation enclosure impenetrable by common environmental conditions.
Section 11. Glossary Term: wild card a character or expression that substitutes for any other character or expression. Term: XML Extensible markup language. Term: user program The CRBasic program written by you in Short Cut program wizard or CRBasic Editor. 11.2 Concepts 11.2.1 Accuracy, Precision, and Resolution...
Page 523
Section 11. Glossary FIGURE 116: Relationships of Accuracy, Precision, and Resolution...
12. Attributions Use of the following trademarks in the CR800 Operator's Manual does not imply endorsement by their respective owners of Campbell Scientific: • Crydom Newark • Mouser • • MicroSoft WordPad • HyperTerminal • LI-COR •...
Appendix A. Info Tables and Settings Related Topics: • Info Tables and Settings (p. 527) • Common Uses of the Status Table (p. 529) • Status Table as Debug Resource (p. 470) Info tables and settings contain fields, settings, and information essential to setup, programming, and debugging of many advanced CR800 systems.
Page 528
Appendix A. Info Tables and Settings Note Communication and processor bandwidth are consumed when generating the Status and and other information tables. If the CR800 is very tight on processing time, as may occur in very long or complex operations, retrieving these tables repeatedly may cause skipped scans 472).
Appendix A. Info Tables and Settings • SkippedSystemScan SkippedSlowScan • • MaxProcTime • MaxBuffDepth MaxSystemProcTime • • MaxSlowProcTime SkippedRecord • A.1 Info Tables and Settings Directories Links in the following tables will help you navigate through the Info Tables and Settings system: Info Tables and Settings: Directories Frequently Used...
Appendix A. Info Tables and Settings Info Tables and Settings: Frequently Used Action Status/Setting/DTI Table Where Located Programming errors ProgErrors CRBasic Program II (p. 535) (p. 547) ProgSignature (p. 548) SkippedScan (p. 550) StartUpCode (p. 550) Data tables DataFillDays() Data (p. 535) (p.
Page 531
Appendix A. Info Tables and Settings Info Tables and Settings: Keywords HTTPEnabled Neighbors() RevBoard UDPBroadcastFilter (p. 541) (p. 545) (p. 548) 551) HTTPPort RouteFilters (p. 541) (p. 548) CentralRouters() RS232Handshaking (p. 538) USRDriveFree (p. 551) 548) RS232Power USRDriveSize (p. 548) (p.
Appendix A. Info Tables and Settings A.1.1.5 Info Tables and Settings: Programming Info Tables and Settings: CRBasic Program I BuffDepth MaxBuffDepth MeasureTime (p. 537) (p. 544) (p. 544) CompileResults MaxProcTime Messages (p. 539) (p. 544) (p. 545) IncludeFile MaxSlowProcTime() (p. 542) (p.
Appendix A. Info Tables and Settings Info Tables and Settings: Obsolete IPTrace TCPClientConnections TLSEnabled (p. 542) (p. 551) PakBusNodes TCPPort (p. 546) (p. 551) ServicesEnabled() (p. 549) Info Tables and Settings: OS and Hardware Versioning OSDate OSVersion SerialNumber (p. 545) (p.
Appendix A. Info Tables and Settings In many cases, the Info Tables and Settings keyword can be used to pull that field into a running CRBasic program. See Info Tables and Settings — Setup Tools 107). Two data types are identified as being associated with Info Tables and Settings. These are Numeric and String.
Page 538
Appendix A. Info Tables and Settings Status table field: ≈47 • CalGain() Numeric Array of floating-point values reporting calibration gain (mV) for each integration / range combination. Updated by auto self-calibration. • Status table field: ≈48 Numeric CalSeOffSet Array of integers reporting single-ended offsets for each integration / range combination. Updated by auto self-calibration.
Page 539
Appendix A. Info Tables and Settings Status table field: ≈27 • An integer specifying four two-digit fields, read from left to right as (1) number of output packets waiting to be sent, (2) number of input packets waiting to be serviced, (3) number of big packets available for TCP/IP comms, and (4) number of little packets available for TCP/IP comms.
Appendix A. Info Tables and Settings Info Tables and Settings: D • Where to Find Keyword Data Type Description DataTableInfo table • DataFillDays() Numeric Reports the time required to fill a data table. Each table has its own entry. DataTableInfo table •...
Appendix A. Info Tables and Settings Info Tables and Settings: F • Where to Find Keyword Data Type Description • Settings Editor: Advanced | Files Manager FilesManager String Specifies the numbers of files of a designated type that are saved when received from a specified node.
Appendix A. Info Tables and Settings Info Tables and Settings: I • Where to Find Keyword Data Type Description Settings Editor: Advanced | Include File Name • IncludeFile String Name of a file to be included at the end of the current CRBasic program, or that can be run as the default program.
Appendix A. Info Tables and Settings • Settings Editor: Advanced | IP Trace COM Port IPTraceComport Numeric Specifies the port (if any) on which TCP/IP trace information is sent. Information type is controlled by IPTraceCode. Default is 0 = inactive. Settings Editor: Advanced | Is Router •...
Appendix A. Info Tables and Settings Info Tables and Settings: M • Where to Find Keyword Data Type Description Status table field: ≈36 • MaxBuffDepth Numeric Maximum number of buffers the CR800 will use to process lagged measurements. • Settings Editor: Advanced | Max Packet Size Numeric MaxPacketSize Maximum number of bytes per data collection packet.
Appendix A. Info Tables and Settings Station Status field: Memory • MemorySize Numeric Status table field: ≈26 • Total SRAM (bytes) in the CR800. Updated at startup. MsgErr Numeric CPIInfo table • Status table field: ≈46 • Messages String Contains a string of manually entered messages. Info Tables and Settings: N •...
Appendix A. Info Tables and Settings Info Tables and Settings: P • Where to Find Keyword Data Type Description Settings Editor: Datalogger | PakBus Address • PakBus address for this CR800. Assign a unique address if this CR800 is to be placed in a PakBusAddress Numeric PakBus network.
Page 547
Appendix A. Info Tables and Settings Settings Editor: Network Services | Ping (ICMP) Enabled • PingEnabled Numeric Enables (True [default]) or disables (False) the ICMP ping service. Status table field: ≈43 • PortConfig() String Sets up C terminals in numeric order of terminals. Set up for input, output, SDM, SDI-12, COM port.
Appendix A. Info Tables and Settings Status table field: ≈20 • ProgErrors Numeric Number of compile or runtime errors for the running program. Updated after compile. Station Status field: Current Program • String ProgName Status table field: 10 • Name of current (running) program; updates at startup •...
Appendix A. Info Tables and Settings Station Status field: Run Signature • Status table field: 9 • RunSignature Numeric Signature of the running binary (compiled) program. Value is independent of comments or non-functional changes. Often changes with operating-system changes. Updates after compiling and before running the program.
Page 550
Appendix A. Info Tables and Settings Reports how many records have been skipped in a data table. Array elements are in the order that data tables are declared in the CRBasic program. Enter 0 to reset. Station Status field: Skipped Scans •...
Appendix A. Info Tables and Settings Status table field: ≈37 • SystemProcTime FLOAT Time (μs) required to process auto (background) calibration. Default is a large number until auto self-calibration runs. Info Tables and Settings: T • Where to Find Keyword Data Type Description TCPClient...
Appendix A. Info Tables and Settings Info Tables and Settings: V • Where to Find Keyword Data Type Description Station Status field: Variable Out of Bounds • • Status table field: ≈21 Number of attempts to write to an array outside of the declared size. The write does not VarOutOfBound Numeric occur.
Appendix B. Serial Port Pinouts B.1 CS I/O Communication Port Pin configuration for the CR800 CS I/O port is listed in table Pinout of CR800 CS I/O D-Type Connector Port (p. 553). Pinout of CR800 CS I/O D-Type Connector Port Input (I) Function Description...
Appendix B. Serial Port Pinouts B.2 RS-232 Communication Port B.2.1 Pin Outs Pin configuration for the CR800 RS-232 nine-pin port is listed in table Pinout of CR800 RS-232 D-Type Connector Port Information for using a null (p. 554). modem with RS-232 is given in table Standard Null-Modem Cable Pinout (p.
Appendix B. Serial Port Pinouts Standard Null-Modem Cable Pin Out Female Female Socket Socket 1 & 6 ————— ————— ————— ————— 1 & 6 ————— ————— ————— most null modems have no connection If the null-modem cable does not connect pin 9 to pin 9, configure the modem to output RING (or other characters previous to the DTR being asserted) on the modem TX line to wake the CR800 and activate the DTR line or enable the modem.
Largest 13-bit (p. 283). D - P magnitude is 8191, but Campbell Scientific defines the largest- allowable magnitude as 7999 Decimal locaters can be viewed as a negative base-10 exponent with decimal locations as shown in TABLE: FP2 Decimal Locater Bits (p.
For example, when the CR1000 datalogger receives data from a CR9000 datalogger, the byte order of a four byte IEEE4 or integer data value has to be reversed before the value shows properly in the CR1000. Endianness in Campbell Scientific Instruments Little Endian Instruments Big Endian Instruments...
• Dataloggers — List (p. 561) Other Campbell Scientific datalogging devices can be used in networks with the CR800. Data and control signals can pass from device to device with the CR800 acting as a master, peer, or slave. Dataloggers communicate in a network via ®...
Appendix E. Supporting Products — List Dataloggers Model Description 28 analog input terminals, four pulse CR3000 input terminals, eight control / I/O Micrologger terminals. Faster than CR1000. Expandable. CR9000X-Series High speed, configurable, modular, Measurement, Control, and I/O expandable Modules E.2 Measurement and Control Peripherals — List Related Topics: •...
Appendix E. Supporting Products — List Pulse Input Modules Model Description SDM-INT8 Eight-channel interval timer SDM-SW8A Eight-channel, switch closure module LLAC4 Four-channel, low-level ac module E.3.3 Serial I/O Modules — List Serial I/O peripherals expand and enhance input capability and condition serial signals.
Appendix E. Supporting Products — List E.3.5.1 Resistive-Bridge TIM Modules — List Resistive Bridge TIM Modules Model Description 4WFBS120 120 Ω, four-wire, full-bridge TIM module 4WFBS350 350 Ω, four-wire, full-bridge TIM module 4WFBS1K 1 kΩ, four-wire, full-bridge TIM module 3WHB10K 10 kΩ, three-wire, half-bridge TIM module 4WHB10K...
Appendix E. Supporting Products — List Transient Voltage Suppressors Model Description 16981 Surge-suppressor kit for GOES transmitters 6536 4-wire surge protector for SRM-5A 4330 2-wire surge protector for land-line telephone modems SVP48 General purpose, multi-line surge protector E.3.6 Terminal Strip Covers — List Terminal strips cover and insulate input terminals to improve thermocouple measurements.
Appendix E. Supporting Products — List Continuous-Analog Output (CAO) Modules Model Description Four-channel, continuous analog SDM-AO4A voltage output Four-channel, continuous voltage and SDM-CVO4 current analog output E.4.3 Relay-Drivers — List Relay drivers enable the CR800 to control large voltages. Relay-Drivers — Products Model Description Four relays driven by four control...
CR800. Some sensors require external signal conditioning. The performance of some sensors is enhanced with specialized input modules. E.5.1 Wired-Sensor Types — List The following wired-sensor types are available from Campbell Scientific for integration into CR800 systems. Wired Sensor Types...
Wind speed / wind direction Rain E.6 Cameras — List A camera can be an effective data gathering device. Campbell Scientific cameras are rugged-built for reliable performance at environmental extremes. Images can be stored automatically to a Campbell Scientific datalogger and transmitted over a variety of Campbell Scientific comms devices.
Appendix E. Supporting Products — List Many comms devices are available for use with the CR800 datalogger. E.7.1 Keyboard/Display — List Related Topics: • Keyboard/Display — Overview (p. 80) • Keyboard/Display — Details (p. 443) • Keyboard/Display — List (p. 569) •...
• TABLE: Info Tables and Settings: Memory (p. 535) Data-storage devices allow you to collect data on-site with a small device and carry it back to the PC ("sneaker net"). Campbell Scientific mass-storage devices attach to the CR800 CS I/O port. Mass-Storage Devices Model Description...
Appendix E. Supporting Products — List Software products are available from Campbell Scientific to facilitate CR800 programming, maintenance, data retrieval, and data presentation. Starter software (table Starter Software ) are those products designed for novice (p. 572) integrators. Datalogger support software products (table Datalogger Support...
Appendix E. Supporting Products — List Datalogger Support Software Software Compatibility Description Supports single dataloggers over most comms options. Top-level datalogger support software. PC, Windows LoggerNet Supports datalogger networks. Advanced LoggerNet LoggerNet Admin PC, Windows for large datalogger networks. Includes LoggerNet Server for use in a Linux environments and Linux...
Generates displays of real-time or historical data, post-processes data LoggerNetData files, and generates reports. It includes Split, RTMC, View Pro, and Data Filer. Campbell Scientific OPC Server. PC-OPC Feeds datalogger data into third-party, OPC-compatible graphics packages. Bundled with LoggerNet. Maps and PakBus Graph provides access to the settings of a PakBus network.
Also availble at no cost Device Configuration www.campbellsci.com. Utility PC, Windows Used to configure (DevConfig) settings and update operating systems for Campbell Scientific devices. E.9.4 Software Development Kits — List Software Development Kits Software Compatibility Description Allows software developers to create...
• Power Sources (p. 95) • Troubleshooting — Power Supplies (p. 477) es are available from Campbell Scientific to power the CR800. Several power suppli E.10.1 Battery / Regulator Combinations — List Read More Information on matching power supplies to particular applications can be found in the Campbell Scientific Application Note "Power Supplies", available at www.campbellsci.com.
Appendix E. Supporting Products — List Enclosures — Products Model Description Stainless steel 24 inch x 30 inch ENC24/30S weather-tight enclosure Prewired Enclosures Model Description Pre-wired 12 inch x 14 inch weather- PWENC12/14 tight enclosure. Pre-wired 14 inch x 16 inch weather- PWENC14/16 tight enclosure.
Appendix E. Supporting Products — List 1.42 meter (56 in) mast, stainless CM310 steel, free standing, tripod, and guyed options E.13 Protection from Moisture — List Protection from Moisture — Products Model Description Desiccant 4 Unit Bag (Qty 20). 6714 Usually used in ENC enclosures to protect the CR800.
Page 587
Index Line, Maximum length 512 characters ..125 Measurement and Control Peripherals — Linear Sensor ..........75 List ............562 Lithium Battery ..........38, 458, 527 Measurement and Control Peripherals — Little Endian ..........282, 283, Overview ..........82 Measurement and Data Storage Processing ... 157 Local Variable ..........136, 504 Measurement Theory (PRT) ......
Page 589
Index Power .............41, 61, 91, Processing Instructions — Output ....495 95, 389, 391 Processor ............91 Power Budget ..........95, 255, 256 ProgErrors ............. 473 Power Consumption ........95 Program ............83 Power In Terminals ........61 Program — Alias ........... 138 Power Out Terminals ........61 Program —...
Page 590
Index Programming ..........41, 46, 83, Range Limit ..........127 Ratiometric ........... 335 Programming — Capturing Events ....171 RC Resistor Shunt......... 230 Programming — Conditional Output .... 173 Read Only Variables ........406 Programming — Groundwater Pump Test ... 173 Reading Inverse Format Modbus Registers ..
Page 591
Index RS-232 Recording .........384 Send Program and Collect Data ..... 46 RS-232 Sensor ..........279, 386 Sending CRBasic Programs ......170 RS-232 Sensor Cabling .........386 Sensor ............35, 83, 567 RTDAQ ............572 Sensor — Analog .......... 345 RTU ...............438 Sensor — Bridge ........... 332 Run/Stop Program .........450 Sensor —...
Page 592
Index Settling Time..........316, 318, State Measurement ........59 319, 320, Statement Aggregation ......... 125 322, 386 Status ............453 Setup ............. 102 Status Table ..........529 Setup Tasks ........... 113 Status Table as Debug Resource ....470 Short Cut ............43, 572 Status Table WatchdogErrors .......
Page 593
Index CRBasic Editor........ 493; CRBasic Editor Compile, Save Table ..............41 and Send ........494; Table — Data Header ........164 CS I/O ..........494; Table Overrun ..........470 CVI ..........494; Task ...............151, 517 data bits ........... 282; Task Priority ..........150 data cache ........494; TCP ..............428, 434 data output interval ......
Page 594
Index HTML ..........501; PakBus ..........508; HTTP ..........501; PakBusGraph software ....508; IEEE4 ..........501; parameter ........508; Include file ........502; period average ........ 508; INF ..........502; peripheral ........508; initiate comms ........ 502; ping ..........509; input registers 30001 to 39999 ..
Page 595
Index start bit ..........283; Thermocouple Measurements — Details ..331 state ..........515; Throughput ............ 518 Station Status command ....516; Time .............. 198, 454 stop bit ..........283; Time Keeping — Details ....... 311 string ..........516; Time Keeping — Overview ......65 support software ......517;...
Page 596
Index True ............... 164 Voltage Excitation ........69 TTL ............... 518 Voltage Measurement ........345 TTL logic ............518 Voltage Measurement Limitations ....345 TTL Recording ..........384 Voltage Measurement Mechanics ....348 Tutorial ............35; Voltage Measurement Quality ...... 314, 351 Measuring a Thermocouple ....
Page 598
Santo Domingo, Heredia 40305 SOUTH AFRICA COSTA RICA • cleroux@csafrica.co.za • info@campbellsci.cc www.campbellsci.co.za www.campbellsci.cc Campbell Scientific Southeast Asia Co., Ltd. Campbell Scientific Ltd. 877/22 Nirvana@Work, Rama 9 Road Campbell Park Suan Luang Subdistrict, Suan Luang District 80 Hathern Road Bangkok 10250...
Need help?
Do you have a question about the CR800 Series and is the answer not in the manual?
Questions and answers