Rowe HASCP Operation Manual

Horizontal acoustic sediment & current profiler

Advertisement

Quick Links

HASCP
Horizontal acoustic sediment & current profiler
OPERATION MANUAL
H
A
S
C
P
Rowe Technologies Inc.
12655 Danielson Court,
Suite 306
Poway, CA 92064
USA
Tel: +1 858 842 3020
Fax: +1 858 842 3021
1

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the HASCP and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for Rowe HASCP

  • Page 1 HASCP Horizontal acoustic sediment & current profiler OPERATION MANUAL Rowe Technologies Inc. 12655 Danielson Court, Suite 306 Poway, CA 92064 Tel: +1 858 842 3020 Fax: +1 858 842 3021...
  • Page 2: Table Of Contents

    Table of Contents 1 Introduction ............................4 1.1 How to Contact Rowe Technologies, Inc.................... 4 1.2 Inventory check ........................... 4 1.3 Safety Precautions ..........................4 2 System Overview ..........................5 2.1 Summary of RTI HASCP ........................6 2.2 Connections to the instrument ......................7 3 Getting Started ..........................9...
  • Page 3 7.6 Ensemble Decode Example C++ ......................45 8 Cable Wiring Diagrams ........................68 9 Few pics of the HASCP taken during testing at RTI and at lake............69 9.1 Example Plots from Lake Test ......................71 10 Mechanical Drawings and Assembly .................... 73 10.1 Installation to a pole ........................
  • Page 4: Introduction

    Current Profiler. This Operation Manual is intended to help HASCP users to get familiar with their system. This manual is specific for using the HASCP. The manual does not discuss all the technical issues of the HASCP. All documentation is being provided to you on USB storage device in a fully searchable, printable, electronic format.
  • Page 5: System Overview

    RTI is pleased to introduce the HASCP – Horizontal Acoustic Sediment and Current Profiler. The HASCP operates at a 3 different frequency configuration (600 kHz, 1200 kHz and 2.4 MHz) for sediment and velocity profiling using Narrow band and Broad band operation developed for the needs of scientists and engineers.
  • Page 6: Summary Of Rti Hascp

    BEAM 2 BEAM 2 Figure 2. Illustration of the various acoustic beams from the HASCP unit. Beams 0 and Beam 1 are rectangular transducers with narrow beam width (0.5 degrees) and operate at 1152 kHz. Beam 2 and Beam 3 operate at 576 kHz and 2304 kHz respectively.
  • Page 7: Connections To The Instrument

    To communicate to the external world through RS 485, or RS 232, plug in the female part of the connector of the 5 m connection cable into the HASCP housing. The other end of the communication cable has the following interfaces,...
  • Page 8 9V – 24V Power TRIG Out Trigger output line from HASCP unit CHGND Chassis Ground line (used in case of EMI issues) TRIG IN Not available and is intended for future use...
  • Page 9: Getting Started

    Note: The RTI HASCP Software is designed for a Windows operating system. 3.1.a Step1: Installing Driver The first step before connecting to the HASCP is to make sure that the driver for the serial communications between the between the PC and the HASCP is installed. The driver can be found on the small CD provided in the shipping case or at the following link: http://www.bb-elec.com/getattachment/c8461811-bebf-456a-8386-...
  • Page 10: Step 3: Hascp Interconnecting

    3.1.d Step 4. Connecting to the Instrument via Software Once all of the instrument interconnections have taken place, (presented in Step 3) open the RTI HASCP Software to communicate with the ADCP. 3.2 Communications Click the Communications TAB on the top left of the software window. Refer to Figure If the HASCP is connected and outputting data, the text page on the right will show what data in being transferred.
  • Page 11: Terminal

    Click the Terminal TAB near the top left of the software window. Refer to Figure 5. b. If the HASCP is connected and outputting data, the text page on the right will show what looks like random binary data. If not, the text page contains the last data displayed before the HASCP was stopped.
  • Page 12: Deploy

    To START the HASCP click START. The HASCP will begin pinging and outputting ensemble data beginning with ensemble number 1. c. If you want to send a predetermined set of commands to the HASCP click Deploy and follow the instructions to select the command text file.
  • Page 13 Figure 6. Firmware tab showing the firmware version, source level in dB for different power level, and the receive sensitivity of the HASCP. Bm0 and Bm2 are beam 0 and beam 2 (1200 kHz), Bm1 is beam 1 (600 kHz), Bm3 is beam 3 (2400 kHz) and Bm4 is beam 4 (1200 kHz).
  • Page 14: Deployment Data And Power Options

    This is useful when the RTI data logger needs to be power cycled. RS485 Serial Data Output 1. Enable HASCP data output on the RS485 data lines. RS232 Serial Data Output 1. Enable HASCP data output on the RS232 data line.
  • Page 15 HASCP commands 1. Generate a. Clicking the Generate Button will convert the Instrument Measurement Settings to HASCP commands. The command list is displayed in the Command List Text Box. 2. Send a. Causes the Command list in the Command List Text Box to be sent to the HASCP via a serial port.
  • Page 16: Horizontal Profile

    Shows status and gives error messages that occur during communication with the HASCP. 6. Command List Text Box a. Displays the current command set. 3.7 Horizontal Profile Click the Horizontal Profile TAB near the top center-left of the software window.
  • Page 17 Figure 8. Horizontal Profile display page showing the various profile and amplitudes measured by HASCP. . This data was measured by the HASCP at the lake. The left hand axis is the velocity range (-5 to + 5 m/s) and the right hand axis represents the RSSI measured by the ADCP from 0 to 100 dB.
  • Page 18 The standard deviation the range measurements. The average signal to noise measurement of the surface echo. Depth (m) HASCP depth measure by the pressure sensor. PingsPerEnsemble The number Pings collected during the ensemble. RangePingsGood The number of good SNR Stage pings that were averaged together during the ensemble.
  • Page 19: Volume

    Roll (deg) g. Average Roll collected during the ensemble. Horizontal Profile Graph Display (Figure 8) a. Graph Corner Values (text boxes near each corner of the graph) b. User enterable numbers that scale the graphic display. Text Display (Figure 9) a.
  • Page 20 Last location of the volume average. The End location will be adjusted towards the Begin location if the signal to noise level is low. Figure 10. Volume Tab in RTI HASCP software 10. Thresh(dB) a. Signal to noise threshold for good data.
  • Page 21: Leaders

    a. Last location of the volume average. The End location will be adjusted towards the Begin location if the signal to noise level is low. 17. Thresh(dB) ( second beam of Janus pair) a. Signal to noise threshold for good data. 18.
  • Page 22: Download

    1. Clicking Get Directory will send the command DSDIR to the HASCP system via the serial port. The HASCP will respond with a list of all of the files contained on its internal SD card. The software will screen the file names and display only the HASCP data files starting with a “H”...
  • Page 23 1. Displays the total number of bytes transferred. c. Top Text Box xii. Shows Directory data and status during download. d. Bottom Text Box xiii. Shows download file storage location and file status. Figure 12. Download Tab in RTI HASCP software with no files...
  • Page 24: Extract

    Click the Extract TAB near the top right-center of the software window. Refer to Figure b. Binary to CSV i. Clicking the Binary to CVS button allows the user to select a binary HASCP file stored on the PC which is then converted to multiple Comma Separated Variable (CSV) files.
  • Page 25: Firmware Upload

    Figure 14. Extract tab in the RTI HASCP software 3.12 Firmware upload a. Open the Firmware Tab as shown in Figure 15. b. Click the Current version to check to see the current firmware version. c. Contact RTI if a new firmware upgrade is required.
  • Page 26 Figure 15. Firmware Tab in the RTI HASCP software...
  • Page 27: Connection Diagnostics

    Connect HASCP communication port(s) to the Windows PC (outlined above). Open the ROWETECH HASCP software. Select communication port and Baud rate. Select the Terminal screen on the HASCP software and turn on the power supply to the HASCP and click Break <CR>.
  • Page 28: Preparing For A Deployment

    5 Preparing for a Deployment RTI recommends the following checklist that may help the user towards a successful deployment. Structural Integrity – The structural integrity of cables and connectors are also important, be sure to there are no cuts or cracks in the cable or connectors. It is important to make sure that when reassembling the system that the nuts and bolts are tightened sufficiently.
  • Page 29: Instrument Care

    6 Instrument Care _________________________________ Below are some general guidelines to taking care of HASCP. 6.1 Guidelines to Instrument Care Please consider the following guidelines to prolong the life of your instrument, decrease the risk of damage and continue its factory tested performance: Please do not open the instrument housing enclosure unless you have contacted service at ROWETECH.
  • Page 30: Firmware Details

    Binary ensemble data file. The number after the H is incremented when the file size exceeds 16 Mbytes. 7.2 Sub System Codes HASCP system Serial Numbers begin with 08. The Subsystem Codes which make up the next several digits in the serial number are listed below. Typical HASCP SN: 08BJHQ00000000000000000000123456...
  • Page 31: Hascp Commands

    Spare 7.3 HASCP Commands 7.3.a Command Summary The Tables below lists the various commands used by the HASCP software. Table 4. System Deployment Commands Command Description START Start ADCP pinging. Note: Once started, the system won’t respond to any commands except STOP, STIME and CSHOW commands.
  • Page 32 DSXRfilename.abc XMODEM file upload. This command is used to transfer a file, via the serial communication link, from an external device to the SD card contained within the ROWETECH system. File names are limited to a maximum of 8 characters before the extension. DSXTfilename.abc XMODEM file download.
  • Page 33 ii. Broadband Transmit Lag in vertical meters CWPBL i Water Profile Blank in vertical meters. CWPBS i Water Profile Bin Size in vertical meters. CWPBN i Water Profile Bins. CWPP i Pings Per Ensemble. CWPTBP i Time Between Pings. CWPMS i Horizontal Max Speed (m/s), Not implemented.
  • Page 34 iii. V Good Threshold (m/s) CWPX i, ii Water Profile Transmit Transmit Length (m), if set to 0 transmit will set equal to bin length Broadband Code Selection • 0 = full length code • 1 = single element code (reduced transmit power) CWPTC i, ii, iii Transmit Control Beam Transmit Enable...
  • Page 35 C232OUT i Serial Data Output on the RS232 port • 0 = Disable • 6 = Enable C485OUT i Serial Data Output on the RS485 port • 0 = Disable • 6 = Enable C422OUT i Use C232OUT to control RS422 output Table 10.
  • Page 36 Water Speed of Sound (m/s) CHO i, ii, iii Heading Offset (±180 deg) System to Ship Offset (±180 deg) iii. System to PNI Offset (±180 deg) CHS i Heading Source • 0 = None • 1 = PNI • 2 = $HDT (NMEA) CTS i Tilt Source •...
  • Page 37 • 0 = None • 1 = Odd • 2 = Even iv. Stop Bits: 1 = One, 2 = Two C485G i Seconds for RS485 Gap CTRIG i External Trigger Input • 0 = Disable • 1 = High State •...
  • Page 38 CWSSC a, b, c, d Sets where the source for speed of sound calculation: 0 = Command, 1 = Sensor, 2 = Internal Calculation. Parameters: a: Water Temperature Source Typically, a = 1 uses the build-in temperature sensor. Or a = 0 from CWT command. b: Transducer Depth Source Typically, b = 1 from pressure sensor.
  • Page 39: Data Structure Id List

    7.4 Data Structure ID list These codes are used to identify the data structure types contained in the Output Data. 0. SYSTEM_CHECKSUM 1. SYSTEM_LEADER 2. VERTICAL_STAGE 3. HORIZONTAL_JANUS_LEADER 4. HORIZONTAL_JANUS_GOOD 5. HORIZONTAL_JANUS_BEAM 6. HORIZONTAL_JANUS_INSTRUMENT 7. HORIZONTAL_JANUS_AMPLITUDE 8. HORIZONTAL_JANUS_CORRELATION 9. BACKSCATTER_LEADER_00 10.
  • Page 40 //Payload Wrapper byte Header[8];// 52 54 49 48 41 53 43 50 (bytes 0 thru 7) ushort PayloadSize ;//LSB, MSB (bytes 8,9) ushort Inverted;//LSB, MSB (bytes 10,11) SYSTEM_LEADER ushort System_ID;// 0,1 ushort System_Bytes;// 2,3 ulong System_Ensemble_Number;//LSB, , ,MSB 4 thru 7 byte System_Serial_Number[32];// 8 thru 39 ushort System_Firmware_MAJOR;//40 41 ushort System_Firmware_MINOR;//42 43...
  • Page 41 //If Velocity Profile is enabled CWPON[0] 1<CR> //HORIZONTAL_JANUS_LEADER ushort Janus_ID; // 0 1 ushort Janus_Bytes;// 2,3 single Janus_SystemFreqHz[sub];//4 thru 7 ushort Janus_Transducer_DiameterX1000;//8 9 ushort Janus_BeamAngleDegreesX1000;//10 11 ushort Janus_Rcvr1TemperatureX100;//12 13 ushort Janus_Rcvr2TemperatureX100;//14 15 ushort Janus_TransmitVoltsX100;//16 17 ushort Janus_PreAmpGainX1000;//18 19 ushort Janus_TransmitBwX65535;//20 21 (1/T or 1/CPE) * 65535 ushort Janus_ReceiveBwX65535);//22 23 single Janus_SamplesPerSecond;//24 thru 27 ushort Janus_LagSamples;//28 29...
  • Page 42 //If Velocity Profile is enabled CWPON[0] 1<CR> //HORIZONTAL_JANUS_INSTRUMENT ushort Janus_Instrument_ID; // 0 1 ushort Janus_Instrument_Bytes;// 2,3 ushort Janus_Instrument_VelX2000[2][bins];// 4 + 2 * beams * bins //If Velocity Profile is enabled CWPON[0] 1<CR> //HORIZONTAL_JANUS_AMPLITUDE ushort Janus_Amplitude_ID; // 0 1 ushort Janus_Amplitude_Bytes;// 2,3 ushort Janus_AmplitudeX256[2][bins];// 4 + 2 * beams * bins //If Velocity Profile is enabled CWPON[0] 1<CR>...
  • Page 43 ushort BS1_Vol0VelYx1000;//62 63 ushort BS1_Vol1VelYx1000;//64 65 ushort BS1_VolThresholdX100;//66 67 ushort BS1_VolGoodPings0;//68 69 ushort BS1_VolGoodPings1;//70 71 //If Backscatter is enabled CWPON[1] 2<CR> // BACKSCATTER_PROFILE_01 ushort BS1_Amplitude_ID; // 0 1 ushort BS1_Amplitude_Bytes;// 2,3 ushort BS1_AmplitudeX256[2][bins];// 4 + 2 * beams * bins //If Backscatter is enabled CWPON[2] 2<CR>...
  • Page 44 single BS3_SystemFreqHz[sub];//4 thru 7 ushort BS3_Transducer_DiameterX1000;//8 9 ushort BS3_BeamAngleDegreesX1000;//10 11 ushort BS3_Rcvr1TemperatureX100;//12 13 ushort BS3_Rcvr2TemperatureX100;//14 15 ushort BS3_TransmitVoltsX100;//16 17 ushort BS3_PreAmpGainX1000;//18 19 ushort BS3_TransmitBwX65535;//20 21 (1/T or 1/CPE) * 65535 ushort BS3_ReceiveBwX65535);//22 23 single BS3_SamplesPerSecond;//24 thru 27 ushort BS3_LagSamples;//28 29 ushort BS3_CPCE;//30 31 ushort BS3_NCE;//32 33 ushort BS3_RepeatN;//34 35...
  • Page 45: Ensemble Decode Example C

    ushort BS4_Bins;//40 41 ushort BS4_FirstBinDepthX1000;//42 43 ushort BS4_BinSizeX1000;//44 45 ushort BS4_VolBeginX1000;// 46 47 ushort BS4_VolEndX1000;//48 49 ushort BS4_VolAmpX100;//50 51 ushort BS4_VolThresholdX100;//52 53 ushort BS4_VolGoodPings0;//54 55 //If Backscatter is enabled CWPON[4] 2<CR> // BACKSCATTER_PROFILE_04 ushort BS4_Amplitude_ID; // 0 1 ushort BS4_Amplitude_Bytes;// 2,3 ushort BS4_AmplitudeX256[bins];// 4 + 2 * bins // SYSTEM_CHECKSUM ushort System_Checksum_ID;...
  • Page 46 public ushort System_Year; public byte System_Month; public byte System_Day; public byte System_Hour; public byte System_Minute; public byte System_Second; public byte System_Hsec; public double System_Latitude; public double System_Longitude; public float System_DeployDepth; public float System_DeployHeight; public ushort System_RightBank; public float System_Heading; public float System_Pitch; public float System_Roll;...
  • Page 47 public ushort Janus_Bins; public float Janus_FirstBin; public float Janus_BinSize; public float Janus_CorrelationThreshold; public float[] Janus_VolBegin = new float[2]; public float[] Janus_VolEnd = new float[2]; public float[] Janus_VolAmp = new float[2]; public float[] Janus_VolVel = new float[2]; public float[] Janus_VolInst = new float[2]; public float Janus_VolThres;...
  • Page 48 public float BS0_TransmitVolts; public float BS0_Gain; public float BS0_TransmitBandwidth; public float BS0_ReceiveBandwidth; public float BS0_SampleFrequency; public ushort BS0_LagSamples; public ushort BS0_CyclePerElement; public ushort BS0_NumberOfElements; public ushort BS0_NumberOfRepeats; public ushort BS0_Pings; public ushort BS0_Beams; public ushort BS0_Bins; public float BS0_FirstBin; public float BS0_BinSize; public float[] BS0_VolBegin = new float [2];...
  • Page 49 public ushort BS1_LagSamples; public ushort BS1_CyclePerElement; public ushort BS1_NumberOfElements; public ushort BS1_NumberOfRepeats; public ushort BS1_Pings; public ushort BS1_Beams; public ushort BS1_Bins; public float BS1_FirstBin; public float BS1_BinSize; public float[] BS1_VolBegin = new float[2]; public float[] BS1_VolEnd = new float[2]; public float[] BS1_VolAmp = new float[2]; public float BS1_WPVOLthreshold;...
  • Page 50 public ushort BS2_Bins; public float BS2_FirstBin; public float BS2_BinSize; public float[] BS2_VolBegin = new float[2]; public float[] BS2_VolEnd = new float[2]; public float[] BS2_VolAmp = new float[2]; public float BS2_WPVOLthreshold; public ushort[] BS2_Voln = new ushort[2]; //Backscatter_2 Amplitude Data public ushort BS2_Amplitude_ID; public ushort BS2_Amplitude_Bytes;...
  • Page 51 public ushort[] BS3_Voln = new ushort[2]; //Backscatter_2 Amplitude Data public ushort BS3_Amplitude_ID; public ushort BS3_Amplitude_Bytes; public float[,] BS3_Amplitude = new float[MaxBeams, MaxBins]; public float[] BS3_NoiseAmplitude = new float[MaxBeams]; //Backscatter_4 Leader Data public ushort BS4_ID; public ushort BS4_Bytes; public float BS4_Frequency; public float BS4_Diameter;...
  • Page 52 public bool SystemAvailable; public bool JanusAvailable; public bool JanusBeamGoodAvailable; public bool JanusBeamVelocityAvailable; public bool JanusInstrumentVelocityAvailable; public bool JanusAmplitudeAvailable; public bool JanusCorrelationAvailable; public bool StageAvailable; public bool BS0Available; public bool BS0AmplitudeAvailable; public bool BS1Available; public bool BS1AmplitudeAvailable; public bool BS2Available; public bool BS2AmplitudeAvailable; public bool BS3Available;...
  • Page 53 public static int ByteArrayToInt(byte[] packet) ByteArrayToNumber.A = packet[PacketPointer++]; ByteArrayToNumber.B = packet[PacketPointer++]; ByteArrayToNumber.C = packet[PacketPointer++]; ByteArrayToNumber.D = packet[PacketPointer++]; return ByteArrayToNumber.Int; public static short ByteArrayToShort(byte[] packet) ByteArrayToNumber.A = packet[PacketPointer++]; ByteArrayToNumber.B = packet[PacketPointer++]; return ByteArrayToNumber.Short; public static long ByteArrayToLong(byte[] packet) ByteArrayToNumber.A = packet[PacketPointer++]; ByteArrayToNumber.B = packet[PacketPointer++];...
  • Page 54 ByteArrayToNumber.H = packet[PacketPointer++]; return ByteArrayToNumber.Double; public static void DecodeEnsemble(byte[] packet, EnsembleClass Ensemble) int i, beam, bin; for(i=0;i< MaxDataTypes; i++) DataTypeAvailable[i] = false; //init just in case the ID are out of order Ensemble.Janus_Beams = 0;// MaxBeams; Ensemble.Janus_Bins = 0;// MaxBins; Ensemble.BS0_Beams = 0;// MaxBeams;...
  • Page 55 Ensemble.BS3AmplitudeAvailable = false; Ensemble.BS4Available = false; Ensemble.BS4AmplitudeAvailable = false; Ensemble.MostBins = 0; PacketPointer = 0;//point to first byte of the data buffer //get Header Ensemble.Header_Type = (ulong)ByteArrayToLong(packet); Ensemble.Header_PayloadSize = (ushort)ByteArrayToShort(packet); PacketPointer += 2; //decode the linked list uint PayloadStart = PacketPointer; uint NextID = PacketPointer;...
  • Page 56 Ensemble.Stage_Depth = ByteArrayToFloat(packet); Ensemble.Stage_DepthSTD = ByteArrayToFloat(packet); Ensemble.Stage_DepthPingsGood = (ushort)ByteArrayToShort(packet); Ensemble.Stage_Status = (ushort)ByteArrayToShort(packet); break; case SYSTEM_LEADER: Ensemble.SystemAvailable = true; Ensemble.System_ID = ID; Ensemble.System_Bytes = (ushort)ByteArrayToShort(packet); NextID = PacketPointer + Ensemble.System_Bytes; Ensemble.System_EnsembleNumber = (uint)ByteArrayToInt(packet); for (i = 0; i < 32; i++) Ensemble.System_SN[i] = (byte)packet[PacketPointer++];...
  • Page 57 PacketPointer = NextID; break; case HORIZONTAL_JANUS_LEADER: Ensemble.JanusAvailable = true; Ensemble.Janus_ID = ID; Ensemble.Janus_Bytes = (ushort)ByteArrayToShort(packet); NextID = PacketPointer + Ensemble.Janus_Bytes; Ensemble.Janus_Frequency = ByteArrayToFloat(packet); Ensemble.Janus_Diameter = (float)ByteArrayToShort(packet) / 1000; Ensemble.Janus_BeamAngle = (float)ByteArrayToShort(packet) / 1000; Ensemble.Janus_Rcvr1Temperature = (float)ByteArrayToShort(packet) / 100; Ensemble.Janus_Rcvr2Temperature = (float)ByteArrayToShort(packet) / 100; Ensemble.Janus_TransmitVolts = (float)ByteArrayToShort(packet) / 100;...
  • Page 58 Ensemble.Janus_VolAmp[1] = (float)ByteArrayToShort(packet) / 100; Ensemble.Janus_VolVel[0] = (float)ByteArrayToShort(packet) / 1000; Ensemble.Janus_VolVel[1] = (float)ByteArrayToShort(packet) / 1000; Ensemble.Janus_VolInst[0] = (float)ByteArrayToShort(packet) / 2000; Ensemble.Janus_VolInst[1] = (float)ByteArrayToShort(packet) / 2000; Ensemble.Janus_VolThres = (float)ByteArrayToShort(packet) / 100; Ensemble.Janus_Voln[0] = (ushort)ByteArrayToShort(packet); Ensemble.Janus_Voln[1] = (ushort)ByteArrayToShort(packet); PacketPointer = NextID; break; case HORIZONTAL_JANUS_GOOD: Ensemble.JanusBeamGoodAvailable = true;...
  • Page 59 Ensemble.Janus_InstrumentVelocity_Bytes = (ushort)ByteArrayToShort(packet); NextID = PacketPointer + Ensemble.Janus_InstrumentVelocity_Bytes; for (bin = 0; bin < Ensemble.Janus_Bins; bin++) for (beam = 0; beam < Ensemble.Janus_Beams; beam++) Ensemble.Janus_InstrumentVelocity[beam, bin] = (float)ByteArrayToShort(packet) / 2000; break; case HORIZONTAL_JANUS_AMPLITUDE: Ensemble.JanusAmplitudeAvailable = true; Ensemble.Janus_Amplitude_ID = ID; Ensemble.Janus_Amplitude_Bytes = (ushort)ByteArrayToShort(packet); NextID = PacketPointer + Ensemble.Janus_Amplitude_Bytes;...
  • Page 60 Ensemble.BS0_Bytes = (ushort)ByteArrayToShort(packet); NextID = PacketPointer + Ensemble.BS0_Bytes; Ensemble.BS0_Frequency = ByteArrayToFloat(packet); Ensemble.BS0_Diameter = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS0_BeamAngle = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS0_Rcvr1Temperature = (float)ByteArrayToShort(packet) / 100; Ensemble.BS0_Rcvr2Temperature = (float)ByteArrayToShort(packet) / 100; Ensemble.BS0_TransmitVolts = (float)ByteArrayToShort(packet) / 100; Ensemble.BS0_Gain = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS0_TransmitBandwidth = (float)ByteArrayToShort(packet) / 65535;...
  • Page 61 Ensemble.BS0AmplitudeAvailable = true; Ensemble.BS0_Amplitude_ID = ID; Ensemble.BS0_Amplitude_Bytes = (ushort)ByteArrayToShort(packet); NextID = PacketPointer + Ensemble.BS0_Amplitude_Bytes; for (bin = 0; bin < Ensemble.BS0_Bins; bin++) for (beam = 0; beam < Ensemble.BS0_Beams; beam++) Ensemble.BS0_Amplitude[beam, bin] = (float)ByteArrayToShort(packet) / 256; for (beam = 0; beam < Ensemble.BS0_Beams; beam++) Ensemble.BS0_NoiseAmplitude[beam] = (float)ByteArrayToShort(packet) / 256;...
  • Page 62 Ensemble.BS1_Bins = MaxBins; if (Ensemble.MostBins < Ensemble.BS1_Bins) Ensemble.MostBins = Ensemble.BS1_Bins; Ensemble.BS1_FirstBin = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS1_BinSize = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS1_VolBegin[0] = (float)ByteArrayToShort(packet) / 1000; if (Ensemble.BS1_Beams > 1) Ensemble.BS1_VolBegin[1] = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS1_VolEnd[0] = (float)ByteArrayToShort(packet) / 1000; if (Ensemble.BS1_Beams > 1) Ensemble.BS1_VolEnd[1] = (float)ByteArrayToShort(packet) / 1000;...
  • Page 63 Ensemble.BS2_BeamAngle = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS2_Rcvr1Temperature = (float)ByteArrayToShort(packet) / 100; Ensemble.BS2_Rcvr2Temperature = (float)ByteArrayToShort(packet) / 100; Ensemble.BS2_TransmitVolts = (float)ByteArrayToShort(packet) / 100; Ensemble.BS2_Gain = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS2_TransmitBandwidth = (float)ByteArrayToShort(packet) / 65535; Ensemble.BS2_ReceiveBandwidth = (float)ByteArrayToShort(packet) / 65535; Ensemble.BS2_SampleFrequency = ByteArrayToFloat(packet); Ensemble.BS2_LagSamples = (ushort)ByteArrayToShort(packet); Ensemble.BS2_CyclePerElement = (ushort)ByteArrayToShort(packet);...
  • Page 64 for (bin = 0; bin < Ensemble.BS2_Bins; bin++) for (beam = 0; beam < Ensemble.BS2_Beams; beam++) Ensemble.BS2_Amplitude[beam, bin] = (float)ByteArrayToShort(packet) / 256; for (beam = 0; beam < Ensemble.BS2_Beams; beam++) Ensemble.BS2_NoiseAmplitude[beam] = (float)ByteArrayToShort(packet) / 256; break; case BACKSCATTER_LEADER_03: Ensemble.BS3Available = true; Ensemble.BS3_ID = ID;...
  • Page 65 Ensemble.BS3_VolBegin[0] = (float)ByteArrayToShort(packet) / 1000; if (Ensemble.BS3_Beams > 1) Ensemble.BS3_VolBegin[1] = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS3_VolEnd[0] = (float)ByteArrayToShort(packet) / 1000; if (Ensemble.BS3_Beams > 1) Ensemble.BS3_VolEnd[1] = (float)ByteArrayToShort(packet) / 1000; Ensemble.BS3_VolAmp[0] = (float)ByteArrayToShort(packet) / 100; if (Ensemble.BS3_Beams > 1) Ensemble.BS3_VolAmp[1] = (float)ByteArrayToShort(packet) / 100; Ensemble.BS3_WPVOLthreshold = (float)ByteArrayToShort(packet) / 100;...
  • Page 66 Ensemble.BS4_TransmitBandwidth = (float)ByteArrayToShort(packet) / 65535; Ensemble.BS4_ReceiveBandwidth = (float)ByteArrayToShort(packet) / 65535; Ensemble.BS4_SampleFrequency = ByteArrayToFloat(packet); Ensemble.BS4_LagSamples = (ushort)ByteArrayToShort(packet); Ensemble.BS4_CyclePerElement = (ushort)ByteArrayToShort(packet); Ensemble.BS4_NumberOfElements = (ushort)ByteArrayToShort(packet); Ensemble.BS4_NumberOfRepeats = (ushort)ByteArrayToShort(packet); Ensemble.BS4_Pings = (ushort)ByteArrayToShort(packet); Ensemble.BS4_Beams = (ushort)ByteArrayToShort(packet); if (Ensemble.BS4_Beams > MaxBeams) Ensemble.BS4_Beams = MaxBeams; Ensemble.BS4_Bins = (ushort)ByteArrayToShort(packet); if (Ensemble.BS4_Bins >...
  • Page 67 for (beam = 0; beam < Ensemble.BS4_Beams; beam++) Ensemble.BS4_NoiseAmplitude[beam] = (float)ByteArrayToShort(packet) / 256; break; if (NextID > PayloadStart + Ensemble.Header_PayloadSize) done = true; else PacketPointer = NextID;...
  • Page 68: Cable Wiring Diagrams

    8 Cable Wiring Diagrams This section outlines the HASCP communication cable wiring.
  • Page 69: Few Pics Of The Hascp Taken During Testing At Rti And At Lake

    9 Few pics of the HASCP taken during testing at RTI and at lake. Figure 16 Isometric view of HASCP showing two 1200 kHz rectangular transducers (beams 1,3), 4 inch 600 kHz piston transducer (beam 2), 2.4 MHz piston transducer (beam 4) and a 1200 kHz piston transducer on top (beam 5).
  • Page 70 Figure 18. Fixture used for mounting the HASCP at the lake. The instrument was mounted at an angle of 45 degrees with all the beams facing down at the lake. Figure 19. Another view of the fixture used for mounting the HASCP at the lake. The instrument was...
  • Page 71: Example Plots From Lake Test

    Figure 21. Plot of the horizontal profile showing the amplitude measurements by the various beams plotted across the range in m. This data was measured by the HASCP at the lake. The left hand axis is the velocity range (-5 to + 5 m/s) and the right hand axis represents the RSSI measured by the ADCP from 0 to 100 dB.
  • Page 72 Figure 22. Plot of the RSSI , Velocity (Beam and XYZ) profiles measured by the two 1200 kHz rectangular pistons at the lake test. V0 and V2 are the velocity measured by the Beam 0 and Beam 2 respectively in beam coordinates and Vx and Vy are the velocities in XY coordinates.
  • Page 73: Mechanical Drawings And Assembly

    10 Mechanical Drawings and Assembly MCBH-10M Figure 23. Outline drawing of the HASCP unit.
  • Page 74 Figure 24. Location of transducer beams in the HASCP unit.
  • Page 75 Figure 25. Back View of the HASCP with the back plate open showing the mounting brackets used for mounting the electronics stack in the HASCP. The wiring for the various transducer and sensors inside the unit are also shown.
  • Page 76 Figure 26. Exploded view of the HASCP unit showing the details of the hardware used.
  • Page 77: Installation To A Pole

    10.1 Installation to a pole The HASCP unit was tested in the RTI tank using the 3 inch diameter pole and mounting bracket. The drawing of the mounting bracket used for securing the HASCP on a 3 inch diameter pole is shown below in Figure 27.
  • Page 78 Figure 28. HASCP mounted on a pole used for internal testing at RTI.
  • Page 79: Warranty Policy

    10.2 Warranty Policy Equipment manufactured by Rowe Technologies Inc., (ROWETECH) is covered under a 12 month, limited warranty, which begins from the date of original shipment. This warranty extends to all parts and labor for any malfunction caused by defects in material or errors in workmanship that occurred during the manufacturing process.

Table of Contents