Page 2
Warranty and Assistance The CR1000 MEASUREMENT AND CONTROL SYSTEM is warranted by CAMPBELL SCIENTIFIC, INC. to be free from defects in materials and workmanship under normal use and service for thirty-six (36) months from date of shipment unless specified otherwise. Batteries have no warranty.
PDF viewers note: These page numbers refer to the printed version of this document. Use the Adobe Acrobat® bookmarks tab for links to specific sections. 1. Introduction...............1-1 2. Quickstart Tutorial............2-1 2.1 Primer – CR1000 Data Acquisition............2-1 2.1.1 Components of a Data Acquisition System ........ 2-1 2.1.1.1 Sensors ................2-1 2.1.1.2 Datalogger ................. 2-1 2.1.1.3 Data Retrieval..............
Page 4
CR1000 Table of Contents 3.1.7 Security..................3-10 3.1.8 Care and Maintenance ............... 3-10 3.1.8.1 Protection from Water ............. 3-10 3.1.8.2 Protection from Voltage Transients ......... 3-11 3.1.8.3 Calibration ............... 3-11 3.1.8.4 Internal Battery ..............3-11 3.2 PC Support Software ................3-11 3.3 Specifications..................
Page 5
8.1 DevConfig .................... 8-1 8.2 Sending the Operating System ............. 8-2 8.2.1 Sending OS with DevConfig ............8-2 8.2.2 Sending OS to Remote CR1000 ..........8-4 8.2.3 Sending OS Using CF Card ............8-4 8.3 Settings ....................8-4 8.3.1 Settings via DevConfig ............... 8-4 8.3.1.1 Deployment Tab..............
Page 6
8.3.4.3 Priorities................8-14 9. CR1000 Programming ..........9-1 9.1 Inserting Comments into Program ............9-1 9.2 Uploading CR1000 Programs............... 9-1 9.3 Writing CR1000 Programs ..............9-1 9.3.1 Short Cut Editor and Program Generator........9-1 9.3.2 CRBASIC Editor ................ 9-2 9.3.3 Transformer................. 9-2 9.4 Numerical Formats ................
Page 7
CR1000 Table of Contents 10. CRBASIC Programming Instructions ....10-1 10.1 Program Declarations ............... 10-1 10.2 Data Table Declarations ..............10-3 10.2.1 Data Table Modifiers.............. 10-3 10.2.2 On-Line Data Destinations ............. 10-3 10.2.3 Data Storage Output Processing ..........10-4 10.2.3.1 Single-Source ..............10-4 10.2.3.2 Multiple-Source ............
Page 8
CR1000 Table of Contents 11. Programming Resource Library ......11-1 11.1 Field Calibration of Linear Sensors (FieldCal)......... 11-1 11.1.1 CAL Files................11-1 11.1.2 CRBASIC Programming............11-2 11.1.3 Calibration Wizard Overview ..........11-2 11.1.4 Manual Calibration Overview..........11-2 11.1.4.1 Single-point Calibrations (zero or offset)...... 11-3 11.1.4.2 Two-point Calibrations (multiplier / gain) ....
Page 10
CR1000 Table of Contents 12.6 File Management ................12-7 12.6.1 File Attributes ................. 12-9 12.6.2 CF Power-up ................. 12-10 12.7 File Names..................12-14 13. Telecommunications and Data Retrieval ... 13-1 13.1 Hardware and Carrier Signal ............13-1 13.2 Protocols ................... 13-2 13.3 Initiating Telecommunications ............
Page 11
CR1000 Table of Contents 15.2.6 Modbus Slave over IP with NL100......... 15-8 15.2.6.1 Configuring the NL100 ..........15-8 15.2.6.2 Configuring the CR1000 ..........15-12 15.2.6.3 ModBus tidBytes............15-13 16. Support Software..........16-1 16.1 Short Cut ..................16-1 16.2 PC200W ................... 16-1 16.3 Visual Weather .................
Page 12
E. FP2 Data Format ............E-1 Index to Sections ............Index-1 Figures 2.1-1. CR1000 Wiring Panel............... 2-3 2.1-2. Single-ended and Differential Input Channels........2-4 2.1-3. Single-ended and Differential Analog Sensor Wiring ...... 2-5 2.1-4. Half and Full Bridge Wiring ............. 2-6 2.1-5.
Page 13
4.4-3. Panel Temperature Gradients during 80 to 25°C Change....4-25 4.4-4. Diagram of Junction Box..............4-30 4.5-1. Schematic of a Pulse Sensor on a CR1000 ........4-31 4.5-2. Pulse Input Types ................4-32 4.5-3. Amplitude reduction of pulse-count waveform before and after 1 μs time constant filter.
Page 14
11.12-2. Bool8 data from ................ 11-63 11.12-3. Bool8 data from ................ 11-64 12.6-1. Summary of the Effect of CF Data Options on CR1000 Data..12-10 14.2-1. PakBus Network Addressing. PakBus addresses are shown in parentheses after each datalogger in the network......14-2 14.6-1.
Page 15
0°C)....................4-25 4.4-2. Voltage Range for Maximum Thermocouple Resolution (with reference temperature at 20°C) ............4-27 4.4-3. Limits of Error on CR1000 Thermocouple Polynomials (Relative to NIST Standards) ................4-28 4.4-4. Reference Temperature Compensation Range and Polynomial Error Relative to NIST Standards ............4-28 4.4-5.
Page 16
CR1000 Table of Contents B-1. Common Uses of the Status Table ............. B-1 B-2. Status / Setting Fields and Descriptions ..........B-2 B-3. Settings..................... B-10 C-1. CS I/O Pin Description............... C-1 C-2. Computer RS-232 Pin-Out..............C-2 C-3. Standard Null Modem Cable or Adapter Pin Connections....C-3 E-1.
Page 17
11.8-4. CRBASIC Code: measures sensors and sends data out the RS-232 port in Printable ASCII format. Accepts “C” command to set the CR1000 clock..............11-51 11.9-1. Using TrigVar to Trigger Data Storage ........11-57 11.11-1. CRBASIC Code: Using NSEC data type on a 1 element array.11-59 11.11-2.
The limits of the CR1000 are defined by our customers. Our intent with the CR1000 manual is to guide you to the tools you need to explore the limits of your application.
Page 20
Section 1. Introduction This is a blank page.
CR1000s measure electrical signals and convert the measurement to engineering units, perform calculations and reduce data to statistical values. Every measurement does not need to be stored. The CR1000 will store data in memory awaiting transfer to the PC via external storage devices or telecommunications.
See FIGURE 2.1-1. 2.1.4 Battery Backup A lithium battery backs up the CR1000 clock, program, and memory if it loses power. 2.1.5 Power Supply The CR1000 can be powered by a nominal 12 volt DC source through the...
Page 23
RS-232 (Not Isolated) POWER OUT COM1 COM2 COM3 COM4 Rx Tx Rx Tx Rx Tx Rx CS I/O PERIPHERAL PORT MADE IN USA 12 V SDM Connections Control I/O Peripheral Port Power Ground (G) Switched 12 Volts FIGURE 2.1-1. CR1000 Wiring Panel...
Section 2. Quickstart Tutorial 2.1.6 Analog Sensors Analog sensors output continuous voltages that vary with the phenomena measured. Analog sensors connect to analog terminals. Analog terminals are configured as single-ended (measured with respect to ground) or differential (high input measured with respect to the low input of a channel pair (FIGURE 2.1-3)). Analog channels are configured individually as 8 differential or 16 single ended Channels (FIGURE 2.1-2).
Page 25
Section 2. Quickstart Tutorial Sensor Wired to Single-Ended Channel #2 Sensor Sensor Wired to Differential Channel #1 Sensor FIGURE 2.1-3. Single-ended and Differential Analog Sensor Wiring...
Bridge sensors change resistance with respect to environmental change. Resistance is determined by measuring the difference between the excitation voltage supplied to the bridge by the CR1000 and the voltage detected by the CR1000 returning from the bridge. The CR1000 supplies a precise excitation voltage via excitation terminals.
FIGURE 2.1-6. Anemometer Wired to Pulse Channel #1 2.1.9 Digital I/O Ports The CR1000 has 8 Digital I/O ports selectable, under program control, as binary inputs or control outputs. These ports have multiple function capability including: edge timing, device driven interrupts, switch closure pulse counting, high frequency pulse counting, asynchronous communications, SDI-12 communications, SDM communications, and as shown in FIGURE 2.1-7,...
Section 2. Quickstart Tutorial Digital I/O Ports Used to Control/Monitor Pump 110 VAC CR10 ACL1 Line Pump Monitor C1 - Used as input to monitor pump status. C2 - Used as output to switch power to a pump via a solid state relay. FIGURE 2.1-7.
Section 2. Quickstart Tutorial 2.2 Hands-on Exercise – Measuring a Thermocouple This tutorial is a stepwise procedure for configuring a CR1000 to make a simple thermocouple measurement and send the resulting data to a PC. Discussions include programming, real-time data monitoring, collecting data, and viewing data.
Resource CD or at www.campbellsci.com. When PC200W is first opened, the EZSetup Wizard is launched. Click the Next button and follow the prompts to select the CR1000, the COM port on the computer that will be used for communications, 115200 baud, and PakBus Address 1.
Page 31
When things settled out, the micro-volt meter was read, and the value looked up in the appropriate table in the reference book to determine the temperature. Then along came Eric and Evan Campbell. Campbell Scientific designed the first CR7 datalogger to make thermocouple measurements without the need of vacuum flasks, third junctions, or reference books.
Page 32
Support.” Choose “Campbell Scientific, Inc.” On the “1. New/Open” page, click [New Program]. Use the drop-down list box that appears to select CR1000. Click [OK]. Enter a 1 second Scan Interval and click [OK]. Click on [Next>] to progress to “2. Sensors” page.
Page 33
FIGURE 2.2-4. Short Cut Sensors Page Click on Wiring Diagram to view the sensor wiring diagram, as shown in FIGURE 2.2-5. Wire the Type T Thermocouple (provided) to the CR1000 as shown on the diagram. Click on 3. Outputs to continue with Step 3.
Page 34
As shown in FIGURE 2.2-7, any errors the compiler may have detected are displayed, along with the names of the files that were created. The file Quickstart.CR1 is the program file that is to be sent to the CR1000. Quickstart.def is a summary of the sensor wiring and measurement labels.
FIGURE 2.2-7. Short Cut Finish Page 2.2.2.2 Connecting to the Datalogger From the PC200W Clock / Program tab, click on the Connect button to establish communications with the CR1000 (FIGURE 2.2-8). When communications have been established, the text on the button will change to Disconnect.
The Monitor Data window (FIGURE 2.2-9) is used to display the current sensor measurement values from the Public Table, and the most recent data from the OneMin table. After sending a program to the CR1000, a good practice is to monitor the measurements to ensure they are reasonable.
Section 2. Quickstart Tutorial FIGURE 2.2-10. PC200W Collect Data Tab 2.2.2.7 Viewing Data To view the collected data, click on the View button (located in the upper right-central portion of the main screen). Options are accessed by using the menus or by selecting the toolbar icons. Move and hold the mouse over a toolbar icon for a few seconds for a brief description of that icon's function.
Section 2. Quickstart Tutorial Show graph Open file Expand tabs FIGURE 2.2-11. PC200W View Data Utility Close the graph and view screens, and close PC200W. 2-18...
FIGURE 3.1-1. Principal Features of CR1000 Data Acquisition Systems As a simple concept, the CR1000 is a multimeter with memory and timekeeping. It is one part of a data acquisition system. To acquire quality data, suitable sensors and reliable telecommunications devices are also required.
3.1.2 Input / Output Interface: The Wiring Panel The wiring panel of the CR1000 is the interface to all CR1000 functions. Most CR1000 functions are best introduced by reviewing features of the CR1000 wiring panel. FIGURE 2.1-1 illustrates the wiring panel and some CR1000 functions accessed through it.
Page 41
9-Pin RS-232: 1 port (Computer RS-232) configurable for serial input. 3.1.2.2 Voltage Outputs The CR1000 supplies precision voltage excitation for resistive measurements through the following output channels: Switched Analog Voltage Output (Excitation): 3 channels (Vx/VX1 (VX1 (EX1)) – Vx/VX3 (EX3)) for precise voltage excitation ranging from -2500...
Page 42
Section 3. Overview The CR1000 can be used as a PLC (programmable logic controller). Utilizing peripheral relays and analog output devices, the CR1000 can manage binary and variable control devices through the following output channels: Read more! See Section 5.4 Control Output.
Page 43
Read more! See Section 13 Telecommunication and Data Retrieval and Section 14 PakBus Overview. The CR1000 is equipped with several communications ports. Communication ports allow the CR1000 to communicate with other computing devices, such as a PC, or with other Campbell Scientific dataloggers. NOTE...
3.1.3 Power Requirements Read more! See Section 6 Power Supply. The CR1000 operates from a DC power supply with voltage ranging from 9.6 to 16 V, and is internally protected against accidental polarity reversal. The CR1000 has modest input power requirements. In low power applications, it can operate for several months on non-rechargeable batteries.
A program is created on a PC and sent to the CR1000. The CR1000 can store a number of programs in memory, but only one program is active at a given time. Three Campbell Scientific software applications, Short Cut, CRBASIC Editor, and Transformer Utility create CR1000 programs.
Other PakBus dataloggers can be used as “sensors” to consolidate all data into one CR1000. • Routing – the CR1000 can act as a router, passing on messages intended for another logger. PakBus supports automatic route detection and selection. •...
CR1000KD. DataView has menu item, “Counter”, and submenus “PanelTemps”, “TCTemps”, and “System Menu”. “Counter” allows selection of 1 of 4 values. Each submenu displays two values from CR1000 memory. PanelTemps shows the CR1000 wiring panel temperature at each scan, and the one minute sample of panel temperature.
Valid security codes are 1 through 65535 (0 is no security). Each level must have a unique code. If security is set to a negative code in the CR1000, a positive code must be entered to unlock the CR1000. That positive code = 65536 + (negative security code).
3.1.8.2 Protection from Voltage Transients Read more! See Section 7 Grounding. The CR1000 must be grounded to minimize the risk of damage by voltage transients associated with power surges and lightning induced transients. Earth grounding is required to form a complete circuit for voltage clamping devices internal to the CR1000.
Page 50
2. PC400 supports a variety of telecommunication options, manual data collection, and data monitoring displays. Short Cut, CRBASIC Editor, and Transformer Utility are included for creating CR1000 programs. PC400 does not support complex communication options, such as phone- to-RF, PakBus® routing, or scheduled data collection.
Section 4. Sensor Support Several features give the CR1000 the flexibility to measure many sensor types. Contact a Campbell Scientific applications engineer if assistance is required to assess sensor compatibility. 4.1 Powering Sensors Read more! See Section 6 Power Supply.
Section 4. Sensor Support 4.1.4 Switched Unregulated (Nominal 12 Volt) Voltage on the SW-12 terminal will change with CR1000 supply voltage. Two CRBASIC instructions, SW12 () and PortSet (), control the SW-12 terminal. Each is handled differently by the CR1000.
NOTE channels will damage CR1000 circuitry. 4.2.1 Electronic “Noise”: VoltDiff() or VoltSE()? Read More! Consult the following Campbell Scientific White Papers for an in-depth treatment of the advantages of differential and single-ended measurements. Find these papers at www.campbellsci.com. “Preventing and Attacking Measurement Noise Problems”...
4.2.2 Measurement Sequence The CR1000 measures analog voltage by integrating the input signal for a fixed duration, then holding the integrated value during the successive approximation analog-to-digital (A/D) conversion. The CR1000 can make and store...
Append with “C” to enable OID/PCM on ranges ≤ +250 mV, PCM on ranges > +250 mV Fixed Voltage Ranges As listed in TABLE 4.2-2, the CR1000 has six fixed input ranges for voltage measurement. An approximately 9% range overhead exists on all input voltage ranges.
NAN (Not-A-Number). If the sensor is good, the signal from the sensor will drive the inputs to the correct value. Briefly connecting the inputs to the internal CR1000 voltages also serves to pull a floating differential voltage into the CR1000 common mode (Section 7.2 Common Mode Range).
A secondary source of offset voltage are return currents incident to powering external devices through the CR1000. Return currents create voltage drop at the ground terminals that may be used as signal references.
4.2.4.2 Ground Reference Offset Voltage (MeasOff = True) When MeasOff is enabled (= True), the CR1000 measures the offset voltage of the ground reference prior to each VoltSe () or TCSe () measurement. This offset voltage is subtracted from the subsequent measurement.
4.2.6.1.1 AC Noise Rejection on Small Analog Signals The CR1000 rejects AC power line noise on all voltage ranges except mV5000 and mV2500 by integrating the measurement over exactly one AC cycle before A/D conversion as illustrated in TABLE 4.2-5 and the full cycle technique of FIGURE 4.2-1.
4.2.6.1.2 AC Noise Rejection on Large Analog Signals When rejecting AC noise on the 2500 mV and 5000 mV ranges, the CR1000 makes two fast measurements separated in time by ½ line cycle, as illustrated in FIGURE 4.2-1. For 60 Hz rejection , ½ line cycle = 8333 μs, meaning that measurement must start 8333 μs after the integration for the first...
The ½ cycle technique with excitation limits the length of recommended excitation / settling time for the first measurement to ½ cycle. The CR1000 does not prevent or warn against setting a settling time beyond the ½ cycle limit. For example, a settling time of up to 50000 microseconds can be programmed, but the CR1000 will execute the measurement as follows: 1.
3 ms (default) >100 μs entered *Minimum settling time required to allow the input to settle to CR1000 resolution specifications. A finite settling time is required for CR1000 voltage measurements for the following reasons: 1. A small switching transient occurs when the CR1000 switches to the single-ended or differential channel to be measured.
Reviewing Section 9 CR1000 Programming may help in understanding the CRBASIC code in the example. EXAMPLE 4.2-1. CRBASIC Code: Measuring Settling Time...
(background), with a segment of the calibration occurring every 4 seconds (s). If there is insufficient time to do the background calibration because of a consuming user program, the CR1000 will display the following warning at compile time: “Warning when Fast Scan x is running background calibration will be disabled”.
Page 67
Section 4. Sensor Support The composite transfer function of the instrumentation amplifier, integrator, and analog-to-digital converter of the CR1000 is described by the following equation: COUNTS = G * Vin + B where COUNTS is the result from an analog-to-digital conversion, G is the voltage gain for a given input range, and B is the internally measured offset voltage.
Section 4. Sensor Support TABLE 4.2-9. Values Generated by the Calibrate () Instruction Array Element Description Typical Value SE offset for ±5000 mV input range with 250 ms integration. ±5 LSB Differential offset for ±5000 mV input range with 250 ms ±5 LSB integration.
Five bridge measurement instructions are included in the CR1000. FIGURE 4.3-1 shows the circuits that are typically measured with these instructions. In the diagrams, resistors labeled R...
Page 70
Section 4. Sensor Support measurements are appropriate. Program Code EXAMPLE 4.3-1 shows CR1000 code for measuring and processing four wire full bridge circuits. All bridge measurements have the option (RevEx) to make one set of measurements with the excitation as programmed and another set of measurements with the excitation polarity reversed.
Section 4. Sensor Support Sensor Schematic Base Equation Formulae BrHalf X = result w/mult = 1, offset = 0 − − BrHalf3W X = result w/mult = 1, offset = 0 − − BrHalf4W X = result w/mult = 1, offset = 0 BrFull X = result w/mult = 1, offset = 0 The following equations apply to...
Section 4. Sensor Support EXAMPLE 4.3-1. CRBASIC Code: 4 Wire Full Bridge Measurement and Processing 'Declare Variables Public X Public X1 Public R1 Public R2 Public R3 Public R4 'Main Program BeginProg R2 = 1000 'Resistance of R2 R3 = 1000 'Resistance of R3 R4 = 1000 'Resistance of R4...
Section 4. Sensor Support TABLE 4.3-1. Strain Equations Code Configuration − ⋅ με Quarter bridge strain gage Half bridge strain gage, one gage parallel to strain, the other at 90° to strain: − ⋅ με ν − ν − ε Half bridge strain gage, one gage parallel to , the other −...
A reference junction compensation voltage is next computed based on the temperature difference between the reference junction and 0 °C. If the reference junction is the CR1000 analog input terminals, the temperature is conveniently measured with the PanelTemp () instruction.
It insulates the terminals from drafts and rapid fluctuations in temperature as well as conducting heat to reduce temperature gradients. In a typical installation where the CR1000 is in a weather proof enclosure not subject to violent swings in temperature or uneven solar radiation loading, the temperature difference between the terminals and the thermistor is likely to be less than 0.2°C.
Section 4. Sensor Support With an external driving gradient, the temperature gradients on the input panel can be much worse. For example, the CR1000 was placed in a controlled temperature chamber. Thermocouples in channels at the ends and middle of each analog terminal strip measured the temperature of an insulated aluminum bar outside the chamber.
(ANSI MC 96.1, 1975). TABLE 4.4-1 gives the ANSI limits of error for standard and special grade thermocouple wire of the types accommodated by the CR1000. TABLE 4.4-1. Limits of Error for Thermocouple Wire (Reference Junction at 0°C)
4.4.1.3 Accuracy of Thermocouple Voltage Measurement The -25 to 50°C accuracy of a CR1000 differential voltage measurement, without input reversal, is specified as ± (0.12% of the measured voltage plus an offset error of 3 times the basic resolution of the range being used to make the measurement plus 2 μV).
NIST Monograph 175 gives high order polynomials for computing the output voltage of a given thermocouple type over a broad range of temperatures. In order to speed processing and accommodate the CR1000's math and storage capabilities, four separate 6th order polynomials are used to convert from volts to temperature over the range covered by each thermocouple type.
The reference junction temperature measurement can come from a PanelTemp () instruction, or from any other temperature measurement of the reference junction. The standard and extended (-XT) operating ranges for the CR1000 are -25 to +50 °C and –55 to 85 °C, respectively. These ranges also apply to the reference junction temperature measurement using PanelTemp ().
One situation in which thermocouple extension wire is advantageous is when the junction box temperature is outside the range of reference junction compensation provided by the CR1000. This is only a factor when using type K thermocouples, since the upper limit of the reference compensation...
FIGURE 4.4-4 illustrates a typical junction box wherein the reference junction is the CR1000. Terminal strips will be a different metal than the thermocouple wire. Thus, if a temperature gradient exists between A and A' or B and B', the junction box will act as another thermocouple in series, creating an error in the voltage measured by the CR1000.
Section 4. Sensor Support Pulse Channel Sensor Ground FIGURE 4.5-1. Schematic of a Pulse Sensor on a CR1000 NOTE The PulseCount () instruction cannot be used in a Slow Sequence scan. Execution of PulseCount () within a scan involves determining the accumulated counts in each dedicated 24-bit counter since execution of the last PulseCount ().
±20 V. If pulse inputs of higher than ±20 V need to be measured, third party external signal conditioners should be employed. Contact a Campbell Scientific applications engineer if assistance is needed. Under no circumstances should voltages greater than ±50 V be measured.
Section 4. Sensor Support When a pulse channel is configured for high-frequency pulse, an internal 100 kΩ pull-up resistor to +5 Volt on the P1 or P2 input is employed. This pull-up resistor accommodates open-collector (open-drain) output devices for high- frequency input.
±50 V be measured. 4.6 Period Averaging Measurements The CR1000 can measure the period of a signal on any single-ended analog input channel (SE 1 -16). The specified number of cycles are timed with a resolution of 92 ns, making the resolution of the period measurement 92 ns divided by the number of cycles chosen.
Many smart sensors output digital data through RS-232 or TTL protocols. The CR1000 is equipped to read the output of most RS-232 sensors on the 9-pin RS-232 port and the CS I/O port with a SC105 interface. For TTL logic, four communications ports can be configured from digital I/O ports, i.e., C1 &...
Adjusting a sensor output directly is preferred, but not always possible or practical. By adding FieldCal () or FieldCalStrain () instructions to the CR1000 program, a user can easily adjust the measured output of a linear sensors by modifying multipliers and offsets.
Some peripherals are designed as SDM (Synchronous Devices for Measurement) devices. SDM devices are intelligent peripherals that receive instruction from and send data to the CR1000 over a proprietary 3-wire serial communications link utilizing channels C1, C2, and C3.
Reset is accomplished by removing the load or turning off the SW-12 for several seconds. 5.4.1.3 Relays and Relay Drivers Several relay drivers are manufactured by Campbell Scientific. Contact a Campbell Scientific applications engineer for more information, or get more information at www.campbellsci.com.
FIGURE 5.4-2. Power Switching without Relay 5.5 Analog Control / Output Devices The CR1000 can scale measured or processed values and transfer these values in digital form to a CSI analog output device. The analog output device then performs a digital-to-analog conversion and outputs an analog voltage or current signal.
Section 5. Measurement and Control Peripherals 5.6.2 Vibrating Wire Vibrating wire modules interface vibrating wire transducers to the CR1000. 5.6.3 Low-level AC Low-level AC input modules increase the number of low-level AC signals a CR1000 can monitor by converting low-level AC to high-frequency pulse.
System operating time for batteries can be determined by dividing the battery capacity (ampere-hours) by the average system current drain (amperes). The CR1000 typically draws 0.5 mA in the sleep state (with display off), 0.6 mA with a 1 Hz sample rate, and >10 mA with a 100 Hz sample rate.
6.5 Vehicle Power Connections If a CR1000 is powered by a motor vehicle supply, a second supply may be needed. When starting the motor of the vehicle, the battery voltage may drop below 9.6 V. This causes the CR1000 to stop measurements until the voltage again equals or exceeds 9.6 V.
Section 7. Grounding Grounding the CR1000 and its peripheral devices and sensors is critical in all applications. Proper grounding will ensure the maximum ESD (electrostatic discharge) protection and higher measurement accuracy. 7.1 ESD Protection ESD (electrostatic discharge) can originate from several sources, the most common, and most destructive, being primary and secondary lightning strikes.
Ground Lug FIGURE 7.1-1. Schematic of CR1000 Grounds The 9-pin serial I/O ports on the CR1000 are another path for transients. Communications paths such a telephone or short-haul modem lines should have spark gap protection. Spark gap protection is often an option with these products, so it should always be requested when ordering.
While elaborate, expensive and nearly infallible lightning protection systems are available, Campbell Scientific has for many years employed a simple and inexpensive design that protects most systems in most circumstances. It is, however, not infallible.
CR1000 to use a voltage range “C” option to pull the sensor into common mode range or to have the one side of the differential input (usually the low input) connected to ground to ensure the signal remains within the common mode range.
Problems with exceeding common mode range can be encountered when the CR1000 is used to read the output of external signal conditioning circuitry if a good ground connection does not exist between the external circuitry and the CR1000.
1 mV greater at the sensor than at the point where the CR1000 is grounded, the measured voltage will be 1 mV greater than the thermocouple output, or approximately 25°C high.
Page 101
The ground electrode of the conductivity or soil moisture probe and the CR1000 earth ground form a galvanic cell, with the water/soil solution acting as the electrolyte. If current was allowed to flow, the resulting oxidation or reduction would soon damage the electrode, just as if DC excitation was used to make the measurement.
8.1 DevConfig DevConfig (Device Configuration Utility) is the preferred tool for configuring the CR1000. It is made available as part of LoggerNet, PC400, and at www.campbellsci.com. Most settings can also be entered through the CR1000KD (Section 17.6 Settings).
8.2 Sending the Operating System 8.2.1 Sending OS with DevConfig The CR1000 is shipped with the operating system pre-loaded. However, OS updates are made available at www.campbellsci.com and can be sent to the CR1000. FIGURE 8.2-1 and FIGURE 8.2-2 show DevConfig windows displayed during the OS download process.
When the Start button is clicked, DevConfig offers a file open dialog box that prompts for the operating system file (*.obj file). When the CR1000 is then powered-up, DevConfig starts to send the operating system. When the operating system has been sent, a message dialog will appear similar to the one shown in FIGURE 8.2-2.
Refer to Section 12.6 File Control. 8.3 Settings 8.3.1 Settings via DevConfig The CR1000 has a number of properties, referred to as “settings”, some of which are specific to the PakBus communications protocol. Read more! PakBus is discussed in Section 14 PakBus Overview and the PakBus Networking Guide available at www.campbellsci.com.
Section 8. CR1000 Configuration FIGURE 8.3-1. DevConfig Settings Editor As shown in FIGURE 8.3-1, the top of the Settings Editor is a grid that allows the user to view and edit the settings for the device. The grid is divided into two columns with the setting name appearing in the left hand column and the setting value appearing in the right hand column.
Section 8. CR1000 Configuration FIGURE 8.3-2. Summary of CR1000 Configuration Clicking the Factory Defaults button on the Settings Editor will send a command to the device to revert to its factory default settings. The reverted values will not take effect until the final changes have been applied. This button will remain disabled if the device does not support the DevConfig protocol messages.
Setting Editor tab and the Status table. 8.3.1.1.1 Datalogger Sub-Tab Serial Number displays the CR1000 serial number. This setting is set at the factory and cannot be edited. OS Version displays the operating system version that is in the CR1000. The default station name is the CR1000 serial number.
Section 8. CR1000 Configuration 8.3.1.1.2 Ports Settings Sub-Tab As shown in FIGURE 8.3-4, the port settings tab has the following settings. FIGURE 8.3-4. DevConfig Deployment | Ports Settings Tab Read more! PakBus Networking Guide available at www.campbellsci.com. Selected Port specifies the datalogger serial port to which the beacon interval and hello setting values will be applied.
PakBus Nodes Allocation indicates the maximum number of PakBus devices the CR1000 will communicate with if it is set up as a router. This setting is used to allocate memory in the CR1000 to be used for its routing table.
Section 8. CR1000 Configuration 8.3.1.2 Logger Control Tab FIGURE 8.3-6. DevConfig Logger Control Tab The clock in the PC and the datalogger will be checked every second and the difference displayed. The System Clock Setting allows entering what offset, if any, to use with respect to standard time (Local Daylight Time or UTC, Greenwich mean time).
CR1000 communications. 8.3.3 Settings via Terminal Emulator CR1000 Terminal Mode is designed to aid Campbell Scientific engineers in operating system development. It has some features useful to users. However, it is frequently modified and cannot be relied upon to have the same features or formats from version to version of the OS.
Include file to the CR1000 using the File Contol feature, then entering the path and name of the file in the Include file setting in the CR1000 using DevConfig or PakBusGraph. There is no restriction on the length of the Include file.
'Cell phone + to be wired to SW-12 terminal, - to G. SlowSequence Scan (1,Sec,0,0) If TimeIntoInterval (9,24,Hr) Then SW12 (1) ‘Modem on at 9:00 AM If TimeIntoInterval (17,24,Hr) Then SW12 (0) ‘Modem off at 5:00 PM NextScan FIGURE 8.3-8. CR1000 “Include File” settings via DevConfig. 8-13...
NextScan EndProg 8.3.4.3 Priorities 1) When the CR1000 powers up, the program file (.CR1) marked as “Run On Power-up” or “Run Always” or “Run Now” (order of priority) becomes the current program. 2) If there is a file specified in the Include File Name setting, it will be compiled at the end of the program selected in 1).
Page 117
4) If the program listed in the Include File Name setting cannot be run or if no program is specified, the CR1000 will attempt to run the program named default.cr1 on its CPU: drive. 5) If there is no default.cr1 file or it cannot be compiled, the CR1000 will not currently run any program. 8-15...
'Declare the start time array 9.2 Uploading CR1000 Programs The CR1000 requires a program be sent to its memory to direct measurement, processing, and data storage operations. Programs are sent with PC200W, PC400, or LoggerNet support software. Programs can also be sent from a CF card.
All-purpose Symbolic Instruction Code) computer language, CRBASIC (Campbell Recorder BASIC). CRBASIC Editor is a text editor that facilitates creation and modification of the ASCII text file that constitutes the CR1000 application program. CRBASIC Editor is available as part of PC400, RTDAQ, or LoggerNet datalogger support software packages.
Section 9. CR1000 Programming TABLE 9.4-1. Formats for Entering Numbers in CRBASIC Format Example Base 10 Equivalent Value Standard 6.832 6.832 Scientific notation 5.67E-8 5.67X10 Binary &B1101 Hexadecimal &HFF Binary format is useful when loading the status (1 = high, 0 = low) of multiple flags or ports into a single variable, e.g., storing the binary number...
Define Aliases Assign aliases to variables. Define Units Assign engineering units to variable (optional). Units are strictly for documentation. The CR1000 makes no use of Units nor checks Unit accuracy. Define data tables. Define stored data tables Process/store trigger Set triggers when data should be stored.
Section 9. CR1000 Programming 9.6 Declarations Constants (and pre-defined constants), Public variables, Dim variables, Aliases, Units, Data Tables, Subroutines are declared at the beginning of a CRBASIC program. 9.6.1 Variables A variable is a packet of memory, given an alphanumeric name, through which pass measurements and processing results during program execution.
When using variables in place of integers as the dimension indicies, e.g. EXAMPLE 9.6-2, declaring the indicies as Long variables is recommended as doing so allows for much more efficient use of CR1000 resources. EXAMPLE 9.6-2. Using Variable Array Dimension Indicies...
Section 9. CR1000 Programming EXAMPLE 9.6-3. CRBASIC Code: Data Type Declarations 'Float Variable Examples Public Z Public X As Float Public CR1000Time As Long 'Long Variable Example Public PosCounter As Long Public PosNegCounter As Long 'Boolean Variable Examples Public Switches(8) As Boolean...
Variables 9.6.1.4 Data Type Operational Detail Default CR1000 data type for stored data. While IEEE 4 byte floating point is used for variables and internal calculations, FP2 is adequate for most stored data. FP2 provides 3 or 4 significant digits of resolution, and requires half the memory as IEEE 4.
Disadvantages: Uses twice the storage space of FP2. See Section 9.13.1 for limitations in using IEEE4 in arithmetic. LONG Advantages: Speed -- the CR1000 can do math on integers faster than with floats. Resolution-- LONG has 31 bits compared to 24-bits in IEEE4.
Read more! NSEC data type is discussed in depth, with examples, in Section 11.12. String ASCII String; size defined by the CR1000 CRBASIC program. The minimum string datum size (regardless of word length), and the default if size is not specified, is 16 bytes or characters. A string conveniently handles alphanumeric variables associated with serial sensors, dial strings, text messages, etc.
Section 9. CR1000 Programming 9.6.2.1 Predefined Constants Several words are reserved for use by CRBASIC. These words cannot be used as variable or table names in a program. Predefined constants include some instruction names, as well as valid alphanumeric names for instruction parameters.
The trigger that initiates data storage is tripped either by the CR1000’s clock, or by an event, such as a high temperature. Up to 30 data tables can be created by the program. The data tables may store individual measurements, individual calculated values, or summary data such as averages, maxima, or minima to data tables.
This information is referred to as “table definitions.” TABLE 9.7-1 shows a data file as it appears after the associated data table has been downloaded from a CR1000 programmed with the code in EXAMPLE 9.7-1. “TIMESTAMP”, “RECORD”, “Batt_Volt_Avg”, “PTemp_C_Avg”, “TempC_Avg(1)”, and “TempC_Avg(2)” are default fieldnames.
RAM, up to an automatically allocated memory limit. 9.7.1.2 DataInterval () Instruction DataInterval () programs the CR1000 to both write data records at the specified interval and to recognize when a record has been skipped. Sometimes, program logic prevents a record from being written. If a record is not written, the CR1000 recognizes the omission as a “lapse”...
9.7.1.3 OpenInterval () Instruction By default, the CR1000 uses closed intervals. Data output to a data table based on DataInterval () include measurements only from the current interval. Intermediate memory that contains measurements is cleared at the top of the next interval regardless of whether a record was written to the data table.
Section 9. CR1000 Programming • DisableVar – controls whether or not a measurement or value is included in an output processing function. A measurement or value will not be included if the disable variable is true (≠ 0). For example, in the case of an...
A particular subroutine can be called by multiple program NOTE sequences simultaneously. To preserve measurement and processing integrity, the CR1000 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.
The measurement / control task is a rigidly timed sequence that measures sensors and outputs control signals for other devices. The SDM task manages measurement and control of SDM devices (Campbell Scientific’s Synchronous Devices for Measurement). The processing task converts analog and digital measurements to numbers represented by engineering units, performs calculations, stores data, makes decisions to actuate controls, and performs serial I/O communication.
• Calibrate instructions The CR1000 executes these tasks in either pipeline or sequential mode. When a program is compiled, the CR1000 evaluates the program and determines which mode to use. Mode information is included in a message returned by the datalogger, which is displayed by the support software.
Section 9. CR1000 Programming All tasks are given the same general priority. However, when a conflict arises between tasks, program execution adheres to the priority schedule in TABLE 9.11-2. TABLE 9.11-2. Pipeline Mode Task Priorities 1) Measurements in main program...
9.12.1 Measurement and Data Storage Processing CRBASIC instructions have been created for making measurements and storing data. Measurement instructions set up CR1000 hardware to make measurements and store results in variables. Data storage instructions process measurements into averages, maxima, minima, standard deviation, FFT, etc.
Section 9. CR1000 Programming TABLE 9.12-1. Rules for Names Maximum Length Name for (number of characters) Allowed characters Variable or Array Letters A-Z, upper or lower. Constant case, underscore “_”, and Alias numbers 0-9. The name must Data Table Name start with a letter.
Several sources discuss floating point arithmetic thoroughly. One readily available source is the topic “Floating Point” at Wikipedia.org. In summary, CR1000 programmers should consider at least the following: •...
Section 9. CR1000 Programming 9.13.3 Expressions with Numeric Data Types FLOATs, LONGs and Booleans are cross-converted to other data types, such as FP2, by using “=” 9.13.3.1 Boolean from FLOAT or LONG When a FLOAT or LONG is converted to a Boolean as shown in EXAMPLE 9.13-2, zero becomes False (0) and non-zero becomes True (-1).
Several words are commonly interchanged with True / False such as High / Low, On / Off, Yes / No, Set / Reset, Trigger / Do Not Trigger. The CR1000 understands only True / False or -1 / 0, however. The CR1000 represents “true”...
FALSE (0), indicating the condition has not yet occurred or is over. The CR1000 is able to translate the conditions listed in TABLE 9.13-1 to binary form (-1 or 0), using the listed instructions and saving the binary form in the memory location indicated.
Sets the variable Y to 0 if the expression “X >= 5” is true, i.e. if X is greater than or equal to 5. The CR1000 evaluates the expression (X >= 5) and registers in system memory a -1 if the expression is true, or a 0 if the expression is false.
Section 9. CR1000 Programming 9.13.5 String Expressions CRBASIC allows the addition or concatenation of string variables to variables of all types using & and + operators. To ensure consistent results, use “&” when concatenating strings. Use “+” when concatenating strings to other variable types.
Section 9. CR1000 Programming Where: TableName = name of the data table FieldName = name of the variable from which the processed value is derived Prc = Abbreviation of the name of the data process used. See TABLE 9.14-1 for a complete list of these abbreviations – not needed for values from Status or Public tables.
Page 151
Section 9. CR1000 Programming Seven special variable names are used to access information about a table: EventCount EventEnd Output Record TableFull TableSize TimeStamp Consult CRBASIC Editor Help Index topic “DataTable access” for complete information. 9-33...
PC400, LoggerNet, and RTDAQ. Select instructions are explained more fully, some with example code, in Section 11 Programming Resource Library. Example code is throughout the CR1000 manual. Refer to the table of contents Example index. 10.1 Program Declarations Alias Assigns a second name to a variable.
Page 154
SequentialMode Configures datalogger to perform tasks sequentially. Syntax SequentialMode Station Name Sets the station name internal to the CR1000. Does not affect data files produced by support software. Syntax StationName (name of station) Sub, Exit Sub, End Sub Declares the name, variables, and code that form a Subroutine. Argument list is optional.
Section 10. CRBASIC Programming Instructions WebPageBegin / WebPageEnd See Section 11.2 Information Services. 10.2 Data Table Declarations DataTable … EndTable Mark the beginning and end of a data table. Syntax DataTable (Name, TrigVar, Size) [data table modifiers] [on-line storage destinations] [output processing instructions] EndTable 10.2.1 Data Table Modifiers...
Section 10. CRBASIC Programming Instructions TableFile Writes a file from a data table to the datalogger CPU, user drive, or a compact flash card. Syntax TableFile ("FileName", Options, MaxFiles, NumRecs / TimeIntoInterval, Interval, Units, OutStat, LastFileName) 10.2.3 Data Storage Output Processing FieldNames Immediately follows an output processing instruction to change default field names.
Section 10. CRBASIC Programming Instructions PeakValley Detects maxima and minima in a signal. Syntax PeakValley (DestPV, DestChange, Reps, Source, Hysteresis) Sample Stores the current value at the time of output. Syntax Sample (Reps, Source, DataType) SampleFieldCal Writes field calibration data to a table. See Section 6.19 Calibration Functions.
Section 10. CRBASIC Programming Instructions 10.2.4 Histograms Histogram Processes input data as either a standard histogram (frequency distribution) or a weighted value histogram. Syntax Histogram (BinSelect, DataType, DisableVar, Bins, Form, WtVal, LoLim, UpLim) Histogram4D Processes input data as either a standard histogram (frequency distribution) or a weighted value histogram of up to 4 dimensions.
Section 10. CRBASIC Programming Instructions 10.4 Program Control Instructions 10.4.1 Common Controls BeginProg … EndProg Mark the beginning and end of a program. Syntax BeginProg Program Code EndProg Call Transfers program control from the main program to a subroutine. Syntax Call subname (list of variables) CallTable Calls a data table, typically for output processing.
Page 160
Next [counter [, counter][, ...]] If ... Then ... Else … ElseIf ... EndIf NOTE EndSelect and EndIf call the same CR1000 function Allows conditional execution, based on the evaluation of an expression. Else is optional. ElseIf is optional. Syntax...
Section 10. CRBASIC Programming Instructions Slow Sequence Marks the beginning of a section of code that will run concurrently with the main program. Syntax SlowSequence SubScan … NextSubScan Controls a multiplexer or measures some analog inputs at a faster rate than the program scan.
Section 10. CRBASIC Programming Instructions DataLong … Read … Restore Defines a list of Long constants to be read (using Read) into a variable array later in the program. Syntax DataLong [list of constants] Read [VarExpr] Restore Read Reads constants from the list defined by Data or DataLong into a variable array.
Section 10. CRBASIC Programming Instructions RealTime Derives the year, month, day, hour, minute, second, microsecond, day of week, and day of year from the datalogger clock and stores the results in an array. Syntax RealTime (Dest) Signature Returns the signature for program code in a datalogger program. Syntax variable = Signature 10.5.2 Voltage...
Section 10. CRBASIC Programming Instructions 10.5.7 Digital I/O Read more! See Section 11.11 Programming for Control. CheckPort Returns the status of a control port. Syntax CheckPort (Port) PeriodAvg Measures the period of a signal on any single-ended voltage input channel. Syntax PeriodAvg (Dest, Reps, Range, SEChan, Threshold, PAOption, Cycles, Timeout, Mult, Offset)
VibratingWire (Dest, Reps, Range, SEChan, Vx/ExChan, StartFreq, EndFreq, TSweep, Steps, DelMeas, NumCycles, DelReps, Multiplier, Offset) WriteIO WriteIO is used to set the status of selected control I/O channels (ports) on the CR1000. Syntax WriteIO (Mask, Source) 10.5.8 SDI-12 Read more! See Section 11.3 SDI-12 Support.
Page 168
Controls and transmits / receives data from an SDM-SIO4 Interface. Syntax SDMSIO4 (Dest, Reps, SDMAddress, Mode, Command, Param1, Param2, ValuesPerRep, Multiplier, Offset) SDMSpeed Changes the rate the CR1000 uses to clock SDM data. Syntax SDMSpeed (BitPeriod) SDMSW8A Controls and reads an SDM-SW8A.
Section 10. CRBASIC Programming Instructions < Less Than >= Greater Than or Equal <= Less Than or Equal Bit Shift Operators Bit shift operators (<< and >>) allow the program to manipulate the positions of patterns of bits within an integer (CRBASIC Long type). Here are some example expressions and the expected results: &B00000001 <<...
Section 10. CRBASIC Programming Instructions >> Bit shift right Syntax Variable = Numeric Expression >> Amount 10.6.2 Logical Operators Used to perform a logical conjunction on two expressions. Syntax result = expr1 AND expr2 Performs a logical negation on an expression. Syntax result = NOT expression Used to perform a logical disjunction on two expressions.
Section 10. CRBASIC Programming Instructions Returns the cosine of an angle specified in radians. Syntax x = COS(source) COSH Returns the hyperbolic cosine of an expression or value. Syntax x = COSH(source) Returns the sine of an angle. Syntax x = SIN(source) SINH Returns the hyperbolic sine of an expression or value.
Page 174
Section 10. CRBASIC Programming Instructions FRAC Returns the fractional part of a number. Syntax x = FRAC(source) INT or FIX Return the integer portion of a number. Syntax x = INT(source) x = Fix(source) INTDV Performs an integer division of two numbers. Syntax X INTDV Y LN or LOG...
Section 10. CRBASIC Programming Instructions Finds the sign value of a number. Syntax x = SGN(source) Returns the square root of a number. Syntax x = SQR(number) 10.6.5 Integrated Processing DewPoint Calculates dew point temperature from dry bulb and relative humidity. Syntax DewPoint (Dest, Temp, RH) Calculates temperature from the resistance of an RTD.
Section 10. CRBASIC Programming Instructions FFTSpa Performs a Fast Fourier Transform on a time series of measurements. Syntax FFTSpa (Dest, N, Source, Tau, Units, Option) MaxSpa Finds the maximum value in an array. Syntax MaxSpa (Dest, Swath, Source) MinSpa Finds the minimum value in an array. Syntax MinSpa (Dest, Swath, Source) RMSSpa...
Section 10. CRBASIC Programming Instructions 10.7 String Functions & Concatenates string variables Concatenates string and numeric variables Compares two strings, returns zero if identical 10.7.1 String Operations String Constants Constant strings can be used in expressions using quotation marks, i.e. FirstName = “Mike”...
Page 178
Section 10. CRBASIC Programming Instructions Returns a hexadecimal string representation of an expression. Syntax Variable = HEX (Expression) HexToDec Converts a hexadecimal string to a float or integer. Syntax Variable = HexToDec (Expression) InStr Find the location of a string within a string. Syntax Variable = InStr (Start, SearchString, FilterString, SearchOption) LTrim...
Syntax String = UpperCase (SourceString) 10.8 Clock Functions Within the CR1000, time is stored as integer seconds and nanoseconds into the second since midnight, January 1, 1990. ClockReport Sends the datalogger clock value to a remote datalogger in the PakBus network.
Timer Returns the value of a timer. Syntax variable = Timer (TimNo, Units, TimOpt) 10.9 Voice Modem Instructions Refer to the Campbell Scientific voice modem manuals for complete information. DialVoice Defines the dialing string for a COM310 voice modem. Syntax...
Page 181
Section 10. CRBASIC Programming Instructions VoiceBeg, EndVoice Mark the beginning and ending of voice code executed when the datalogger detects a ring from a voice modem. Syntax VoiceBeg voice code to be executed EndVoice VoiceHangup Hangs up the voice modem. Syntax VoiceHangup VoiceKey...
Section 10. CRBASIC Programming Instructions 10.11 Serial Input / Output Read more! See Section 11.8 Serial Input. MoveBytes Moves binary bytes of data into a different memory location when translating big endian to little endian data. Syntax MoveBytes (Destination, DestOffset, Source, SourceOffset, NumBytes) SerialClose Closes a communications port that was previously opened by SerialOpen.
SerialOutBlock (ComPort, Expression, NumberBytes) 10.12 Peer-to-Peer PakBus Communications Read more! See Section 12 PakBus Overview for more information. Also see Campbell Scientific PakBus Networking Guide available at www.campbellsci.com. Peer-to-peer PakBus instructions enable the datalogger to communicate with other PakBus devices. Instructions specify a COM port and a PakBus address.
DialSuccess = DialModem (ComPort, DialString, ResponseString) EndDialSequence (DialSuccess) GetDataRecord Retrieves the most recent record from a data table in a remote PakBus datalogger and stores the record in the CR1000. Syntax GetDataRecord (ResultCode, ComPort, NeighborAddr, PakBusAddr, Security, Timeout, Tries, TableNo, DestTableName)
Page 186
Section 10. CRBASIC Programming Instructions GetFile Gets a file from another PakBus datalogger. Syntax GetFile (ResultCode, ComPort, NeighborAddr, PakBusAddr, Security, TimeOut, "LocalFile", "RemoteFile") GetVariables Retrieves values from a variable or variable array in a data table of a PakBus datalogger. Syntax GetVariables (ResultCode, ComPort, NeighborAddr, PakBusAddr, Security, TimeOut, "TableName", "FieldName", Variable, Swath)
Syntax Move (Dest, DestReps, Source, SourceReps) 10.14 File Management Commands to access and manage files stored in CR1000 memory. CalFile Stores variable data, such as sensor calibration data, from a program into a non-volatile CR1000 memory file (CRD, CPU:drive, or USR: drive). CalFile pre-dates and is not used with the FieldCal function.
Page 188
Syntax FileReadLine (FileHandle, Destination, Length) FileRename Changes the name of file on the CR1000’s CPU:, USR:, or CRD: drives. Syntax FileRename (drive:OldFileName, drive:NewFileName) FileSize Returns the size of the file in the previously opened file referenced by the FileHandle parameter.
Section 10. CRBASIC Programming Instructions Include Inserts code from a file (Filename) at the position of the Include () instruction at compile time. Include cannot be nested. Syntax Include ("Device:Filename") NewFile Determines if a file stored on the datalogger has been updated since the instruction was last run.
Section 10. CRBASIC Programming Instructions TableName.Record Determines the record number of a specific DataTable record. Syntax TableName.Record (1,n) TableName.TableSize Returns the number of records allocated for a data table Syntax TableName.TableSize (1,1) TableName.TableFull Indicates whether a fill and stop table is full or whether a ring-mode table has begun overwriting its oldest data.
Page 191
Section 10. CRBASIC Programming Instructions FTPClient Sends or retrieves a file via FTP. Syntax Variable = FTPClient ("IPAddress", "User", "Password", "LocalFileName", "RemoteFileName", PutGetOption) HTTPOut Defines a line of HTML code to be used in a datalogger generated HTML file. Syntax WebPageBegin ("WebPageName", WebPageCmd) HTTPOut ("<p>html string to output "...
Section 10. CRBASIC Programming Instructions UDPDataGram Sends packets of information via the UDP communications protocol. Syntax UDPDataGram(IPAddr, UDPPort, SendVariable, SendLength, RcvVariable, Timeout) WebPageBegin … WebPageEnd Declare a web page that will be displayed when a request for the defined HTML page comes from an external source. Syntax WebPageBegin ("WebPageName", WebPageCmd) HTTPOut ("<p>html string to output "...
Sets up a datalogger as a ModBus slave device. Syntax ModBusSlave (ComPort, BaudRate, ModBusAddr, DataVariable, BooleanVariable) Sets up a CR1000 as a DNP slave (outstation/server) device. Syntax DNP (ComPort, BaudRate, Addr) DNPUpdate Determines when the DNP slave will update arrays of DNP elements.
Section 10. CRBASIC Programming Instructions FieldCalStrain Sets up the datalogger to perform a zero or shunt calibration for a strain measurement. Syntax FieldCalStrain (Function, MeasureVar, Reps, GFAdj, ZeromV/V, Mode, KnownRS, Index, Avg, GFRaw, uStrainDest) 10.20 Satellite Systems Programming Instructions for GOES, ARGOS, INMARSAT-C, OMNISAT. Refer to satellite transmitter manuals available at www.campbellsci.com.
Section 10. CRBASIC Programming Instructions GOESSetup Programs the GOES transmitter for communication with the satellite. Syntax GOESSetup (ResultCode, PlatformID, MsgWindow, STChannel, STBaud, RChannel, RBaud, STInterval, STOffset, RInterval) GOESStatus Requests status and diagnostic information from a CSI GOES satellite transmitter. Syntax GOESStatus (Dest, StatusCommand) 10.20.3 OMNISAT OmniSatSTSetup...
Page 196
Section 10. CRBASIC Programming Instructions INSATStatus Queries the transmitter for status information. Syntax INSATStatus (ResultCode) This is a blank page. 10-44...
Adjusting a sensor output directly is preferred, but not always possible or practical. By adding FieldCal () or FieldCalStrain () instructions to the CR1000 program, a user can easily adjust the measured output of linear sensors by modifying multipliers and offsets.
(not to the CAL file). and a reserved Boolean variable: NewFieldCal -- a reserved Boolean variable under CR1000 control used to optionally trigger a data storage output table after a calibration has succeeded.
FieldCal () features at the test bench without actual sensors. Sensor signals are simulated by a CR1000 excitation channel. To reset tests, go to LoggerNet | Connect | Tools | File Control and delete .cal files, then send the demonstration program again to the CR1000.
-50 % -52.5 % Reading Send the program in EXAMPLE 11.1-1 to the CR1000. To simulate the RH sensor, place a jumper wire between channels VX1 (VX1 (EX1)) and SE8 (4L). Using the CR1000KD keyboard or software numeric monitor, change the value in variable CalibMode to 1 to start calibration.
Reading 30 mg/l 30 mg/l Send the program in EXAMPLE 11.1-2 to the CR1000. Put a jumper wire between channels Vx/VX1 (EX1) and SE8 (4L). Using the CR1000KD keyboard or software numeric monitor, change the value in variable CalibMode to 1 to start calibration. When CalibMode increments to 6, the calibration is complete.
Section 11. Programming Resource Library EXAMPLE 11.1-2. FieldCal offset demonstration program. 'Jumper VX1 (EX1) to SE8(4L) to simulate a sensor Public mV 'Excitation mV Output Public KnownSalt 'Known Salt Concentration Public CalMode 'Calibration Trigger Public Multiplier 'Multiplier (Starts at .05 mg / liter / mV, does not change) Public Offset 'Offset (Starts at zero, not changed) Public SaltContent...
Page 203
Offset 53.90 l 53.92 l Send the program in EXAMPLE 11.1-3 to the CR1000. Put a jumper wire between channels Vx/VX1 (EX1) and SE8 (4L). Using the CR1000KD keyboard or software numeric monitor, change variables as indicated below: mV = 300...
Section 11. Programming Resource Library EXAMPLE 11.1-3. FieldCal multiplier and offset demonstration program. 'Jumper Vx/VX1 (EX1) to SE8(4L) to simulate a sensor Public mV 'Excitation mV Output Public KnownFlow 'Known Water Flow Public CalMode 'Calibration Trigger Public Multiplier 'Sensitivity Public Offset 'Offset (Starts at zero, not changed) Public WaterFlow 'Water Flow...
Section 11. Programming Resource Library Send the program in EXAMPLE 11.1-4. Start the first step of the simulated calibration by entering: mV = 175 mV KnownWC = 10 CalibMode = 1 The first step is complete when CalibMode increments to 3. Calibration continues when starting the second step by entering: mV = 700 KnownWC = 35...
This section is not intended to be a primer on shunt calibration theory, but only to introduce use of the technique with the CR1000 datalogger. Campbell Scientific strongly urges users to study shunt calibration theory from other sources.
Zeroing is normally done after the shunt cal. Zero and shunt options can be combined through a single CR1000 program. The following program is provided to demonstrate use of FieldCalStrain () features. If a strain gage configured as shown in FIGURE 11.1-1 is not available, strain signals can be simulated by building the simple circuit shown in FIGURE 11.1-1, substituting a 1000 Ω...
Section 11. Programming Resource Library EXAMPLE 11.1-5. FieldCalStrain () calibration demonstration. 'Program to measure quarter bridge strain gage 'Measurements Public Raw_mVperV Public MicroStrain 'Variables that are arguments in the Zero Function Public Zero_Mode Public Zero_mVperV 'Variables that are arguments in the Shunt Function Public Shunt_Mode Public KnownRes Public GF_Adj...
Section 11. Programming Resource Library 11.1.6.1 Quarter bridge Shunt (Option 13) With EXAMPLE 11.1-5 sent to CR1000, and with strain gage stable, use the CR1000KD keyboard or software numeric monitor to change the value in variable KnownRes to the nominal resistance of the gage, 1000 Ω. Set Shunt_Mode to 1 to start the two-point shunt calibration.
CSI manuals for those modems for sale through Campbell Scientific. When used in conjunction with an NL115 network link interface, or a cell modem with the PPP/IP key enabled, the CR1000 has TCP/IP functionality. This provides the following capabilities: •...
NL115 manual. 11.2.2 HTTP Web Server The CR1000 has a default home page built into the operating system. As shown in FIGURE 11.2-1, this page provides links to the newest record in all tables, including the status table, public table, and data tables. Links are also provided for the last 24 records in each data table.
CRD: drive with File Control. Deleting default.html from the datalogger will cause the CR1000 to use its original default home page. The CR1000 can be programmed to generate HTML or XML code that can be viewed by the web browser. EXAMPLE 11.2-1 shows how to use the CRBASIC keywords WebPageBegin/WebPageEnd and HTTPOut to create HTML code.
Section 11. Programming Resource Library HTTPOut ("<p><a href="+ CHR(34) + "command=TableDisplay&table=CR1Temp&records=10"+ CHR(34)+">Display Last 10 Records from DataTable CR1Temp</a></p>") HTTPOut ("<p><a href="+ CHR(34) + "command=NewestRecord&table=CR1Temp"+ CHR(34) + ">Current Record from CR1Temp Table</a></p>") HTTPOut ("<p><a href="+ CHR(34) + "command=NewestRecord&table=Public"+ CHR(34)+">Current Record from Public Table</a></p>") HTTPOut ("<p><a href="+ CHR(34) + "command=NewestRecord&table=Status"+ CHR(34)+">Current Record from Status Table</a></p>")
PC. Files can also be deleted through FTP. 11.2.4 FTP Client The CR1000 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.
11.2.7 Ping Ping can be used to verify that the IP address for the network device connected to the CR1000 is reachable. To use the Ping tool, open a command prompt on a computer connected to the network and type in: ping xxx.xxx.xxx.xxx <Enter>...
Section 11. Programming Resource Library 11.2.11 DNS The CR1000 provides a Domain Name Server (DNS) client that can query a DNS server to determine if an IP address has been mapped to a hostname. If it has, then the hostname can be used interchangeably with the IP address in some datalogger instructions.
All commands use an exclamation point (!) as command terminator. The CR1000 datalogger supports the entire suite of SDI-12 instructions as summarized in TABLE 11.3-1, and defined by the SDI-12 Support Group (www.sdi-12.org).
Section 11. Programming Resource Library 11.3.3.1 Address Query Command If the address of a particular sensor is unknown, use the Address Query command to request the sensor identify itself. Get Unknown Address syntax is “?!” (without the quotation marks), where the question mark is used as a wildcard for the address, followed by the command terminator.
After retrieving data from a previous C! command whose timeout for getting data has expired, the CR1000 will immediately issue another C! command instead of waiting to do so in the next scan. By doing so, if the sensor timeout is <...
Section 11. Programming Resource Library every scan, i.e., it will pick up the data from the measurement command issued during the previous scan and, when the timeout has expired, issue the measurement command whose data will be retrieved on the subsequent scan. 11.3.4.3 Aborting a Measurement Command If after sending any measurement command (aM[v]! or aC[v]!) to a sensor, but before it issues a response indicating that the data values are ready, a user can...
Section 11. Programming Resource Library TABLE 11.3-1. The SDI-12 basic command / response set. Courtesy SDI-12 Support Group. Name Command Response Break Continuous None spacing for at least 12 milliseconds Acknowledge Active a<CR><LF> Send Identification allccccccccmmmmmmvvvxxx...xx<CR><LF> Change Address aAb! b<CR><LF> (support for this command is required only if the sensor supports software changeable addresses) Address Query a<CR><LF>...
Section 11. Programming Resource Library 11.3.6 SDI-12 Power Considerations When a command is sent by the datalogger to an SDI-12 probe, all probes on the same SDI-12 port will wake up. Only the probe addressed by the datalogger will respond, however, all other probes will remain active until the timeout period expires.
11.5 Wind Vector 11.5.1 OutputOpt Parameters In the CR1000 WindVector () instruction, the OutputOpt parameter is used to define the values which will be stored. All output options result in an array of values, the elements of which have “_WVc(n)” as a suffix, where n is the element number.
Section 11. Programming Resource Library 11.5.2 Wind Vector Processing WindVector () processes wind speed and direction measurements to calculate mean speed, mean vector magnitude, and mean vector direction over a data storage interval. Measurements from polar (wind speed and direction) or orthogonal (fixed East and North propellers) sensors are accomodated.
Section 11. Programming Resource Library 11.5.2.1 Measured Raw Data S i = horizontal wind speed Θ i = horizontal wind direction Ue i = east-west component of wind Un i = north-south component of wind N = number of samples 11.5.2.2 Calculations North Θu...
Ue = (ΣUe i ) / N Un = (ΣUn i ) / N Resultant mean wind direction, Θu: Θu = Arctan (Ue / Un) Standard deviation of wind direction, σ(Θu), using Campbell Scientific algorithm: σ(Θu) = 81(1 - U / S) 11-30...
Section 11. Programming Resource Library The algorithm for σ(θu) is developed by noting (FIGURE 11.5-2) that Θ Θ Θ − Θ where Θu Θ' FIGURE 11.5-3. Standard Deviation of Direction The Taylor Series for the Cosine function, truncated after 2 terms is: Θ...
− − 11.6 Custom Menus CR1000 Keyboard / Display menus can be customized to simplify routine operations. Viewing data, toggling control functions, or entering notes are common applications. Individual menu screens support up to eight lines of text with up to 7 variables.
Section 11. Programming Resource Library **CUSTOM MENU DEMO** > View Data > Make Notes > Control > FIGURE 11.6-1. Custom Menu Home from Example 18.6-1 View Data : Temp C |25.7643 TC 1 Temp C |24.3663 TC 2 Temp C |24.2643 FIGURE 11.6-2.
Section 11. Programming Resource Library Accept/Clear Accept Clear FIGURE 11.6-6. Accept / Clear Notes Window from Example 18.6-1 Control : Count to LED| Manual LED FIGURE 11.6-7. Control Sub Menu from Example 18.6-1 Count to LED FIGURE 11.6-8. Control LED Pick List from Example 18.6-1 Manual LED FIGURE 11.6-9.
Page 231
Section 11. Programming Resource Library EXAMPLE 11.6-1. CRBASIC Code: Custom menus as shown in Figs 18.6-1 to 18.6-9. 'CR1000 Series Datalogger 'Custom Menu Example 'Declarations supporting View Data menu item Public RefTemp 'Declare Reference Temp Variable Public TCTemp(2) 'Declare Thermocouple Temp Array 'Delarations supporting blank line menu item Const Escape = "Hit Esc"...
CRBASIC allows definition of conditional code that the compiler interprets and includes at compile time. This feature is useful when the same program code is to be used across multiple datalogger types, e.g., in both the CR1000 and CR3000. Pseudocode for this feature can be written as...
#EndIf commands. Within the program are examples showing the use of the predefined LoggerType constant and associated predefined logger constants (CR3000, CR1000 etc...). The program can be loaded into a CR3000 / CR1000 / CR800 series logger. EXAMPLE 11.7-1. Use of Conditional Compile Instructions #If, #ElseIf, #Else and #EndIf...
#If LoggerType = CR3000 VoltSe (ValueRead,1,mV1000,22,0,0,_50Hz,0.1,-30) 'This instruction is used if the logger is a CR3000 #ElseIf LoggerType = CR1000 VoltSe (ValueRead,1,mV2500,12,0,0,_50Hz,0.1,-30) 'This instruction is used if the logger is a CR1000 #ElseIf LoggerType = CR800 VoltSe (ValueRead,1,mV2500,3,0,0,_50Hz,0.1,-30) 'This instruction is used if the logger is a CR800 Series...
Section 11. Programming Resource Library byte 11001010 to the CR1000. The instrument does this by translating 11001010 into a series of higher and lower voltages, which it transmits to the CR1000. The CR1000 receives and reconstructs these voltage levels as 11001010.
SDM (used with CSI peripherals only) 11.8.3 Serial Protocols PakBus is the protocol native to the CR1000 and transparently handles routine point-to-point and network communications among CSI dataloggers and PCs. Modbus and DNP3 are standard networking SCADA protocols that optionally operate in the CR1000 with minimal configuration by the user.
MSB Most significant bit RS-232C refers to the standard used to define the hardware signals and voltage levels. The CR1000 supports several options of serial logic and voltage levels including RS-232 logic at TTL levels and TTL logic at TTL levels.
Section 11. Programming Resource Library SerialClose. Program EXAMPLE 11.8-1 and EXAMPLE 11.8-2 show their use. Consult CRBASIC Editor Help for more information. SerialOpen (COM Port , Baud Rate , Format , TX Delay , Buffer Size) Baud rate – baud rate mismatch is frequently a problem when developing a new application.
Section 11. Programming Resource Library SerialInBlock • For binary data (perhaps integers, floats, data with NULL characters). • Destination can be of any type. • Buffer size margin (1 extra record + 1 byte). SerialOutBlock • Binary • Can run in pipeline mode inside the digital measurement task (along with SDM instructions) if COM1..COM4 and the number of bytes is a constant.
NOTE: SerialIn() and SerialInRecord() receive the same data. SerialInRecord() is generally used for data streaming into the CR1000, while SerialIn is used for data that is received in discrete blocks. 4. Parse (split up) the serial string (CRBASIC SplitStr() Command) •...
SerialInString = “23 30 31 38 34 0D” (translates to #01 84 cr) Binary – Bytes are processed on a bit-by-bit basis. Character 0 (Null, &b00) is a valid part of binary data streams. However, the CR1000 uses Null terminated strings, so anytime a Null is received, a string is terminated.
4) The CR1000 adjusts the declared size of strings. One byte is always added to the declared length, which is then increased by up to another 3 bytes to make length divisible by 4.
Section 11. Programming Resource Library EXAMPLE 11.8-1. CRBASIC Code: Serial I/O program to receive a simulated RS-232 sensor string. Output string is simulated by the program. 'RS-232 Demonstration Program 'Receive data from a simulated RS-232 sensor to demonstrate RS-232 input / output on a single CR800. Simulated 'air temperature = 27.435 F, relative humidity 56.789 %.
Section 11. Programming Resource Library 11.8.7.1 Configure HyperTerminal Create a HyperTerminal instance file by clicking Start | All Programs | Accessories | Communications | HyperTerminal. The windows in FIGURE 11.8-1 through FIGURE 11.8-4 will be presented. Enter an instance name and click OK.
11.8.7.2 Create Send Text File Create a file from which to send a serial string. The file shown in EXAMPLE 11.8-2 will send the string “[2008:028:10:36:22]C” to the CR1000. Use Notepad or some other text editor that will not place unexpected hidden characters in the file.
ASCII strings. Solution: Programming EXAMPLE 11.8-4 imports and exports serial data via the CR1000 RS-232 port. Imported data is 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.
PakBus communication. This will produce some “noise” on the intended data output signal. Monitor the CR1000 RS232 port with the HyperTerminal instance described in Section 11.8.4.1. Send C command file to set the clock according to the text in the file.
Page 248
Section 11. Programming Resource Library 'Clock Set Record Data Table DataTable (ClockSetRecord,True,-1) Sample(7,ClkSet(),FP2) EndTable 'Subroutine to convert date formats (day-of-year to month and date) Sub DOY2MODAY 'Store Year, DOY, Hour, Minute and Second to Input Locations. Year = InStringSplit(1) DOY = InStringSplit(2) Hour = InStringSplit(3) Minute = InStringSplit(4) Second = InStringSplit(5)
Page 249
Section 11. Programming Resource Library Case Is < 122 Month = 4 Date = DOY + -91 Case Is < 153 Month = 5 Date = DOY + -121 Case Is < 183 Month = 6 Date = DOY + -152 Case Is <...
Page 250
Section 11. Programming Resource Library Case Is < 274 Month = 9 Date = DOY + -243 Case Is < 305 Month = 10 Date = DOY + -273 Case Is < 336 Month = 11 Date = DOY + -304 Case Is <...
Page 251
SerialOut (ComRS232,OutString,"",0,220) EndIf NextScan EndProg 11.8.9 Q & A Q: I am writing a CR1000 program to transmit a serial command that contains a null character. The string to transmit is: CHR(02)+CHR(01)+"CWGT0"+CHR(03)+CHR(00)+CHR(13)+CHR(10) How does the logger handle the null character? Is there a way that we can get the logger to send this? A: Strings created with CRBASIC are NULL terminated.
When the CR1000 has data to send via the RS-232 port, if the data is not a response to a received packet, such as sending a beacon, then it will power up the interface, send the data and return to the "dormant"...
= 2 or counter = 3. Data are stored when TrigVar is true. Data stored are the sample, average, and total of the variable counter, which is equal to 0, 1, 2, 3, or 4 when the data table is called. 'CR1000 Series Datalogger Public counter DataTable (Test,counter=2 or counter=3,100)
Section 11. Programming Resource Library TABLE 11.9-1. Data Generated by Code in EXAMPLE 11.9-1 11.10 Programming for Control This section is not yet available. 11.11 NSEC Data Type 11.11.1 NSEC Application NSEC data type consists of 8 bytes divided up as 4 bytes of seconds since 1990 and 4 bytes of nanoseconds into the second.
Section 11. Programming Resource Library 11.11.2 NSEC Options NSEC is used in a CRBASIC program one of the following three ways. In all cases, the time variable is only sampled with Sample () instruction reps = 1. • Time variable dimensioned to (1). If the variable array (must be LONG) is dimensioned to 1, the instruction assumes that the variable holds seconds since 1990 and microseconds into the second is 0.
Section 11. Programming Resource Library EXAMPLE 11.11-2. CRBASIC Code: Using NSEC data type on a 2 element array. TimeStamp is retrieved into variables TimeOfMaxVar(1) and TimeOfMaxVar(2). Because the variable is dimensioned to 2, NSEC assumes TimeOfMaxVar(1) = seconds since 00:00:00 1 January 1990, and TimeOfMaxVar(2) = μsec into a second.
Consequently, more computer memory is consumed by the datalogger support software, but CR1000 memory is conserved. Conservation of memory in the CR1000 also results in less band width being used when data is collected via telecommunications. EXAMPLE 11.12-1 programs the CR1000 to monitor the state of 32 ‘alarms’...
Page 258
Section 11. Programming Resource Library 'Set bits selectively. Hex used to save space. 'Logical OR bitwise comparison 'If bit in OR bit in The result 'Flags Is Bin/Hex Is Is '---------- ---------- ---------- Binary equivalent of Hex: If Alarm(1) Then Flags = Flags OR &h1 &b10 If Alarm(3) Then Flags = Flags OR &h4 &b100...
Section 11. Programming Resource Library FIGURE 11.12-1. Alarms toggled in EXAMPLE 11.12-1 FIGURE 11.12-2. Bool8 data from EXAMPLE 11.12-1 displayed in a numeric monitor 11-63...
Bridge excitation enabled with ExciteV() 11.13.1 CR1000 Burst Mode Burst mode is invoked in the VoltDiff() or VoltSE() instructions by entering a negative sign, “-“, before the channel number in the DiffChan or SEChan parameter. Reps, SEChan, DiffChan, and SettlingTime parameters are used differently in burst mode.
Section 11. Programming Resource Library 11.13.3 Burst Mode Programming Program EXAMPLE 11.13-1 shows a simple program burst measuring a single-ended thermocouple, 100 measurements at a 2 kHz rate. Data is logged to memory between when the variable Seconds equaling 28 and 35. EXAMPLE 11.13-1.
Section 11. Programming Resource Library 11.14.2 Concatenation Concatenation is the building of strings from other strings (“abc123”) or characters (“a” or chr()). Examples: Expression Comments Result StringVar(1) = 5.4 + 3 + " Volts" Add Floats, Concatenate String “8.4 Volts” StringVar(2) = 5.4 &...
Section 11. Programming Resource Library 11.14.4 Inserting String Characters Example: Objective: Using MoveBytes() to change “123456789” to “123A56789” Given: StringVar(7) = "123456789" “123456789” Try (does not work): StringVar(7,1,4) = "A" 123A<NULL>56789 Instead, use: StringVar(7) = MoveBytes(Strings(7,1,4),0,"A",0,1) “123A56789” 11.14.5 Extracting String Characters A specific character in the string can be accessed by using the “dimensional”...
Section 11. Programming Resource Library Examples: Expression Result StringVar(1) = 123e4 1230000 StringVar(2) = FormatFloat(123e4,"%12.2f") 1230000.00 StringVar(3) = FormatFloat(Values(2)," The battery is %.3g Volts ") “The battery is 12.4 Volts” StringVar(4) = Strings(3,1,InStr(1,Strings(3),"The battery is ",4)) 12.4 Volts StringVar(5) = Strings(3,1,InStr(1,Strings(3),"is ",2) + 3) 12.4 Volts StringVar(6) = Replace("The battery is 12.4 Volts","...
Page 266
Section 11. Programming Resource Library Maximum (1,deltaT,FP2,False,False) Minimum (1,deltaT,FP2,False,False) Average (1,deltaT,IEEE4,false) EndTable 'Main Program BeginProg Scan (1,Sec,0,0) PanelTemp (PTemp,250) Battery (Batt_volt) counter(1)=counter(1)+1 'thermocouple measurement TCDiff (AirTempC,1,mV2_5C,1,TypeT,PTemp,True ,0,250,1.0,0) 'calculate the difference in air temperature and panel temperature deltaT=airtempC-PTemp 'when the the difference in air temperatures is >=3 turn LED on 'and trigger the data table's faster interval If deltaT>=3 Then PortSet (4,true)
CardOut () instructions. A CRBASIC program is limited to 30 data tables, depending on size and available memory. When a new program is compiled, the CR1000 checks that there is adequate space in memory it references for the programmed data tables; a program that requests more space than is available will not run.
Page 268
CR1000 program use the CardOut instruction, final storage data can also be stored to the CF card. The CR1000 provides data first from internal CPU memory and if additional records are needed (that have been overwritten in CPU, the CR1000 sends it from the CF card.
Page 269
Section 12. Memory and Data Storage TABLE 12-2. CR1000 SRAM Memory SRAM 2 or 4 MB Notes The operating system requires some memory in which to “Static” Memory used operate. This memory is rebuilt at power-up, program re- by the operating compile, and watchdog events.
CSI CF card modules connect to the CR1000 Peripheral Port. Each has a slot for a Type I or Type II CF card. A CF card expands the CR1000’s storage capacity. A maximum of 30 data tables can be created on a CF card.
Section 12. Memory and Data Storage If the card has adequate space, the tables will be allocated and the CR1000 will start storing data to them. If there is no card or if there is not enough space, the CR1000 will warn that the card is not being used and will run the program, storing the data in SRAM only.
Dimension string variables only to the size required by the program. 12.5 Memory Reset 12.5.1 Full Memory Reset The full CR1000 memory is reset by entering 98765 in the status table field “FullMemReset.” Full memory reset performs the following functions: Formats CPU:...
LoggerNet -- Connect | Datalogger | View Station Status | Table Fill Times | Reset Tables 12.6 File Management Files in CR1000 memory (program, data, CAL, image) can be managed or controlled with Campbell Scientific support software as summarized in TABLE 12.6-1.
, CF power-up Setting file attributes. See LN file control , CF power-up , FileManage TABLE 12.6-2. Sending an OS to the CR1000. LN file control , DevConfig , CF automatic Reset settings. Sending an OS to the CR1000. Send , LN file control with default.cr1...
Associated with file attributes are options to either erase CF (CompactFlash data files or not when the program is sent. Unlike data tables in the CR1000, CF data are stored as a discrete file. While data tables in the CR1000 are erased automatically when a program is received, their mirror image data files on the CF (when present) can be preserved.
PC may be. One alternative is to simply carry a light weight CF card into the field, on which a program or OS is written. Inserting a properly configured CF card into a CR1000 CF module (CF100 or NL115), then cycling CR1000 power, will result in the OS or program automatically uploading and running without further input from the user.
Page 277
For instance, if the CR1000 loses power, do you want it to power back up with the same program, or another one? with variables intact or erased? with data intact or erased? The key to the CF power-up function is the powerup.ini file, which contains a...
Commands 13 and 14 (Delete Associated Data). Since CRD:powerup.ini is only processed at power-up, there is not a compiled program to delete associated data for. The information from the last running program is still available for the CR1000 to delete the files used by that program. 12-12...
Section 12. Memory and Data Storage Program Execution After File is processed, the following rules determine what CR1000 program to run: 1) If the Run Now program is changed then it will be the program that runs. 2) If no change is made to Run Now program, but Run on Power-up program is changed, the new Run on Power-up program runs.
The maximum size of the file name that can be stored, run as a program, or FTP transferred in the CR1000 is 59 characters. If the name is longer than 59 characters an "Invalid Filename" error is displayed. If several files are stored, each with a long filename, memory allocated to the root directory can be exceeded before the actual memory of storing files is exceeded.
For example, a common way to communicate with the CR1000 is with PC200W software by way of a PC COM port. In this example, hardware are the PC COM port, the CR1000 RS-232 port, and a serial cable.
CR1000 to initiate a telecommunications session. This feature of the CR1000 is known as Callback. For example, if a fruit grower wants the CR1000 to contact him with a frost alarm, the CR1000 can instigate telecommunications. Telecommunications is often initiated by calling the PC, but can also be initiated through email / text messaging to the grower’s cell phone, audible voice synthesized information...
Data stored on CF cards are retrieved through a telecommunication link to the CR1000 or by removing the card and carrying it to a computer. Many varieties of CF adapters are available for computers and PCMCIA card slots. CF adaptors are much faster than telecommunications links, so, with large CF files, transferring data to a computer with an adaptor will be significantly faster.
Page 284
Section 13. Telecommunications and Data Retrieval This is a blank page. 13-4...
Complete information is available in Campbell Scientific’s “PakBus Networking Guide.” The CR1000 communicates with computers or other dataloggers via PakBus. PakBus is a proprietary telecommunications protocol similar in concept to IP (Internet protocol). PakBus allows compatible Campbell Scientific dataloggers and telecommunications hardware to seamlessly link to a PakBus network.
A PC running LoggerNet is typically a central router. Routers can be router-capable dataloggers or communications devices. The CR1000 is a leaf node by factory default. It can be configured as a router by setting “IsRouter” in its status table to “1” or “True”. The network shown in FIGURE 14.2-1 contains 6 routers and 8 leaf nodes.
14.4.4 Neighbor Lists PakBus devices in a network can be configured with a neighbor list. The CR1000 sends out a hello-message to each node in the list whose verify interval has expired at a random interval*. If a node responds, a hello-message is exchanged and the node becomes a neighbor.
If Beacon Interval = 0 and Verify Interval = 0, then CVI = 300 seconds* If the CR1000 does not hear from a neighbor for one CVI, it begins again to send a Hello message to that node at the random interval.
Section 14. PakBus Overview Hence, the size of the responses to the file receive commands that the CR1000 sends will be governed by the maxPacketSize setting for the datalogger as well as that of any of its parents in LoggerNet's network map. Note that this calculation also takes into account the error rate for devices in the link.
Section 14. PakBus Overview 14.6 LoggerNet Device Map Configuration As shown in FIGURE 14.6-1 and FIGURE 14.6-2, the essential element of a PakBus network device map in LoggerNet is the PakBusPort. After adding the root port (COM, IP, etc), add a PakBusPort and the dataloggers. FIGURE 14.6-1.
Distributed Network Protocol (DNP) is an open protocol used in applications to ensure data integrity using minimal bandwidth. DNP implementation in the CR1000 is DNP3 level 2 Slave compliant with some of the operations found in a level 3 implementation. A standard CR1000 program with DNP instructions will take arrays of real time or processed data and map them to DNP arrays in integer or binary format.
Complete descriptions and options of commands are available in CRBASIC Editor Help. DNP() Sets the CR1000 as a DNP slave (outstation/server) with an address and DNP3 dedicated COM port. Normally resides between BeginProg and Scan(), so is executed only once. Example at Example 15.1-1, line 20.
DNPUpdate() runs; e.g for a 10 second scan, the master will be notified every 10 seconds. 15.1.2.4 Programming for Control Variables inside the CR1000 can be set by the DNP3 master to setup the CR1000 to accept control commands. •...
DNPVariable (IArray,4,30,2,0,&B00000000,0,0) 'Object group 30, variation 2 is used to return analog data when the CR1000 is polled. Flag is set to an empty 8 bit number '(all zeros), DNPEvent is a reserved parameter and is currently always set to zero. Number of events is only used for event 'data.
RTU and ASCII. However, CR1000s communicate in RTU mode exclusively. Field instruments can be queried by the CR1000. Because Modbus has a set command structure, programming the CR1000 to get data from field instruments is much simpler than from serial sensors. Because Modbus uses a common bus and addresses each node, field instruments are effectively multiplexed to a CR1000 without additional hardware.
TABLE 15.2-2 shows the linkage between CR1000 ports, flags and Boolean variables and Modbus registers. Modbus does not distinguish between CR1000 ports, flags, or Boolean variables. By declaring only ports, or flags, or Boolean variables, the declared feature is addressed by default. A typical CRBASIC program for a Modbus application will declare variables and ports, or variables and flags, or variables and Boolean variables.
Section 15. Alternate Telecoms Resource Library ModbusMaster () Sets up a CR1000 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 CR1000 as a Modbus slave device.
15.2.5 Modbus over IP with NL115 The NL115 supports networking of Modbus devices. When the ModbusSlave () COM port is set to 502, the CR1000 will listen on this port over TCP/IP for commands from a TCP Modbus Master device. If the ModbusMaster () COM...
Section 15. Alternate Telecoms Resource Library FIGURE 15.2-1. NL100/NL105 Settings. Verify the correct OS version and enter IP address, net mask, and default gateway. FIGURE 15.2-2. PakBus Settings. The PakBus address must be unique to the network. PakBus / TCP Server must be enabled.
Section 15. Alternate Telecoms Resource Library FIGURE 15.2-3. RS-485 Settings. This port should be disabled, unless an RS485 connection is being used. FIGURE 15.2-4. RS-232 Settings. This port should be set to Configuration Monitor. 15-10...
Section 15. Alternate Telecoms Resource Library FIGURE 15.2-5. CS I/O Settings. The CS I/O Configuration should be set to PakBus. The SDC Address/Me Baud Rate should be set to SDC7 or SDC8. The Serial Server Port will not be active. PakBus Beacon Interval will probably be ok at 60 sec.
'Begin Program' and 'Scan' instructions (see program example below). The Modbus address and the CR1000 PakBus address must be identical. COM port must be set for option 0 (ModBus/Pakbus). EXAMPLE 15.2-1 lists example CR1000 Modbus slave code.
'Register_LSW=&h0001 'Least significant word. 'Register_MSW=&h0002 ' Most significant word. Scan(1,Sec,0,0) 'In the case of the CR1000 being the ModBus master then the ModbusMaster instruction would 'be used (instead of fixing the variables as shown between the BeginProg and SCAN instructions). ModbusMaster (Result,COMRS232,-115200,5,3,-Register(1),1,2,3,100)
PDA and Linux applications are also available. 16.1 Short Cut Short Cut utilizes an intuitive user interface to create CR1000 program code for common measurement applications. It presents lists from which sensors, engineering units, and data output formats are selected. It supports by name most sensors sold by Campbell Scientific.
Section 16. Support Software the LoggerNet server. TABLE 16.5-2 lists features of LoggerNet products that require the LoggerNet server as an additional purchase. TABLE 16.5-1. LoggerNet Products that Include the LoggerNet Server LoggerNet Datalogger management, programming, data collection, scheduled data collection, network monitoring and troubleshooting, graphical data displays, automated tasks, data viewing and post-processing.
Section 16. Support Software 16.6 PDA Software PConnect Software supports PDAs with Palm Operating Systems. PConnectCE supports Windows Mobile and Pocket PC PDAs. Both support direct RS-232 connection to the CR1000 for sending programs, collecting data, and digital real-time monitoring. 16-3...
Page 308
Section 16. Support Software This is a blank page. 16-4...
Keyboard Display Read more! See Section 11.6 CR1000KD Custom Menus. The CR1000 has an optional keyboard display, the CR1000KD. This section illustrates the use of the CR1000KD using its default menus. The CR1000KD has a few keys that have special functions which are listed below.
Page 310
Section 17. CR1000KD: Using the Keyboard Display CR1000 Display Power Up Screen Any key to turn on display [End] to turn off display Toggle backlight with CAMPBELL Adjust contrast with SCIENTIFIC CR1000 Datalogger Real Time Tables 06/18/2000, 18:24:35 Real Time Custom CPU: TRIG.CR1...
Section 17. CR1000KD: Using the Keyboard Display 17.1 Data Display Data Run/Stop Program File PCCard List of Data Tables created by Ports and Status active program Configure, Settings Move the cursor List of User-Selected Variables to Data and (blank if not set up) press Enter Real Time Tables Real Time Custom...
Section 17. CR1000KD: Using the Keyboard Display 17.1.1 Real Time Tables List of Data Tables created by active program. For Example, Public Table1 Temps Move the cursor to desired table and press Enter Public Table values can be changed. Move the cursor to Tref : 23.0234 Edit field: Num...
17.1.2 Real Time Custom The CR1000KD can be configured with a user defined real-time display. The CR1000 will keep the setup as long as the same program is running, or it is changed by the user. Read more! Custom menus can also be programmed. See Section 11.6 CR1000KD Custom Menus for more information.
Section 17. CR1000KD: Using the Keyboard Display 17.1.3 Final Storage Tables List of Data Tables created by active program. For Example: Table1 Temps Move the cursor to Use Home (oldest), End (newest), desired Table and PgUp (older), PgDn (newer), ← →...
Section 17. CR1000KD: Using the Keyboard Display 17.2 Run/Stop Program Data Run/Stop Program File PCCard Ports and Status Configure, Settings Move the cursor to run/stop program and press Enter. CPU: ProgramName.CR1 Is Running If program >* Run on Power Up is running Stop, Retain Data Select 1 (press Enter)
Section 17. CR1000KD: Using the Keyboard Display 17.3 File Display Data Run/Stop Program File PCCard Ports and Status Configure, Settings New File Name: CPU: .CR1 CRD: .CR1 Move the cursor to File and press Enter CPU: CRD: Edit Copy Delete Run Options Directory Format...
List of Program files on CPU: or CRD: For Example: CPU: TCTEMP.CR1 Save Changes? RACE.CR1 Move the cursor to desired Program and press Enter INSERT CR1000 Instruction ' TCTemp.CR1 Function Press Ins Blank Line Public TREF,TC(3),FLAG(8) Block Insert Off D ataTable (Temps,1,1000)
Section 17. CR1000KD: Using the Keyboard Display 17.4 PCCard Display Data Run/Stop Program PCCard is only in menu if File a CF card module is PCCard attached and a CF card is Ports and Status inserted. Configure, Settings Move the cursor to PCCard and List of Data Tables on card used by active program...
Section 17. CR1000KD: Using the Keyboard Display 17.5 Ports and Status Read more! See Appendix A Status Table PortStatus (1): OFF PortStatus (2): OFF PortStatus (3): OFF PortStatus (4): OFF PortStatus (5): OFF PortStatus (6): OFF PortStatus (7): OFF PortStatus (8): OFF Ports Status Table Move the cursor to the desired port...
Section 17. CR1000KD: Using the Keyboard Display 17.6.1 Set Time / Date Move the cursor to time element and press Enter to change it. Then move the cursor to Set and press Enter to apply the change. 17.6.2 PakBus Settings In the Settings menu, move the cursor to the PakBus element and press Enter to change it.
Page 322
Section 17. CR1000KD: Using the Keyboard Display This is a blank page. 17-14...
Temperature and humidity can affect the performance of the CR1000. The internal lithium battery must be replaced periodically. 18.1 Temperature Range The standard CR1000 is designed to operate reliably from -25 to +50°C (-40°C to +85°C, optional) in non-condensing humidity. 18.2 Moisture Protection When humidity tolerances are exceeded and condensation occurs, damage to CR1000 electronics can result.
CR1000 is not powered. The CR1000 does not draw power from the lithium battery while it is powered by a 12 VDC supply. In a CR1000 stored at room temperature, the lithium battery should last approximately 10 years (less at temperature extremes).
Section 18. Care and Maintenance FIGURE 18.4-1. CR1000 with wiring panel. FIGURE 18.4-2. Loosen thumbscrew to remove CR1000 canister from wiring panel. 18-3...
Section 18. Care and Maintenance FIGURE 18.4-3. Pull edge with thumbscrew away from wiring panel. FIGURE 18.4-4. Remove nuts to disassemble canister. 18-4...
The CR1000 automatically runs a slow sequence to update the calibration table. When the calibration slow sequence skips, the CR1000 will try to repeat that step of the calibration process next time around. This simply extends calibration time. If any scan skips repeatedly, optimization of the datalogger program or reduction of online processing may be necessary.
A number less than 4 kbytes is too small and may lead to memory buffer related errors. 19.1.1.6 VarOutOfBound The CR1000 tries to write which variable has gone out-of-bounds at the end of the CompileResults message. The CR1000 does not catch all out-of-bounds errors. 19.1.1.7 WatchdogErrors Non-zero indicates the CR1000 has crashed, which can be caused by power or transient voltage problems, or an operating system or hardware problem.
Neither CRBASIC Editor nor the CR1000 compiler attempt to check whether the CR1000 is fast enough to do all that the program specifies in the time allocated. If a program is tight on time, look further at the execution times.
Section 19. Troubleshooting SDI-12 Measurements NAN is loaded into the first variable when the command issued by the SDI12Recorder () instruction fails to get a response from an SDI-12 probe. 19.1.4.2 Floating Point Math, NAN, and ±INF TABLE 19.1-1 lists math expressions, their CRBASIC form, and IEEE floating point math result loaded into variables declared as FLOAT or STRING.
If the baud rate can be guessed at and entered into LoggerNet Setup communications may be established. Once communications is established, CR1000 baud rate settings can be changed. Get clues as to what the baud rate may be set at by analyzing current and previous CR1000 programs for the SerialOpen () instruction, which specifies a baud rate.
Power Supply product literature or Application Note. 19.4.2 Troubleshooting at a Glance Symptoms: Possible symptoms include the CR1000 program not executing; Low12VCount of the Status table displaying a large number. Affected Equipment: Batteries, charger/regulators, solar panels, transformers Likely Cause: Batteries may need to be replaced or recharged;...
The battery voltage is adequate for datalogger operation. However if the datalogger is to >12 V? function for a long period of time, Campbell Scientific recommends replacing or, if using sealed rechargeable batteries, recharging the batteries so that the voltage is >12 V.
The solar panel is defective and NOTE: This test must be performed should be replaced or repaired on a sunny day. by Campbell Scientific. Call for an RMA number before return- Is the voltage ≥17 V? ing the solar panel.
13.3 and The regulator is defective and should be replaced or Is the charger/regulator’s output voltage to repaired by Campbell Scientific. Call for an RMA the battery between 10 and 15.5 V? number before returning the regulator.
Section 19. Troubleshooting 19.4.3.4 Adjusting Charging Circuit Voltage Campbell Scientific recommends that only a qualified electronic technician perform the following procedure. Place a 5 kohm resistor between the charging regulator’s 12 V output and ground terminals. Use a voltmeter to measure the voltage across the 5 kohm resistor.
Also describes the state of a switch, either being on or off. Callback is a name given to a process by which the CR1000 initiates telecommunication with a PC running appropriate CSI datalogger support software.
Page 340
DC see VDC. DCE data communications equipment. While the term has much wider meaning, in the limited context of practical use with the CR1000, it denotes the pin configuration, gender and function of an RS-232 port. The RS-232 port on the CR1000 and on many 3 party telecommunications devices, such as a digital cellular modems, are DCE.
Page 341
DNS Domain Name System. A TCP/IP application protocol. DTE data terminal equipment. While the term has much wider meaning, in the limited context of practical use with the CR1000, it denotes the pin configuration, gender and function of an RS-232 port. The RS-232 port...
Page 342
Modbus communication protocol published by Modicon in 1979 for use in programmable logic controllers (PLCs). modem/terminal any device which: 1) has the ability to raise the CR1000 ring line or be used with the SC32B to raise the ring line and put the...
Page 343
Denotes a) the information carrier generated by an electronic sensor, b) the transfer of data from variable storage to final storage, or c) the transfer of power from the CR1000 or a peripheral to another device.
Page 344
CR1000 (or another CSI datalogger) to operate. Ping a software utility that attempts to contact another specific device in a network.
Page 345
SDM Synchronous Device for Measurement. A processor based peripheral device or sensor that communicates with the CR1000 via hardwire over short distance using a proprietary CSI protocol. Seebeck Effect induces microvolt level thermal electromotive forces (EMF) across junctions of dissimilar metals in the presence of temperature gradients.
Page 346
Appendix A. Glossary skipped scans occur when the CR1000 program is too long for the scan interval. Skipped scans can cause errors in pulse measurements. slow sequence is a usually slower secondary scan in the CR1000 CRBASIC program. The main scan has priority over a slow sequence.
Page 347
CR1000. The CR1000 measures varying frequencies of low-level VAC in the range of ±20 VAC. VDC Volts Direct Current. The CR1000 operates with a nominal 12 VDC power supply. It can supply nominal 12 VDC, regulated 5 VDC, and variable excitation in the ±2.5 VDC range. It measures analog voltage in the ±5.0 VDC range and pulse voltage in the ±20 VDC range.
Page 348
Appendix A. Glossary on each target represents the absolute correct measurement. Each shot represents an attempt to make the measurement. The diameter of the projectile represents resolution. The objective of a data acquisition system should be high accuracy, high precision, and to produce data with resolution as high as appropriate for a given application.
Note that a lot of comms and other activity is needed to generate the Status Table, so if the CR1000 is very tight on time, just getting the Status Table itself repeatedly could push timing over the edge and cause skipped scans.
CR1000 specific serial number. Stored Integer Status in FLASH memory. RevBoard Hardware revision number. Stored in Integer Status FLASH memory. StationName Name of the CR1000. Stored in String Config FLASH memory. PakBusAddress CR1000 PakBus address. String 1 to 3999 Yes Config ProgName Name of current (running) program.
Page 351
Appendix B. Status Table and Settings Status Fieldname Description Variable Default Normal User can Info Type Range change? Type VarOutOfBound Number of times an array was accessed Integer Can Reset Error out of bounds. SkippedScan Number of skipped scans that have Integer Can Reset Error...
Page 352
Appendix B. Status Table and Settings Status Fieldname Description Variable Default Normal User can Info Type Range change? Type SkippedRecord Variable array that posts how many Integer Error records have been skipped for a given array Reset = 0 table. Each table has its own entry. DataRecordSize Number of records in a table.
Page 353
Appendix B. Status Table and Settings Status Fieldname Description Variable Default Normal User can Info Type Range change? Type 9,12 SlowProcTime The time (μs) required to process Integer Status SlowSequence scan(s). array 8,13 MaxSystemProcTime The maximum time (μs) required to Integer Status process the background calibration.
Page 354
BaudrateCOM2 115200 38.4k, BaudrateCOM3 57.6k, BaudrateCOM4 COM1- 115.2k 4 = 0 IsRouter Is the CR1000 configured to act as Boolean False 0 or 1 Config router PakBusNodes Number of nodes (approximately) that Integer >=50 Config will exist in the PakBus network. This value is used to determine how much memory to allocate for networking.
Page 355
DHCP. as 4 byte IPGateway Specifies the address of the IP router to Entered 0.0.0.0 All valid which the CR1000 will forward all non- as String local IP packets for which it has no / Stored addresses route.
Page 356
9.0 volts. The minimum specified input voltage of 9.6 V will not cause a 12 V low, but a 12 V low condition will stop the program execution before the CR1000 will give bad measurements due to low of supply voltage.
Page 357
( CS-9pin, and RS-232) for PakBus the code will be 16 The value shown is the initial baud rate the CR1000 will use. A negative value will allow the CR1000 to auto baud but will dictate at which baud rate to begin.
(17) 7.5 mV range 1/50 Hz integration, (18) 2.5 mV range 1/50 Hz integration TABLE B-3. Settings Settings are accessed through Campbell Scientific’s Device Confituration Utility (DevConfig) for direct serial connection, or through PakBusGraph for most telecommunications options. Setting Description...
Page 359
Appendix B. Status Table and Settings the datalogger can still communicate with other dataloggers and wireless sensors. It cannot, however, be used as a means of reaching those other dataloggers. PakBus Nodes Allocation Specifies the amount of memory that the datalogger allocates for maintaining PakBus routing information.
Page 360
Appendix B. Status Table and Settings COM3 COM4 Verify Interval This setting specifies the interval, in units of seconds, that will be reported as the link verification interval in RS232 the PakBus hello transaction messages. It will indirectly govern the rate at which the datalogger will SDC7 attempt to start a hello transaction with a neighbor if no SDC8...
Page 361
Appendix B. Status Table and Settings 5. CS I/O SDC8 6. COM1 7. COM2 8. COM3 9. COM4 10. PakBus/TCP Connection If the value ofthe port number is 100 or greater, the connection is made through PakBus/TCP either by the datalogger executing a TCPOpen() instruction or by having a connection made to the PakBus/TCP logger service.
Page 362
(CPU:, USR:, or CRD:) on which the file is located. The extension of the file must also be valid for a datalogger program (.dld, .cr1 (CR1000), .cr3 (CR3000), or .cr8 (CR800 Series)). Consider the following example: CPU:pakbus_broker.dld...
Page 363
Appendix B. Status Table and Settings File-extension := "dld" | "cr1" | "cr3" | "cr8". Max Packet Size Specifies the maximum number of bytes per data 1000 collection packet. RS232 Always On Controls whether the RS-232 port will remain active even when communication is not taking place.
Page 364
:= "(" address "," tcp-port ")". address := domain-name | ip-address. PakBus/TCP Password This setting specifies a password that, if empty, allows the CR1000 to authenticate any incoming or outgoing PakBus/TCP connection. HTTP Server Port Configures the TCP port on which the HTTP (web server) service will be offered.
Page 365
Appendix B. Status Table and Settings information that will be sent is controlled by the IP Trace Code setting. IP Trace Code This setting controls what type of information will be sent on the port specified by IP Trace Port and via Telnet.
Page 366
Appendix B. Status Table and Settings B-18...
Appendix C. Serial Port Pin Outs C.1 CS I/O Communications Port Pin configuration for the CR1000 CS I/O port is listed in TABLE C-1. TABLE C-1. CS I/O Pin Description ABR = Abbreviation for the function name. PIN = Pin number.
Appendix C. Serial Port Pin Outs C.2 RS-232 Communications Port C.2.1 Pin-Out Pin configuration for the CR1000 RS-232 9-pin port is listed in TABLE C-2. Information for using a null modem with the RS-232 9-pin port is given in TABLE C-3.
The 40 second timeout is generally circumvented when communicating with LoggerNet because it sends information as part of the protocol that lets the CR1000 know it can shut down the port. When in sleep mode, hardware is configured to detect activity and wake up.
Appendix D. ASCII / ANSI Table American Standard Code for Information Interchange (ASCII) / American National Standards Institute (ANSI) Decimal and Hexadecimal Codes and Characters Keypad Keypad LoggerNet HyperTerminal LoggerNet HyperTerminal Char Char Char Char Char Char NULL NULL € Ç...
Appendix E. FP2 Data Format FP2 data are two byte big endian values. The FP2 data format is nearly equivalent to the low resolution data format in older array based CSI dataloggers. Representing bits in each byte pair as ABCDEFGH IJKLMNOP, bits are described in Table E-1.
Index to Sections The index lists page numbers to headings of sections containing desired information. Consequently, sought after information may be on pages subsequent to those listed in the index. 12 V Output, 3-4 Asynchronous, 11-41, A-1 12 Volt Supply, 4-1 Asynchronous Communication, 2-7 5 V, C-1 ATN, 10-20...
Page 390
Campbell Scientific Companies Campbell Scientific, Inc. (CSI) 815 West 1800 North Logan, Utah 84321 UNITED STATES www.campbellsci.com info@campbellsci.com Campbell Scientific Africa Pty. Ltd. (CSAf) PO Box 2450 Somerset West 7129 SOUTH AFRICA www.csafrica.co.za cleroux@csafrica.co.za Campbell Scientific Australia Pty. Ltd. (CSA)
Need help?
Do you have a question about the CR1000 and is the answer not in the manual?
Questions and answers